הצטרפו לקבוצות שלנו לקבלת עדכונים מרוכזים פעם בשבוע:

ווטסאפ:
http://wa.dwh.co.il
טלגרם:
http://telegram.dwh.co.il

אובייקטים שבניתי עבור PROMPT תאריכים דינמי

More
17 years 3 days ago #4182 by ethan1701
עלה אצלנו הצורך לאפשר למשתמשים לבחור עבור איזו תקופה להריץ דוחות - לבחור אם על אתמול, שבוע שעבר, הרבעון הנוכחי וכו'. פתרתי את זה באמצעות בניית שני האובייקטים הבאים, ותיארתי לעצמי שהם עשויים להיות שימושיים גם עבורכם. אשמח לקבל משוב עליהם.
האובייקט "תקופה - התחלה":
CASE @Prompt('תקופה','A',{'היום','אתמול','שבוע נוכחי','שבוע שעבר','חודש נוכחי','חודש שעבר','רבעון נוכחי','רבעון שעבר','שנה נוכחית','שנה שעברה','תאריכים'},mono,constrained,persistent,)
WHEN 'היום' THEN DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
WHEN 'אתמול' THEN DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()-1))
WHEN 'שבוע נוכחי' THEN DATEADD(wk,DATEDIFF(wk,6,GETDATE()),6)
WHEN 'שבוע שעבר' THEN DATEADD(wk,DATEDIFF(wk,6,GETDATE()-7),6)
WHEN 'חודש נוכחי' THEN DATEADD(mm, DATEDIFF(mm,0, GETDATE()),0)
WHEN 'חודש שעבר' THEN DATEADD(mm, DATEDIFF(mm,0, GETDATE())-1,0)
WHEN 'רבעון נוכחי' THEN DATEADD(qq, DATEDIFF(qq,0, GETDATE()),0)
WHEN 'רבעון שעבר' THEN DATEADD(qq, DATEDIFF(qq,0, GETDATE())-1,0)
WHEN 'שנה נוכחית' THEN DATEADD(yy, DATEDIFF(yy,0, GETDATE()),0)
WHEN 'שנה שעברה' THEN DATEADD(yy, DATEDIFF(yy,0, GETDATE())-1,0)
WHEN 'תאריכים' THEN @Prompt('מתאריך','D',,mono,,persistent,)
END

‬האובייקט "תקופה - סיום":
CASE @Prompt('תקופה','A',{'היום','אתמול','שבוע נוכחי','שבוע שעבר','חודש נוכחי','חודש שעבר','רבעון נוכחי','רבעון שעבר','שנה נוכחית','שנה שעברה','תאריכים'},mono,constrained,persistent,)
WHEN 'היום' THEN GETDATE()
WHEN 'אתמול' THEN DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
WHEN 'שבוע נוכחי' THEN GETDATE()
WHEN 'שבוע שעבר' THEN DATEADD(wk,DATEDIFF(wk,6,GETDATE()),6)
WHEN 'חודש נוכחי' THEN GETDATE()
WHEN 'חודש שעבר' THEN DATEADD(mm, DATEDIFF(mm,0, GETDATE()),0)
WHEN 'רבעון נוכחי' THEN GETDATE()
WHEN 'רבעון שעבר' THEN DATEADD(qq, DATEDIFF(qq,0, GETDATE()),0)
WHEN 'שנה נוכחית' THEN GETDATE()
WHEN 'שנה שעברה' THEN DATEADD(yy, DATEDIFF(yy,0, GETDATE()),0)
WHEN 'תאריכים' THEN @Prompt('עד תאריך','D',,mono,,persistent,)
END
בנו תנאי בדוח בסגנון של
‪SaleDate Between [תקופה - התחלה] AND [תקופה - סיום]‬
שני האובייקטים האלה מציגים PROMPT עם אותו שם, ולכן המשתמש יתבקש להזין רק שדה אחד. כל אחד מהאובייקטים האלה מתרגם את הערך האחד הזה באופן אחר. ההתחלה מביא את תחילת התקופה, והסיום - את סופו.
שימו לב שאחת התקופות האפשרויות היא "תאריכים". אפשרות זו תציג בפני המשתמש שני PROMPT-ים נוספים - מתאריך ועד תאריך, ומאפשרים למשתמש להריץ את הדוח על תאריכים ספציפיים לבחירתו. התאריכים שיוזנו בשדות אלה יבואו לידי ביטוי אך ורק אם נבחר הערך "תאריכים" בPROMPT הראשון. אחרת BO יתעלם מהערכים שיוזנו שם.

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

שימו לב שהתחביר של האובייקטים מתאים ל-SQL Server (ולא מבצע המרות לSTRING או אסונות טבע אחרים), אבל ניתן בקלות להסב למסדי נתונים אחרים.

מקווה שזה יהיה שימושי עבורכם,
-איתן

Please התחברות to join the conversation.

More
17 years 3 days ago #4183 by Yoav
תודה רבה על השיתוף,כן ירבו!

ברגע שאבדוק אתן פידבק

Best Regards

Yoav Yahav

BI & DWH & SAP Business Objects

+972-52-3562982

bi.bobjects@gmail.com
thebobaba.blogspot.com/
www.bics.co.il/193657/sapbicoeeng
www.bo.dwh.co.il

Please התחברות to join the conversation.

Moderators: Yoav
Time to create page: 0.263 seconds