Forum Replies Created
- Replies
-
- יוני 7, 2009 בשעה 11:35 am
- in reply to: קישור מסכים
יש שרשרת של טריגרים. ובין הטריגרים יש פנימיים שאנחנו לא רואים אלא בדיבוג מסכים.אני לא בקי בסדר הטריגרים אבל הייתי מנחש שזה עובד איכשהו כך:
בכל עמודה של טבלה מיובאת שמקושרת לטבלת הבסיס (או כל טבלה אחרת?) יש טריגר פנימי שבודק האם הכניסו ערכים לכל שדות המפתח שנותנים לאתר רשומה אחת. ואז מושכים את כל הערכים של הרשומה, כולל המפתח לתוך עמודת הקישור.
כל זה בשרשרת. ז"א בגלל ה-POST-FIELD שלך רצה POST-FIELD (פנימי) של TYPE וזה החליט שיש מספיק לזהות שורה ומשכה את הרשומה כולה כולל DOC.
אם תרצה לראות בעצמך תוכל להריץ את המסך במצב דיבוג:
[code:1]WINFORM LOGPART -g d:/tmp/logpart.dbg[/code:1]
(מ"כלים" "הפעלת ישות", ובהנחה שיש לך ספרית d:/tmp, תשנה לפי הצורך)
תנסה לבצע שם המינימום – תחפש פריט, שים קשר וצא. אם תעשה יותר צמדי תלך לאיבוד בתוך הקובץ. הקובץ מגלה את כל מה שקורה בפנים כולל ההפעלות הפנימיות. אם תזכור את זה תבין יותר טוב מה שקורה שם, יש הרבה הרבה פעולות.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 4, 2009 בשעה 7:09 pm
- in reply to: חסימת הזמנה מעל 2 הזמנות
הצעה אולי לא כ"כ קשה, אבל לא ארד בשלב זה (או אחר) לפרטי ביצועאפשר להוסיף למסך הזמנות שדה חדש לא מחובר לטבלה. בשינוי מסוים מפעילים הפעלה שתחשב כמה חשבוניות רכש יש לספק זה (או חישוב רלוונטי אחר). יכול להיות שחישוב זה צריך להביא תוצאות שונות תלוי במצב הזמנה כדי לא להפריע בהזמנות קיימות. להביא גם סטטוס ספק למסך. ואז קובעים חוק עסקי שיחסום/יתריע לפי שילוב המספר/שדה המחושב והסטטוס (אין טעם להתריע על ספק פעיל).
יתרון בדבר כזה – נורא פשוט לשנות או להוציא לגמרי, לא נגעת כלל בדטהבייס.
מקווה שזה יתן לך כיוון.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 4, 2009 בשעה 7:01 pm
- in reply to: חסימת הזמנה מעל 2 הזמנות
זה לא נשמע לי פשוטכדי שיהיה משוכלל צריכים לקחת בחשבון מה ההגדרה של "ביצוע הזמנה". מצד אחד אם 2 ההזמנות הראשונות עוד פתוחות לא רוצים לאפשר שלישית, אבל אם פתחתם בטעות 2 הזמנות וביטלתם אותן, לא תרצו להיות מוגבלים.
אם מדובר בפיתוח, אישית הייתי משתדל לצורך דבר כזה להוסיף כמה שפחות שינויים לDB ויותר לבנות BPM מתאים ותוכנה שתבדוק מצב קניות לפי חוקיות כלשהיא ותשנה את סטטוס הספק בהתאם. יש יותר מדי דרכים להקדים תהליך רכש להיות מסוגלים להגדיר לוגיקה במסכים וכו' שתנהל חסימה כזאת.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 4, 2009 בשעה 5:44 pm
- in reply to: הוספת שדה ממסך בן להדפסת ק.שירות
חנן כזכור לי עליך להגדיר עבור פרמטר ה-ASCII שלך "OUTPUT" בעמודת ערך. תשווה מול דו"חות אחרים בפרוצדורה.[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 4, 2009 בשעה 5:41 pm
- in reply to: הוספת שדה ממסך בן להדפסת ק.שירות
יש בפרוצדורה 2 שלבי INPUT – אחד אוסף ממך (בהתחלה) והשני אוסף את הדו"חות (בסוף)בשלב הINPUT השני מגדירים את מבנה המסמך. מאיזה דו"חות זה בנוי (רשימת הפרמטרים) ואיפה הם נמצאים בדף (מסך בן של כל פרמטר עיצוב HTML).
הדף בנוי מטבלה גדולה (X שורות וY עמודות, לא מגדירים, זה מחושב מסיכום של ההגדרות של כל דו"חות הבודדות) ואומרים שם עבור כל דו"ח כמה תאים כאלה הוא תופס – באיזה שורה ומאיזו עמודה עד איזו.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]כבר היינו פהחנן אני מציע שתקרא בשלב זה מה שכתבנו ב"נושא" אחר על אותו נושא
https://www.priority-forums.com/he/index.php/forums?func=view&catid=6&id=1649
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 4, 2009 בשעה 5:28 pm
- in reply to: טקסט לשורה לא מוצג בחשבונית
הכל ניתן לקינפוג פהההגדרה שהזכרתי דומה לקובע SCopyOrdText במסך קבועי לוגיסטיקה ששולט על העתקת הטקסט מההזמנה לתעודת המשלוח. יתכן שמוגדר אצלך להעתיק במעבר אחד אבל לא בשני.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 4, 2009 בשעה 5:23 pm
- in reply to: טקסט לשורה לא מוצג בחשבונית
אני חושב שאני מבין את השאלה שלך באופן אחראכן הדפסת חשבונית מרכזת/חו"ל עם תאור מורחב אמור להדפיס את הטקסט לפריט. אבל בכל שלב מדובר בהדפסת הטקסט שמופיע בפריט באותה תעודה ולא בתעודה המקורית.
זאת אומרת – אם אתה כן רואה טקסט בתעודת משלוח מודפסת יש לך טקסט מסך בן (נכד) הרלוונטי בתעודת המשלוח. אם לא יוצא לך טקסט בהדפסת חשבונית, אין לך טקסט במסך זה. אני מציע שתבדוק שזה אכן נכון.
אם זה המצב, ואין לך טקסט לפריט בחשבונית תבדוק את ההגדרות במסך "הגדרות לתעודות כספיות". יש שם עמודה "העתקת טקסט קודם?" נדמה לי שהגדרה זאת היא המקור לתלונה שלך.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 4, 2009 בשעה 2:03 pm
- in reply to: קישור מסכים
שמח שהצלחתאכן אתה צודק (ולזה התכוונתי בפיסקה הראשונה שלי – "יא" היה אמור להיות "לא"). כדי שקישור כזה יעבוד אוטומטית צריכים לדאוג שיש שם הערכים של כל המפתחות.
אפשרות אחרת היתה להביא למסך TYPE של DOCUMENTS (5) ולדאוג שלאחר הכנסת ערך לDOCNO תשים p ב-TYPE ואז זה היה מושך את הDOC לבד. יש דוגמה ב-ORDERS.F/DOCNO/POST-FIELD
שוב אני מציע שתדאג להגביל למספר פרויקט בלבד ע"י CHECK-FIELD (תשווה לDOCNO ב-ORDERS כנ"ל)
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 4, 2009 בשעה 12:07 pm
- in reply to: קישור מסכים
עניתי בפורום אפיון ופיתוח, נמשיך את הדיון שמה בבקשה.[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 4, 2009 בשעה 12:06 pm
- in reply to: הוספת שדה ממסך בן להדפסת ק.שירות
OK רק שהוא יבין שזה לא היה הסוף[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 4, 2009 בשעה 12:04 pm
- in reply to: קישור מסכים
אני לא אכנס לכל הפרטים אבל נראה לי שיש לך בעיה זו בגלל שDOCNO הוא לא ייחודי בטבלה לכן בחירת DOCNO יא קובע אוטומטית DOC. רק בשילוב TYPE עם ערך 'p' תקבל DOC.פתרון פשוט (לא בדקתי אבל נראה לי) דורש 2 דברים:
הפעלת CHECK-FIELD שיתן שגיאה עם מקלידים מספר שהוא לא נמצא בטבלת DOCUMENTS עם TYPE של p – ה-CHOOSE-FIELD נותן רק פרויקטים אבל אפשר להקליד שם הכל
הפעלת POST-FIELD שיחפש ב-DOCUMENTS את ה-DOCNO ביחד עם TYPE של 'p' ויחזיר ערך של DOC לתוך LEON_DOCT
לדעתי זה יעבוד אבל שוב לא בדקתי לראות שאין בעיה בלוגיקה שלי
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 4, 2009 בשעה 11:52 am
- in reply to: הוספת שדה ממסך בן להדפסת ק.שירות
מארק, סיימת את ההסבר? יש עוד לעשות, לא?
(שלב INPUT עם עיצוב HTML, הכנת תבנית, הכנסה לתצרות הדפסה)[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 4, 2009 בשעה 11:11 am
- in reply to: הדפסת טופס תקלה
אני חייב להוסיף משהושכחתי לבדוק לפני כן אבל בדקתי ולשמחתי לא מצאתי מצב שחייבים לבדוק עבורו במקרים כאלה.
הצעתי לשנות את המשמעות של PAR – זה היה FAULTS ושינינו אותו ל-CUSTOMERS. כעקרון אין בעיה עם זה. בתנאי שלא מתייחסים ל-PAR כ-FAULTS במקום אחר. רואים שבשלב SQLI אחד יש פרמטר PAR אבל לא עושים עם זה כלום שם לכן אין בעיה. אם היינו מוצאים משום מה התייחסות ל-PAR היינו צריכים לשכתב גם את השלב הזה בהתאם.
אבל בפעול מקרה כזה יהיה נדיר כי מה-HTMLCURSOR עד הINPUT האחרון יש לולאה ומטפלים רשומה רשומה לפי הערך ששלופים ב-HTMLCURSOR ולכן לא קורה כ"כ הרבה שמתייחסים לכל הסט.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יוני 3, 2009 בשעה 8:44 pm
- in reply to: הדפסת טופס תקלה
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
זה, לדעתי, צריך להספיק בשלב זה. נעזור להוסיף עוד על בסיס זה כשיעבוד.
בהצלחה!
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]