› פורומים › אפיון ופיתוח פריוריטי › לא לאפשר פתיחת הזמנה נוספת ללקוח באותו היום
- This topic has 7 תגובות, 2 משתתפים, and was last updated לפני 5 שנים, 11 חודשים by asher.
- Post
-
- נובמבר 16, 2018 בשעה 8:49 pm
שלום לכולם,אני מעוניין לעשות פיתוח קטן .
לא לתת למשתמש לפתוח הזמנת לקוח חדשה אם ישנה כבר הזמנת לקוח פתוחה במערכת ביום הנוכחי.
1. האם יש משהו בסטנדרט ?
2. יש לי פיתוח בסגנון, האם יעזור?
GOTO 1 WHERE :$.BOOKNUM = '';
GOTO 1 WHERE :$.SUP = 0;
SELECT DOCNO INTO :PAR1 FROM DOCUMENTS
WHERE TYPE = :$.TYPE AND BOOKNUM = :$.BOOKNUM
AND CUST = :$.SUP AND DOC <> :$.DOC
AND YEAR(CURDATE) = YEAR(:$.CURDATE)
AND CANCEL <> 'Y';
WRNMSG 100 WHERE :RETVAL > 0;
LABEL 1;
- Replies
-
- נובמבר 17, 2018 בשעה 11:08 am
שמתי את זה ב chek-field של ordnameSELECT ORDNAME INTO :PAR1 FROM ORDERS, CUSTOMERS
WHERE CUSTOMERS.CUST = ORDERS.CUST
AND CUSTNAME = :$.CUSTNAME
AND DAY(ORDERS.CURDATE) = DAY(:$.CURDATE);
WRNMSG 103 WHERE :RETVAL >0;
LABEL 1004 ;כמה אני רחוק ?
- נובמבר 18, 2018 בשעה 8:44 am
פחות או יותר נכון, אם כי אני לא אוהב את השימוש בפונקציית DAY על CURDATE: האם הכוונה היתה להימנע משעה ודקה? ORDERS.CURDATE מכיל רק את התאריך, ללא שעה, ואף DAY מחזיר את מספר היום בתוך החודש – זה אומר שלקוח לא יכול להזמין באותו יום בחודש אחר.אני לא אוהב את השימוש שמות שדה ללא טבלה כאשר יש יותר מטבלה אחת בביטוי: זה חסכון מדומה. כמוכן אפשר לכתוב את הקוד בצורה קצת יותר מתומצתת.
ERRMSG 104 FROM ORDERS
WHERE CUST = :$.CUST
AND CURDATE = :$.CURDATE;
- דצמבר 1, 2018 בשעה 11:14 pm
נועם תודה וסליחה על ההטרדה, זה לא עושה את העבודה ואני לא מבין מה אני עושה לא נכון ….ניסיתי גם את זה
SELECT 'X' FROM ORDERS
WHERE ORDERS.CUST = :$.CUST
AND CURDATE = SQL.DATE8;
ERRMSG 504 WHERE :RETVAL > 0 ;- דצמבר 2, 2018 בשעה 2:37 am
על פניו נראה תקין.איפה אתה שם את הקוד הזה?
אתה מתכוון שאתה מצליח לפתוח הזמנה שניה ושלישית וכו' לאותו לקוח כאשר התאריך בהזמנות אלה הוא היום?
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- דצמבר 2, 2018 בשעה 12:46 pm
כן, צודק.אני רוצה למנוע פתיחת הזמנה נוספת לאותו לקוח ביום נתון.
ואני שם את זה ב check-field על שדה ORDNAME בפירוט בהזמנת לקוח .
- דצמבר 2, 2018 בשעה 4:01 pm
בפירוט ההזמנה? אניח שהתכוונת לכותרת.בכל מקרה, CHECK-FIELD רץ על שדה שאתה משנה באופן ידני כך שב-ORDNAME שהוא לקריאה בלבד אין טעם. כמובן לשים על CURDATE עצמו בעייתי כי לא חייבים לעדכן את השדה ההוא באופן ידני.
זו דוגמה קלאסית של מצב בו הבדיקה צריכה לבדוק את סה"כ מה שנעשה במסך ולכן יש לשים אותה ב-PRE-INSERT ו-PRE-UPDATE.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
- יש להתחבר למערכת על מנת להגיב.