NoamN

Forum Replies Created

מוצגות 15 תגובות – 361 עד 375 (מתוך 447 סה״כ)
  • Replies
  • NoamN
    משתתף
    none
    יש הבדל מהותי בין דו"ח לבין מסך בנושא הזה.

    לגבי מסך: כל מסך בנוי במקור על טבלה מחדלית – השם מופיע בכותרת המסך. כתוצאה מכך, כל השדות אשר מופיעים במסך אשר נובעים מאותה טבלה ייכתבו למסד נתונים בעת שמירת נתונים. לדוגמא – מסך הזמנות לקוח מבוסס על טבלת ORDERS. שדה כמו ORDERS.DISPRICE יירשם אוטומטית. מסך בדרך כלל גם מציג שדות מטבלאות אחרות, לדגומא CUSTOMERS.CUSTNAME. במקרה הזה, יש גם שדה ORDERS.CUST אשר יכיל את המספר הפנימי של הלקוח, וכיון שהשדה הזה נמצא בטלבה המחדלית, גם הוא יירשם בעת שמירת נתונים (ORDERS.CUST יירשם, לא CUSTOMERS.CUSTNAME). יש שתי אפשרויות כאשר מופיע שם שדה במסך הבן הרחבות: הראשונה, והקל להבין, מציג ביטוי (תסתכל על השדה "CDES"). האפשרות השניה מסובמכת יותר ואומרת  ש*הערך הזה* אמור להישמר אך צריך לרשום קוד אשר ידאג לזה (דוגמא POSITIONDES).

    בדו"חות, מה שמופיע בהרחבה כמעט תמיד ביטוי. מקרה שלא ביטוי: אם רושמים בדו"ח שדה כמו PARTEXTFILES.EXTFILENAME, בדו"ח יופיע קיצור לקובץ הזה (זאת אומרת, לחיצה על ה"תמונה" תגרום לקובץ עצמו להיפתח). אם רושמים את אותו הדבר אבל בהרחבה, *שם הקובץ* יופיע.

    NoamN
    משתתף
    none
    נכון לגבי מזהה 5, אבל מוסיפים את הקוד בדו"ח, לא במסך. אינני יודע אם מדובר בדו"ח סטנדרטי ואם החוקים לגבי המזהה חלים גם על דו"חות. אני משער שאין בעיה להעתיק את הדו"ח לדו"ח מותאם ולבצע את התוספות שם.
    NoamN
    משתתף
    none
    אני משער שאתה כותב על מסך על QINVOICES, מסך בן HFNCITEMS. אין שדה REFER.1 אבל יש שדה FNCIREF1, שהוא מורכב מ-FNCITEMSA.FNCIREF1 (זה מופיע כך מפני שמדובר בשדה כתיב שאינו בטבלה הבסיסית של המסך). למעשה מדובר בשדה שקשור לשורה בתנועת יומן. השדה זה מכיל מספר חשבונית לכן ניתן לחבר אותו עם INVOICES.IVNUM (סביר להניח שתצטרך להשתמש במספר מזהה שונה מ-0) ומשם כמו שכתבתי במקור –

    FNCITEMSA.FNCIREF1 = INVOICES.IVNUM
    INVOICES.IV = INVOICESA.IV
    INVOICESA.PROJ = DOCUMENTS.DOC

    צריך להשתמש בשליפה מותנית (דהיינו, תרשום סימן שאלה בשדה "מזהה" יחד עם המספר, כמו ?1) כיון שלא בטוח שתהיה רשומה מתאימה ל-FNCIREF1.

    NoamN
    משתתף
    none
    בסוף הסתדרתי. היה יותר פשוט ממה שחשבתי.
    NoamN
    משתתף
    none
    בהנחה שמדובר בדו"ח שמבוסס על טבלת INVOICES, צריך להוסיך:

    1. INVOICES.IV = INVOICESA.IV

    2. INVOICESA.PROJ = DOCUMENTS.DOC

    3. להציג את DOCUMENTS.DOCNO

    4. מסך היעד של אותו השדה – DOCUMENTS_p

    צריך לבדוק אם טבלת DOCUMENTS כבר מופיעה בדו"ח – אם כן, צריך לתת לטבלה בשלב 2 מספר מזהה 1

    NoamN
    משתתף
    none
    למיטב זכרוני, דו"ח רווח והפסד מהווה את הדוגמא היחידה בפריוריטי סטנדרטית לסוג דו"ח שאני קורא לו ZOOM – מציגים דו"ח מרוכז, לוחצים על נתון ונפתח דו"ח מפורט לגבי אותו נתון. הדו"חות הללו קוראים לעצמם עם פרמטרים שונים כאשר השלב הראשון בפרוצדורה מחליט אם מדובר בדו"ח מרוכז או מפורט. כותב הפרוצדורה שולט בכמה פרמטרים מעוברים: מחברים מחרוזת עם הנתונים הנדרשים, מופרדים בפסיק או משהו אחר, והפרוצדורה אשר מקבלת את המחרוזת צריכה לחלק את המחרוזת בחזרה לנתונים נפרדים. לפני שכולם מתלהבים מהרעיון, עלי להזהיר שפרוצודרות/דו"חות כאלה קשים מאד לכתיבה.

    עקרונית הפנייה כזו יכולה להיות אל פרוצדורה אחרת לגמרי אשר יכולה לעדכן נתון כלשהו באמצעות ממשק. מעבר לסיבוך הכרוך בתהליך כזה, אין בו גמישות. נניח שאתה רוצה לדחות את תאריך האספקה של הזמנת לקוח בכמה ימים – איך תגדיר בכמה ימים במחרוזת המעוברת? אפשר להגדיר שהפרוצדורה תדחה בחמישה ימים או שישה ימים, אבל המספר הזה חייב להיות כתוב באיזשהו מקום או מגיע באמצעות ביטוי כלשהו. במקרה הכי גרוע, הפרוצדורה יכולה לבקש מהמשתמש את מספר הימים, אבל זה נראה לי עלות תועלת מאד נמוכה – ניתן לפתור את הבעיה בדרכים קלות יותר.

    NoamN
    משתתף
    none
    מסקרן אותי לדעת מה אתה מתכוון ב- "ניתן להפעיל דוח עם פרמטר אחד שנשלח". פרוצדורות שאנחנו כותבים יכולות לקבל קובץ "מלונקק" של רשומות, בעוד תכניות חיצוניות (כמו SONRAW) יכולות לקבל כמה פרמטרים. כתבתי דו"חות שמופעלים כשלב מתוך פרוצדורה שמקבלים שני טבלאות מלונקקות.

    אני חושב שאתה מסתכל על הבעיה בצורה הפוכה: מוטב לכתוב פרוצדורה אשר תשלוף את הרשומות שהיו אמורות להיות מוצגות בדו"ח ולבצע את העדכון הנדרש בתוך הפרוצדורה עצמה.

    NoamN
    משתתף
    none
    כמובן תלוי מה אתה רוצה לשנות. תמיד רצוי לנסות קודם במסך "שינויים בתעודות משלוח סופית" (או המסך המקביל עבור שורות) לפני שמסתבכים.
    NoamN
    משתתף
    none
    אלו הקשות כלולות במקרו? אי אפשר להקליט את הפעלת ההפעלה הישירה לביטול סגירת התעודה באמצעות לחיצת עכבר, אלא צריך ללחוץ על CTRL+F5 כדי להעלות את רשימת ההפעלות ולבחור את ההפעלה הרצויה באמצעות המקלדת בלבד.
    NoamN
    משתתף
    none
    בהחלט אפשרי. יש כל מיני אפשרויות בהתאם לדרישות הספציפיות שלך.

    אני מדפיס קריאות שרות למכונות עם טקסט קבוע לכל מכונה (מקביל לצ'ק ליסט) – התוכן שמור במסך טקסט כלשהו. יש מלל קבוע לפי סוג הזמנה רכש/שיווק. אפשר לשמור מלל קבוע ב"לקוח" כמו www ולשלוף משם למסך הרצוי.

    NoamN
    משתתף
    none
    בדרך כלל, מתנים תכנית כזו בשינוי סטטוס מסמך. אך כיון שמדובר בחשבוניות, שינוי הסטטוס אינו מתבצע בשיטה הרגילה אלא באמצעות פרוצדורה CLOSEIV. תצטרך להוסיף לתכנית הזו שלב נוסף אשר בודק כל מיני דברים לפני המשלוח – בעיקר סוג החשבונית (הפרוצדורה משותפת לכל מיני סוגי חשבונית) והאם הלקוח מקבל מסמכים ממוחשבים.

    בהנחה שהכל בסדר, צריך לפעול בהתאם להוראות בפרק 15 של ה-SDK בקטע Creating an E-Document using Procedure Code

    NoamN
    משתתף
    none
    בהנחה שיש לך שדה תאריך אחד שמוצג כפרמטר (שיכיל את התאריך שווה או פחות מ-), תוסיף את השדה הזה פעם נוספת, מוסתר, אם ביטוי גדול מ-01/01/88. כך תמנע הופעת רשומות ללא תאריך.
    NoamN
    משתתף
    none
    משתמע שלסביבות יש אותה קידומת לחשבוניות – לא רעיון טוב מכל מיני סיבות. אני ממליץ להגדיר קידומות שונות לכל סוג תעודה לכל חברה כך ניתן לדעת מיד לאיזו סביבה שייך מסמך.

    לגופו של ענין, אני מציע שתוסיפי לטבלת COMPDATA שדה CHAR שיכיל את המזהה 211 וכו' – נקרא לשדה הזה TEST_ID. תוכן הברקוד יהיה

    STRCAT('*I' , COMPDATA.TEST_ID, INVOICES.IVNUM,'*').

    השימוש בשדה בטבלה חוסך את הצורך לבנות את המזהה בעת הפקת הדו"ח בהתאם לערכו של SQL.ENV, שידרוש משפט קצת מסובך. כמובן צריך לחבר את COMPDATA לדו"ח שמציג את הברקוד. ניתן לשמור את הערך בשלב SQLI של הפרוצדורה בתוך פרמטר ואחר כך להשתמש בפרמטר בביטוי.

    • התגובה הזו עודכנה לפני לפני 6 שנים, 2 חודשים ע"י NoamN.
    NoamN
    משתתף
    none
    בדו"ח פשוט ניתן לקבוע (בעת הקלט) טווח ערכים, מתאריך עד תאריך. צריך ללחוץ על החץ ליד סימן השווה בפרמטר ולשנות אותו ל"בין".

    לא צריך להסתבך עם פרוצדורה. כך היינו צריכים לעבוד פעם, עד בגרסה 15 בערך, אבל היום יותר פשוט להעביר טווח ערכים לדו"ח פשוט.

    NoamN
    משתתף
    none
    אפשר לעצב את המסך כדי שהשדות השימושיים ביותר נמצאים ביחד באותה לשונית.

     

מוצגות 15 תגובות – 361 עד 375 (מתוך 447 סה״כ)