Priority Forums

 
  • increase font size
  • Default font size
  • decrease font size
Home בלוגים בניית דוחות בפריוריטי - חלק 3

בניית דוחות בפריוריטי - חלק 3

 אימייל

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

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

 

 שם

פעולה

 פרמטרים

טיפוס הערך המוחזר

 דוגמא

SQL.ENVמספר החברה הנוכחי  CHAR  demo
SQL.USER

מספרו הפנימי של המשתמש הנוכחי.

כלומר הערך של העמודה USER בטבלת USERS עבור המשתמש הנוכחי

  INT 
SQL.GROUPמספרו הפנימי ראש קבוצת ההרשאות של המשתמש הנוכחי 

 INT

 
SQL.DATEהתאריך והשעה עכשיו 8 DATE  21/01/09
SQL.DATE8התאריך היום 14 DATE  21/01/09 18:55
SQL.TIMEהשעה עכשיו TIME
  18:55
SQL.DAYמספרו של היום הנוכחי בשבוע  INT  6
ROUND עיגול מספר עשרוני. התוצאה היא המספר השלם הקרוב ביותר  REAL INT  ROUND(ORDERITEMS.PRICE)

ROUNDR

 כמו ROUND אלא שהתוצאה היא מספר עשרוני  REAL  REAL  ROUNDR(ORDERITEMS.PRICE)

MINOP

 הערך המינימלי מבין שני מספרים  NUM, NUM
 REAL  MINOP(ORDERITEMS.PERCENT, ORDERS.PERCENT)
MAXOP הערך המקסימלי מבין שני מספרים  NUM, NUM
 REAL  MINOP(ORDERITEMS.PERCENT, ORDERS.PERCENT)
EXP
 חזקה
 INT, INT
 INT  EXP(3,2)
SQRT שורש - התוצאה מעוגלת  למספר שלם  INT
 INT  SQRT(4)
SQRTR שורש - התוצאה במספר עשרוני
 REAL REAL  SQRT(2.0)
ABS
 ערך מוחלט למספרים שלמים  INT INT
  ABS(ORDERITEM.BALANCE)
ABSR
  ערך מוחלט למספרים עשרוניים  REAL REAL  ABS(ORDERITEM.BALANCE)
REALQUANT
 *המרת Shifted Integer למספר עשרוני  Shifted Integer  REAL  REALQUANT(INVOICEITEMS.TQUANT)
INTQUANT
 המרת מספר עשרוני ל Shifetd Integer  REAL INT (Shifted Integer)
  INTQUANT(1.0)
