› פורומים › אפיון ופיתוח פריוריטי › כמה מסכי יעד לשדה אחד
- This topic has 27 תגובות, 5 משתתפים, and was last updated לפני 9 חודשים, שבוע 1 by yitzchok.
- Post
-
- אוקטובר 21, 2021 בשעה 11:00 pm
היי,יש לי שדה שמוצג בו מס' תעודה
תעודה יכולה להיות הזמנה או חשבונית מס או תעודת משלוח וכדו'
אני רוצה שכאשר משתמש עומד על שדה זה ולחוץ על F6, יגיע למסך הרלוונטי – הזמנות, חשבוניות מס וכו'
מכירה רק את השדה "שם מסך יעד" אבל זה רק למסך אחד.
האם אפשרי להכניס כמה מסכי יעד?
מקווה שמובן. תודה
- Replies
-
- אוקטובר 22, 2021 בשעה 9:01 am
ניסיתי לכתוב תשובה ארוכה אבל כל פעם האתר הזה לא שומר את מה שכתבתי.האם מדובר במסך או בדו"ח? – יש הבדלים.
- אוקטובר 22, 2021 בשעה 9:39 am
עבור מסך: כתבתי על כך (באנגלית) כאן: https://progpitfalls.blogspot.com/2021/08/defining-dynamic-target-form-name-for.html- אוקטובר 22, 2021 בשעה 9:40 am
עבר דו"ח, כתבתי (באופן חלקי ובאנגלית) כאן: https://progpitfalls.blogspot.com/2021/05/conditional-opening-of-form-from-report.html- אוקטובר 22, 2021 בשעה 9:46 am
הסבר יותר מלא לגבי דו"חות: כאן אני מניח שהדו"ח מוצג כשלב שני מתוך פרוצדורה. אני משתמש ב-STACK8 לדו"חות "מעורבבים" כאשר יש צורך להציג נתונים מיותר מישות אחת. ב-KEY1 אני שומר מספר שמבדיל בין הישויות (נניח 1 = הזמנות לקוח, 2 = תעודות משלוח, 3 = הזמנות רכש וכד'). ב-KEY2 אני שומר את ערך מפתח ה-A. כתוצאה מכך, אפשר לשמור הפניות גם להזמנה מספר 1 וגם לתעודת משלוח מספר 1.עכשיו בדו"ח: יש שדה שמציג את מספר התעודה. ערכו יהיה תלוי בערך שנמצא ב-KEY1 לכן כותבים ביטוי STACK8.KEY1 = '1' : ORDERS.ORDNAME : DOCUMENTS.DOCNO
רצוי לשים סוגריים מסביב לביטוי כולו. אם יש יותר משתי ישויות, אז צריך להיות משפט יותר מורכב.
- אוקטובר 22, 2021 בשעה 9:57 am
המשך: לכל ישות צריך להיות שדה עם שם מפתח ה-A (לדוגמא ORDERS.ORD) כאשר הביטוי לשדה הזה יהיה = (STACK8.KEY1 = 1 ? STACK8.KEY2 : 0)לכל ישות יהיה אותו הביטוי, תוך כדי שינוי של STACK8.KEY1
- אוקטובר 22, 2021 בשעה 10:17 am
המשך: מגדירים שדה נסתר, 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. ללא השדה הזה, יופיעו אותם נתונים יותר מפעם אחת בדו"ח.
עוד מכתב אחד…..
- אוקטובר 22, 2021 בשעה 10:21 am
לאחר שהגדרנו את כל השדות הנדרשים, אנחנו מגיעים אל העיקר.בשדה שמציג את מספר התעודה, נכנסים למסך הבן "עמודות הדו"ח – הגדרות HTML" וללשונית "שדות קלט והפניות". בשדה "סוג שדה קלט" רושמים P. בשדה "שם ערך חזרה" רושמים winform_ (הקו התתון בצד שמאל ואחר כך אותיות קטנות). בשדה "עמודת ערך חזרה" רושמים את מספר השדה שמכיל את EXEC.ENAME. כנ"ל בשדה "עמודה שמגדירה פרוצדורה".
אם הכל בסדר, יופיע קו כחול מתחת למספר התעודה בדו"ח.
בהצלחה!
- אוקטובר 22, 2021 בשעה 10:26 am
אגב, הרבה יותר קל כאשר מציגים נתונים מטבלה אחת אך משדות רבים, כמו AINVOICES, CINVOICES ו-FINVOICES או DOCUMENTS_A ו-DOCUMENTS_D. אם INVOICES, אזיINVOICES.TYPE = IVTYPES.TYPE
INVOICES.DEBIT = IVTYPES.DEBIT
IVTYPES.EXEC = EXEC.EXEC
שוב, השדה החשוב יהיה EXEC.ENAME. כאן אין צורך בסוג הרשומה ב-EXEC.
לגבי תעודות מלאי, הטבלה נקראת DOCTYPES במקום IVTYPES.
- אוקטובר 22, 2021 בשעה 3:21 pm
תודה רבה נועם על התשובה המפורטת.השאלה שלי התייחסה לשדה במסך.
אנסה את מה שרשמת ביום ראשון בעז"ה. מקווה שאצליח:)
- אוקטובר 25, 2021 בשעה 10:28 pm
היי נועם,התעודות שאני מציגה הן הזמנות לקוח, תעודות משלוח וחשבוניות מס
לא מצאתי שדה שיקשר את טבלת ההזמנות לטבלת EXEC
אשמח לעזרה
- אוקטובר 26, 2021 בשעה 7:34 am
טבלת EXEC לבד תספיקENAME = ORDERS
TYPE = F
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- נובמבר 3, 2021 בשעה 10:30 am
היי, תודה יצחק – רק עכשיו רואה את ההודעה…אני מצטערת אבל עדין לא הבנתי
לפי מה שנועם כתב, צריך עמודת ZOOM1 שבו יש לרשום, אם זה קישור לטבלת חשבוניות, IVTYPES.EXEC
או DOCTYPES.EXEC לתעודות.
אני צריכה את שתיהן ובנוסף גם הזמנות.
אשמח לפירוט איך אני רושמת את זה
תודה
- נובמבר 3, 2021 בשעה 12:57 pm
הגישה של IVTYPES/DOCTYPES לא עוזרת ברגע שיש משהו בנוסף.יש לך ביטוי כלשהו שמבדיל בין הזמנות לבין תעודות משלוח (נניח שיש רק שתי טבלאות). לצורך הענין נגיד שהמבדיל נמצא בשדה :$.A. אם כך, את צריכה כך:
עמודת המסך :$.ENAME. עמודת טבלה ENAME, שם טבלה EXEC. ביטוי
= (:$.A = 1 ? 'ORDERS' : (:$.A = 2 ? 'DOCUMENTS_D' ?
(:$.A = 3 ? 'CINVOICES' : 'NULL')))כמוכן נדרש שורה EXEC.TYPE = 'F'. בביטוי למעלה, רושמים את שם מסך היעד. תסתכלי על הבלוג שכתבתי בהתחלה, https://progpitfalls.blogspot.com/2021/08/defining-dynamic-target-form-name-for.html
- נובמבר 4, 2021 בשעה 10:50 am
ממש תודה, הצליח!עכשיו זה מגיע למסך הנכון. השאלה אם הוא יכול לפתוח את המסך על התעודה הנכונה ולא על מסך ריק?
- יש להתחבר למערכת על מנת להגיב.