Upload
coby
View
22
Download
0
Tags:
Embed Size (px)
DESCRIPTION
FOCWIZARDS – MacGyver to Solve Your Problems: GUI or Code. Noreen Redden. The Files. FILENAME=ORDERS, SUFFIX=SQLMAC , $ SEGMENT=ORDERS, SEGTYPE=S0, $ FIELDNAME=ORDER_NUM, ALIAS=ORDER_NUM, USAGE=A5, ACTUAL=A5 ,MISSING=ON, $ - PowerPoint PPT Presentation
Citation preview
Copyright 2007, Information Builders. Slide 1
FOCWIZARDS – MacGyver to Solve Your Problems: GUI or Code
Noreen Redden
Copyright 2007, Information Builders. Slide 2
The Files
FILENAME=ORDERS, SUFFIX=SQLMAC , $ SEGMENT=ORDERS, SEGTYPE=S0, $ FIELDNAME=ORDER_NUM, ALIAS=ORDER_NUM, USAGE=A5, ACTUAL=A5 ,MISSING=ON, $ FIELDNAME=PROD_NUM, ALIAS=PROD_NUM, USAGE=A4, ACTUAL=A4 ,MISSING=ON, $ FIELDNAME=ORDER_DATE, ALIAS=ORDER_DATE, USAGE=HYYMDS,ACTUAL=HYYMDS,MISSING=ON, $ FIELDNAME=STORE_CODE, ALIAS=STORE_CODE, USAGE=A6, ACTUAL=A6 ,MISSING=ON, $ FIELDNAME=PLANT_CODE, ALIAS=PLANT_CODE, USAGE=A3, ACTUAL=A3 ,MISSING=ON, $ FIELDNAME=SALES_REP, ALIAS=SALES_REP, USAGE=A50, ACTUAL=A50 ,MISSING=ON, $ FIELDNAME=QUANTITY, ALIAS=QUANTITY, USAGE=I11, ACTUAL=I4 ,MISSING=ON, $ FIELDNAME=LINEPRICE, ALIAS=LINEPRICE, USAGE=D20.2, ACTUAL=D8 ,MISSING=ON, $ FIELDNAME=LINE_COGS, ALIAS=LINE_COGS, USAGE=D20.2, ACTUAL=D8 ,MISSING=ON, $ FIELDNAME=RETURNS, ALIAS=RETURNS, USAGE=I11, ACTUAL=I4, ,MISSING=ON, $ FIELDNAME=WARRANTYEXP, ALIAS=WARRANTYEXP, USAGE=D20.2, ACTUAL=D8 ,MISSING=ON, $ FIELDNAME=SHIPPINGCOST, ALIAS=SHIPPINGCOST, USAGE=D20.2, ACTUAL=D8 ,MISSING=ON, $
FILENAME=STORES_EN, SUFFIX=SQLMAC , $
SEGMENT=STORES_EN, SEGTYPE=S0, $
FIELDNAME=STORE_CODE, ALIAS=STORE_CODE, USAGE=A6, ACTUAL=A6 ,MISSING=ON, $
FIELDNAME=STORENAME, ALIAS=STORENAME, USAGE=A30, ACTUAL=A30, MISSING=ON, $
FIELDNAME=COUNTRY, ALIAS=COUNTRY, USAGE=A15, ACTUAL=A15, MISSING=ON, $
FIELDNAME=REGION, ALIAS=REGION, USAGE=A25, ACTUAL=A2 MISSING=ON, $
FIELDNAME=STATE, ALIAS=STATE, USAGE=A25, ACTUAL=A25, MISSING=ON, $
FIELDNAME=CITY, ALIAS=CITY, USAGE=A25, ACTUAL=A25, MISSING=ON, $
FILENAME=INVENTORY_EN, SUFFIX=SQLMAC , $
SEGMENT=INVENTORY_EN, SEGTYPE=S0, $
FIELDNAME=PROD_NUM, ALIAS=PROD_NUM, USAGE=A4, ACTUAL=A4, MISSING=ON, $
FIELDNAME=PRODTYPE, ALIAS=PRODTYPE, USAGE=A15, ACTUAL=A15, MISSING=ON, $
Copyright 2007, Information Builders. Slide 3
The First Report Requested
Copyright 2007, Information Builders. Slide 4
No Problem
Copyright 2007, Information Builders. Slide 5
No Problem
Copyright 2007, Information Builders. Slide 6
Report 1
TABLE FILE ORDERSSUM SALES COST COMPUTE PROFIT/D12.2 = LINEPRICE – LINE_COGS; MARGINBY REGION NOPRINTBY STATE NOPRINTBY HIGHEST TOTAL PROFIT NOPRINTBY CITYBY STORENAMEHEADING"Report of Sales”"Region <REGION""State <STATE""For Year &Order_Year "Where Order_Year EQ &Order_Year END
Copyright 2007, Information Builders. Slide 7
And Then They Asked for: No Problem
Copyright 2007, Information Builders. Slide 8
Add A JOIN file; Change the Sort field …
Copyright 2007, Information Builders. Slide 9
Report 1
TABLE FILE ORDERSSUM SALES COST COMPUTE PROFIT/D12.2 = LINEPRICE – LINE_COGS; MARGINBY REGION NOPRINTBY STATE NOPRINTBY HIGHEST TOTAL PROFIT NOPRINTBY PRODTYPEHEADING"Report of Sales”"Region <REGION""State <STATE""For Year &Order_Year "Where Order_Year EQ &Order_Year END
Copyright 2007, Information Builders. Slide 10
Can You Put Them Together? (With Totals Please)
Copyright 2007, Information Builders. Slide 11
No Problem – Compound PDF
SET COMPOUND EXEC Report1 SUM … BY REGION BY STATE BY CITY EXEC Report2 SUM … BY REGION BY STATE BY PRODUCT EXEC Report3 SUM … BY REGION BY STATE
Output Report1 for All States within Region Report2 for All States with Region Report3 for All States within Region
OR Report1, Report2, Report3 for New Jersey Report1, Report2, Report3 for New York Report1, Report2, Report3 for Pennsylvania
Copyright 2007, Information Builders. Slide 12
And, of course, And “Burstable” by State
Copyright 2007, Information Builders. Slide 13
Suppose We Had 3 Copies of each record,
ORDER_NUM PROD_NUM STORE_CODE CITYSTATEREGIONPROFITCopy_number
ORDER_NUM PROD_NUM STORE_CODE CITYSTATEREGIONPROFITCopy_number
DEFINE FILE ORDERSSRT/A10 = IF Copy_number EQ 1 THEN CITY ELSE IF Copy_number EQ 2 THEN PROD_TYPE ELSE 'TOTAL'ENDTABLE FILE ORDERSSUM SALES COMPUTE PROFIT…BY REGION BY CITYBY Copy_number NOPRINTBY HIGHEST TOTAL PROFITBY SRT AS ''END
Copyright 2007, Information Builders. Slide 14
The McGyver Master
FILENAME=FOCMCGYV, SUFFIX=FIX, SEGNAME=ONE, SEGTYPE=S0 FIELDNAME=CONTROL, ,A1,A1,$
. . . SEGNAME=TWO, SEGTYPE=S0,PARENT=ONE , OCCURS = VARIABLE FIELDNAME=CHAR1,,A1, A1, $ FIELDNAME=CTR,ALIAS=ORDER, FORMAT=I4 , I4, $DEFINE REPORT_NUMBER/I4 = CTR;
Copyright 2007, Information Builders. Slide 15
What to do? Enter McGyver
A Record is one instance of each referenced Segment/TABLE.
DEFINE fields are created at the lowest Segment/TABLE referenced in the DEFINE expression.
McGyver: Create a lower level segment with DEFINE based JOIN Higher level fields are inherited by the lower level segment Use DEFINE to use the higher level fields at the report
number level.
Copyright 2007, Information Builders. Slide 16
Original Data
Copyright 2007, Information Builders. Slide 17
McGyver JOIN
JOIN CONTROL WITH STORENAME IN orders TO UNIQUE FOCMCGYV.ROOT_SEG.CONTROL IN FOCMCGYV AS J2 END
DEFINE FILE ordersCONTROL/A1 WITH STORENAME = ‘X’;END
Copyright 2007, Information Builders. Slide 18
Now We Have
CHAR1CTR
CHAR1CTR
CONTROL
ORDER_NUM PROD_NUM STORE_CODE CITYSTATEREGIONPROFIT
ORDER_NUM PROD_NUM STORE_CODE CITYSTATEREGIONPROFIT
DEFINE FILE ORDERSCONTROL/A1 WITH STORENAME = 'X';END
TABLE FILE ORDERSPRINT LINEPRICE COMPUTE RECNO/I5 = RECNO + 1; AS 'Record Number' BY REGION BY STATE BY CITY BY STORENAME BY PRODTYPEBY CTRWHERE CTR LE 3END
Copyright 2007, Information Builders. Slide 19
Records AFTER the JOIN
Copyright 2007, Information Builders. Slide 20
Let’s Look At this Logically
Report 1 Report 2 Report 3
Sort 1 Region Region Region
Sort 2 State State State
Sort 3 1 2 3
Sort 4 HIGHEST TOTAL PROFIT
HIGHEST TOTAL PROFIT
N/A
Sort 5 CITY Product Type “Total”
Sort 6 Store Name N/A N/A
Copyright 2007, Information Builders. Slide 21
Now We Have
FILEDEF FOCMCGYV DISK-RUN … -WRITE FOCMCGYV X12345-RUN
JOIN CONTROL WITH STORENAME IN ORDERS TO UNIQUE FOCMCGYV.ROOT_SEG.CONTROL IN FOCMCGYV AS J2 END
DEFINE FILE ORDERSCONTROL/A1 WITH STORENAME='X';SRT5/A30=IF COUNTER EQ 1 THEN CITY ELSE IF COUNTER EQ 2 THEN PRODCAT ELSEIF COUNTER EQ 3 THEN ' ' ELSE ' ';SRT6/A30=IF COUNTER EQ 1 THEN STORENAME ELSE ' ';END-RUN
Report 1
Report 2
Report 3
Sort 1/2
Region/State
Region/State
Region/State
Sort 3
(CTR)
1 2 3
Sort 5 CITY Product Type
Total
Sort 6 Store Name
N/A N/A
Copyright 2007, Information Builders. Slide 22
Now We Have
Copyright 2007, Information Builders. Slide 23
McGyver – Putting it All Together
FileFILE=FOCMCG,SUFFIX=FIXSEGNAME=ONE,SEGTYPE=S0 FIELD=CONTROL,WHICH,A1,A1,$SEGNAME=TWO,OCCURS=VARIABLE FIELD=CHAR ,CHAR , A1,A1,$ FIELD=COUNTER,ORDER, I4,I4,$
-WRITE FOCMCG X1234
JOINJOIN CONTROL WITH field IN host TO CONTROL IN FOCMCG AS J1
DEFINEDEFINE FILE HOSTCONTROL/A1 WITH field = ‘X’;Sortfield/Axx = IF COUNTER EQ 1 THEN …
Copyright 2007, Information Builders. Slide 24
No Problem - JOINs
Copyright 2007, Information Builders. Slide 25
No Problem – DEFINEs
DEFINE FILE ORDERSCONTROL/A1 WITH STORENAME='X';
ORDER_YEAR/YY=HPART(ORDER_DATE, 'YEAR', 'YY');
SRT5/A30= IF COUNTER EQ 1 THEN CITY ELSE IF COUNTER EQ 2 THEN PRODCAT ELSE IF COUNTER EQ 3 THEN ‘Total ' ELSE ' ';
SRT6/A30=IF COUNTER EQ 1 THEN STORENAME ELSE ' ';END
Copyright 2007, Information Builders. Slide 26
No Problem – TABLE
TABLE FILE ORDERSSUM SRT6 AS '' LINEPRICE AS 'Sales' LINE_COGS AS 'Cost' COMPUTE Profit/D12.2 = LINEPRICE - LINE_COGS; COMPUTE Margin/D12.2 = Profit / LINE_COGS;BY REGION NOPRINT BY STATE NOPRINTBY COUNTER NOPRINTBY TOTAL HIGHEST Profit NOPRINTBY SRT5 AS ''ON STATE PAGE-BREAKON COUNTER SUBHEAD"Stores Ranked by Profit"WHEN COUNTER EQ 1;ON COUNTER SUBHEAD"Products Ranked by Profit"WHEN COUNTER EQ 2;ON COUNTER SKIP-LINEON SRT5 SKIP-LINE
Copyright 2007, Information Builders. Slide 27
Copyright 2007, Information Builders. Slide 28
Totals on Top ??
Copyright 2007, Information Builders. Slide 29
No Problem – TABLE
DEFINE FILE ORDERSCONTROL/A1 WITH STORENAME='X';…XSRT/I1 = IF COUNTER EQ 3 THEN 1 ELSE 2;END
TABLE FILE ORDERSSUM …BY REGION NOPRINTBY STATE NOPRINTBY XSRT NOPRINTBY COUNTER NOPRINT …
Copyright 2007, Information Builders. Slide 30
Build the Launch Page
Parameterize the Report:
WHERE REGION EQ
'®ION.(FIND REGION IN STORES_EN).REGION.';
WHERE COUNTRY EQ
'&COUNTRY.(FIND COUNTRY IN STORES_EN).COUNTRY.';
WHERE ORDER_YEAR EQ
'&ORDER_YEAR.(<2003,2003>,<2004,2004>).Year.';
WHERE COUNTER EQ
&COUNTER.(OR(<Total By State,3>,<Total by State/Store,1>,<Total by State/Product,2>)).Report.
Copyright 2007, Information Builders. Slide 31
Build the Launch PageParameterize the Report
Copyright 2007, Information Builders. Slide 32
The Launch Page Parameters
Copyright 2007, Information Builders. Slide 33
The Launch Page Parameters
Copyright 2007, Information Builders. Slide 34
Running – All Three Options
Copyright 2007, Information Builders. Slide 35
Need Another?
Report Number
1 2 3 4
Sort 1 Region Region Region Region
Sort 2 State State State N/A
Sort 3 3 3 2 1
Sort 4 HIGHEST TOTAL PROFIT
HIGHEST TOTAL PROFIT
N/A HIGHEST TOTAL PROFIT
Sort 5 CITY Product Type
Total STATE
Sort 6 Store Name N/A N/A N/A
Copyright 2007, Information Builders. Slide 36
What to Do?
• Add Option 4 to the DEFINEDEFINE FILE ORDERSSRT2/A30=IF COUNTER EQ 4 THEN ' ' ELSE STATE;SRT5/A30= IF COUNTER EQ 1 THEN CITY ELSE IF COUNTER EQ 2 THEN PRODCAT ELSE IF COUNTER EQ 3 THEN 'Total ' ELSE IF COUNTER EQ 4 THEN STATE ELSE ' ';SRT6/A30=IF COUNTER EQ 1 THEN STORENAME ELSE ' ';SRT3/I1 = IF COUNTER EQ 4 THEN 1 ELSE IF COUNTER EQ 3 THEN 2 ELSE 3;OVER_SRT/I1 = IF COUNTER EQ 4 THEN 1 ELSE 2;END
• Change launch page and include New Parameter Value for Option.
Copyright 2007, Information Builders. Slide 37
The Launch Page Parameters
Copyright 2007, Information Builders. Slide 38
Output – Really Close, but HEADING ?
Copyright 2007, Information Builders. Slide 39
McGyver Even works with COMPUTE
• COMPUTE HEADING field based on COUNTER.
• Since COUNTER is numeric, ALWAYS use the Average (AVE.) in COMPUTES.
COMPUTE MYTITLE/A60 = IF AVE.COUNTER EQ 4 THEN ' ' ELSE 'State: ' | STATE;
HEADING"Report of Sales""Region: <REGION ""<MYTITLE""For Year: <Order_Year "
Copyright 2007, Information Builders. Slide 40
Output
Copyright 2007, Information Builders. Slide 41
Output
Copyright 2007, Information Builders. Slide 42
Output
Copyright 2007, Information Builders. Slide 43
Oh, that Telephone Book?
FILEDEF focmcgyv DISK c:\ibi\apps\baseapp\focmcgyv.txt -RUN-WRITE focmcgyv X123-RUNJOIN CONTROL WITH PIN IN EMPDATA TO CONTROL IN FOCMCGYV AS AB-RUNDEFINE FILE EMPDATACONTROL/A1 WITH PIN = 'X';SORTFLD/A20 = IF ORDER EQ 1 THEN DEPT ELSE IF ORDER EQ 2 THEN LASTNAME ELSE FIRSTNAME;WHCHSRT/A15 = IF ORDER EQ 1 THEN 'Department' ELSE IF ORDER EQ 2 THEN 'Last Name' ELSE 'First Name';
END
Copyright 2007, Information Builders. Slide 44
Oh, that Telephone Book?
TABLE FILE EMPDATAPRINT COMPUTE COL1/A20 = IF AVE.ORDER EQ 1 OR 2 THEN FIRSTNAME ELSE IF AVE.ORDER EQ 3 THEN LASTNAME ELSE DEPT; AS '' COMPUTE COL2/A20 = IF AVE.ORDER EQ 1 THEN LASTNAME ELSE DEPT ; AS '' BY ORDER NOPRINT PAGE-BREAK BY SORTFLD AS '' BY ORDER NOPRINT PAGE-BREAK BY SORTFLD NOPRINTON TABLE HOLD AS CEMP1 FORMAT PPTWHERE ORDER LE 3HEADING"REPORT OF EMPLOYEES SORTED BY <WHCHSRT "…END
Copyright 2007, Information Builders. Slide 45
Report of Employees Sorted BY Department
ACCOUNTING EVELYN SANCHEZTIM ANDERSONBEN SOPENAJOHN WANGANNE LOPEZ
ADMIN SERVICES WILLIAM MORANLAURA GORDON
CONSULTING KATE WANGKARL WHITEDAVID ELLNER
CUSTOMER SUPPORT ANTHONY RUSSOVERONICA WHITEROSE HIRSCHMANERWIN FERNSTEIN
MARKETING DANIEL VALINOMICHAEL BELLARUTH ADAMSDORINA PATELPAMELA SOMARCUS CVEKCASSANDRA LEWISJEFF LIEBERERICA DONATELLOCHRIS GOTLIEBMARSHALL CONTI
PERSONNEL MARIANNE PULASKIJIM NOZAWAYOLANDA KASHMANADAM CONRADELAINE GRAFF
PROGRAMMING & DVLPMT KATRINA ROSENTHALMARIE CASTALANETTAARLEEN MARTINCAROL PUMA
SALES LOIS CASSANOVAPETER ADDAMSMARK MEDINAKAREN LASTRAERIC DUBOISWILMA OLSONHENRY CHISOLM
Copyright 2007, Information Builders. Slide 46
Report of Employees Sorted BY Last Name
ADAMS RUTH MARKETINGADDAMS PETER SALESANDERSON TIM ACCOUNTINGBELLA MICHAEL MARKETINGCASSANOVA LOIS SALESCASTALANETTA MARIE PROGRAMMING & DVLPMTCHISOLM HENRY SALESCONRAD ADAM PERSONNELCONTI MARSHALL MARKETINGCVEK MARCUS MARKETINGDONATELLO ERICA MARKETINGDUBOIS ERIC SALESELLNER DAVID CONSULTINGFERNSTEIN ERWIN CUSTOMER SUPPORTGORDON LAURA ADMIN SERVICESGOTLIEB CHRIS MARKETINGGRAFF ELAINE PERSONNELHIRSCHMAN ROSE CUSTOMER SUPPORTKASHMAN YOLANDA PERSONNELLASTRA KAREN SALESLEWIS CASSANDRA MARKETINGLIEBER JEFF MARKETINGLOPEZ ANNE ACCOUNTINGMARTIN ARLEEN PROGRAMMING & DVLPMTMEDINA MARK SALESMORAN WILLIAM ADMIN SERVICESNOZAWA JIM PERSONNELOLSON WILMA SALESPATEL DORINA MARKETINGPULASKI MARIANNE PERSONNELPUMA CAROL PROGRAMMING & DVLPMTROSENTHAL KATRINA PROGRAMMING & DVLPMTRUSSO ANTHONY CUSTOMER SUPPORTSANCHEZ EVELYN ACCOUNTINGSO PAMELA MARKETINGSOPENA BEN ACCOUNTINGVALINO DANIEL MARKETINGWANG KATE CONSULTING
JOHN ACCOUNTINGWHITE VERONICA CUSTOMER SUPPORT
KARL CONSULTING
Copyright 2007, Information Builders. Slide 47
Report of Employees Sorted BY First Name
ADAM CONRAD PERSONNELANNE LOPEZ ACCOUNTINGANTHONY RUSSO CUSTOMER SUPPORTARLEEN MARTIN PROGRAMMING & DVLPMTBEN SOPENA ACCOUNTINGCAROL PUMA PROGRAMMING & DVLPMTCASSANDRA LEWIS MARKETINGCHRIS GOTLIEB MARKETINGDANIEL VALINO MARKETINGDAVID ELLNER CONSULTINGDORINA PATEL MARKETINGELAINE GRAFF PERSONNELERIC DUBOIS SALESERICA DONATELLO MARKETINGERWIN FERNSTEIN CUSTOMER SUPPORTEVELYN SANCHEZ ACCOUNTINGHENRY CHISOLM SALESJEFF LIEBER MARKETINGJIM NOZAWA PERSONNELJOHN WANG ACCOUNTINGKAREN LASTRA SALESKARL WHITE CONSULTINGKATE WANG CONSULTINGKATRINA ROSENTHAL PROGRAMMING & DVLPMTLAURA GORDON ADMIN SERVICESLOIS CASSANOVA SALESMARCUS CVEK MARKETINGMARIANNE PULASKI PERSONNELMARIE CASTALANETTA PROGRAMMING & DVLPMTMARK MEDINA SALESMARSHALL CONTI MARKETINGMICHAEL BELLA MARKETINGPAMELA SO MARKETINGPETER ADDAMS SALESROSE HIRSCHMAN CUSTOMER SUPPORTRUTH ADAMS MARKETINGTIM ANDERSON ACCOUNTINGVERONICA WHITE CUSTOMER SUPPORTWILLIAM MORAN ADMIN SERVICESWILMA OLSON SALESYOLANDA KASHMAN PERSONNEL
Copyright 2007, Information Builders. Slide 48
The McGyver TechniqueThanks for Coming the Correct Tool