Showing posts with label Prompts. Show all posts
Showing posts with label Prompts. Show all posts

Wednesday, August 10, 2011

YTD and MTD Prompts

Here are code samples for creating YTD and MTD prompts in the universe designer,the prompts are written for Oracle :

1. YTD
This prompt allows the user to enter a date and get all the dates from the month of the chosen date till the beginning of the current month, for example:

If the user will type 05/05/2010 (mm/dd/yyyy) he will get the range: 05/01/2010 till the first day of the current month.

Code:

Table.date BETWEEN trunc(To_Date(@Prompt('Enter Date:','D',,Mono,Free),'mm/dd/yyyy hh24:mi:ss'),'mm') AND TRUNC(SYSDATE,'MM')

2. YTD specific year:

This prompt allows the user to enter a date and get all the dates from the first day of the year of the chosen date till the chosen date, for example:

If the user will type 05/05/2011 (mm/dd/yyyy) he will get the range: 01/01/2011 till 05/05/2011.

Code:

Table.date between trunc(to_date(substr(@Prompt('Pick date','D','folder\date_object',mono,free),1,10),'mm/dd/YYYY'), 'YEAR') and to_date(substr(@Prompt('Pick target date','D','folder\date_object',mono,free),1,10),'mm/dd/YYYY')

3.MTD

This prompt allows the user to enter a date and get all the dates from the first day of the month of the chosen date till the chosen date, for example:

If the user will type 05/05/2011 (mm/dd/yyyy) he will get the range: 05/01/2011 till 05/05/2011.

Code:

trunc(Table.date) BETWEEN trunc(to_date(@Prompt('Enter Date:','A',,mono,free),'DD/MM/RR'),'MM')

