Presentation is loading. Please wait.

Presentation is loading. Please wait.

More Hidden Gems in the World of Reporting: Part 5

Similar presentations


Presentation on theme: "More Hidden Gems in the World of Reporting: Part 5"— Presentation transcript:

1 More Hidden Gems in the World of Reporting: Part 5
Walter F. Blood Director of Product Management Information Builders

2 Where We Will Look Settings Connections Expressions Sorting
Adding “stuff” to the Hold Master - HOLDSTAT The catch-all for formatting - PRINTPLUS When the data doesn’t line up - JOINOPT Connections Combining tables based on ranges Connecting tables with nothing in common Connect files to create the exact record you need Expressions Working with more than one record instance at a time Writing to multiple files simultaneously Using SQL friendly user functions Sorting Sorting it your way Uneven grouping

3 Add stuff to the HOLD Master
…In Settings Add stuff to the HOLD Master Catch-all for fomatting When data doesn’t line up Copyright 2007, Information Builders. Slide 3 3

4 Switches that affect behavior – scope varies
SET Parameters Switches that affect behavior – scope varies You can set at multiple levels EDASPROF Group/User Profile Focexec Request Look at the difference in behavior to see when to apply them

5 SET HOLDSTAT= OFF/ON/filename
Automatically add “stuff” to a HOLD Master Comments at the beginning or the end DEFINE fields, COMPUTE fields SORTOBJ objects, FILTER objects, STYLE objects DBA Pre-existing HOLDSTAT or other name file Create dynamically in MFD_PROFILE Remember Comment - $ $BOTTOM used to place stuff at end of master $ mystat.err $ Included comments $ Can be dynamically created in MFD Profile $BOTTOM DEFINE COUNTRY/A5=EDIT(COUNTRY,’9$9$9$9$9$’);,$ END DBAFILE = filename $ More comments

6 SET - PRINTPLUS Turning PRINTPLUS ON –
BY field actions are linked with BY field options so they appear together SET PRINTPLUS=OFF TABLE FILE CAR HEADING "PRINTPLUS=OFF" SUM SEATS CNT.BODYTYPE COMPUTE AVE/D6.2 = SEATS/CNT.BODYTYPE; BY COUNTRY BY CAR BY MODEL ON COUNTRY SUBTOTAL ON COUNTRY SUBFOOT "COUNTRY SUBFOOT - SUBTOTAL <COUNTRY>" ON CAR RECOMPUTE ON CAR SUBFOOT "CAR SUBFOOT - RECOMPUTE <CAR>" ON TABLE SUMMARIZE ON TABLE SUBFOOT "TABLE SUBFOOT - SUMMARIZE" ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * INCLUDE = endeflt, $ ENDSTYLE END Paired Actions Paired Actions Paired Actions

7 SET- PRINTPLUS Turning PRINTPLUS ON –
BY field actions are linked with BY field options so they appear together Paired Actions ?

8 SET - PRINTPLUS Turning PRINTPLUS ON –
BY field actions are linked with BY field options so they appear together Paired Actions !

9 SET - PRINTPLUS Turning PRINTPLUS ON –
Splitting fields linked by OVER onto separate pages no longer occurs SET LINES=18,PAPER=21 TABLE FILE CAR SUM RCOST OVER DCOST OVER SALES OVER MPG BY COUNTRY SKIP-LINE END PRINTPLUS OFF PRINTPLUS ON

10 SET - PRINTPLUS Turning PRINTPLUS ON –
Report SUBFOOT now prints above the footing instead of below it. TABLE FILE CENTORD SUM CENTORD.INVSEG.PRICE BY LOWEST CENTORD.OINFO.STORE_CODE BY LOWEST CENTORD.INVSEG.PROD_NUM BY TOTAL LOWEST CENTORD.OINFO.ORDER_DATE ON TABLE SUBHEAD "PRINTPLUS IS OFF" FOOTING "This report was created for &DATEMtrYY " ON TABLE SUBFOOT "This is the Report Footing for <STORE_CODE" IF CENTORD.OINFO.STORE_CODE EQ '1003CA' …. END FOOTING REPORT SUBFOOT

11 SET - PRINTPLUS Turning PRINTPLUS ON –
Report SUBFOOT now prints above the footing instead of below it.

