הוספת עמודה עם יצירת תנאי

פורומים אפיון ופיתוח פריוריטי הוספת עמודה עם יצירת תנאי

  • This topic has 5 תגובות, משתתף 1, and was last updated לפני 10 שנים by אלמוני.
  • Post
    שיר
    משתתף
    שלום ,
    אני מעוניינת ליצור עמודה חדשה (במסך בן ) – עמודה שתבצע מספור אוטומטי בעל 6 ספרות .

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

    בנוסף, אני רוצה שהמספור יחול רק על ערכים מסוימים(הנמצאים בעמודה אחרת) לדוגמא : ברגע שהוא מזהה שהמשתמש לא הזין דבר או לחלופין הזין ערך 0 בעמודה X , עמודת Y תקבל מספור , אחרת עמודת Y לא תמוספר.

    אודה לעזרה

מוצגות 5 תגובות – 1 עד 5 (מתוך 5 סה״כ)
  • Replies
    אלמוני
    אורח
    הקמת מונה אינה בעיה. אפשר למצוא דוגמא לכך בהפעלה BUF24 של מסך ORDERITEMS
    גם התנאי איננו אמור להיות בעיה. את צריכה להוסיף הפעלה מותאמת מסוג PRE-INSERT
    שיר
    משתתף
    תודה על התשובה נועם,
    לא מצאתי את ההפעלה של הקמת מונה.
    והאם ההפעלה תקפה החל מהתאריך שאני מפעילה אותה ?

    לגבי התנאי, אני רושמת את ההפעלה- PER-INSERT ואז לרשום שאילתת SQL לתנאי שאני רוצה ?

    אלמוני
    אורח
    קודם כל, אל תשתמשי בהפעלה הקיימת אלא תייצרי הפעלה חדשה עם שם כמו TEST_PRE-INSERT
    השורה הראשונה יכולה להיות כמו GOTO 99 WHERE :$$.VALID = 'Y
    (עם גרש אחרי ה-Y) שפירושו לדלג על הכל אם ערך השדה VALID במסך האב שווה ל-Y
    ואז בא הקוד שלך. המונה יתחיל לרוץ מהרגע שאת מתקינה אותו.
    מוזר שלא מצאת את ההפעלה הסטנדרטית
    שיר
    משתתף
    שוב תודה נועם,
    לגבי BUF24 מצאתי אותו.

    אתה יכול לתת לי אתר או להסביר לי בכמה מילים על ההפעלות האלו ? אני מתחיל בפיתוח ואני רוצה להשתמש בהן.
    ונכון לעכשיו אני לא מצליחה להבין מה הן עושות.

    תודה מראש

    אלמוני
    אורח
    זה לא בדיוק קוד בשביל מתחילים…. אין לי כרגע הקוד מול העיניים לכן אנסה להסביר בגדול מה קורה שם. דוגמא יותר פשוטה נמצאת בקוד שפתיחת פריט לפי תבנית.

    קודם מושכים מטבלה בשם LASTS (דהיינו, הערך האחרון של משהו) את הערך הנוכחי. אם לא קיים ערך, אז מאתחלים את המונה עם התאריך הנוכחי (אני לא מבין למה. כאשר אני כותב קוד כזה, אני מאתחל את המונה עם ערך 0).

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

    כאשר הכתיבה מצליחה, מעדכנים את טבלת LASTS עם הערך הנוכחי של המונה.

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

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

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

מוצגות 5 תגובות – 1 עד 5 (מתוך 5 סה״כ)
  • יש להתחבר למערכת על מנת להגיב.