› פורומים › אפיון ופיתוח פריוריטי › הדפסת טופס תקלה
- This topic has 11 תגובות, משתתף 1, and was last updated לפני 15 שנים, 5 חודשים by yitzchok.
- Post
-
- מאי 31, 2009 בשעה 6:10 pm
- Replies
-
- מאי 31, 2009 בשעה 6:25 pm
אי אפשר להוסיף לפרוצדורה הקיימתיש להעתיק את הפרוצדורה ולהוסיף פרמטר מסוג FILE על CUSTOMERS.CUSTNAME לשלב INPUT
יש להעביר את הקובץ הזה כפרמטר בעל אותו שם לדו"ח עם שם הטבלה (CUSTOMERS נניח) בשדה "ערך"
מצד הסינון אין צורך לשינויים בדו"ח – קישור של הקובץ לדו"ח יגרום לזה שהדו"ח לא יכיר לקוחות חוץ מאלה שיש בקובץ ואין צורך להוסיף תנאי נוסף כלשהו לדו"ח.
כל עוד אתה לא מבצע שינויים בדו"ח אין צורך להעתיק אותו לגרסה פרטית (זה לא אומר שכל שינוי דורש העתקה, אני רק אומר שאם לא נוגעים ודאי אין צורך)
אני מקווה שתשובה זו מספיק מפורטת בשבילך. אם לא תשאל עוד
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- מאי 31, 2009 בשעה 7:03 pm
- מאי 31, 2009 בשעה 7:31 pm
שלב א': קלטבשלב INPUT של הפרוצדורה תוסיף שורה:
שם פרמטר: CUS
כותרת:
מיקום:
רוחב: 16 לפי CUSTNAME, או 0
קלט: I
ערך:
טיפוס: FILE
עמודת טבלה: CUSTNAME
שם טבלה: CUSTOMERSתוצאת הגדרה זו היא לתת לך קובץ שהוא טבלה זמנית בצורת CUSTOMERS המחזיק את הרשומות אותן המשתמש בוחר
כדי להתשמש בזה יש צורך בשלב ב':
שלב ב': קישור לדו"ח
בפרוצדורה להיכנס לפרמטרים של השלב של הדו"ח
ב"שם פרמטר" לרשום CUS
זה יביא "FILE" ל-"טיפוס"
יש להוסיף בשדה "ערך" את שם הטבלה מתוך הדו"ח.עשכיו אני זוכר שמדובר בעמודה פרטית! כן תצטרך להוסיף טבלה לדו"ח. לבד זה לא מחייב העתקת הדו"ח אבל אני מדמיין שתרצה לשנות את המיון ואולי קיבוץ בדו"ח וזה כן יחייב העתקה אז לך תעתיק את הדו"ח. אז תתחיל בהוספת העמודה שהוספת לטבלה, ותחבר ל-CUST של CUSTOMERS, נניח במזהה 5.
מזהה 5 דורש ששם הטבלה שאתה כותב ב"ערך" יהיה CUSTOMERS5. אם תשתמש במזהה 0 אז סתם CUSTOMERS.
כדי להשתמש בדו"ח שלך מספיק לשנות את השם בשלב הפרוצדורה, אפשר אחרי הוספת הפרמטר.
בהצלחה
עניין אחר:
מה קורה כשהמשתמש לא קבע לקוח לתקלה? אני חושש שכל התקלות האלה עלולות להופיע בכל דו"ח.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 1, 2009 בשעה 3:21 pm
- יוני 1, 2009 בשעה 4:58 pm
אחד משלבי הפרוצדורה צריך להיות הדו"ח שלך (סוג R)
במסך בן פרמטרים של שלב זה תוסיף שורה עם אותו קוד שיש לקלט שהוספת (CUS)[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 1, 2009 בשעה 5:57 pm
- יוני 1, 2009 בשעה 6:32 pm
הוספת טבלת CUSTOMERS לדו"ח?אם כן, הייתי מציע לבדוק אם אתה מקבל את כל הטפסים או רק אלה של הלקוח שביקשת וגם אלה שאין להם לקוח. קבע לקוח אחר בטופס מסוים ותראה אם מקבלים אותו. יכול להיות שצריכים תנאי של
[code:1]CUSTOMERS.CUST 0[/code:1]
אבל אז אי אפשר להשתמש בדו"ח גם כדו"ח כללי אא"כ יודעים שלכל טופס יש לקוח. (יש פתרונות לזה אבל לא מאוד פשוטים)[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 2, 2009 בשעה 12:19 pm
גולדמן שלוםאני חייב להתנצל כי אני לא עשיתי שיעורי בית כראוי. (תודות לליאור שהפנה את תשומת ליבי לעובדה)
לא שמתי לב לזה שמדובר במסמך ולא בדו"ח. מה שכתבתי מתאים לדו"חות רגילות בלבד.
אני צריך לכתוב לך הסבר מתאים למסמכים אך אין לי זמן לזה ממש עכשיו – בע"ה מאוחר יותר היום.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 2, 2009 בשעה 2:43 pm
- יוני 3, 2009 בשעה 8:44 pm
OKהספקתי להסתכל בזה; אני מתנצל על העיכוב.
קודם כל אומר לפי מה שאני מבין אתה לא מבקש (בשלב זה) לשנות את צורת טופס התקלה, אתה רק רוצה להיות מסוגל להדפיס קבוצה של טפסים בבת אחת.
האמת היא שזה לא כ"כ פשוט להכין פרוצדורה כזו בה יש שני קלטים שיעבדו ביחד, קרי גם קלט טופס וגם קלט לקוח. אני באמת לא רואה צורך, תרצה קלטים של "טופס תקלה" ו"מס. לקוח" בו זמנית רק במידה ואתה רוצה להפיק רק חלק מהטפסים של לקוח מסוים. במקרה זה, בו אתה רוצה להפיק קבוצה שרירותית של טפסים של לקוח מסוים, הייתי מציע להשתמש בפרוצדורה הקיימת, לבצע זום למסך טופס תקלה, לשלוף לפי לקוח או כל תנאי שתרצה ולהביא את הרשומות המוצגות חזרה. אין צורך לפיתוח.
אני מדמיין שמה שיספק אותך הכי טוב זה דו"ח שאפשר להפעיל אותו מהסמך של לקוחות כהפעלה ישירה כך שבלחיצה אחת אפשר להוציא טפסי תקלה של לקוח אותו לקוח בלי לשחק עם קלט ידני. את זה אפשר להכין בקלות (הרבה יותר פשוט מאשר גם קלט של טופס וגם של לקוח). אני אציע גם כן תוספת אופציונלית וזו סינון לפי תאריך טופס התקלה. את זה אפשר לקבל גם מתוך מסך הלקוחות. כמריצים את הפרוצדורה מהתפריט אפשר יהיה לשלוף לפי לקוח או כמה לקוחות (כמו כל קלט) וגם טווח תאריכים.
הנה תוכנית העבודה, אני מקווה שזה רלוונטי.
אני אספר כאילו עושים מההתחלה, ואני אציע תוך כדי מה אתה צריך לעשות היות וכבר התחלת לפי מה שאני תיארתי בעבר.
1. יש להעתיק לפרוצדורה חדשה פרטית כי אי אפשר לעבוד על הקיימת ובכל מקרה רוצים לשמור את הקיים כדי להיות מסוגלים להפיק טפסי תקלה לפי שליפה אישית (כל זה מניח שאתה לא עושה שינויים בצורת הטופס, אם כן נטפל בזה בנפרד) – כבר העתקת פרוצדורה, תעבוד על מה שיש לך.
2. קלט הראשי שלנו בפרוצדורה יהיה לקוחות. יש לשנות את "עמודת טבלה" בפרמטר PAR ל-CUSTNAME ו-"שם טבלה" ל-CUSTOMERS. – תמחוק את שורת ה-CUS שהמלצתי מוקדם יותר ותשנה את PAR כנ"ל.
2א – אופציונלי – אם תרצה סינון לפי טווח תאריכים תוסיף 2 קלטים מסוג DATE רוחב 8 – FDT מתאריך TDT עד תאריך, ב"קלט I/M" תקבע M. אני מציע שבשאילתת הכנה תוסיף שורה מעין
[code:1]ERRMSG (msgnumber) WHERE :$.FDT > :$.TDT ;[/code:1]
ובהודעה תזהיר ש"מתאריך" צריך להיות לפני "עד תאריך". סתם בדיקת תקינות. לא חובה אבל אם לא בודקים וזה הפוך זה לא יביא כלום. אפשר לשפר ולדאוג שברירת המחדל תהיה תמיד מ-01/01/88 ועד היום – פיתוח מתקדם יותר.
אם עושים את זה אני מציע לשנות את סוג הקלט מ-INPUT ל-INPUTF. כך זה יבקש את התאריכים גם כשמריצים בהפעלה ישירה.3. שלב ה-HTMLCURSOR: יש לשנות את השאילתא. אם לא נוגעים בזה, הפרוצדורה לא תתיחס לבחירת הלקוחות ויפיק את כל הטפסים. השאילתא צריכה להיות (ואני לא בדקתי, סתם כתבתי, אם זה לא יעבוד תחקור או נחקור):
כמובן במקום (not equals) שים קטן מ- וגדול מ-. תוכנת הפורום מורידה את התווים…
[code:1]
SELECT FAULT, FAULTNO
FROM CUSTOMERS, FAULTS
WHERE CUSTOMERS.CUST (not equals) 0
AND FAULTS.FAULT (not equals) 0
AND FAULTS.(your_prefix)_CUST = CUSTOMERS.CUST
ORDER BY FAULTNO;
[/code:1]3א – אופציונלי – אם הוספת קלטים של FDT וTDT יש להתייחס אליהם. תוסיף לפמי השורה של ORDER BY:
[code:1]AND FAULTS.CURDATE BETWEEN :$.FDT AND :$.TDT[/code:1]3ב – אופציונלי – אם תרצה לדאוג למיון הטפסים לפי לקוח (רלוונטי אם מוציאים טפסים של כמה לקוחות בבת אחת) אפשר להוסיף לשאילתא. לא אסביר פה, אפשר ללמוד מפרוצדורת WWWSHOWAIV
זה, לדעתי, צריך להספיק בשלב זה. נעזור להוסיף עוד על בסיס זה כשיעבוד.
בהצלחה!
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 4, 2009 בשעה 11:11 am
אני חייב להוסיף משהושכחתי לבדוק לפני כן אבל בדקתי ולשמחתי לא מצאתי מצב שחייבים לבדוק עבורו במקרים כאלה.
הצעתי לשנות את המשמעות של PAR – זה היה FAULTS ושינינו אותו ל-CUSTOMERS. כעקרון אין בעיה עם זה. בתנאי שלא מתייחסים ל-PAR כ-FAULTS במקום אחר. רואים שבשלב SQLI אחד יש פרמטר PAR אבל לא עושים עם זה כלום שם לכן אין בעיה. אם היינו מוצאים משום מה התייחסות ל-PAR היינו צריכים לשכתב גם את השלב הזה בהתאם.
אבל בפעול מקרה כזה יהיה נדיר כי מה-HTMLCURSOR עד הINPUT האחרון יש לולאה ומטפלים רשומה רשומה לפי הערך ששלופים ב-HTMLCURSOR ולכן לא קורה כ"כ הרבה שמתייחסים לכל הסט.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
- יש להתחבר למערכת על מנת להגיב.