12 SET - PRINTPLUS Turning PRINTPLUS ON –
PAGE-BREAK handled internally - provide the correct spacing of pages NOSPLIT handled internally RECAPs in cases where pre-specified conditions are met FOOTING no longer splits on two pages Footings and Subfoots - on page with at least one data item Printing beyond the length of the page no longer occurs There is no reserved space for conditional output The order of sort fields is no longer relevant

13 When the retrieved data values don’t line up correctly
SET - JOINOPT When the retrieved data values don’t line up correctly TRAIN ROUTES Route Number Origin Station Dest Station TRAIN ROUTES ORIGIN STATIONS Orig Station Orig City Orig State DESTINATION STATIONS TRAIN ROUTES Dest Station Dest City Dest State JOIN TR TO OR - UNIQUE JOIN TR TO DS - UNIQUE 1:M

14 When the retrieved data values don’t line up correctly
SET - JOINOPT When the retrieved data values don’t line up correctly TRAIN ROUTES TABLE FILE ROUTES PRINT TRAIN_NUM OR_STATION OR_CITY DE_STATION DE_CITY END ORIGIN STATIONS DESTINATION STATIONS TRAIN_NUM OR_STATION OR_CITY DE_STATION DE_CITY NYC NEW YORK ATL BOS BOSTON BLT ATLANTA DET DETROIT BOS BALTIMORE CHI CHICAGO DET BOSTON BOS BOSTON STL DETROIT BOS STL ST. LOUIS TRAIN ROUTES TRAIN ROUTES

15 When the retrieved data values don’t line up correctly
SET - JOINOPT When the retrieved data values don’t line up correctly TRAIN ROUTES TABLE FILE ROUTES PRINT TRAIN_NUM OR_STATION OR_CITY DE_STATION DE_CITY END SET JOINOPT=GNTINT ORIGIN STATIONS DESTINATION STATIONS TRAIN_NUM OR_STATION OR_CITY DE_STATION DE_CITY NYC NEW YORK ATL ATLANTA BOS BOSTON BLT BALTIMORE DET DETROIT BOS BOSTON CHI CHICAGO DET DETROIT BOS BOSTON STL ST. LOUIS TRAIN ROUTES TRAIN ROUTES

16 Connect files based on a range of values
Connections Connect files based on a range of values Connect files with NO apparent connection Connect files to create the exact record you need

17 Connections Based on Equality
EMPLOYEE ID LAST NAME FIRST NAME HIRE DATE CURRENT SALARY Employee TAX YEAR TAX RATE MINIMUM SALARY MAXIMUM SALARY Tax Rate Standard JOIN based upon EQUALITY comparison JOIN field IN file TO ALL field IN file AS name

18 Connections Based on Equality

19 Connections Based on Range of Values
EMPLOYEE ID LAST NAME FIRST NAME HIRE DATE CURRENT SALARY EMPLOYEE TAX YEAR TAX RATE MINIMUM SALARY MAXIMUM SALARY Connection can also be based upon range comparison - LE, LT, GE, GT, NE or FROM /TO JOIN FILE file AT field TO ALL FILE file AT field AS name WHERE condition

20 Connections Based on Range

21 Insurance Rates – Listing
Problem: Selecting the correct insurance rate based upon age from a table with ranges--- Minimum Maximum Age Age Insurance Rate $ 8.00 $ 9.00 $10.00 $11.00 JOIN FILE EMPDATA1 AT BIRTHDATE TO ALL FILE RATES AT AGE AS J1 WHERE EMPDATA1.AGE GE RATES.MINAGE; WHERE EMPDATA1.AGE LE RATES.MAXAGE; END

22 JOIN? Connect files that have NO apparent connection Employee New Car
Connections Connect files that have NO apparent connection Employee Salary History New Car Finance Packages JOIN?

23 Connections

24 Connections Employee Salary History New Car Finance Packages JOIN?

25 Connections – Conditional Join
Conditional Join Considerations: Based upon Cartesian product WHERE condition controls selection – True/Select, False/Reject Complex WHEREs supported Multiple WHERE conditions supported At least one WHERE must contain fields from both files Remove WHERE – true cartesian product Copyright 2007, Information Builders. Slide 25 25

26 Sort Merge Creating the exact record you need! Connections - MATCH
HOLD OLD NEW BYs and Verb control structure of output record AFTER MATCH HOLD controls selection of data being placed in the output record