AND to_date(@Prompt('Enter Date:','A',,mono,free),'DD/MM/RR

Tuesday, October 20, 2009

כל ערכי הפרומפטים שורה תחת שורה

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



"First prompt:" & Fill(Char(32) ,10) & Replace(UserResponse (DataProvider((object )) , " First prompt:";" ,Char(13) & Fill(Char(32) ,10) ) & Char(13) & Char(13) &" Secound prompt " & Fill(Char(32) ,10) & Replace(UserResponse (DataProvider((object)) , " Secound prompt:") ,";" ,Char(13) & Fill(Char(32) ,10) ) & Char(13) & Char(13)

מומלץ ליצור templates עם תצוגה זו.
שימו לב שהסוגריים אדומים הם למעשה הסוגריים המרובעים הרגילים,פלטפורמת האתר פשוט לא תומכת בתו זה...

Tuesday, September 22, 2009

Prompt לבחירת join באופן דינמי באורקל: outer או equal

במידה ואתם מעוניינים לאפשר למשתמש לבחור Outer או Equal Join בעת הרצת הדוח ניתן לארגן זאת כך:
ראשית בואו ונתאר מצב תיאורטי ,כאשר יש לי 2 טבלאות :טבלת לקוחות וטבלת הזמנות ואנו מעוניינים שהקשר בין טבלת הלקוחות לטבלת ההזמנות יהיה דינאמי:בחירת Outer להצגת גם לקוחות ללא הזמנה או בחירת Equal Join להצגת לקוחות עם הזמנה בלבד,טוב ל-Oracle:

CUSTOMERS.CUST_ID =@Prompt('Outer join (choose (+)) or equi join?','N',
{ 'ORDERS.CUST_ID (+)', 'ORDERS.CUST_ID' '},mono,constrained)

שימו לב למיקום ה + הקובע אל איזה טבלה יתבצע ה -Outer Join.

Friday, September 4, 2009

Wednesday, July 8, 2009

הפרש ימים ב-Oracle:Prompt

היי,

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

round(to_number(FND_FACTORING_OFFERS.END_DATE-FND_FACTORING_OFFERS.START_DATE)) >= @Prompt( 'בחר הפרש ימים בין פתיחה לסגירת הצעה הגדול מ','N',
{'0','1','2','3','4','5','6','7','8','9','10','20','30','40','50','60','70','80','90','100','120','150','200','250','300'},mono,free)

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

Tuesday, June 23, 2009

Prompt לבחירת טבלה באופן דינמי

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

http://www.qdrive.net/yoavl/file/4509/2f4b0810d97cff2d9f9a708d0190938b

Monday, May 4, 2009

הישר מהמעבדה : Visual Prompts

Visual Prompts מאפשרים למשתמש ליצור רשימות ערכים המציגות תמונות במקום את הערך.
לדוגמא:המשתמש בוחר אזור או מדינה אך הרשימה היא בעצם מפה של אזורים שכל ערך מובלט ברגע שמסמנים אותו.
הרכיב עובד בטכנולוגיית Flash ומצריך התקנה של Xcelsius 2008 בכדי להשתמש ב-Xcelsius visualisation components.
נסו או צפו בסרטון המדגים את היכולת המגניבה הזו:
https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/webcontent/uuid/806654b6-6d98-2b10-2c83-d4a304fbc8ca

Monday, December 1, 2008

בחירת סוג האופרטור ב-Prompt

מעוניינים לאפשר למשתמש לבחור בסוג האופרטור מבלי שיצטרך לחזור ל- Query panel ולשנות את זה בתנאי ?
כלומר התוצאה שתתקבל תהיה prompt עם רשימת האופרטורים לבחירה...הנה התחביר:

( 'Lesser than or Equal' = @Prompt('Select Operator:','A',{'Lesser than or Equal','Equal','Greater than or Equal'}, MONO,CONSTRAINED) AND Article_lookup.Article_label <= @Prompt('Enter Salary:','N',,MONO,FREE) )OR ( 'Equal' = @Variable('Select Operator:') AND Article_lookup.Article_label = @Variable('Enter Salary:') )OR ('Greater than or Equal' = @Variable('Select Operator:') AND Article_lookup.Article_label >= @Variable('Enter Salary:') )
יש לשנות כמובן את השדות ולהתאים את המלל ב-Prompt לפי הצורך

כך נראית התוצאה:

Sunday, November 23, 2008

Prompt:הקלד מס' אותיות וקבל את כל הערכים

במקרים בהם המשתמש זקוק לפרומפט שיאפשר לו להקליד מס ' אותיות ולקבל את כל הערכים הדומים המתחילים בצירוף זה נוכל לבנות Prompt בעולם,לדוגמא:

המשתמש מקליד את האותיות se ומקבל את כל הערכים שמתחילים בצירוף זה
service 1service 2 וכו'...

חשוב לזכור:פונקציית ה- Like המאפשרת את החיפוש והמציאה, מתאימה לשדות מסוג Character
חיפוש בהתחלה:

tablename.culomn_name like @variable('type the first letters') +'%'

חיפוש בסוף:

CUSTOMER.name like '%' + @variable('type the first letters')

Wednesday, November 19, 2008

Wildcard Prompts ב- Designer

במצגת הבאה תוכלו לראות כיצד לבנות prompt המאפשר חיפוש ערך לפי אות תחילית/סופית

Friday, November 14, 2008

יצירת רשימת ערכים מקוננת בדיזיינר

הטריק והמקרה הכי ישן בספר:

בסה"כ רציתם שהמשתמש יבחר ב-prompt אזור ומיד יקבל ב-prompt השני רק את הסוכנים העובדים באותו אזור .
מה שנקרא nested prompts , שתי שיטות כיצד לבצע זאת:
אחת ע"י התניית רשימת הערכים והשנייה ויזואלית:

http://homepage.mac.com/rmetzk/PDF_Files/Cascading_Prompts.pdf

http://www.infosol.com/bi/techtips/bo_tt8.html

Monday, November 10, 2008

Thursday, November 6, 2008

Tales from a Universe Ninja

בצמד המצגות הבאות מבית מדרשו של David G. Rathbun תוכלו ללמוד דברים חדשים על ה- Designer:

קנפוג של shortcut joins להשתמש בפרמטר JOIN_BY_SQL,לראות שימושים נוספים ב-index awareness

טריקים לשימוש ב-ALL בפרומפט ובכלל לשמוח עוד קצת...


הקלדת מלל ב-Prompt ללא תלות ב-Case Sensitivity

אתם על Oracle שמוגדר כ-Case Sensitive ,המשתמש בונה prompt+match pattern ,מקליד אותיות קטנות ומקבל No Data to Fetch...כיצד תמנעו מהצרה ?הנה:

Wednesday, November 5, 2008

prompt לבחירת ערך אחד,כמה או את כולם

מאבני הבסיס של prompts בדיזיינר:

תחביר ה- prompt הבא מאפשר למשתמש לבחור ערך אחד, כמה ערכים או את כל הערכים ע"י הקלדת
המילה 'all' או כוכבית

אם אתם מעוניינים שהמילה 'all' תהיה חלק מרשימת הערכים עצמה יש להיכנס לרשימת הערכים
עצמה ולבצע union עם המילה 'all' מטבלת dummy או טבלה אמיתית ,הנה דוגמא לתחביר:

CLIENT.CLIENT_AREA IN @Prompt('chose area or type all for all areas','C','Customers\Client Area',multi,free) OR 'all' IN @Prompt('chose area or type all for all areas','C','Customers\Client Area',multi,free) .
לפוסט נוסף המסביר כיצד ניתן לבחור את כל הערכים ב- prompt וכיצד ניתן להכניס את הערך:"all values" לרשימת הערכים עצמה:

prompt לבחירת ערכי null,notnull או כולם פונקצייה לדיזיינר

ניתן ליצור prompt שיאפשר בחירת ערכי null ,notnull או את כולם.


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

(1 = ((case when FIN_MOVE.wap_number is null then 1 else 0 end) * (case when ( @prompt('Enter report type','A',{'null','not null','all'},mono,) )= 'null' then 1 else 0 end)) or 1 = ((case when FIN_MOVE.wap_number is null then 0 else 1 end) * (case when ( @prompt('Enter report type','A',{'null','not null','all'},mono,) )= 'not null' then 1 else 0

הפרש ימים ב – prompt, פונקצייה לדיזיינר ב- SQL Server

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

להלן הקוד (שוב מתאים ל- SQL Server בקרוב הפתעה לחובבי ה- Oracle):

DateDiff(Day, PROCESS.date_open, PROCESS.date_closed) > @variable
('בחר מספר ימים בין תאריך פתיחת תקלה לתאריך סגירת תקלה')