Forum Replies Created
- Replies
-
- אוקטובר 10, 2019 בשעה 11:48 am
- in reply to: העתקת שדה נוסף מהצעת מחיר להזמנה
לגבי סדר הטריגרים: מה שכתבת נכון, אבל אולי לא הבדלת בין טריגרים מובנים (שלא רואים) לבין טריגרים סטנדרטיים (שכן רואים).קודם מתבצעים טריגרים מובנים למסך (אסביר בהמשך) אחר כך טריגרים כפי שמופיעים במסך הבן "הפעלות המסך". לכן טריגר בשם ABCD_POST-INSERT תמיד יפעל לפני POST-INSERT. לא משנה אם הטריגרים הללו סטנדרטיים או פרטיים.
מה הם טריגרים מובנים? הנה דוגמא אחת: נניח שמסך בנוי על טבלה שמכילה שדה מפתח KLINE, כאשר השדה הזה מוסתר ומחושב אוטומטית. לא ניתן להגדיר את ערכו בהפעלה PRE-INSERT מפני שהפעלה מובנית כבר גילתה שהשדה המפתח הזה ריק – ואסור שיהיה כך. לכן צריך להכניס ערך לתוך KLINE באמצעות POST-FIELD של שדה חובה אחר במסך.
- אוקטובר 7, 2019 בשעה 11:41 am
- in reply to: בעיה בטעינת נתונים למסך – ממשק מסכי
חסר פרמטר ל-INTERFACE. תנסה כךEXECUTE INTERFACE 'PANL_PACK', SQL.TMPFILE, '-L',:$.GEN
בנוסף, לא יודעים איך הגדרת את הממשק. לעניות דעתי, צריך להעביר רק את ORD ולתת למסך לבצע את כל העבודה.
- אוקטובר 6, 2019 בשעה 6:44 pm
- in reply to: העתקת שדה נוסף מהצעת מחיר להזמנה
יש אפשרות נוספת שעדיפה: לכתוב טריגר משלך. צריך לראות מאין יש קריאה ל-BUF6 – נניח POST-INSERT ו-POST_UPDATE. תכניס את הקוד שלך לתוך טריגר TEST_BUF1 ותגדיר הפעלות TEST_POST-INSERT ו-TEST_POST-UPDATE אשר קוראות ל-TEST_BUF1.לפי החוקים, אין לשנות הפעלות סטנדרטיות במסכים.
- אוקטובר 6, 2019 בשעה 1:11 pm
- in reply to: בעיה בטעינת נתונים למסך – ממשק מסכי
יש כמה בעיות עם הקוד – לא ברור עד כמה הן משפיעות.לגבי DISTRLINES – הייתי חולץ את הערך היחיד לתוך משתנה (ולבדוק שקיים ערך!) בתחילת הפרוצדורה ולבצע UNLINK ישר לאחר מכן.
אתה מבצע UNLINK לטבלה שלא "לונקקה" אך לא מבצע על טבלאות שכן "לונקקו".
אל תכניס ערכים לשדה KEY1 – השדה הזה מתמלא לאחר הממשק עם מספר ההזמנה (דהיינו ORD, לא ORDNAME). אני חושש שזו הבעיה העיקרית.
לגבי הקוד שלי – הטריגרים המובנים של המסך עובדים, אין עקיפה.
- אוקטובר 6, 2019 בשעה 11:07 am
- in reply to: בעיה בטעינת נתונים למסך – ממשק מסכי
אני לא יודע מה הכוונה לרקורסיה כאן.הנה קוד פשוט אשר אמור לבצע את הנדרש לפי התאור שלך (לא בדקתי את הקוד אבל נראה לי תקין)
<p style="text-align: left;">:LINE = 0;
LINK GENERALLOAD …
DECLARE CUR CURSOR FOR
SELECT ORDERS.CUST, ORDERITEMS.ORDI
FROM ORDERS, ORDERITEMS
WHERE ORDERS.ORD = ORDERITEMS.ORD
AND ORDERITEMS.DUEDATE = SQL.DATE8
AND NOT EXISTS (SELECT 1 FROM TRANSORDER</p>
<p style="text-align: left;">WHERE TRANSORDER.ORDI = ORDERITEMS.ORDI</p>
<p style="text-align: left;">AND ORDERITEMS.CLOSED <> 'C'
AND TRANSORDER.TYPE IN ('A', 'D'))
AND ORDERITEMS.ORDI > 0
ORDER BY 1, 2;
OPEN CUR;
GOTO 300 WHERE :RETVAL <= 0;
:OLDCUST = 0;
LABEL 100;
FETCH CUR INTO :CUST, :ORDI;
GOTO 200 WHERE :RETVAL <= 0;
GOTO 110 WHERE :CUST = :OLDCUST;
:OLDCUST = :CUST;
:LINE = :LINE + 1;
INSERT INTO GENERALLOAD (LINE, RECORDTYPE, INT1)
VALUES (:LINE, '1', :CUST);
LABEL 110;
:LINE = :LINE + 1;
INSERT INTO GENERALLOAD (LINE, RECORDTYPE, INT1)
VALUES (:LINE, '2', :ORDI);
LOOP 100;
LABEL 200;
CLOSE CUR;
EXECUTE INTERFACE ……
SELECT MESSAGE INTO :PAR1 FROM ERRMSGS
WHERE USER = SQL.USER AND TYPE = 'i';
WRNMSG 99 WHERE :RETVAL > 0;
LABEL 300;
UNLINK GENERALLOAD;</p>
<p style="text-align: right;">אפשר להתחכם ולבצע INSERT INTO/SELECT, דהיינו משיכת כל שורות ההזמנות השייכות ללקוח נתון עם תאריך אספקה היום.</p>- אוקטובר 6, 2019 בשעה 8:49 am
- in reply to: בעיה בטעינת נתונים למסך – ממשק מסכי
מוטב להציג את הקוד ואת הגדרת הממשק – אחרת אנחנו רק מקשקשים באפלהפעם כתבתי תכנית להקמת תעודת אריזה. הממשק מקושר לשני מכסים: DOCUMENTS_A ו-TRANSORDER_A. אין בכלל התיחסות למספר הזמנת לקוח. בשורות, התכנית מעבירה את ORDERITEMS.ORDI אל TRANSORDER_A.
- אוקטובר 4, 2019 בשעה 1:29 pm
- in reply to: בעיה בטעינת נתונים למסך – ממשק מסכי
לעניות דעתי, הודעת השגיאה כן אומרת מה הבעיה. בדרך כלל יש קידומת להזמנות, כמו SO19, מה שאין בהודעה. נראה שאתה מנסה להכניס את הערך של ORDERS.ORD לתוך השדה במקום ORDERS.ORDNAME. יש לך שתי חלופות: או להכניס את ORDNAME לתוך השדה ולהשאיר את הממשק כמושהו, או לא לשנות את GENERALLOAD אך לשנות את הממשק כדי להשתמש בשדה הנסתר ORD.- ספטמבר 23, 2019 בשעה 2:10 pm
- in reply to: שמירת העתק התעודה בנספחים
עקרונית אפשר להשתמש בפרוצדורה הסטנדרטית להדפסת תעודת משלוח (WWWSHOWDOC_D). אין צורך להעתיק אותה: מעבירים אליה טבלה מלנוקקת שמכילה את התעודה הרצויה ו"מורים" לפרודצורה ליצור מסמך PDF בתיקיה נתונה.- ספטמבר 19, 2019 בשעה 10:54 am
- in reply to: השאלת ציוד ללקוחות
בשיטה השניה צריך לפתוח מחסן לכל לקוח ששואל סחורה. בשיטה הראשונה יש רק מחסן אחד. כתוצאה מכך, יותר קל לכתוב דו"חות שמסתכלים על מחסן השאלות אחד במקום להסתכל על מחסנים רבים. כמו כן יש תקורה בפתיחת מחסנים.- ספטמבר 19, 2019 בשעה 10:13 am
- in reply to: השאלת ציוד ללקוחות
הראשון עדיף כי כך אתם יודעים מה נתתם למי. צריך להגדיר את המחסן כנכלל בערך המלאי ולתמחיר, וגם כ"העלמת מלאי לתכנון".- ספטמבר 17, 2019 בשעה 5:17 pm
- in reply to: הגדרת מסך טקסט
This reply has been marked as private.- ספטמבר 17, 2019 בשעה 5:17 pm
- in reply to: הגדרת מסך טקסט
אתחיל בדוגמא אחרת. המסך/טבלה ORDERSTEXT מורכב מארבעה שדות: ORD, TEXT, TEXTLINE ו-TEXTORD. המפתח הראשי מורכב משני שדות, ORD ו-TEXTLINE. מה זה אומר? לפי ORD, פריוריטי יודעת אלו רשומות בטבלה שייכות להזמנה הנוכחית, ו-TEXTLINE נותן לנו את הרשומות הללו לפי סדר. אם המפתח היה מורכב אך ורק מ-ORD, יכולנו לשמור רק רשומה אחת (כי המפתח הראשי חייב להיות יחודי). אפשרות אחרת היתה שהמפתח הראשי יהיה רק TEXTLINE כאשר ORD יהיה מפתח N אבל כנראה השימוש ב-TEXTLINE במסך טקסט חופשי מחייב ש-TEXTLINE יהיה יחודי לרשומות של אותה הזמנה, אך לא יחודי בין ההזמנות (כמו KLINE ב-ORDERITEMS). לכן נדרש מפתח ראשי שמורכב משני שדות, כאשר הצירוף מזהה באופן חד חד ערכי את הרשומות השייכות לכל הזמנה.השאלה שלך שואלת לגבי המסך CUSTCNEXTFILE אשר מבוסס על טבלת CUSTEXTFILE, וכפי שאת מציינת, המפחת הראשי של הטבלה הזו (או בלשון פריוריטי, מפתח ה-U) מורכב משני שדות: מספר לקוח ומספר קובץ. כיוון שהמפתח הראשי של המסך הזה מכיל שני שדות, המפתח הראשי של המסך הבן, דהיינו מסך הטקסט, צריך להכיל שלושה שדות: מספר לקוח, מספר נספח ומספר שורה. במילים אחרות, טבלת הטקסט שלך צריכה להכיל חמישה שדות: CUST, EXTFILENUM, TEXTLINE, TEXT ו-TEXTORD. יתרה מזה, את צריכה לבנות את המסך בעצמך – צריך להקפיד על כל הטריגרים כי אחרת זה לא יעבוד.
כדאי לך להסתכל על טבלה CAMPAIGNTOPICSTEXT ועל המסך שבנוי על הטבלה הזו. גם כאן יש מפתח ראשי בעל שלושה שדות.
כל זה היה נמנע לו מעבצי פריוריטי היו מגדירים מפתח A בכל טבלה. בטח חשבו "מי צריך מסך בן?" למסך הזה, שהוא בעצמו מסך בן, מה גם הוא מכיל מסמכים.
- ספטמבר 16, 2019 בשעה 9:05 am
- in reply to: דו"ח הזמנת רכש פתוחה בסטטוס "לאיסוף"
במלה אחת, כן. במלה אחרת, פיתוח. אצלנו כ-25 דו"חות נשלחים אוטומטית כל לילה.הקושי העיקרי: לוודא שניתן לשלוח דו"חות בדואר מהשרת.
- ספטמבר 15, 2019 בשעה 4:28 pm
- in reply to: הגדרת מסך טקסט
שם המסך החדש יהיה בנוי על שם המסך האב (נניח ORDERS) עם סיומת TEXT. לכן מסך המלל החופשי להזמנות לקוח נקרא ORDERSTEXT. כנראה את מנסה להוסיף דרך התכנית מסך טקסט למסך סטנדרטי שחסר לו קידומת פרטית – לכן ההודעה.אם אכן כך, תצטרכי לבנות טבלה ומסך ידנית. לטבלה יש בדרך כלל ארבעה שדות אבל זה תלוי במספר השדות שיש במפתח הראשי של מסך האב.
- ספטמבר 15, 2019 בשעה 10:14 am
- in reply to: דוח תקציב עם ניצול מצטבר
BUDPERIOD דו"ח טבלאי (טיפוס T בכותרת) לכן כמעט ולא ניתן להוסיף לו עיצובים.לגבי מצטברים, יש שדה שהוא בדרך כלל בכותרת עם חישוב קבוצתי C, אם כי אני מסתכל על דו"ח פרטי שלי בו לא מופיע אף שדה עם חישוב C. הנתון שאת רוצה להציג כמצטבר אכן יסומן עם A.