› פורומים › אפיון ופיתוח פריוריטי › העלאת נתון בדו"ח
- This topic has 13 תגובות, 3 משתתפים, and was last updated לפני 7 שנים, 2 חודשים by
PriorityDev.
- Post
-
- יולי 18, 2018 בשעה 2:37 pm
שלום רב !
אני מנסה להביא שער המרה של המטבע המקומי לתאריך מסוים לדו"ח.
הדו"ח הינו במטבע מקומי N לצורך העינין ובדו"ח שתי שורות :
INVOICEITEMS.CURRENCY = CURRENCIES.CURRENCY
CURRENCIES.CURRENCY = CURREGITEMS.CURRENCY
(ישנו גם שדה נוסף המגדיר את התאריך המדוייק אבל הוא לא רלוונטי לצורך הבעיה)
הבעיה הינה שהחיבור נעשה דרך המטבע המקומי N ולכן שער ההמרה שאני מקבל הוא תמיד 1 , אבל אני מבקש את שער ההמרה של הדולר ל N ולא של N ל N שהוא תמיד אחד.
איך אפשר לפתור את הבעיה הזו ?
תודה
- Replies
-
- יולי 18, 2018 בשעה 3:18 pm
כל החשבוניות הן במטבע הבסיס ואתה רוצה להמיר את כולם לדולר?- יולי 18, 2018 בשעה 5:46 pm
כן , מה מוזר בזה ?
היות וזו חברה הפועלת באפריקה והבעלים בארה"ב , זו דרישה סבירה.- יולי 18, 2018 בשעה 5:56 pm
כתבתי שזה מוזר?
רק רוצה להבין מה אתה צריך בדיוק.- יולי 18, 2018 בשעה 5:59 pm
אתה צריך להביא לדו"ח עוד CURRENCIES ועוד CURREGITEMS, כאשר אתה מתנה בשניהם CURRENCY = -2.
זהו בעצם מפתח של מטבע דולר.
ואז צריך להכפיל את המחיר ב-EXCHANGE של טבלאות אלה (אם לפי תאריך היום – CURRENCY ואם לפי תאריך אחר – CURREGITEMS)- יולי 18, 2018 בשעה 7:28 pm
תודה רבה , אבל זה לא עובד היות ויוצא דו"ח ריק , אני מניח שזה מפני שאין אף רשומה העונה על התנאי CURRENCY=-2
מכיוון שבכל הרשומות CURRENCY=-1
שזהו המטבע המקומי.- יולי 18, 2018 בשעה 7:52 pm
צריך לתת לשתי הטבלאות מזהה אחר, לא 0 – גם בחיתוך וגם בשדה המוצג.
כלומר, אתה צריך לחתוך לאותן טבלאות פעמיים, עם מזהים שונים.- יולי 19, 2018 בשעה 12:01 pm
- יולי 19, 2018 בשעה 12:27 pm
עקרונית, יש ב-CURREGITEMS את כל התאריכים. אם ביום מסוים לא התעדכן שער, הוא מתעדכן ע"י שער של יום שלפניו.
ובאמת, בהרבה דו"חות סטנדרטיים החיתוך לא מותנה. למשל, WWWPURDEMANDS_DET.תריץ למשל, את השאילתא הבאה:
SELECT DISTINCT CURDATE, EXCHANGE
FROM CURREGITEMS
WHERE CURDATE >= 01/07/18
AND CURRENCY = -2
FORMAT;
אתה תראה שיש רשומות ל-14/07/18 ול-15/07/18, למרות שזה שבת-ראשון שבהם השער לא התעדכן, ומופיע שם שער של 13/07/18.מאידך, צריך לבדוק אם החיתוך המותנה לא יוצר מכפלת שורות.
- יולי 19, 2018 בשעה 11:46 pm
לתאריכים מאז עדכון השער האחרון לא תהיה רשומה מתאימה. לדעתי סימן השאלה בחיתוך חשוב.[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יולי 20, 2018 בשעה 1:32 am
אני מודה לכל העונים , אבל הבעיה לא נפתרה משום שהמכשלה העירית הינה שבדו"ח המקורי אין בכלל ייצוג ל $ , יש CURRENCY=-1 שזה המטבע המקומי ולכן כל חיתוך עם הטבלה CURREGITEMS הינו עם המטבע המקומי ושער ההמרה שלו לעצמו הינו 1 .ולכן אם אציג בצורה כללית יותר , אז הבעיה היא :
איך אתה חותך בין טבלה A לטבלה B כאשר ערך המפתח המשותף הוא A.currency=B.currency
ב A
currency=-1 בכל הרשומות.ב B יש ערכי currency רבים בינהם 1- ו 2- , אבל החיתוך מבוצע על 1- ואני רוצה את הערך (שער ההמרה) כאשר ב B
currency=-2אני מקווה שהסברתי עצמי טוב ומודה לכל המשיבים.
- יולי 20, 2018 בשעה 6:09 pm
אתה צריך להביא שני מופעים של כל טבלה.בשביל זה יש את העמודה מזהה טבלה (יש כזה גם לעמודה של טבלת חיתוך). לא רק רושמים של ? כפי שתיארנו אלא אפשר גם מספר שמבדיל בין מופעים של הטבלה, וכך אפשר להצביע על שורות שונות מאותה טבלה באותו זמן.
בהנחה שאתה מתחיל מ-INVOICEITEMS.CURRENCY ז"א המחיר בשורת תעודה כספית הוא בכל מטבע אפשרי:
אתה צריך קודם כל להמיר למטבע הראשי (1-) (כל שערי המרה הם מולו) ואז עוד המרה למטבע יעד (אם למטבע משני מה שיהיה אז 2-, אחרת צריכים לאתר לאחד המזהים הגלוים כמו קוד מטבע)אז ככה, וכאן אכתוב לא בסינטקס תקין אלא אני אשלב סימן שאלה איפה שצריך בכינוי הטבלה, וגם נניח שמדובר בדולר כמטבע משני (2-)
INVOICEITEMS.CURRENCY = CURRENCIES.CURRENCY
CURRENCIES.CURRENCY = CURREGITEMS?.CURRENCY
CURREGITEMS?.CURDATE = INVOICES.IVDATECURRENCIES2.CURRENCY = -2
CURRENCIES2.CURRENCY = CURREGITEMS2?.CURRENCY
CURREGITEMS2?.CURDATE = INVOICES.IVDATE
ואז אתה צריך להמיר לדולר דרך ש"ח (אם INVOICEITEMS.CURRENCY הוא כבר 1- אז לא תקבל שורה מ-CURREGITEMS ותקבל שורה של ש"ח מ-CURRENCIES ושם השער הוא בדיוק 1.0 והכל בסדר, המרת מש"ח לש"ח)
INVOICEITEMS.QPRICE * (CURREGITEMS.EXCHANGE 0 ? CURREGITEMS.EXCHANGE : CURRENCIES.EXCHANGE) / (CURREGITEMS2.EXCHANGE 0 ? CURREGITEMS2.EXCHANGE : CURRENCIES2.EXCHANGE)
תבדוק את הנ"ל – אתה צריך להכפיל בשער אחד ולחלק בשער השני. איזה זה איזה זה פשוט פרט שאני לא מצליח לזכור בשלוף ולא הלכתי לבדוקמקווה שכל זה עונה על השאלה ובע"ה תהיה תשובה מוכנה לאחרים בעתיד
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יולי 20, 2018 בשעה 6:13 pm
דווקא מיכאל כבר הזכיר את הקטע של המופעים/מזהים ואם זה היה הקושי, כנראה לא הבנת למה הוא התכווןאתה צריך להביא לדו"ח עוד CURRENCIES ועוד CURREGITEMS, כאשר אתה מתנה בשניהם CURRENCY = -2.
צריך לתת לשתי הטבלאות מזהה אחר, לא 0 – גם בחיתוך וגם בשדה המוצג.
כלומר, אתה צריך לחתוך לאותן טבלאות פעמיים, עם מזהים שונים.[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יולי 20, 2018 בשעה 6:33 pm
אני יוצא מתוך הנחה שהשואל יודע ומכיר שימוש בסיסי במחולל דו"חות.
אם לא – כל ההסברים שלנו לא יעזרו, הוא צריך להזמין מישהו מנוסה שיעשה לו את זה או קודם לעשות קורס מחולל דו"חות.
- יש להתחבר למערכת על מנת להגיב.