NoamN

Forum Replies Created

מוצגות 15 תגובות – 196 עד 210 (מתוך 442 סה״כ)
  • Replies
  • NoamN
    משתתף
    none
    בדו"ח HTML, אני מניח שאתה מתכוון לדו"ח רגיל, לא למסמך HTML (כמו הדפסת הזמנת לקוח).

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

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

    בקיצור, אנחנו צריכים פרטים נוספים.

    NoamN
    משתתף
    none
    תשובה פשוטה: כן

    תשובה ארוכה: תצטרך לכתוב הפעלה POST-UPDATE (או PRE-UPDATE) למסך הספציפי אשר יגלה שינוי בשדה עליו אתה עוקב, ואם יש שינוי, ההפעלה תצטרך להוסיף שורה ללוג השינויים.

    בהנחה שאתה מתכוון למסך הבן "קישור לפרויקט/חשבון", זה עלול להיות די מסובך מפני שלמסך הבן יש אבות רבים ולא יהיה קל לעדכן את לוג השינויים הנכון. תצטרך לוודא שמסך האב (במקרה הזה, PORDERITEMS) הוא באמת PORDERITEMS או שמסך הסב PORDERS. תבדוק אם ערך השדה :$$$.EXTTYPE (שדה במסך PORDERS) שווה ל-P.

    NoamN
    משתתף
    none
    בהמשך למה שכתבתי למעלה, אפשר לקרוא בלינק הבא איך יישמתי את הרעיון בפריוריטי באופן מובנה. זה דוררש 20-30 דקות לפיתוח.

    https://progpitfalls.blogspot.com/2021/03/version-control-for-priority-procedures.html

    • התגובה הזו עודכנה לפני לפני 4 שנים, 7 חודשים ע"י NoamN.
    NoamN
    משתתף
    none
    לא נראה לי שהפתרון של "מהדורות קודמות" מתאים, לפחות לפי איך שהבנתי את השאלה המקורית.

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

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

    בכל מקרה, רצוי להריץ כמה בדיקות!

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

    אין לי מושג איך עובדים עם זה.

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

    GOTO 1 WHERE :$.SHIPPER = :$1.SHIPPER;
    UPDATE INVOICESA
    SET SHIPPER = :$.SHIPPER
    WHERE IV = :$.IV;
    LABEL 1;

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

    NoamN
    משתתף
    none
    אין שדה SHIPPER במסך CIVDETAILS, לפחות אצלי. האם הוספתם שדה פרטי SHIPPER לטבלת INVOICES? אם כן, עמודת המסך צריך להיות משהו כמו TEST_SHIPPER וטבלת SHIPPERS צריך להיות עם מזהה 5 (או יותר גדול)
    NoamN
    משתתף
    none
    באיזו טבלה נמצא שדה הנהג? מה טבלת הבסיס של המסך? כנראה את צריכה לשמור את שדה הנהג בטבלה המתאימה בהפעלת BUF שתיקרא מ-POST-INSERT ו-POST-UPDATE
    NoamN
    משתתף
    none
    תוקן בגרסה 19. אפשר להגדיר שדה שמגדיר צבע גופן להיות מוסתר ועם מיון 9.
    NoamN
    משתתף
    none
    דו"ח רגיל (בתוך פרוצדורה)
    NoamN
    משתתף
    none
    כדי לעשות זאת, אתה צריך לכתוב פרוצדורה פשוטה בת שני שלבים: הראשון הוא שלב SQLI והשני הוא הדו"ח.

    תשמור את שם הדו"ח (ללא התאריך) במסך הבן לפרוצדורה "הודעות לפרוצדורה" עם מספר הודעה 1.

    בשלב SQLI, אתה צריך לרשום כך

    SELECT ENTMESSAGE ('$', 'P', 1) INTO :PAR1 FROM DUMMY;
    :HTMLFNCTITLE = STRCAT (DTOA (SQL.DATE8, 'DD/MM/YY'), ' ', :PAR1);

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

    בהצלחה!

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

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

מוצגות 15 תגובות – 196 עד 210 (מתוך 442 סה״כ)