Forum Replies Created
- Replies
-
- ספטמבר 21, 2010 בשעה 10:08 am
- in reply to: שליחת פרוצדורה לדוח דרך מייל
ה"קלט" בשלב SQLI (כי הרי אסור שיהיה קלט מהמשתמש):
SELECT ENDOFYEAR(ENDOFYEAR(SQL.DATE) + 24:00)
INTO :$.TDT FROM DUMMY ;
SELECT BEGINOFYEAR(BEGINOFYEAR(SQL.DATE) - 24:00)
INTO :$.FDT FROM DUMMY
והדו"ח הוא:
SELECT ORDERS.ORDNAME AS 'הזמנה',
CUSTOMERS.CUSTDES AS 'לקוח שם',
ORDERS.CURDATE AS 'פתיחה תאריך',
ORDSTATUS.ORDSTATUSDES AS 'הזמנה סטטוס'
FROM ORDSTATUS , CUSTOMERS , ORDERS
WHERE (ORDERS.ORDSTATUS = ORDSTATUS.ORDSTATUS)
AND (ORDERS.CURDATE BETWEEN :FDT
AND :TDT)
AND (ORDERS.CUST = CUSTOMERS.CUST)
AND (ORDERS.CLOSED 'C')
AND (ORDSTATUS.ORDSTATUSDES ='טיוטא')
AND ( 1=1 )ORDER BY 3 DESC, 4 DESC, 2 ASC ;
- ספטמבר 19, 2010 בשעה 7:44 pm
- in reply to: שליחת פרוצדורה לדוח דרך מייל
באותו נושא…
אני מנסה לשלוח במייל דו"ח המופק באמצעות פרוצדורה
הכנתי את הכל, שכפול, הורדה של איפה שמוכנסים הערכים הרלוונטיים לפרוצדורה, הכנת הדו"ח לריצה ללא מגע ואפילו הגעתי למצב בו הקוד רץ ויש דו"ח.
הבעייה היא שאני לא רואה שהדו"ח נשלח לאנשהו…הקוד שלי הוא:
SELECT SQL.TMPFILE INTO :TMP FROM DUMMY;
EXECUTE WINACTIV '-P', 'XXXX_SALESautoOPEN', '-O', :TMP,'-U', SQL.USER;אח"כ אני צריך רק להבין איך גורמים לזה לרוץ מהTTS (עוד לא ניגשתי, וראיתי שיש עזרה בנושא גם בSDK וגם בפורום)
תודה מראש ושנה טובה
אורן
- אוגוסט 24, 2010 בשעה 1:41 pm
- in reply to: דו"ח הזמנות לקוח יומיות
🙂
לא אמרתי שום דבר לרעתך – סתם מתוך הגיון של בסיסי נתונים נראה לי יותר נכון.
וכמו שאמרתי – מתוך הידע שלי הדבר הראשון שהייתי עושה הוא בדיוק מה שאתה הצעת, ורק אחרי שליאור העיר חשבתי שאולי יש צדק בדבריו.אבל תודה על ההצהרה הכנה, לא שיש הרבה, אבל אקח את זה בחשבון אם עוד יקרה.
- אוגוסט 24, 2010 בשעה 12:53 pm
- in reply to: דו"ח הזמנות לקוח יומיות
תשכח מאחד – הכנסתי את המזהה לעמודה PART ולא לעמודה FAMILY…- אוגוסט 24, 2010 בשעה 12:49 pm
- in reply to: דו"ח הזמנות לקוח יומיות
אוקיי, שני דברים:
אחד: FAMILY1.FAMILYNAME Unresolved identifier זו השגיאה שהוא נותן בהקשר להצעה של ליאור.
השאלה היא איך להתייחס למזהה – עמודה מחושבת עם מזהה או משהו?שתיים: המנכ"ל שלי ביקש שתהיה בדו"ח התייחסות לביטולי הזמנות (ע"י לקוח) כדי שיוכל לעקוב אחרי כמות הזמנות אמיתית. כלומר – הזמנה בפלוס וביטול במינוס.
אני קראתי בזמנו את מה שליאור ואלון כתבו כאן וישר חשבתי על זה בתור פתרון:
במקום לעקוב אחרי שורות הזמנה אני יכול לעקוב אחרי שורות הזמנה שהשורה האחרונה בלוג הסטטוסים שלהם היא הסטטוס והתאריך במקום אלו המקושרים להזמנה ישירות.אם לא הייתי קורא את מה שליאור כתב הייתי מנסה לעשות את זה בשיטה שאלון הציע, אבל לאחר מחשבה אולי יותר נכון לעשות את זה איך שתאר ליאור. אני מכיר את הרעיון הכללי של קישור לטבלה זמנית אבל בSDK עוברים על זה בצורה רדודה, עוד לא שיחקתי עם זה, ואני לא מכיר דוגמא טובה שעובדת שאני יכול לבדוק. אשמח להסבר יותר מעמיק בנושא בהקשר שלי, בפתיל הזה או בפתיל המקור בו תוארה הבעיה.
תודה
אורן
- אוגוסט 22, 2010 בשעה 2:08 pm
- in reply to: דו"ח הזמנות לקוח יומיות
הביטוי לעמודה משקל (שהיא גם עמודה מחושבת 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 ;- אוגוסט 19, 2010 בשעה 3:06 pm
- in reply to: דו"ח הזמנות לקוח יומיות
אוקייזה עבד, ועכשיו הבוס ככ מרוצה שהוא רוצה עוד דבר אחד אחרון, שמשגע לי את הצורה:
חלוקה של ההזמנות לפי סוג מוצרים – כעקרון – עבור כל כמה משפחות מוצר לתת שם על ולסכום לפיו.
אין לי בעיה לכתוב את הקוד לזה והדו"ח עובד ומעוצב יופי בלעדיו. אבל מהרגע שאני מוסיף עמודה עם הקוד הוא נותן לי את השגיאה הזו:
דו'ח 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' ?
'לוחות'
: ''))))))אורן
- אוגוסט 18, 2010 בשעה 6:11 pm
- in reply to: חישוב עלויות לפק"ע בתמחיר תעשייתי
היי אלון,
בשדה "זמן מכונות" אין שום ערך.זמן מופיע במסך בן "איסוף עליות לפק"ע לתקופה" בשדה "זמן מכונות בשעות". שם כן מופיע ערך הנכון, כלומר – זהה לזמן שדווח בפק"ע.
- אוגוסט 16, 2010 בשעה 12:58 pm
- in reply to: דו"ח הזמנות לקוח יומיות
היי שוב,דבר אחרון.
עשיתי כמה נסיונות ואני עדיין לא מבין מה אני מפספס.
הכל יצא נכון (ובגלל זה חשבתי שסיימתי) חוץ מהסיכום של הסוכן האחרון בדו"ח.
כלומר – יש סיכום בנפרד לכל תאריך, בנפרד לכל סוכן, אבל לסוכן האחרון שמופיע בדו"ח אין סיכום והאופציה לסגור את הקבוצה לא מכילה את השורה האחרונה של הסוכן. בתמונה המצורפת רואים שחסר 'סה"כ לשם סוכן' לסוכן האחרון, ומסומנת השורה שלא מצטמצמת אם סוגרים את הסוכן. בחלק העליון הסוכן "פתוח" ובחלק התחתון "סגור" והשורה עדיין "פתוחה" ואין סיכום…
הפירוט של העמודות במחולל הדו"חות מצורף.
תודה
אורן

