פונקציית ISNUMERIC

פורומים אפיון ופיתוח פריוריטי פונקציית ISNUMERIC

  • Post
    מוריס
    משתתף
    בוקר טוב,
    באחד השדות באתר הוובי שלנו (marketgate) אני רוצה שלקוח יוכל להזין בשדה רק מספרים ללא תווים נוספים,
    במחולל דוח"ות באותו שדה הגדרתי את השאילתה הבאה:

    (ISNUMERIC (#60=1 ? #60 : ' '))

    #60 הינה מס' העמודה בדו"ח, העמודה מסוג CHAR 6

    מה לא נכון השאילתה ואיך אפשר לכתוב את זה נכון?
    תודה מראש

מוצגות 10 תגובות – 1 עד 10 (מתוך 10 סה״כ)
  • Replies
    אלמוני
    אורח
    קצת קשה לדעת בגלל העברית, אבל נראה שאחד הסוגריים במקום הלא נכון. אני משער שהביטוי צריך להיות

    ISNUMERIC (#60 ) = 1 ? #60 : ''

    תלוי במורכבות הביטוי #60, אבל אני חושב שעדיף לרשום את תוכן הביטוי (ז"א שם השדה) כפרמטר ל-ISNUMERIC ולא מספר שדה בתוך דו"ח.
    מוריס
    משתתף
    שמתי לב שהכל יתבלבל 🙁
    אנסה שוב ,
    ISNUMERIC (#60) = 1 #60 : ' ' )
    זה בדיוק כמו שכתבת רק בלי הסוגר בסוף,
    מתקבלת שגיאה על רקורסיה בדו"ח, אותו דבר גם עם שמות השדות ולא הפנייה למס' העמודה עצמה,
    תודה
    אלמוני
    אורח
    הקמתי דו"ח מאד פשוט עם שני שדות: ORDERS.ORDNAME ו-ORDERS.DETAILS, יחד עם ביטוי כמו שלך (אולי נצליח לראות בתמונה המצורפת).

    לא היתה תקלה.

    מוריס
    משתתף
    כן גם אני עכשיו ניסיתי את אותו ביטוי על דו"ח אחר , עובר הכנה..
    הזוי

    אני מצרף את הפלט debug שיצא לאחר הכנה,
    אגב שיניתי את מס' העמודה לשם העמודה,
    אתה יכול להבין מזה משהו?

    (ISNUMERIC (MORI_WWWQUESTDOC.WASTDES = 1 ? MORI_WWWQUESTDOC.WASTDES : '')) AND ( 1=1 ) ;

    תודה מראש

    yitzchok
    משתתף
    IL
    אם הכוונה היא לבדוק אם השדה נומרי ולהחזיר אותו אם כן ולהחזיר כלום אם לא אז יש לסגור את הסוגריים לפני סימן השווה ולהוריד אחד בהמשך. אבל אז ה and וכו' לא מתאים.

    אני מזהיר ש isnumeric לא בודקת האם כל התווים הם ספרות. גם מינוס ונקודה תקינים במקומות מתאימים. כל מחרוזת שמשקפת ערך מספרי כולל 64.996- ייחשב נומרי ע"י פונקציה זאת. בדיקה עבור ספרות בלבד אפשרי אבל צריכים לנסח בדיוק לפי התוכן הצפוי.

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    במחשבה שנייה, *אם* זה כל מה מותר בפונקציה מעבר לספרות אפשר לבדוק שבטקסט עובר את הפונקציה ולא כולל – או . ע"י שתי השווואות בעזרת not like
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    סליחה. ראיתי עכשיו ש- isnumeric בודק שהכל ספרות. אולי אסור לי לסמוך על זכרוני.
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    מוריס
    משתתף
    חחח ניסיתי להבין מה כתבת והלכתי לאיבוד ;-).
    אבל הכיוון שלך טוב אני עדיין מנסה, תודה בכל אופן
    אלמוני
    אורח
    בחזרה לביטוי שלך, הוא צריך להיות
    פתח סוגריים
    ISNUMERIC
    פתח סוגרים
    מחרוזת
    סגור סוגרים
    שווה 1 ?
    תוצאה אחת
    תוצאה שניה
    סגור סוגריים

    הביטוי שהגצת מה-DUMP הכניס סוגריים במקום הלא נכון

    yitzchok
    משתתף
    IL
    אני עכשיו קורה שוב את השאלה המקורית כי שאלתי לעצמי – מה הוא רצה לעשות כאן? בגלל הרושם שקיבלתי שהביטוי הזה הוא בתנאים של דו"ח.

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

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

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
מוצגות 10 תגובות – 1 עד 10 (מתוך 10 סה״כ)
  • יש להתחבר למערכת על מנת להגיב.