דו"ח הזמנות לקוח יומיות

פורומים אפיון ופיתוח פריוריטי דו"ח הזמנות לקוח יומיות

  • Post
    אורן קפלן
    משתתף
    היי לכולם,
    שוב עבר מעט זמן מאז ההודעה האחרונה שלי כאן, אבל אני משתדל לעקוב.

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

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

    איפה אני טועה?
    אני מקבל את השגיאה המצורפת.

    הקובץ המצורף הוא מה שיוצא לי.

    אורן

מוצגות 15 תגובות – 1 עד 15 (מתוך 17 סה״כ)
  • Replies
    Lior
    מנהל בפורום
    התנאי הזה אינו תקין

    (ATOI(FAMILY.FAMILYNAME)=240 ? (PART.PARTNAME LIKE '24_______50____'
    ? 600 : 0)

    קיים סימן ה"אחרת" – : לתנאי הפנימי אך לא לחיצוני

    אורן קפלן
    משתתף
    וואי, איך לא שמתי לב?

    תודה ליאור!

    עכשיו זה עובד.

    ידעתי שחסר לי החלק השני של התנאי בשאר הברירות – עובדה שהוספתי אותם – אבל מסתבר שפספסתי תנאי.

    תודה!

    אורן

    אורן קפלן
    משתתף
    היי שוב,

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

    הקובץ זיפ המצורף מכיל קובץ וורד וקובץ אקסל.
    התמונה הראשונה בוורד היא איך שהדו"ח שלי נראה כרגע.
    התמונה השנייה היא איך אני מעצב אותו שייראה באקסל, ואיך שהייתי רוצה שייראה (פחות או יותר) כשהוא יוצא מהאקסל.

    מצורף ישר אחרי התמונות דאמפ של הפרוצדורה ואז של הדו"ח כפי שהם כרגע.
    והקובץ אקסל זה מה שמופיע במסך 'עמודות הדו"ח' במחולל הדו"חות.

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

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

    מקווה שלא סיבכתי יותר מדי, אבל עדיף מראה עיניים מאשר עוד כמה פסקאות לתאור.

    יום טוב!

    אורן [file name=tmp.zip size=107055]https://www.priority-forums.com/he/images/fbfiles/files/tmp.zip[/file]

    Lior
    מנהל בפורום
    הי אורן
    שים S-ים על המשקל והמשטחים. שיציגו סכומים מקובצים לפי המבנה שבתמונה השניה
    אורן קפלן
    משתתף
    היי ליאור,

    ניסיתי את מה שהצעת – זה נותן לי סכום בתחתית הדו"ח בלי קיבוץ וסיכום לקבוצה כמו שאני צריך.

    אם למשל יש לי כמה שורות הזמנה מאותה משפחה אני רוצה לראות בדו"ח רק שורה אחת.

    תודה

    אורן

    Lior
    מנהל בפורום
    אתה לא מסמן בעמודה הנכונה
    יש עמודת סיכום שנקראת "חישוב עמודה". אותה אתה צריך לסמן ב S.

    בהצלחה

    אורן קפלן
    משתתף
    שוב המון תודה!

    ידעתי שראיתי הסבר על זה איפשהו אבל איכשהו פספסתי את זה כל הזמן.

    יוצא עכשיו ממש פיקס.

    תודה!

    אורן קפלן
    משתתף
    היי שוב,

    דבר אחרון.

    עשיתי כמה נסיונות ואני עדיין לא מבין מה אני מפספס.

    הכל יצא נכון (ובגלל זה חשבתי שסיימתי) חוץ מהסיכום של הסוכן האחרון בדו"ח.

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

    הפירוט של העמודות במחולל הדו"חות מצורף.

    תודה

    אורן

    Lior
    מנהל בפורום
    תנסה לשים את הסוכן בקיבוץ 2
    אורן קפלן
    משתתף
    אוקיי

    זה עבד, ועכשיו הבוס ככ מרוצה שהוא רוצה עוד דבר אחד אחרון, שמשגע לי את הצורה:

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

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

    דו'ח repprep.q', line 10: FAMILY.FAMILYNAME Illegal reference in the GROUP BY clause :SPIR_SALESAGNTCSTFML'.

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

    רוחב העמודה – 6, טיפוס – RCHAR
    מצורף הקוד שאני מנסה להוסיף:

    (FAMILY.FAMILYNAME LIKE '2__' ?
    (FAMILY.FAMILYNAME NOT LIKE '250' ? '`
    סטרץ
    ' :
    'לוחות'
    ) : (FAMILY.FAMILYNAME LIKE '4__' ?
    (FAMILY.FAMILYNAME LIKE '41_' ?
    'סלסלות'
    : (FAMILY.FAMILYNAME LIKE '42_' ?
    'מצעים'
    :
    'יריעות'
    )) : (FAMILY.FAMILYNAME LIKE '6__' ?
    'לוחות'
    : (FAMILY.FAMILYNAME LIKE '5__' ?
    (FAMILY.FAMILYNAME NOT LIKE '510' ?
    'מגשים'
    :
    'גלילים'
    ) : (FAMILY.FAMILYNAME LIKE '3__' ?
    (FAMILY.FAMILYNAME NOT LIKE '330' ?
    'מגשים'
    :
    'סרטים'
    ) :
    (FAMILY.FAMILYNAME LIKE '710' ?
    'לוחות'
    : ''))))))

    אורן

    Lior
    מנהל בפורום
    מה רשום בביטויים של הסכומים ? תעתיק בבקשה להודעה והעלה
    אורן קפלן
    משתתף
    הביטוי לעמודה משקל (שהיא גם עמודה מחושבת 45):
    PARTPARAM.WEIGHT * ORDERITEMS.TQUANT / 100.0

    הביטוי לעמודה משטחים:
    ORDERITEMS.TQUANT / 100 * (#70 <= 0 ? 0 : ( 1.0 / #70))

    כאשר העמודה המחושבת 70 היא:
    (FAMILY.FAMILYNAME LIKE '2__' ?
    (FAMILY.FAMILYNAME LIKE '210' ? 456 :
    (FAMILY.FAMILYNAME LIKE '220' ?
    (PART.PARTNAME LIKE '22_______16____' ? 736 :
    (PART.PARTNAME LIKE '22_______08____' ? 736 :
    (PART.PARTNAME LIKE '22_______20____' ? 800 :
    (PART.PARTNAME LIKE '22_______196___' ? 784 : -1)))) :
    (FAMILY.FAMILYNAME LIKE '230' ? 2484 :
    (FAMILY.FAMILYNAME LIKE '240' ?
    (PART.PARTNAME LIKE '24_______50____' ? 600 :
    (PART.PARTNAME LIKE '24_______60____' ? 600 : -1)) : -1)))) :
    (FAMILY.FAMILYNAME LIKE '4__' ?
    (FAMILY.FAMILYNAME LIKE '41_' ?
    (FAMILY.FAMILYNAME LIKE '410' ? 14400 :
    (FAMILY.FAMILYNAME LIKE '411' ? 12000 :
    (FAMILY.FAMILYNAME LIKE '412' ? 17280 :
    (FAMILY.FAMILYNAME LIKE '413' ?
    (PART.PARTNAME LIKE '413____1125%' ? 18000 :
    (PART.PARTNAME LIKE '413____1200%' ? 19200 :
    (PART.PARTNAME LIKE '413____1320%' ? 21120 : -1))) : -1)))) :
    (ORDERITEMS.TQUANT * 5 / #45)) :
    (FAMILY.FAMILYNAME LIKE '6__' ? (ORDERITEMS.TQUANT * 5 / #45) :
    (FAMILY.FAMILYNAME LIKE '530' ? 23000 :
    (FAMILY.FAMILYNAME LIKE '520' ? 12000 :
    -1)))))

    העמודה הנוספת שאני מנסה להוסיף:
    (FAMILY.FAMILYNAME LIKE '2__' ?
    (FAMILY.FAMILYNAME NOT LIKE '250' ? '`
    סטרץ
    ' :
    'לוחות'
    ) : (FAMILY.FAMILYNAME LIKE '4__' ?
    (FAMILY.FAMILYNAME LIKE '41_' ?
    'סלסלות'
    : (FAMILY.FAMILYNAME LIKE '42_' ?
    'מצעים'
    :
    'יריעות'
    )) : (FAMILY.FAMILYNAME LIKE '6__' ?
    'לוחות'
    : (FAMILY.FAMILYNAME LIKE '5__' ?
    (FAMILY.FAMILYNAME NOT LIKE '510' ?
    'מגשים'
    :
    'גלילים'
    ) : (FAMILY.FAMILYNAME LIKE '3__' ?
    (FAMILY.FAMILYNAME NOT LIKE '330' ?
    'מגשים'
    :
    'סרטים'
    ) :
    (FAMILY.FAMILYNAME LIKE '710' ?
    'לוחות'
    : ''))))))

    הדו"ח בלי התוספת עמודה:


    /*
    *
    ‎ * Report SPIR_SALESAGNTCSTFML : ‎ומשפחה‎ ‎לקוח‎ ,‎סוכן‎ ‎לפי‎ ‎הזמנות
    *
    */

    /* הזמנות לפי סוכן, לקוח ומשפחה */
    ‎ SELECT ORDERS.CURDATE AS '‎תאריך‎',
    ‎ AGENTS.AGENTNAME AS '‎סוכן‎ ‎שם‎',
    ‎ CUSTOMERS.CUSTDES AS '‎לקוח‎ ‎שם‎',
    ‎ ORDERS.ORDNAME AS '‎הזמנה‎',
    ‎ FAMILY.FAMILYDES AS '‎משפחה‎ ‎תאור‎',
    ‎ SUM((0.0 + (PARTPARAM.WEIGHT * ORDERITEMS.TQUANT / 100.0))) AS '‎משקל‎',
    SUM((0.0 + (ORDERITEMS.TQUANT / 100 * (((FAMILY.FAMILYNAME LIKE '2__'
    ? (FAMILY.FAMILYNAME LIKE '210' ? 456 : (FAMILY.FAMILYNAME LIKE '220' ?
    (PART.PARTNAME LIKE '22_______16____' ? 736 : (PART.PARTNAME LIKE '22_______08____'
    ? 736 : (PART.PARTNAME LIKE '22_______20____' ? 800 : (PART.PARTNAME LIKE
    '22_______196___' ? 784 : -1)))) : (FAMILY.FAMILYNAME LIKE '230' ? 2484
    : (FAMILY.FAMILYNAME LIKE '240' ? (PART.PARTNAME LIKE '24_______50____'
    ? 600 : (PART.PARTNAME LIKE '24_______60____' ? 600 : -1)) : -1)))) : (FAMILY.FAMILYNAME
    LIKE '4__' ? (FAMILY.FAMILYNAME LIKE '41_' ? (FAMILY.FAMILYNAME LIKE '410'
    ? 14400 : (FAMILY.FAMILYNAME LIKE '411' ? 12000 : (FAMILY.FAMILYNAME LIKE
    '412' ? 17280 : (FAMILY.FAMILYNAME LIKE '413' ? (PART.PARTNAME LIKE '413____1125%'
    ? 18000 : (PART.PARTNAME LIKE '413____1200%' ? 19200 : (PART.PARTNAME LIKE
    '413____1320%' ? 21120 : -1))) : -1)))) : (ORDERITEMS.TQUANT * 5 / (PARTPARAM.WEIGHT
    * ORDERITEMS.TQUANT / 100.0))) : (FAMILY.FAMILYNAME LIKE '6__' ? (ORDERITEMS.TQUANT
    * 5 / (PARTPARAM.WEIGHT * ORDERITEMS.TQUANT / 100.0)) : (FAMILY.FAMILYNAME
    LIKE '530' ? 23000 : (FAMILY.FAMILYNAME LIKE '520' ? 12000 : -1)))))) = 210 )
    AND ( ATOI( FAMILY.FAMILYNAME ) < 810 ))
    AND (DUMMY.DUMMY =1
    ‎AND ORDSTATUS.ORDSTATUSDES NOT LIKE '‎טיוטא‎'
    ‎AND ORDSTATUS.ORDSTATUSDES NOT LIKE '%‎מבוטל‎')
    AND (PART.FAMILY = FAMILY.FAMILY)
    AND (ORDERITEMS.PART = PART.PART)
    AND (ORDERS.ORDSTATUS = ORDSTATUS.ORDSTATUS)
    AND (ORDERS.AGENT = AGENTS.AGENT)
    AND (ORDERS.CUST = CUSTOMERS.CUST)
    AND (ORDERS.ORD = ORDERITEMS.ORD)
    AND (ORDERS.CURDATE BETWEEN :FDT
    AND :TDT)
    AND ( 1=1 )
    GROUP BY 1, 2, 3, 4, 5
    ORDER BY 1 ASC, 2 ASC, 3 ASC, 5 ASC ;

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

    העיקר שהדוח יתייחס אליהן כטבלאות שונות

    אורן קפלן
    משתתף
    אוקיי, שני דברים:
    אחד: FAMILY1.FAMILYNAME Unresolved identifier זו השגיאה שהוא נותן בהקשר להצעה של ליאור.
    השאלה היא איך להתייחס למזהה – עמודה מחושבת עם מזהה או משהו?

    שתיים: המנכ"ל שלי ביקש שתהיה בדו"ח התייחסות לביטולי הזמנות (ע"י לקוח) כדי שיוכל לעקוב אחרי כמות הזמנות אמיתית. כלומר – הזמנה בפלוס וביטול במינוס.
    אני קראתי בזמנו את מה שליאור ואלון כתבו כאן וישר חשבתי על זה בתור פתרון:
    במקום לעקוב אחרי שורות הזמנה אני יכול לעקוב אחרי שורות הזמנה שהשורה האחרונה בלוג הסטטוסים שלהם היא הסטטוס והתאריך במקום אלו המקושרים להזמנה ישירות.

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

    תודה

    אורן

    אורן קפלן
    משתתף
    תשכח מאחד – הכנסתי את המזהה לעמודה PART ולא לעמודה FAMILY…
מוצגות 15 תגובות – 1 עד 15 (מתוך 17 סה״כ)
  • יש להתחבר למערכת על מנת להגיב.