- אוגוסט 15, 2010 בשעה 2:53 pm
- in reply to: דו"ח הזמנות לקוח יומיות
שוב המון תודה!ידעתי שראיתי הסבר על זה איפשהו אבל איכשהו פספסתי את זה כל הזמן.
יוצא עכשיו ממש פיקס.
תודה!
- אוגוסט 15, 2010 בשעה 1:03 pm
- in reply to: דו"ח הזמנות לקוח יומיות
היי ליאור,ניסיתי את מה שהצעת – זה נותן לי סכום בתחתית הדו"ח בלי קיבוץ וסיכום לקבוצה כמו שאני צריך.
אם למשל יש לי כמה שורות הזמנה מאותה משפחה אני רוצה לראות בדו"ח רק שורה אחת.
תודה
אורן
- אוגוסט 11, 2010 בשעה 12:41 pm
- in reply to: דו"ח הזמנות לקוח יומיות
היי שוב,עכשיו שהדו"ח עובד יופי אני רוצה לעצב את התצוגה אחרת, ואולי על הדרך ללמד את עצמי לעבוד עם מסמכי HTML.
הקובץ זיפ המצורף מכיל קובץ וורד וקובץ אקסל.
התמונה הראשונה בוורד היא איך שהדו"ח שלי נראה כרגע.
התמונה השנייה היא איך אני מעצב אותו שייראה באקסל, ואיך שהייתי רוצה שייראה (פחות או יותר) כשהוא יוצא מהאקסל.מצורף ישר אחרי התמונות דאמפ של הפרוצדורה ואז של הדו"ח כפי שהם כרגע.
והקובץ אקסל זה מה שמופיע במסך 'עמודות הדו"ח' במחולל הדו"חות.אשמח אם מישהו יוכל להכווין אותי איך לעצב את הדו"ח נכון, כי עד עכשיו הנסיונות שלי לא הובילו אותי למקומות מועילים, לצערי.
אני מבין שמן הסתם התוצאה לא תהיה זהה למה שיש לי בטבלת פיבוט באקסל, אבל אני כן רוצה משהו בסגנון מבחינת סכימת התוצאות בדו"ח.
ואם זה לא בעייתי מדי להסביר, או לתת דוגמא איפה לחפש כזה, אז אולי אפילו לאפשר להציג כמה טבלאות – כמו שיש לי באקסל כמה פיבוטים – כל אחת מעוצבת קצת אחרת.מקווה שלא סיבכתי יותר מדי, אבל עדיף מראה עיניים מאשר עוד כמה פסקאות לתאור.
יום טוב!
אורן [file name=tmp.zip size=107055]https://www.priority-forums.com/he/images/fbfiles/files/tmp.zip[/file]
- אוגוסט 9, 2010 בשעה 12:53 pm
- in reply to: דו"ח הזמנות לקוח יומיות
וואי, איך לא שמתי לב?תודה ליאור!
עכשיו זה עובד.
ידעתי שחסר לי החלק השני של התנאי בשאר הברירות – עובדה שהוספתי אותם – אבל מסתבר שפספסתי תנאי.
תודה!
אורן
- מאי 21, 2010 בשעה 12:38 pm
- in reply to: הוספת טקסט לפק"ע ע"פ תנאי
היי שוגי,
אין לי נסיון עם זה ספציפית, אבל מאיך שבנו מסך טקסט חופשי בפריוריטי אני מעריך שהשיטה הכי פשוטה תהיה לבצע ממשק עם המסך דרך טריגר במסך של הפק"ע עצמה, ולא על ידי מחולל נתונים…אבל ייתכן ואני עובד קשה מדי ויש דרך פשוטה הרבה יותר.
בהצלחה!
אורן
- מאי 18, 2010 בשעה 12:27 pm
- in reply to: סדר בדיקת חוקים עסקיים
אני שוב פזיז מדי בתגובות שלי – עדיין אין לי שיטה להגביל את שחרור הפק"ע לטווח מסויים של סטטוסים של ההזמנה עליה היא מבוססת.