NoamN

Forum Replies Created

מוצגות 15 תגובות – 421 עד 435 (מתוך 442 סה״כ)
  • Replies
  • NoamN
    משתתף
    none
    דווקא כתבתי משהו דומה לפני כמה ימים. רצוי ליצור תיקיה בשרת בשם ידוע – שם יישמרו הנספחים

    1. צריך ליצור מסמך HTML של התעודה ולשמור כקובץ PDF בתיקיה הנ"ל. כתוב איך לעשות זאת בפרק 15 של ה-SDK

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

     

     

    NoamN
    משתתף
    none
    נדרשים שני פרמטרים, כאשר שניהם מחוברים אל PART/PARTNAME

    בגוף הפרוצדורה מבצעים לינק בצורה הבאה:

    LINK PART P1 TO :$.P1

    LINK PART P2 TO :$.P2

    מכאן ואילך צריך לרשום PART P1 בכל פעם שיש התיחסות לטבלה הראשונה ו-PART P2 כאשר יש התיחסות לטבלה השניה.

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

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

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

    נניח שיש עשר שורות בהזמנה ואת רוצה להוסיף שורה במקום החמישי. את צריכה קורסור אשר ישלוף את ORDI ואת LINE ממוין לפי LINE בסדר הפוך ועם LINE גדול מ-5. כך קודם תקבלי את השורה עם LINE = 10. את מגדילה את הערך ל-11 ועוברת לשורה הבאה, מגדילה ל-10 וכך הלאה. לאחר סיום הלולאה, את מכניסה את השורה החדשה.

    יתכן שגם ניתן לכתוב ביטוי אחד במקום קורסור –

    UPDATE PORDERITEMS

    SET LINE = LINE + 1

    WHERE ORD = :ORD

    AND LINE > 5

     

     

     

     

     

    NoamN
    משתתף
    none
    נדרש לכך פיתוח. אני יכול לחשוב על שלוש שיטות נפרדות וסביר להניח שיש דרכים נוספות:

    1. דו"ח שפולט פריטים וסריילאים לפי תעודת המשלוח בפורמט CSV

    2. כנ"ל אך באקסל (יותר מסובך)

    3. מסך אשר יציג את הנתונים – שולחים את הנתונים מהמסך לקבוץ אקסל

     

    הייתי בוחר בחלופה הראשונה ובכלל הייתי יוצר את הקובץ ברגע שסטטוס התעודה הופך ל"סופית".

    NoamN
    משתתף
    none
    היו בעיות גם כאשר ההפעלה היתה מורכבת משתי שורות בלבד: GOTO ו-LABEL, מבלי להתיחס לאף שדה במסך אב.

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

    NoamN
    משתתף
    none
    הצעה: תשתמשי בשיטת INTERFACERR אך תוסיפי את המלה BACKGROUND בין EXECUTE לבין WINACTIV
    NoamN
    משתתף
    none
    יש תכנית אשר מנקה שורות 0 – ניהול מלאי > ניהול מחסנים > מלאי נוכחי > מחיקת מלאי ריק

    אני מפעיל את התכנית אוטומטית כל לילה דרך מתזמן המשימות, וגם לפעמים ידנית

    NoamN
    משתתף
    none
    קשה לדעת מבלי לראות את תוכן ההפעלה, אבל גיליתי שצריך להוסיף תנאי שנראה מיותר כמו CUST <> 0 כדי לקבל רשימת בחירה ולא מסך.

    הנה דוגמא
    <p dir="ltr">SELECT TYPEDES,TYPECODE FROM CPROFTYPES WHERE CPROFTYPE <> 0
    AND INACTIVE <> 'Y'
    ORDER BY 1 ;</p>
     

    NoamN
    משתתף
    none
    איך את שולחת מייל?
    NoamN
    משתתף
    none
    איך את קובעת את "משתמש במערכת שאחראי על הלקוח"? שדה "לטיפול" במסך הלקוחות (בדרך כלל, מי שפתח את הלקוח)? אחראי גביה (במסך "הגדרות כספים ללקוחות)? בהנחה שמדובר ב"לטיפול" –
    <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>
    NoamN
    משתתף
    none
    את רוצה את התנאי ההפוך, WHERE EXISTS (SELECT 1 FROM PARTPRICE

    את רוצה למצוא את שורות עבור הפריט אשר קיימות ב-PARTPRICE לכן WHERE EXISTS יהיה "אמת" עבור השורות הללו.

    NoamN
    משתתף
    none
    לא צריך להיות גרשים מסביב ל-SQL.TMPFILE

    אני חושב שזו לא הבעיה אבל כדאי לתקן בכל מקרה. מה קורה אם אתה מסיר את כל הדגלים אחרי FIL: ?

    NoamN
    משתתף
    none
    הנחתי לך להוסיף הודעה 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>
    הקטע הזה מחליף את מה שכתבתי קודם.
    NoamN
    משתתף
    none
    תוסיף פקודה אחרי ה-EXECUTE כדי לקבל הודעות שגיאה.

    SELECT MESSAGE INTO :PAR1 FROM ERRMSGS

    WHERE USER = SQL.USER AND TYPE = 'i';

    WRNMSG 99 WHERE :RETVAL > 0

    ;

    זה אמור לתת לך מושג מה נכשל

    NoamN
    משתתף
    none
    האם חסר פסיק אחרי FIL? יכול להיות בעיה עם ההצגה באתר, אך נראה שלדגל v יש מקף גם לפניו (נכון) ואחריו (לא נכון). לעומת זאת, אין מקף לפני enforcebpm

    במקום 'msgfile', תרשום SQL.TMPFILE

    יש לי ספק אם כל הדגלים באמת נדרשים.

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