Forum Replies Created
- Replies
-
- אוגוסט 20, 2019 בשעה 11:40 am
- in reply to: שמירת העתק התעודה בנספחים
דווקא כתבתי משהו דומה לפני כמה ימים. רצוי ליצור תיקיה בשרת בשם ידוע – שם יישמרו הנספחים1. צריך ליצור מסמך HTML של התעודה ולשמור כקובץ PDF בתיקיה הנ"ל. כתוב איך לעשות זאת בפרק 15 של ה-SDK
2. להוסיף את המסמך הזה (או יותר נכון, הנתיב אליו) בטבלת הנספחים. בשביל זה נדרש ממשק פשוט שדורש שני סוגים של רשומה: אחד לתעודת המשלוח ואחד לנספח.
- אוגוסט 20, 2019 בשעה 11:33 am
- in reply to: קלט בפרוצדורה של דוח
נדרשים שני פרמטרים, כאשר שניהם מחוברים אל PART/PARTNAMEבגוף הפרוצדורה מבצעים לינק בצורה הבאה:
LINK PART P1 TO :$.P1
LINK PART P2 TO :$.P2
מכאן ואילך צריך לרשום PART P1 בכל פעם שיש התיחסות לטבלה הראשונה ו-PART P2 כאשר יש התיחסות לטבלה השניה.
יותר קל אם אחת הטבלאות אומר לתת ערך בודד – כך ניתן לבצע לינק רגיל, לשלוף את הערך למשתנה, לסגור את הלינק, לבצע לינק לטבלה השניה ולשלוף משם, או להמשיך להשתמש בטבלה המלונקקת.
היה עוזר לו היו יותר פרטים בשאלה כדי לתת תשובה יותר מדוייקת.
- אוגוסט 15, 2019 בשעה 8:26 pm
- in reply to: טעינת נתונים ופיצול שורות בהזמנות רכש
כדי "למרפק" את השורה החדשה באמצע, את צריכה קודם להגדיל את מספר השורה של כל השורות "מעל" השורה הרצויה. מוטב דווקא להתחיל מהסוף ולחזור אחורה עד שאת מגיעה למקום הרצוי.נניח שיש עשר שורות בהזמנה ואת רוצה להוסיף שורה במקום החמישי. את צריכה קורסור אשר ישלוף את ORDI ואת LINE ממוין לפי LINE בסדר הפוך ועם LINE גדול מ-5. כך קודם תקבלי את השורה עם LINE = 10. את מגדילה את הערך ל-11 ועוברת לשורה הבאה, מגדילה ל-10 וכך הלאה. לאחר סיום הלולאה, את מכניסה את השורה החדשה.
יתכן שגם ניתן לכתוב ביטוי אחד במקום קורסור –
UPDATE PORDERITEMS
SET LINE = LINE + 1
WHERE ORD = :ORD
AND LINE > 5
- אוגוסט 8, 2019 בשעה 1:28 pm
- in reply to: רשימת סריילאים לאקסל
נדרש לכך פיתוח. אני יכול לחשוב על שלוש שיטות נפרדות וסביר להניח שיש דרכים נוספות:1. דו"ח שפולט פריטים וסריילאים לפי תעודת המשלוח בפורמט CSV
2. כנ"ל אך באקסל (יותר מסובך)
3. מסך אשר יציג את הנתונים – שולחים את הנתונים מהמסך לקבוץ אקסל
הייתי בוחר בחלופה הראשונה ובכלל הייתי יוצר את הקובץ ברגע שסטטוס התעודה הופך ל"סופית".
- אוגוסט 7, 2019 בשעה 8:30 am
- in reply to: הוספת הפעלה למסך SHIPTO2
היו בעיות גם כאשר ההפעלה היתה מורכבת משתי שורות בלבד: GOTO ו-LABEL, מבלי להתיחס לאף שדה במסך אב.אני די בטוח שהבעיה נוצרה עקב כך שהמסך הזה מופיע כמסך בן במסך פרטי אחר כאשר חסרים למסך הפרטי שדות מסוימים. בינתיים לא בדקתי הלאה מפני שהפכתי את הפעלת המסך להפעלה ישירה, כאשר לגישה הזו יש כמה יתרונות.
- יולי 29, 2019 בשעה 1:35 pm
- in reply to: הצגת הודעת שגיאה מתוך פרוצד'
הצעה: תשתמשי בשיטת INTERFACERR אך תוסיפי את המלה BACKGROUND בין EXECUTE לבין WINACTIV- יולי 29, 2019 בשעה 12:36 pm
- in reply to: העברות בין מחסנים
יש תכנית אשר מנקה שורות 0 – ניהול מלאי > ניהול מחסנים > מלאי נוכחי > מחיקת מלאי ריקאני מפעיל את התכנית אוטומטית כל לילה דרך מתזמן המשימות, וגם לפעמים ידנית
- יולי 28, 2019 בשעה 2:33 pm
- in reply to: יצירת רשימת בחירה
קשה לדעת מבלי לראות את תוכן ההפעלה, אבל גיליתי שצריך להוסיף תנאי שנראה מיותר כמו CUST <> 0 כדי לקבל רשימת בחירה ולא מסך.הנה דוגמא
<p dir="ltr">SELECT TYPEDES,TYPECODE FROM CPROFTYPES WHERE CPROFTYPE <> 0
AND INACTIVE <> 'Y'
ORDER BY 1 ;</p>
- יולי 21, 2019 בשעה 1:38 pm
- in reply to: שליחת מייל מטריגר למשתמש שאחראי על הלקוח
איך את שולחת מייל?- יולי 21, 2019 בשעה 12:17 pm
- in reply to: שליחת מייל מטריגר למשתמש שאחראי על הלקוח
איך את קובעת את "משתמש במערכת שאחראי על הלקוח"? שדה "לטיפול" במסך הלקוחות (בדרך כלל, מי שפתח את הלקוח)? אחראי גביה (במסך "הגדרות כספים ללקוחות)? בהנחה שמדובר ב"לטיפול" –
<p dir="ltr">SELECT USERSB.EMAIL INTO :EMAIL</p>
<p dir="ltr">FROM ORDERS, CUSTOMERS, USERSB</p>
<p dir="ltr">WHERE ORDERS.CUST = CUSTOMERS.CUST</p>
<p dir="ltr">AND CUSTOMERS.OWNER = USERSB.USER</p>
<p dir="ltr">AND ORDERS.ORD > 0;</p>- יולי 21, 2019 בשעה 8:58 am
- in reply to: מחיקה מטבלת המשך
את רוצה את התנאי ההפוך, WHERE EXISTS (SELECT 1 FROM PARTPRICEאת רוצה למצוא את שורות עבור הפריט אשר קיימות ב-PARTPRICE לכן WHERE EXISTS יהיה "אמת" עבור השורות הללו.
- יולי 18, 2019 בשעה 1:46 pm
- in reply to: הפעלת ממשק בפיתוח פרטי מפרוצדורה חדשה
לא צריך להיות גרשים מסביב ל-SQL.TMPFILEאני חושב שזו לא הבעיה אבל כדאי לתקן בכל מקרה. מה קורה אם אתה מסיר את כל הדגלים אחרי FIL: ?
- יולי 17, 2019 בשעה 8:38 pm
- in reply to: הפעלת ממשק בפיתוח פרטי מפרוצדורה חדשה
הנחתי לך להוסיף הודעה 99, שמציג את ערכו של PAR1, דהיינו <P1>.
<p dir="ltr">בשיטה הזו תקבל רק שגיאה אחת. דרך אחרת לקבל את כל השגיאות -</p>
<p dir="ltr">GOTO 1 WHERE NOT EXISTS (SELECT 1 FROM ERRMSGS</p>
<p dir="ltr">WHERE USER = SQL.USER AND TYPE = 'i');</p>
<p dir="ltr">EXECUTE WINACTIV 'R', 'INTERFACEERR';</p>
<p dir="ltr">LABEL 1;</p>
הקטע הזה מחליף את מה שכתבתי קודם.- יולי 17, 2019 בשעה 8:19 pm
- in reply to: הפעלת ממשק בפיתוח פרטי מפרוצדורה חדשה
תוסיף פקודה אחרי ה-EXECUTE כדי לקבל הודעות שגיאה.SELECT MESSAGE INTO :PAR1 FROM ERRMSGS
WHERE USER = SQL.USER AND TYPE = 'i';
WRNMSG 99 WHERE :RETVAL > 0
;
זה אמור לתת לך מושג מה נכשל
- יולי 17, 2019 בשעה 8:33 am
- in reply to: הפעלת ממשק בפיתוח פרטי מפרוצדורה חדשה
האם חסר פסיק אחרי FIL? יכול להיות בעיה עם ההצגה באתר, אך נראה שלדגל v יש מקף גם לפניו (נכון) ואחריו (לא נכון). לעומת זאת, אין מקף לפני enforcebpmבמקום 'msgfile', תרשום SQL.TMPFILE
יש לי ספק אם כל הדגלים באמת נדרשים.