27 Connections - MATCH Using BY fields
Control both column order in record as well as connection To “MATCH” - must have same name in request – use AS MATCH up to 16 levels in a single MATCH request MATCH keys do not have to be the same! Matching keys - output in 1 column Non-matching keys – distinct columns Output record created based upon common keys Keys plus associated verb objects OLD to NEW for non-MATCHING key objects

28 Connections - MATCH Using PRINT or SUM SUM:
Aggregates verb objects included in level Aggregation level based upon BYs at that level Output sequence controlled by order of request and BYs, and MATCH levels PRINT: Includes detail records for verb objects selected in level Grouped and sorted based upon BY fields Output sequence controlled by order of request and BYs , and MATCH levels

29 Connections - MATCH Holding Patterns CONTROL THE MISSING!
OLD-OR-NEW – All RECORDS, both files (DEFAULT) OLD-AND-NEW—Common RECORDS only OLD-NOT-NEW – RECORDS in OLD missing in NEW NEW-NOT-OLD - RECORDS in NEW missing in OLD OLD-NOR-NEW - Combo of OLD-NOT-NEW NEW-NOT-OLD OLD – RECORDS in OLD with RECORDS in NEW NEW – RECORDS in NEW with RECORDS in OLD

30 Working with more than one record instance at a time
Expressions Working with more than one record instance at a time Writing to multiple files simultaneously Using SQL friendly user functions

31 LAST Working with more than one record instance at a time THE FUNCTION
Expressions - LAST Working with more than one record instance at a time LAST THE FUNCTION Available in COMPUTE, DEFINE, WHERE References the field value in the previous record Works with real and virtual fields

32 Expressions - LAST LAST

33 Expressions - LAST LAST Select LAST Get Fieldname

34 Expressions - LAST LAST In DEFINE

35 Expressions - LAST LAST In COMPUTE

36 LAST In WHERE Expressions - LAST
CAR.ORIGIN.COUNTRY NE LAST CAR.ORIGIN.COUNTRY In WHERE

37 LAST Using LAST: Detecting value changes of data in ordered sets
Expressions - LAST LAST Using LAST: Detecting value changes of data in ordered sets Nested IF…THEN…ELSE Create new sort-able select-able groups Creating identifiers based on ordered fields DEFINE - BY / WHERE COMPUTE - BY TOTAL / WHERE TOTAL Creating running values on any fields Totals, Averages, Margins, Any calculation Holding preceding data values for calculation In DEFINE In COMPUTE In WHERE

38 LAST LAST Considerations: The order the data is processed is critical
Expressions - LAST LAST LAST Considerations: The order the data is processed is critical You may need to presort data to a hold file Limited optimization to relational databases Test DEFINES with WHERE Test COMPUTES with WHERE TOTAL In DEFINE In COMPUTE In WHERE Copyright 2007, Information Builders. Slide 38 38

39 Expressions - PUTDDREC
Writing to multiple files simultaneously To create a log of specific data values read Which critical customers placed orders? To create of record of calculated values Will I go out of stock on any these orders today? To create additional output In this catalog what page number will this item be on? PUTDDREC

40 Expressions - PUTDDREC
PUTDDREC syntax: PUTDDREC(ddname, dd_len, record_string, record_len, outfield) ddname - ddname assigned by filedef to output file dd_len length of the ddname record_string - string of characters to write to file or field containing that string record_len - length of the string to be included outfield - return code Output file must be filedef’d DEFINE/COMPUTE field format always I1 Handles open, write and close

41 PUTDDREC in Action Expressions FILEDEF PUTDD1 DISK putdd1.dat
TABLE FILE EMPLOYEE PRINT EMP_ID CURR_JOBCODE AS 'JOB' CURR_SAL COMPUTE SALA/A12 = EDIT(CURR_SAL); NOPRINT COMPUTE EMP1/A50= LAST_NAME|FIRST_NAME|EMP_ID|CURR_JOBCODE|SALA; NOPRINT COMPUTE OUT1/I1 = PUTDDREC('PUTDD1',6, EMP1, 50, OUT1); BY LAST_NAME BY FIRST_NAME END

42 Expressions - PUTDDREC
LAST_NAME FIRST_NAME EMP_ID JOB CURR_SAL OUT1 BANNING JOHN A17 $29, BLACKWOOD ROSEMARIE B04 $21, CROSS BARBARA A17 $27, GREENSPAN MARY A $9, IRVING JOAN A15 $26, JONES DIANE B03 $18, MCCOY JOHN B02 $18, MCKNIGHT ROGER B02 $16, ROMANS ANTHONY B04 $21, SMITH MARY B14 $13, RICHARD A $9, STEVENS ALFRED A07 $11, Report Created