ITOA המרת מספר שלם למחרוזת  INT
 CHAR  ITOA(TRANSORDER.LINE)
 ATOI המרת מחרוזת למספר שלם  CHAR או RCHAR
 INT  ATOI(PARTSPEC.SPEC7)
 RTOA המרת מספר עשרוני למחרוזת  REAL,INT
 REAL  RTOA(PORDERITEMS.QPRICE,2) - ממיר למספר עשרוני עם 2 ספרות אחרי הנקודה
 STRLEN חישוב מספר התוים במחרוזת   (R)CHAR
 INT STRLEN(EXTFILES.EXTFILENAME)
 STRCAT שרשור של שתי מחרוזות או יותר   (R)CHAR, (R)CHAR  CHAR STRCAT(PART.PARTNAME, '-',PART.PARTDES)
 STRIND מציאת תת מחרוזת - הפונציה מקבלת מחרוזת ושני מספרים. המספר הראשון מייצג את מקום התו ממנו מתחילה תת המחרוזת והמספר השני מייצג את מספר התווים בתת המחרוזת.  (R)CHAR,INT, INT (R)CHAR

 STRIND('priority', 2, 3) = 'rio' 

 RSTRIND כמו STRDIND אלא שRSTRIND מתייחסת לתו הימני ביותר כתו הראשון וקוראת את המחרוזת מימין לשמאל  (R)CHAR,INT, INT  (R)CHAR RSTRIND('priority', 2, 3) = 'rit' 
 STRPIECE "שבירת" מחרוזת לפי תו מסויים. הפונקציה מקבלת כקלט מחרוזת, תו "שובר", מספר המציין את כמות החלקים הרצויים בתוצאה ואת מספרו של החלק הראשון הרצוי בתוצאה  (R)CHAR, CHAR, INT, INT  (R)CHAR STRPIECE('a.b.c.d.e.f.', '.', 3, 2) = 'c.d'
 ISALPHA פונקציה שבודקת האם מחרוזת מכילה אותיות בלבד. מחזירה כתוצאה 0 אם לא, ו 1 אם כן  (R)CHAR INT

 ISALPHA('lior') = 0 

 ISALPHA('lior balmas') = 0 

 ISPREFIX פונקציה שבודקת האם מחרוזת אחת היא תחילית של מחרוזת שנייה. אם כן הפונקציה מחזירה 1. אם לא היא מחזירה 0.  (R)CHAR, (R)CHAR INT

 ISPREFIX('pri', 'priority') = 1

 ISPREFIX('zoom', priority') = 0

 ISNUMERIC פונקציה שבודקת האם מחרוזת מכילה מספרים בלבד. אם כן הפונקציה מחזירה 1. אם לא היא מחזירה 0.   (R)CHAR INT

 ISNUMERIC('priority12') = 0 

 ISNUMERIC('12') = 1 

 ISFLOATפונקציה שבודקת האם מחרוזת היא מספר עשרוני. אם כן הפונקציה מחזירה 1. אם לא היא מחזירה 0.  (R)CHAR INT

 ISFLOAT(10.2) = 1

 ISFLOAT(10) = 0 

 TOUPPER פונקציה שמקבלת מחרוזת באנגלית ומעבירה את כל התווים לאותיות רישיות.   (R)CHAR (R)CHAR TOUPPER ('priority') = 'PRIORITY'
 TOLOWERפונקציה שמקבלת מחרוזת באנגלית ומעבירה את כל התווים לאותיות קטנות.   (R)CHAR  (R)CHAR TOLOWER('abCdEFG') = 'abcdefg'
DAY
פונקציה המחזירה את מספרו של היום בשבוע של תאריך כלשהו   DATE
 INT

 DAY(01/01/00) 

 DAY(SQL.DATE)

 DAY(ORDERS.CURDATE)

MDAY
פונקציה המחזירה את מספרו של היום בחודש של תאריך כלשהו

 DATE

 INT MDAY(01/01/00) 

 DAY(SQL.DATE)

 DAY(ORDERS.CURDATE)
WEEK
 פונקציה המחשבת את מספר השבוע בשנה של תאריך כלשהו  DATE INT

 WEEK(INVOICES.IVDATE)

WEEK6
 פונקציה המחשבת את מספר השבוע בשנה של תאריך כלשהון ומחזירה את השנה משורשרת למספר השבוע  DATE INT WEEK6(SQL.DATE)  = 200905
 MWEEKפונקציה המחשבת את מספר השבוע בחודש של תאריך כלשהו  DATE INT MWEEK(DOCUMENTS.CURDATE)
 MONTHפונקציה המחשבת את מספר החודש של תאריך כלשהו  DATE INT MONTH(DOCUMENTS.CURDATE) = 11
 QUARTERפונקציה המחשבת את מספר הרבעון של תאריך כלשהו  DATE INT
 QUARTER(SQL.DATE) /* בין 1 ל 4 */
 YEARפונקציה המחשבת את מספר השנה של תאריך כלשהו  DATE INT YEAR(SQL.DATE) = 2009
BEGINOFMONTH
 תאריך תחילת החודש של תאריך כלשהו
 DATE
 DATE

 BEGINOFMONTH(ORDERS.CURDATE) 

BEGINOFQUARTER
  תאריך תחילת הרבעון של תאריך כלשהו DATE DATE BEGINOFQUARTER(ORDERS.CURDATE)
BEGINOFHALF
  תאריך תחילת החציון של תאריך כלשהו DATE DATE BEGINOFHALF(ORDERS.CURDATE)
BEGINOFYEAR
  תאריך תחילת השנה של תאריך כלשהו DATE DATE BEGINOFYEAR(ORDERS.CURDATE)
ENDOFMONTH
 תאריך סוף החודש של תאריך כלשהו  DATE DATE ENDOFMONTH(TRANSORDER.UDATE)
ENDOFQAURTER
  תאריך סוף הרבעון של תאריך כלשהו  DATE DATE ENDOFQUARTER(TRANSORDER.UDATE)
ENDOFHALF
  תאריך סוף החציון של תאריך כלשהו  DATE DATE ENDOFHALF(TRANSORDER.UDATE)
ENDOFYEAR
  תאריך סוף השנה של תאריך כלשהו  DATE DATE ENDOFYEAR(TRANSORDER.UDATE)
ATOD
המרת מחרוזת לתאריך. הפרמטר השני של הפונקציה קובע את הפורמט של התאריך כפי שהוא מופיע במחרוזת  (R)CHAR, CHAR
 DATE
 ATOD('22/01/2009', 'DD/MM/YYYY') = 22/01/09
DTOA המרת תאריך למחרוזת. הפרמטר השני קובע את פורמט התארי.  DATE, RCHAR   (R)CHAR

 DTOA('ORDERITEMS.DUEDATE','DD-MMM-YY')  =‎ 25-‎ינו‎-09

תגובות
חנה  - ממוצע   | 14:21:28 04-11-2013
האם ניתן לחשב ממוצע של מספרים כמו לדוגמא
ממוצע של כמות קניה ממקט מסוים?
miki  - הוספת שדה פתוח להערות   | 18:19:52 22-08-2011
האם ניתן להוסיף לדוח קיים, שדה פתוח להערות
(טקסט) גם אם שדה זה לא קיים בטבלה המקורית?
רק משתמשים רשומים רשאים לכתוב תגובות

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

עדכון אחרון ( רביעי, 10 יוני 2009 20:39 )  

התחברות

באנר

יצירת קשר


שלום! ניתן ליצור עמנו קשר בטלפון 050-6623337, או לשלוח את הטופס להלן ואנו נחזור אליכם בהקדם. תודה!

1000 תוים נותרו


באנר

מוצרים


banner_facebook_03

idan 85:-3