yitzchok

Forum Replies Created

מוצגות 15 תגובות – 2,371 עד 2,385 (מתוך 2,452 סה״כ)
  • Replies
  • yitzchok
    משתתף
    IL
    הכל ניתן לקינפוג פה

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

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    אני חושב שאני מבין את השאלה שלך באופן אחר

    אכן הדפסת חשבונית מרכזת/חו"ל עם תאור מורחב אמור להדפיס את הטקסט לפריט. אבל בכל שלב מדובר בהדפסת הטקסט שמופיע בפריט באותה תעודה ולא בתעודה המקורית.

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

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

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    שמח שהצלחת

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

    אפשרות אחרת היתה להביא למסך TYPE של DOCUMENTS (5) ולדאוג שלאחר הכנסת ערך לDOCNO תשים p ב-TYPE ואז זה היה מושך את הDOC לבד. יש דוגמה ב-ORDERS.F/DOCNO/POST-FIELD

    שוב אני מציע שתדאג להגביל למספר פרויקט בלבד ע"י CHECK-FIELD (תשווה לDOCNO ב-ORDERS כנ"ל)

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    עניתי בפורום אפיון ופיתוח, נמשיך את הדיון שמה בבקשה.
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    OK רק שהוא יבין שזה לא היה הסוף
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    אני לא אכנס לכל הפרטים אבל נראה לי שיש לך בעיה זו בגלל שDOCNO הוא לא ייחודי בטבלה לכן בחירת DOCNO יא קובע אוטומטית DOC. רק בשילוב TYPE עם ערך 'p' תקבל DOC.

    פתרון פשוט (לא בדקתי אבל נראה לי) דורש 2 דברים:

    הפעלת CHECK-FIELD שיתן שגיאה עם מקלידים מספר שהוא לא נמצא בטבלת DOCUMENTS עם TYPE של p – ה-CHOOSE-FIELD נותן רק פרויקטים אבל אפשר להקליד שם הכל

    הפעלת POST-FIELD שיחפש ב-DOCUMENTS את ה-DOCNO ביחד עם TYPE של 'p' ויחזיר ערך של DOC לתוך LEON_DOCT

    לדעתי זה יעבוד אבל שוב לא בדקתי לראות שאין בעיה בלוגיקה שלי

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    מארק, סיימת את ההסבר? יש עוד לעשות, לא?
    (שלב INPUT עם עיצוב HTML, הכנת תבנית, הכנסה לתצרות הדפסה)
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    אני חייב להוסיף משהו

    שכחתי לבדוק לפני כן אבל בדקתי ולשמחתי לא מצאתי מצב שחייבים לבדוק עבורו במקרים כאלה.

    הצעתי לשנות את המשמעות של PAR – זה היה FAULTS ושינינו אותו ל-CUSTOMERS. כעקרון אין בעיה עם זה. בתנאי שלא מתייחסים ל-PAR כ-FAULTS במקום אחר. רואים שבשלב SQLI אחד יש פרמטר PAR אבל לא עושים עם זה כלום שם לכן אין בעיה. אם היינו מוצאים משום מה התייחסות ל-PAR היינו צריכים לשכתב גם את השלב הזה בהתאם.

    אבל בפעול מקרה כזה יהיה נדיר כי מה-HTMLCURSOR עד הINPUT האחרון יש לולאה ומטפלים רשומה רשומה לפי הערך ששלופים ב-HTMLCURSOR ולכן לא קורה כ"כ הרבה שמתייחסים לכל הסט.

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    OK

    הספקתי להסתכל בזה; אני מתנצל על העיכוב.

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

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

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

    הנה תוכנית העבודה, אני מקווה שזה רלוונטי.

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

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

    2. קלט הראשי שלנו בפרוצדורה יהיה לקוחות. יש לשנות את "עמודת טבלה" בפרמטר PAR ל-CUSTNAME ו-"שם טבלה" ל-CUSTOMERS. – תמחוק את שורת ה-CUS שהמלצתי מוקדם יותר ותשנה את PAR כנ"ל.

    2א – אופציונלי – אם תרצה סינון לפי טווח תאריכים תוסיף 2 קלטים מסוג DATE רוחב 8 – FDT מתאריך TDT עד תאריך, ב"קלט I/M" תקבע M. אני מציע שבשאילתת הכנה תוסיף שורה מעין
    [code:1]ERRMSG (msgnumber) WHERE :$.FDT > :$.TDT ;[/code:1]
    ובהודעה תזהיר ש"מתאריך" צריך להיות לפני "עד תאריך". סתם בדיקת תקינות. לא חובה אבל אם לא בודקים וזה הפוך זה לא יביא כלום. אפשר לשפר ולדאוג שברירת המחדל תהיה תמיד מ-01/01/88 ועד היום – פיתוח מתקדם יותר.
    אם עושים את זה אני מציע לשנות את סוג הקלט מ-INPUT ל-INPUTF. כך זה יבקש את התאריכים גם כשמריצים בהפעלה ישירה.

    3. שלב ה-HTMLCURSOR: יש לשנות את השאילתא. אם לא נוגעים בזה, הפרוצדורה לא תתיחס לבחירת הלקוחות ויפיק את כל הטפסים. השאילתא צריכה להיות (ואני לא בדקתי, סתם כתבתי, אם זה לא יעבוד תחקור או נחקור):
    כמובן במקום (not equals) שים קטן מ- וגדול מ-. תוכנת הפורום מורידה את התווים…
    [code:1]
    SELECT FAULT, FAULTNO
    FROM CUSTOMERS, FAULTS
    WHERE CUSTOMERS.CUST (not equals) 0
    AND FAULTS.FAULT (not equals) 0
    AND FAULTS.(your_prefix)_CUST = CUSTOMERS.CUST
    ORDER BY FAULTNO;
    [/code:1]

    3א – אופציונלי – אם הוספת קלטים של FDT וTDT יש להתייחס אליהם. תוסיף לפמי השורה של ORDER BY:
    [code:1]AND FAULTS.CURDATE BETWEEN :$.FDT AND :$.TDT[/code:1]

    3ב – אופציונלי – אם תרצה לדאוג למיון הטפסים לפי לקוח (רלוונטי אם מוציאים טפסים של כמה לקוחות בבת אחת) אפשר להוסיף לשאילתא. לא אסביר פה, אפשר ללמוד מפרוצדורת WWWSHOWAIV

    זה, לדעתי, צריך להספיק בשלב זה. נעזור להוסיף עוד על בסיס זה כשיעבוד.

    בהצלחה!

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    גולדמן שלום

    אני חייב להתנצל כי אני לא עשיתי שיעורי בית כראוי. (תודות לליאור שהפנה את תשומת ליבי לעובדה)

    לא שמתי לב לזה שמדובר במסמך ולא בדו"ח. מה שכתבתי מתאים לדו"חות רגילות בלבד.

    אני צריך לכתוב לך הסבר מתאים למסמכים אך אין לי זמן לזה ממש עכשיו – בע"ה מאוחר יותר היום.

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    הוספת טבלת CUSTOMERS לדו"ח?

    אם כן, הייתי מציע לבדוק אם אתה מקבל את כל הטפסים או רק אלה של הלקוח שביקשת וגם אלה שאין להם לקוח. קבע לקוח אחר בטופס מסוים ותראה אם מקבלים אותו. יכול להיות שצריכים תנאי של
    [code:1]CUSTOMERS.CUST 0[/code:1]
    אבל אז אי אפשר להשתמש בדו"ח גם כדו"ח כללי אא"כ יודעים שלכל טופס יש לקוח. (יש פתרונות לזה אבל לא מאוד פשוטים)

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    בכיף.

    אני מקווה שאני מצליח להסביר את הגישה הכללית כך שכל הקוראים יהיו יותר עצמאיים.

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    אחד משלבי הפרוצדורה צריך להיות הדו"ח שלך (סוג R)
    במסך בן פרמטרים של שלב זה תוסיף שורה עם אותו קוד שיש לקלט שהוספת (CUS)
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    שלב א': קלט

    בשלב INPUT של הפרוצדורה תוסיף שורה:
    שם פרמטר: CUS
    כותרת:
    מיקום:
    רוחב: 16 לפי CUSTNAME, או 0
    קלט: I
    ערך:
    טיפוס: FILE
    עמודת טבלה: CUSTNAME
    שם טבלה: CUSTOMERS

    תוצאת הגדרה זו היא לתת לך קובץ שהוא טבלה זמנית בצורת CUSTOMERS המחזיק את הרשומות אותן המשתמש בוחר

    כדי להתשמש בזה יש צורך בשלב ב':

    שלב ב': קישור לדו"ח

    בפרוצדורה להיכנס לפרמטרים של השלב של הדו"ח
    ב"שם פרמטר" לרשום CUS
    זה יביא "FILE" ל-"טיפוס"
    יש להוסיף בשדה "ערך" את שם הטבלה מתוך הדו"ח.

    עשכיו אני זוכר שמדובר בעמודה פרטית! כן תצטרך להוסיף טבלה לדו"ח. לבד זה לא מחייב העתקת הדו"ח אבל אני מדמיין שתרצה לשנות את המיון ואולי קיבוץ בדו"ח וזה כן יחייב העתקה אז לך תעתיק את הדו"ח. אז תתחיל בהוספת העמודה שהוספת לטבלה, ותחבר ל-CUST של CUSTOMERS, נניח במזהה 5.

    מזהה 5 דורש ששם הטבלה שאתה כותב ב"ערך" יהיה CUSTOMERS5. אם תשתמש במזהה 0 אז סתם CUSTOMERS.

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

    בהצלחה

    עניין אחר:

    מה קורה כשהמשתמש לא קבע לקוח לתקלה? אני חושש שכל התקלות האלה עלולות להופיע בכל דו"ח.

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    אי אפשר להוסיף לפרוצדורה הקיימת

    יש להעתיק את הפרוצדורה ולהוסיף פרמטר מסוג FILE על CUSTOMERS.CUSTNAME לשלב INPUT

    יש להעביר את הקובץ הזה כפרמטר בעל אותו שם לדו"ח עם שם הטבלה (CUSTOMERS נניח) בשדה "ערך"

    מצד הסינון אין צורך לשינויים בדו"ח – קישור של הקובץ לדו"ח יגרום לזה שהדו"ח לא יכיר לקוחות חוץ מאלה שיש בקובץ ואין צורך להוסיף תנאי נוסף כלשהו לדו"ח.

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

    אני מקווה שתשובה זו מספיק מפורטת בשבילך. אם לא תשאל עוד

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
מוצגות 15 תגובות – 2,371 עד 2,385 (מתוך 2,452 סה״כ)