NoamN

Forum Replies Created

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

    בשדה שמציג את מספר התעודה, נכנסים למסך הבן "עמודות הדו"ח – הגדרות HTML" וללשונית "שדות קלט והפניות". בשדה "סוג שדה קלט" רושמים P. בשדה "שם ערך חזרה" רושמים winform_ (הקו התתון בצד שמאל ואחר כך אותיות קטנות). בשדה "עמודת ערך חזרה" רושמים את מספר השדה שמכיל את EXEC.ENAME. כנ"ל בשדה "עמודה שמגדירה פרוצדורה".

    אם הכל בסדר, יופיע קו כחול מתחת למספר התעודה בדו"ח.

    בהצלחה!

    NoamN
    משתתף
    none
    המשך: מגדירים שדה נסתר, EXEC.ENAME, עם מפתח מיון 9. לשדה הזה יהיה ביטוי בסגנון
    <p style="text-align: right;">= (STACK8.KEY1 = 1 ? 'ORDERS' : (STACK8.KEY1 = 2 ? 'DOCUMENTS_D' : …</p>
    או במילים, אם KEY1 = 1, אזי ENAME יהיה ORDERS, ואם KEY1 = 2, אזי ENAME יהיה DOCUMENTS_D וכו'. אלה שמות מסכים.

    שדה נסתר נוסף, EXEC.TYPE, עם ביטוי = 'F'. יש לפחות שתי שורות בטבלת EXEC עם שם ORDERS: אנחנו רוצים את השורה של המסך, לכן F. ללא השדה הזה, יופיעו אותם נתונים יותר מפעם אחת בדו"ח.

    עוד מכתב אחד…..

    NoamN
    משתתף
    none
    המשך: לכל ישות צריך להיות שדה עם שם מפתח ה-A (לדוגמא ORDERS.ORD) כאשר הביטוי לשדה הזה יהיה = (STACK8.KEY1 = 1 ? STACK8.KEY2 : 0)

    לכל ישות יהיה אותו הביטוי, תוך כדי שינוי של STACK8.KEY1

    NoamN
    משתתף
    none
    הסבר יותר מלא לגבי דו"חות: כאן אני מניח שהדו"ח מוצג כשלב שני מתוך פרוצדורה. אני משתמש ב-STACK8 לדו"חות "מעורבבים" כאשר יש צורך להציג נתונים מיותר מישות אחת. ב-KEY1 אני שומר מספר שמבדיל בין הישויות (נניח 1 = הזמנות לקוח, 2 = תעודות משלוח, 3 = הזמנות רכש וכד'). ב-KEY2 אני שומר את ערך מפתח ה-A. כתוצאה מכך, אפשר לשמור הפניות גם להזמנה מספר 1 וגם לתעודת משלוח מספר 1.

    עכשיו בדו"ח: יש שדה שמציג את מספר התעודה. ערכו יהיה תלוי בערך שנמצא ב-KEY1 לכן כותבים ביטוי STACK8.KEY1 = '1'  : ORDERS.ORDNAME : DOCUMENTS.DOCNO

    רצוי לשים סוגריים מסביב לביטוי כולו. אם יש יותר משתי ישויות, אז צריך להיות משפט יותר מורכב.

    NoamN
    משתתף
    none
    עבר דו"ח, כתבתי (באופן חלקי ובאנגלית) כאן: https://progpitfalls.blogspot.com/2021/05/conditional-opening-of-form-from-report.html
    NoamN
    משתתף
    none
    עבור מסך: כתבתי על כך (באנגלית) כאן: https://progpitfalls.blogspot.com/2021/08/defining-dynamic-target-form-name-for.html
    NoamN
    משתתף
    none
    ניסיתי לכתוב תשובה ארוכה אבל כל פעם האתר הזה לא שומר את מה שכתבתי.

    האם מדובר במסך או בדו"ח? – יש הבדלים.

    NoamN
    משתתף
    none
    הנה הנתיב למסך בו מגדירים סטטוסים לחשבוניות מס: כספים > מכירות (כספים) > חשבוניות מכירות > חשבוניות מס > ניהול תהליך לחשבונית מס.

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

    יש מסך מקביל "ניהול תהליך לחשבונית מרכזת".

     

    NoamN
    משתתף
    none
    פיתוח …….

    אל תקרא לזה "לשונית" אלא "מסך בן". לשוניות נמצאות במסך כותרת, כמו "פרטים כלליים" במסך "כרטיס פריט"?

    NoamN
    משתתף
    none
    בטבלה שעליה בנוי מסך הנוכחות, אני משער שיש שדה USER או USERB. כדי לגרום לכך שכל משתמש יראה רק את הנתונים שלו, לשדה USER יהיה ביטוי SQL.USER. זה אומר שכל רשומה שתיקלט תכיל את מספר המשתמש הנוכחי וגם בשליפת נתונים, רק הרשומות השייכות למשתמש הנוכחי יישפלו.

    יצחק כתב על השדה TYPE במסך DOCUMENTS_D שממלא את אותו התפקיד (גם בכל המסכים ששמם מתחיל ב-DOCUMENTS).

    קצת יותר מסובך לגבי USERB. כאן נראה לי שצריך להכניס שאילתא קצרה בהפעלה PRE-FORM, בסגנון SELECT USERB INTO :MY_USER FROM USERSB

    WHERE USER = SQL.USER;

    הביטוי בשדה USERB יהיה MYUSER:.

     

    NoamN
    משתתף
    none
    יצחק כתב: "פשוט תעשה לולאה בקוד מערך ראשון עד ערך אחרון ותבצע INSERT). כך יהיה תמיד הטווח הנדרש". אני אומר שאין צורך בלולאה: כתבתי פרוצדורה לפני כשבועיים בה דו"ח צריך להעביר אל דו"ח רק טווח תאריכים (הדו"ח נשלח אוטומטית דרך דואר לכן אין אפשרות לקלט) והגדרתי את התאריכים כך

    INSERT INTO STACK2 (ELEMENT, TYPE)
    VALUES (:$.FDT, :$.TDT)

    בדו"ח עצמו, בשדה התאריך, יש ביטוי BETWEEN STACK2.ELEMENT AND STACK2.TYPE

     

     

    NoamN
    משתתף
    none
    מסך פרטי עם כל התנאים מובנים?
    NoamN
    משתתף
    none
    אני מציע לעזוב את KEYSTROKES וללכת בכיון של שליפה קבועה שתופעל אוטומטית בעת הכניסה למסך. אמנם אי אפשר להגיע לנתונים במסך בן בדרך הזו אבל היא הרבה יותר פשוטה וישימה.

    מה גם – KEYSTROKES או הפעלת PRE-FORM פועלת עבור כולם. לעומת זאת, שליפה מחדלית מוגדרת ברמת המשתמש.

    NoamN
    משתתף
    none
    יש מסכים – כמו לדוגמא שורות הזמנת לקוח – בהם ניתן לקבוע את השדה ע"י שינוי מספר השורה שמוצג. מעבר לכך אין דרך ובדרך כלל אין גם חשיבות לסדר שורות בתוך מסמך. אם יש חשיבות לסדר – צריך לרשום את הנתונים לפי הסדר הרצוי.
    NoamN
    משתתף
    none
    בפריט כללי (נניח 000), הדגל "שינוי תאור" מסומן, אשר אומר שבשורות תעודה (כמו הצעות מחיר, הזמנות וחשבוניות) ניתן לרשום תאור ספציפי לאותה שורה. נרשמים ערכים מזהים (מלל, מספר שורה, סוג תעודה) לתוך טבלה NONSTANDARD ומשם ניתן לשלוף.
מוצגות 15 תגובות – 121 עד 135 (מתוך 442 סה״כ)