› פורומים › אפיון ופיתוח פריוריטי › שגיאה בדוח המכיל עמודה חישובית
- This topic has 12 תגובות, 3 משתתפים, and was last updated לפני 4 שנים, חודש 1 by oshrat_bennoon.
- Post
-
- אוקטובר 14, 2020 בשעה 12:00 pm
הייבניתי דוח שמציג סכומים של תעודות משלוח ללקוח (טיפוס D) + תעודות החזרה מלקוח (טיפוס N).
על כן, הכנסתי תנאי בשדה DOCUMENTS.TYPE באופן הבא: ('IN ('D' , 'N
השדה (הממוקם בדוח במיקום 40) שמייצג את הסכום הוא DOCUMENT.TOTPRICE (מסוג טיפוס REAL)
יצרתי עמודה חישובית חדשה עם הנוסחה הבאה: (DOCUMENTS.TYPE = 'N' ? ( #40 * (-1) : #40)
העמודה החישובית הזו גם היא מסוג טיפוס REAL.
לאחר מכן, הרצתי את הדוח וקיבלתי את השגיאה הבאה:
דו'ח repprep.q', line 8: parse error at or near symbol : :ZARI_DELIVERS'.
Query can be found in file : C:\priority\tmp/prep.err
מה עשיתי לא בסדר?
תודה למגיבים!
- Replies
-
- אוקטובר 14, 2020 בשעה 4:23 pm
עמודה 40 זאת ביטוי או עמודה+טבלה למעלה?[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוקטובר 15, 2020 בשעה 6:45 am
עמודה 40 היא עמודה רגילה, כלומר לא עמודה מחושבת.היא מכילה את השדה TOTPRICE מטבלת DOCUMENTS והטיפוס שלו הוא REAL
- אוקטובר 15, 2020 בשעה 8:28 am
זהו. במקרה כזה לא ניתן להשתמש ב- #40חייבים לכתוב DOCUMENTS.TOTPRICE
או להפוך את 40 להיות מחושבת ע"י כתיבת הנ"ל כביטוי.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוקטובר 15, 2020 בשעה 8:36 am
תיקנתי את הנוסחה והיא כתובה עכשיו כך:
(DOCUMENTS.TYPE = 'N' ? (DOCUMENTS.TOTPRICE * (-1) : DOCUMENTS.TOTPRICE)
עכשיו מקבלת שגיאה אחרת:דו'ח line 8: parse error at or near symbol : :ZARI_DELIVERS ,".
Query can be found in file : C:\priority\tmp/prep.err
- התגובה הזו עודכנה לפני לפני 4 שנים, חודש 1 ע"י oshrat_bennoon.
- אוקטובר 15, 2020 בשעה 9:19 am
לפני שאני מתחיל, יש סגר מיותר בסוף המשפט – יש שני סגרים שמאליים ושלושה ימנייםהייתי מפשט קצת את הביטוי – לוגית זה יותר נכון וגם יותר קל להקליד!
(DOCUMENTS.TOTPRICE * (DOCUMENTS.TYPE = 'N' ? -1.0 : 1.0
- אוקטובר 15, 2020 בשעה 9:42 am
מחקתי לגמרי את הביטוי שרשמתי, והחלפתי אותו במה שהצעת:(DOCUMENTS.TOTPRICE * (DOCUMENTS.TYPE = ‘N’ ? -1.0 : 1.0
שוב קיבלתי הודעת שגיאה:
דו'ח line 8: parse error at or near symbol AS :ZARI_DELIVERS ,".
Query can be found in file : C:\priority\tmp/prep.err
- אוקטובר 15, 2020 בשעה 10:31 am
נעם צודק והבעיה של הסוגריים כבר היתה מההתחלה רק הפורום משבש את הסדר וזה לא בלטאני די בטוח בכל זאת שלא היה ניתן לכתוב #40 בתנאים אלה, אבל הפתרון של נעם הכי ברור כי על ביטוי כזה פשוט למה להסתיר ע"י הפניה לעמודה אחרת
אני רואה שכבר יש עוד בעיה
אנחנו לא רואים כאן את הכל אז קשה לענות
אבל בסופו של דבר כתוב להסתכל ב-prep.err אז תעשי את זה. עברי על השאילתא ותראי שם מה הבעיה. מקסימום תעלי כאן כנספח אם אפשר (שלא ישתבש) ונראה
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוקטובר 15, 2020 בשעה 10:54 am
לא יופיע משהו שמוסיף להבנה ב-PREP.ERRהאם אפשר להסיר את שדה הביטוי לגמרי (או לרשום שם משהו פשוט) ולהטעין את הדו"ח ב-WINDBI?
אגב, טעות שלעיתים קורה לי: אני רושם את הביטוי נכון אבל תחת שדה שיש לו הגדרה. כתוצאה מכך, השדה שהיה אמור להכיל את הביטוי נותר ריק והודעת השגיאה שציינת דומה (אם לא זהה) למה שמקבלים כאשר יש שורה ריקה בדו"ח
- אוקטובר 15, 2020 בשעה 11:04 am
נועם סליחה אני חולק.Prep.err יכול לעזור. לפעמים לא עוזר, ולפעמים מבינים את הבעיה מתוך מה שלא שם. אבל לפעמים הבעיה גם ברורה. לא נכון לשלול שיוסיף הבנה.
במיוחד כאן כאשר בשגיאה מוזכרת ביטוי שלא מוכר לנו בינתיים.
אבל אני מסכים לגבי מחיקת העמודה, לפי זה נדע אם השגיאה קשורה לעמודה הזאת או לא.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוקטובר 15, 2020 בשעה 11:51 am
הסתרתי כעת את העמודה המחושבת, ולא היו שגיאות והדוח רץ בהצלחה.כלומר, השגיאה בהכרח קשורה לעמודה הזו.
לגבי קובץ Prep.err, הוצאתי ממנו את הטקסט הבא:
/* דוח תעודות משלוח והחזרות-סכומים*/
SELECT DOCUMENTS.CURDATE AS ,'תאריך'
DOCUMENTS.DOCNO AS ,'תעודה'
CUSTOMERS.CUSTNAME AS ,'מס.לקוח'
CUSTOMERS.CUSTDES AS ,'שם לקוח'
DOCUMENTS.TOTPRICE AS ,'מחיר כולל מע"מ'
(0.0 + ((DOCUMENTS.TOTPRICE * (DOCUMENTS.TYPE = N ? -1.0 : 1.0)) AS 'סה"כ (₪)'
FROM CUSTOMERS , DOCUMENTS
WHERE (DOCUMENTS.CUST = CUSTOMERS.CUST)
AND (DOCUMENTS.TYPE IN ('D' , 'N'))
AND ( 1=1 )
;
- אוקטובר 15, 2020 בשעה 1:13 pm
עדיין יותר מדי סוגריםצרי להיות אחד לפני DOCUMENTS.TOTPRICE
אחד לפני DOCUMENTS.TYPE
שניים אחרי 1.0
אין צורך לחבר 0.0 – מעבר לעובדה ש-TOTPRICE בסוג REAL, מכפילים אותו מספרים REAL
- אוקטובר 15, 2020 בשעה 2:45 pm
הצליח 🙂תודה רבה לכל המגיבים!
עזרתם המון
- יש להתחבר למערכת על מנת להגיב.