yitzchok

Forum Replies Created

מוצגות 15 תגובות – 1,591 עד 1,605 (מתוך 2,468 סה״כ)
  • Replies
  • yitzchok
    משתתף
    IL
    פרוצדורה שתפיק תעודות לא תתן לו את הצורה שהוא רוצה.

    אני כתבתי איך (לדעתי) ניתן לעשות את זה.

    נעם, מה דעתך? מה שתיארתי צפוי לא לעבוד?

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

    אי התאמה אפילו קלה גורמת למצב שנראה לי שאתה מתאר.

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

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

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

    שלבי ה-SQLI שהזכרתי זה נדרש כדי לדאוג שהשורות שני קטעי הטקסט מסונכרנים כדי שיצאו בסדר הנכון ולא יהיה שיבוש של ה-HTML
    אני לא עשיתי את העבודה הזאת אבל לא רואה למה שלא יעבוד עם יעשה נכון.

    אני אנצל את ההזדמנות – אתה אומר כל פעם שזה דו"ח טבלאי. בדו"ח שלך יש T בעמודת טיפוס? (או H או כלום?)

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

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

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

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    1. טוב שציינת שהעמודה שלך במסך קשורה לעמודה בטבלה.
    חבל כי זה בזבוז מקום בטבלה כי אתה לא צריך לשמור את הערך של "לסגור" לאחר שסגרת וניתן לעשות עמודה במסך שלא קשורה לשום עמודת טבלה.
    איך שזה עכשיו (ואם בוצע כמו שצריך, ראה את הנקודה הבאה) אם היית משנה את הסטטוס של החשבונית לאחר הסגירה היית מנסה להפעיל את הסגירה עוד פעם (כי NETN_TOCLOSE כבר מחזיקה Y ותשאר ככה).
    ולכן צריכים לשנות את השורה הראשונה לזה:
    GOTO 888 WHERE NOT (:$1.NETN_TOCLOSE 'Y' AND :$.NETN_TOCLOSE = 'Y') ;
    שאומר לדלג אלא אם כן הערך הקודם לא היה Y והערך הנוכחי Y
    אפשרות אחרת זה לשנות את העמודה במסך לא להיות קשורה לעמודה בטבלה.
    לדעתי זה עדיף כי אם משום מה הסגירה תכשל הדרך היחידה לנסות עוד פעם זה על ידי הורדת הדגל וסימון מחדש. ללא קשר לטבלה (וללא ביטוי) העמודה תמיד תתאפס כי אין מאיפה להביא עוד פעם ערך.

    2. הטריגר הזה ודאי לא ירוץ. אין צורך לחקור.
    טריגר POST-UPDATE (כן, NETN_POST-UPDATE במקרה שלך; אנחנו לא נוהגים להזכיר כל פעם קידומות או סיומות) הוא הפעלה ברמת רשומה (מסך שליד מסך העמודות) ולא הפעלת עמודה. פעולה כזו מפעילים רק לאחר "שמירה" של הרשומה ולא תוך כדי עריכה. (אם יש סיבה לעשות משהו אחרי עדכון של שדה, הטריגר המתאים על העמודה נרקא POST-FIELD).
    ואמרתי POST-UPDATE כי POST-INSERT לא שייך – אין מצב שתוכל ליצור רשומת חשבונית (מסך אב) ולסגור מיד אחרי יצירת הרשומה כי לא היתה הזדמנות לאכלס אותה עם פריטים. ולכן סגירה קוראת לאחר עדכון של רשומה קיימת.

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

    בטוח שונה מ-Y?
    כי אני רוצה דווקא את אלה שיש להם Y

    מאוד בטוח.
    התנאי הוא על ה-goto שיגרום לדלג על הכל.

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    לפריוריטי אין כלים לסריקה דווקא.
    קודם כל תברר – בקשר לסורק שיש לכם ובדרייברים וכו' – איך מפעילים את הסורק משורת פקודה ואס תעטוף את זה עם פקודת WINAPP של פריוריטי.
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    אני חושב שראינו כאן בעבר ש-winapp דורשת נתיב מפורש
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    לקחתי את הקוד שלי שעובד ועשיתי שינויים קלים להורוד דברים שמיוחדים לנו. צריך להיות בסדר אבל זה נמסר ללא אחריות.
    הבדיקה הבאה מניחה כפי שכתבתי שהעמודה שלך לא קשורה לעמודה בטבלה ולכן תמיד מתחילה ריקה ולא מקבלת ערך אלא אם כן אתה שם לאחר שהמסך "נפתח" ועודכן ע"י הממשק שלך.


    GOTO 888 WHERE :$.REPO_TOCLOSE 'Y' ;
    /* prepare procedure input and run procedure */
    SELECT SQL.TMPFILE INTO :REPO_TEMPFILE FROM DUMMY ;
    LINK INVOICES I TO :REPO_TEMPFILE ;
    GOTO 888 WHERE :RETVAL <= 0 ; /* if link fails just skip this process */
    DELETE FROM INVOICES I ; /* just in case */
    INSERT INTO INVOICES I
    SELECT * FROM INVOICES WHERE IV = :$.IV ;
    UNLINK INVOICES I ;
    EXECUTE ACTIVATE '-P', 'CLOSEANINVOICE', 'INVOICES', :REPO_TEMPFILE ;
    LABEL 888 ;

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

    נראה לי שיכול להיות דרך לסדר את שני הטקסטים זה ליד זה אבל ידרוש שלב של הכנה
    אתה צריך להכין טבלאות ככה (ואני לא יורד לסוף של איך עושים את זה כי זה לא פשוט)
    1. טבלה עבור כל טקסטי התקלה
    בתוך כל DOC, להביא שורות בסדר של TEXTORD, עם מספור עולה (מבוסס SQL.LINE אבל מספור לכל DOC בנפרד, ותצטרך לולאה/קורסור כדי להכין את זה) ומספר TEXTLINE
    2. עוד טבלה כזאת עבור הטקסט השני
    3. טבלה שלישית בו יש שורות עבור כל DOC, ושורות המספור עד לגבוה שביניהם
    כך שעם עבור DOC 63 יש עד 4 בטבלה א ו-6 בטבלה ב אז בטבלה ג יהיו 6 שורות 1-6 עבור DOC 63

    בדו"ח שלך תביא תכפיל כל DOC עם טבלה 3 (inner join) ואז תקשור א ו-ב אליה (outer join) וטבלאות הטקסט (אותה טבלה, מופעים שונים) אליהן גם ב-outer join, לפי DOC ו-TEXTLINE
    מיון לפי DOC והמספור, כי המספור ישקף את ה-TEXTORD כפי שכתבתי

    יש מצב טוב שזה יעבוד

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    מסתבר שיש לך מספר איתורים באותו שם מחסן.
    כולם צריכים להיות מאותו סוג.
    אם אתה צריך לשנות את כולם אולי תצליח לעשות את זה ע"י שינוי כולם לשם מחסן אחר זמני, ואחר כך לשנות אחד אחת לשם מחסן שלישי (כשהוא היחיד באותו שם) שינוי סוג ואז שינוי שם מחסן חזרה למקורי, כך שכל רגע כל האיתורים תחת אותו שם מחסן יהיו כולם מאותו סוג.
    מקווה שזה יעבוד לך.
    לא שולל אפשרות שתתקל בבעיות אחרות בשינוי סוג באמצע הדרך.
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    כפי שכתבתי אם אתה יכול לקבל שהתיקון יהיה מתחת לתקלה באותה עמודה (תוסיף עמודה לציין מה זה מה) זה יכול לתת לך מענה
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    יכול להיות שגם במקרה הזה שווה לנסות להגדיר מיון על העמודה (אחרי כל מיון קיים) אם היא מוסתרת, אבל אני פחות משוכנע שזה רלוונטי
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
מוצגות 15 תגובות – 1,591 עד 1,605 (מתוך 2,468 סה״כ)