43 Expressions - PUTDDREC
Sequential File Created BANNING JOHN A BLACKWOOD ROSEMARIE B CROSS BARBARA A GREENSPAN MARY A IRVING JOAN A JONES DIANE B MCCOY JOHN B MCKNIGHT ROGER B ROMANS ANTHONY B SMITH MARY B SMITH RICHARD A STEVENS ALFRED A

44 PUTDDREC Considerations:
Expressions PUTDDREC Considerations: Create fixed data file to fit a specific Master file Create comma-delimited data file for loading System and User &variables are available &MDYY, &FOCCPU, &FOCUSER, etc Write control at any point or multiple points Write to multiple PUTDDREC files in a request

45 Expressions - PUTDDREC
Creating an Index in PDF with PUTDDREC Create a filedef for the index output file. Create request that you want to index. Including HOLD to PDF Including all styling required Add NOPRINTED COMPUTEs that – Test for a change of sort break Use PUTDDREC to put values in file &TABPAGENO Sort Break Value Create index formatting request using index output Run original request as compound pdf, followed by index request, creating single pdf.

46 SQL Friendly User Functions
Expressions SQL Friendly User Functions CHARACTER CHAR_LENGTH (string) DIGITS (number, out length) LOWER (string) LPAD (string, out length, pad char) LTRIM (string) POSITION ( pattern, string) RPAD (string, out length, pad char) RTRIM (string) SUBSTRING (string, position, length) TOKEN (string, delimiter, number) TRIM_ (where, pattern, string) UPPER (string) NUMERIC ABS (number) CEILING (number) EXPONENT (power) FLOOR (number) INT (number) LOG ( number) MAX (num1, num2,…numn) MIN (num1, num2,…numn) MOD (dividend, divisor) POWER (base, power) SQRT (number)

47 SQL Friendly User Functions
Expressions SQL Friendly User Functions DATE/DATETIME DTADD (date, component,increment) DTDIFF (enddate, startdate, component) DTPART (date, component) DTRUNC (date, period) GEOGRAPHIC GIS_GEOMETRY (geotype,wkid, geometry) GIS_IN_POLYGON (longitude, latitude, polygon_definition)

48 Sorting Sorting it Your way Uneven Grouping

49 Sorting – ROWS/COLUMNS
Sorting it your way Sorting is done based on the collation sequence in the codepage in effect on your system AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA BBBBBBBBBBbBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

50 Sorting – ROWS/COLUMNS
Sorting it your way But what if you have a better way to do it! BY <field> ROWS <value> OVER <value>… AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD ACROSS <field> COLUMNS <value> OR <value>… GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG BBBBBBBBBBbBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

51 Sorting – ROWS/COLUMNS
Sorting it your way BY <field> ROWS <value> OVER <value>… But what if you have a better way to do it! ACROSS <field> COLUMNS <value> OR <value>… Implicit selection – only values mentioned are retrieved Each value can have an AS phrase – relabeling Will affect SQL optimization

52 Sorting – ROWS/COLUMNS
Sorting it your way

53 Sorting – PLUS OTHERS Uneven grouping
When you only need the top 5 values – SUM SALES BY HIGHEST 5 SALESREPS And you want a total for all the other values? SUM SALES BY HIGHEST 5 SALESREPS PLUS OTHERS

54 Sorting – PLUS OTHERS Uneven grouping TABLE FILE CAR PRINT
CAR.BODY.DEALER_COST CAR.COMP.CAR BY HIGHEST 2 CAR.BODY.SALES PLUS OTHERS AS 'Others'

55 Sorting – PLUS OTHERS Uneven grouping TABLE FILE CAR PRINT
CAR.BODY.DEALER_COST CAR.COMP.CAR BY HIGHEST 2 CAR.BODY.SALES PLUS OTHERS AS 'Others'

56 More Hidden Gems - Where We Looked
Adding “stuff” to the Hold Master Catch-all for formatting -PRINTPLUS When the data doesn’t line up Combining tables based on ranges Connecting tables with nothing in common Creating the exact record you need Working with more than one record instance at a time Writing to multiple files simultaneously Using SQL friendly user fuunctions Sorting it your way Uneven grouping Questions? 56


Download ppt "More Hidden Gems in the World of Reporting: Part 5"

Similar presentations


Ads by Google