Off To See The Wizards: The FOCWIZARDS FOCWIZARDS: Noreen Redden Art Greenhaus With help from FOCAL...
-
Upload
easter-park -
Category
Documents
-
view
233 -
download
6
Transcript of Off To See The Wizards: The FOCWIZARDS FOCWIZARDS: Noreen Redden Art Greenhaus With help from FOCAL...
Off To See The Wizards: The FOCWIZARDS
FOCWIZARDS: Noreen Redden Art Greenhaus
With help from FOCAL POINT Wizards
Copyright 2011, Information Builders. Slide 1
Copyright 2007, Information Builders. Slide 2
Alchemy Easy Changes to Make Golden
Reports Potions
Outputs the way you need them The Rabbit in the Hat
McGyver Of Course
Agenda
Copyright 2007, Information Builders. Slide 3
Alchemy
How Do I
• Change a Numeric Field to Alpha, but still retain
the ability to SUBTOTAL?
• Change a Filter to be Automatic?
• Change the definition of a Year so that it does not necessarily begin on January 1st?
• Display negative numbers as positive, but retain the value as negative for Subtotals, Styling, etc.
Division Employee Salary Hire Date
CE 000000040 *****$62,500.00 Tuesday, May 1 1990
000000050 *****$54,100.00 Wednesday, March 15 1989
000000180 *****$25,400.00 Wednesday, December 5 1990
000000200 ****$115,000.00 Monday, April 3 1989
000000240 *****$33,300.00 Wednesday, March 14 1990
000000250 *****$25,000.00 Friday, March 30 1990
000000260 *****$49,500.00 Tuesday, May 1 1990
000000290 *****$40,900.00 Wednesday, March 20 1991
000000360 *****$43,000.00 Wednesday, February 7 1990
000000390 *****$45,000.00 Wednesday, July 11 1990
Total Division ****$493,700.00
Changing Numeric Fields to AlphaWhat I need
Changing numeric fields to alpha but …EDIT , FTOA , PTOA , and now: FPRINT SET SUMMARYLINES=NEW DEFINE FILE EMPDATA BLNK/A1 = ' '; END TABLE FILE EMPDATA PRINT COMPUTE ASAL/A15 = STRREP(15, (FPRINT(SALARY,'D12.2M', 'A15')), 1, ' ', 1, '*', 15, ASAL); NOPRINT ASAL/R AS 'Salary' COMPUTE HIREDT1/A30 = FPRINT(HIREDATE,'wrMtrDYY','A30'); AS 'Hire Date' BY DIV AS 'Division' PAGE-BREAK BY BLNK NOPRINT RECOMPUTE ASAL AS 'Total Division' BY PIN AS 'Employee' ON TABLE RECOMPUTE ASAL AS 'Company Total' ON TABLE SET PAGE NOPAGE
Division Employee Salary Hire Date
CE 000000040 *****$62,500.00 Tuesday, May 1 1990
000000050 *****$54,100.00 Wednesday, March 15 1989
000000180 *****$25,400.00 Wednesday, December 5 1990
000000200 ****$115,000.00 Monday, April 3 1989
000000240 *****$33,300.00 Wednesday, March 14 1990
000000250 *****$25,000.00 Friday, March 30 1990
000000260 *****$49,500.00 Tuesday, May 1 1990
000000290 *****$40,900.00 Wednesday, March 20 1991
000000360 *****$43,000.00 Wednesday, February 7 1990
000000390 *****$45,000.00 Wednesday, July 11 1990
Total Division ****$493,700.00
Changing Numeric Fields to AlphaFPRINT
Changing the Filter to Be Automatic FILENAME=EMPDATA, SUFFIX=FOC
SEGNAME=EMPDATA, SEGTYPE=S1 FIELDNAME=PIN, ALIAS=ID, FORMAT=A9, INDEX=I, $ FIELDNAME=LASTNAME, ALIAS=LN, FORMAT=A15, $ FIELDNAME=FIRSTNAME, ALIAS=FN, FORMAT=A10, $ FIELDNAME=MIDINITIAL, ALIAS=MI, FORMAT=A1, $ … END DBA=DBA,$ USER=MGT,ACCESS=R,$ USER=' ',ACCESS=R,RESTRICT=VALUE_WHERE,NAME=SYSTEM, VALUE=DIV NE 'CORP' AND (TITLE OMITS 'VICE' OR SALARY LE 100000);,$
Changing Display of Date-Time As Well With a Tip of the Hat to Francis Mariani
TABLE FILE EMPDATA PRINT PIN SALARYCOMPUTE TRANSDT2/A20 = CTRAN(20, (CTRAN(20, (FPRINT(TRANSDATE,'HYYMDS','A20')), BYTVAL('/','I2') , BYTVAL('-','I2'), 'A20')), BYTVAL(':','I2'),BYTVAL(',','I2'),'A20'); ON TABLE SET PAGE NOPAGE … NUMBER OF RECORDS IN TABLE= 32 LINES= 32
ACCESS LIMITED BY PASSWORD
PIN SALARY HIRE DATE
000000020 $62,500.00 1990-07-18 09,00,00
000000030 $70,000.00 1990-04-11 09,00,00000000040 $62,500.00 1990-05-01 09,00,27
000000050 $54,100.00 1989-03-15 09,00,10
000000060 $55,500.00 1989-03-01 09,01,10000000080 $43,400.00 1991-02-13 09,00,47
000000090 $33,000.00 1990-04-03 09,00,11
000000110 $19,300.00 1990-05-09 09,01,39
000000120 $49,500.00 1990-04-02 09,00,39
000000140 $62,500.00 1989-05-10 09,00,38
000000150 $40,900.00 1989-04-19 09,00,45
000000160 $62,500.00 1990-09-12 09,01,35
000000170 $30,800.00 1991-03-12 09,01,35
000000180 $25,400.00 1990-12-05 09,00,46
000000190 $39,000.00 1990-10-10 09,01,24
000000210 $43,600.00 1991-01-07 09,00,33
Automatic Filter and Change Date Display
FISCALYR
2010 2011
DIV
CORP 2011/03/05 2011/07/12
. 2011/05/14
. 2011/06/04
. 2011/05/10
. 2011/05/16
. 2011/05/08
. 2011/11/07
NE 2011/03/01 2011/05/09
2011/01/07 2011/05/10
2011/03/21 2011/10/10
2011/04/02 .
My Fiscal Year Begins on The First Business Day in May
Changing The Start of the Year Tip of the Hat to John Kutasz
-SET &INDT=20110501; DEFINE FUNCTION OUTBD/A8YYMD (INDT/A8) ST/A8YYMD = EDIT(INDT,'999999') | '01'; STSM/YYMD =DATECVT(ST,'A8YYMD','YYMD'); STBD/YYMD =DATEMOV(STSM,'BD+'); OUTBD/A8YYMD= DATECVT(STBD,'YYMD','A8YYMD'); END -RUN -SET &OUTBD2 = OUTBD(&INDT|'X'); -******************************************************* -SET &ST = EDIT(&INDT,'999999$$') | '01'; -SET &STSM=DATECVT(&ST,'I8YYMD','YYMD'); -SET &STBD=DATEMOV(&STSM,'BD+'); -SET &OUTBD = DATECVT(&STBD,'YYMD','I8YYMD'); -SET &OUTBD1= DATECVT( - (DATEMOV( - (DATECVT(&ST,'I8YYMD','YYMD')), - 'BD+')) ,'YYMD','I8YYMD'); -TYPE &OUTBD1 displays 20110502
Changing The Start of the Year
DEFINE FILE EMPDATA FISCALYR/YY = FIYR(HIRE_DATE,'D',&MM,&DD,'FYS ','YY'); END SET ACROSSPRT = COMPRESS TABLE FILE EMPDATA PRINT HIRE_DATE ACROSS FISCALYR BY DIV WHERE DIV EQ 'CORP' OR 'NE‘END
FISCALYR
2010 2011
DIV
CORP 2011/03/05 2011/07/12
. 2011/05/14
. 2011/06/04
. 2011/05/10
. 2011/05/16
. 2011/05/08
. 2011/11/07
NE 2011/03/01 2011/05/09
2011/01/07 2011/05/10
2011/03/21 2011/10/10
2011/04/02 .
My Fiscal Year Begins on The First Business Day in May
Erase Negative From Your Mind SET DROPBLNKLINE=ONTABLE FILE GGSALESSUM … COMPUTE diffA/D12.2A = UNITS – BUDUNITS; AS 'Budget vs Actual'BY 'GGSALES.SALES01.CATEGORY‘ SUMMARIZE diffABY 'GGSALES.SALES01.PRODUCT'ON TABLE SET STYLE *…DEFMACRO=COND0002, MACTYPE=RULE, WHEN=N6 LT 0,$ TYPE=DATA, COLUMN=N6, COLOR='RED', MACRO=COND0002,$ENDSTYLEEND
Report of GGSALES
As of May 11, 2011
Category Product Unit Sales Budget Units diff Budget vs Actual
Coffee Capuccino 189217 190370 -1,153.00 1,153.00
Espresso 308986 311357 -2,371.00 2,371.00
Latte 878063 884196 -6,133.00 6,133.00
Food Biscotti 421377 419320 2,057.00 2,057.00
Croissant 630054 629989 65.00 65.00
Scone 333414 328255 5,159.00 5,159.00
Gifts Coffee Grinder 186534 186106 428.00 428.00
Coffee Pot 190695 193028 -2,333.00 2,333.00
Mug 360570 360632 -62.00 62.00
Thermos 190081 191241 -1,160.00 1,160.00
TOTAL -5,503.00 5,503.00
Erase Negative From Your Mind
Copyright 2007, Information Builders. Slide 16
Potions
What Magic Wand Will
• Dynamically Generate and Prompt for Possible Filters (showing the expression)
• Show the Selected Filter(s) in the Report Heading, but no extra blank lines
• Create “flat” HOLD files without extra trailing blanks, and usable even if not in correct sort order
• Transform .mht files so I can use Templates
Ggsales1 MASTER
FILENAME=GGSALES1, SUFFIX=FOC , $ SEGMENT=SALES01, SEGTYPE=S1, $ FIELDNAME=SEQ_NO, ALIAS=SEQ, USAGE=I5, TITLE='Sequence#', DESCRIPTION='Sequence number in database', $ ,,, DEFINE YEAR/A4 WITH SEQ_NO=EDIT( DATE,'9999'); $ FILTER NINETYSEVEN WITH SEQ_NO=YEAR EQ ‘2011'; $ FIELDNAME=UNITS, ALIAS=E10, USAGE=I8C, TITLE='Unit Sales', DESCRIPTION='Number of units sold', $ FIELDNAME=DOLLARS, ALIAS=E11, USAGE=I8C, TITLE='Dollar Sales', DESCRIPTION='Total dollar amount of reported sales', $ FIELDNAME=BUDUNITS, ALIAS=E12, USAGE=I08, TITLE='Budget Units', DESCRIPTION='Number of units budgeted', $ FIELDNAME=BUDDOLLARS, ALIAS=E13, USAGE=I08, TITLE='Budget Dollars', DESCRIPTION='Total sales quota in dollars', $ COMPUTE PCT_OF_BUDGET/F7.2%=UNITS/BUDUNITS * 100;, $ FILTER EAST WITH SEQ_NO=REGION EQ 'Northeast' OR 'Southeast'; $ FILTER FOODS WITH SEQ_NO=CATEGORY EQ 'Coffee' OR 'Food'; $
Copyright 2007, Information Builders. Slide 18
Dynamically Prompt for and Display Filters
Copyright 2007, Information Builders. Slide 18
TABLE FILE SYSCOLUM WHERE TBNAME EQ '&FILENAME' PRINT XREMARKS AS 'DEFINITION' BY SHORTNAME AS 'FILTER_NAME' WHERE DEFINE EQ 'F' ON TABLE HOLD AS OUTPT1 FORMAT DFIX DELIMITER '|' END -RUN -SET &MAX = &LINES ;-REPEAT ENDLP FOR &I FROM 1 TO &MAX -READFILE OUTPT1 -SET &FLTRNME.&I= &FILTER_NAME; -SET &FILTERDEF.&I = SUBSTR(256,&DEFINITION ,1,75,75,'A75'); -SET &SEL.&I = 'N'; -ENDLP
Copyright 2007, Information Builders. Slide 19
Filter Information Dynamically in Report
Copyright 2007, Information Builders. Slide 19
-REPEAT ENDL2 FOR &I FROM 1 TO &MAX
-SET &FILTERDF.&I = IF &SEL.&I EQ 'N' THEN ' ' ELSE - 'FILTER: ' | &FILTERDEF.&I; -ENDL2 TABLE FILE GGSALES1 HEADING "</2 REPORT OF SALES AS OF &DATEMTRDYY "
-REPEAT ENDLP2 FOR &I FROM 1 TO &MAX
-IF &SEL.&I NE 'Y' GOTO ENDLP2; "&FILTERDF.&I " -ENDLP2
Copyright 2007, Information Builders. Slide 20
Filter Information Dynamically in Report
Copyright 2007, Information Builders. Slide 20
SUM DOLLARS ACROSS YEAR BY FILL AS '' BY CATEGORY BY PRODUCT
-REPEAT ENDLP3 FOR &I FROM 1 TO &MAX -IF &SEL.&I NE 'Y' GOTO ENDLP3; WHERE &FLTRNME.&I -ENDLP3 ON CATEGORY SUBTOTAL AS 'Total Category' ON TABLE SUBTOTAL AS 'Total' ON TABLE HOLD AS OUTPT FORMAT PPT ON TABLE SET STYLE * $ INCLUDE = ENDEFLT, $ LEFTMARGIN=0.500000, RIGHTMARGIN=0.500000, …
Copyright 2007, Information Builders. Slide 21
Filter Information Dynamically in Report
Copyright 2007, Information Builders. Slide 21
TABLE FILE GGSALES1 HEADING " REPORT OF SALES AS OF MAY 10, 2011 " "FILTER: YEAR EQ '2011'; " "FILTER: CATEGORY EQ 'Coffee' OR 'Food' ; " SUM DOLLARS ACROSS YEAR BY CATEGORY BY PRODUCT WHERE CURRENT WHERE FOODS ON CATEGORY SUBTOTAL …END
REPORT OF SALES AS OF MAY 10, 2011 FILTER: YEAR EQ '2011'; FILTER: CATEGORY EQ 'Coffee' OR 'Food' ;
YEAR
2011Category Product
Coffee Capuccino 1284710
Espresso 1853343
Latte 5505283Total Category Coffee 8643336
Food Biscotti 2387629Croissant 3976559Scone 2032570
Total Category Food 8396758Total 17040094
Filter Information Dynamically in Report
WEBFOCUS Excel Templates Wizards Hat for Tony Alsford
Companies Upgrading Office applications to Office 2007Move away from macrosMove away from formulaeSingle page Web archive (.mht document)
Utilize Script of MS Excel (similar to VB Script)Create temporary MS EXCEL file in the temp folder Use –WRITE to create the procfile.vbs
Execution opens an instance of EXCEL Activates required sheet, changes font, etc.; Adds formulae if required Saves as Excel 2003 compatible
JOIN to a Sequential File Doesn’t Work
JOIN to a Sequential file requires Both files must be sorted in ASCENDING order
Different Sort Orders? Many-to-many is not supported.
(FOC1070) VALUE FOR JOIN 'FROM' FIELD OUT OF SEQUENCE. RETRIEVAL ENDED (FOC1071) VALUE FOR JOIN 'TO' FIELD OUT OF SEQUENCE. RETRIEVAL ENDED (FOC1072) DUPLICATES IN JOIN 'FROM' FIELD %1%2%3%4
GGSALES1 is in Sequence by SEQ_NO
Multiple instances for each Region
HISTORY is in Sequence by Region
Historical
Region Unit Sales Units
Midwest 903456 343755
Northeast 916675 340951
Southeast 935232 359305
West 932039 348517
FOCUS Error Message 107x be gone
JOINREGION IN GGSALES1 TO MULTIPLE REGION IN HISTORY TAG J0 AS J0 ENDENGINE INT CACHE SET ONTABLE FILE GGSALES1SUM 'GGSALES1.SALES01.UNITS' 'AVE.J0.HISTORY.HISTUNITS' AS 'Historical,Units'BY 'GGSALES1.SALES01.REGION‘END
Copyright 2007, Information Builders. Slide 26
The Rabbit In the Hat -- McGyver
How Do I
• Use ACROSS Year, but show different verb objects for each across value
• List
• Details sorted within several different Dimensions
• Subtotals of each value in the lower Dimension
Copyright 2007, Information Builders. Slide 27
McGyver – How to Look at a Single Record Multiple Ways
Copyright 2007, Information Builders. Slide 27
-WRITE FOCMCGYV X1234567890 -RUN JOIN CONTROL WITH SEQ_NO IN GGSALES1 TO CONTROL IN FOCMCGYV AS AJ -RUN -STEP2 DEFINE FILE GGSALES1 CONTROL/A1 WITH SEQ_NO = 'X'; AOUNTER/I1 = (COUNTER +1) /2; BOUNTER/I1 = IMOD(COUNTER,2,'I1'); VO/I9C = IF AOUNTER EQ 1 THEN BUDDOLLARS ELSE IF AOUNTER EQ 2 THEN DOLLARS; VOTITL1/A6 = IF AOUNTER EQ 1 THEN 'BUDGET' ELSE IF AOUNTER EQ 2 THEN 'ACTUAL' ELSE ' '; BY2/A2 = IF BOUNTER EQ 0 THEN ST ELSE ' '; REGION/A11 = IF REGION EQ 'MIDWEST' THEN 'Midwest' ELSE REGION; BLNK/A1= ' '; END
Copyright 2007, Information Builders. Slide 28
Looking at a Single Record Multiple Ways Tip of the Hat to David Smith
Copyright 2007, Information Builders. Slide 28
TABLE FILE GGSALES1 WHERE COUNTER LE 4 WHERE (YEAR EQ '&THISYR' AND AOUNTER LE 2) OR (YEAR EQ '&LSTYR' AND AOUNTER EQ 2) OR (YEAR EQ '&NXTYR' AND AOUNTER EQ 1) SUM VO AS '' ACROSS YEAR ACROSS AOUNTER NOPRINT ACROSS VOTITL1 AS '' BY REGION NOPRINT BY BOUNTER NOPRINT BY BLNK NOPRINT BY BY2 NOPRINT PAGE-BREAK BY PCD AS 'PCD' ON BY2 SUBHEAD "Region: <REGION State: <ST " WHEN BOUNTER EQ 0 ON BOUNTER SUBHEAD "Region Totals" WHEN BOUNTER EQ 1 ON BLNK SUBTOTAL AS 'Total' WHEN BOUNTER EQ 1
YEAR
2010 2011 2012
ACTUAL BUDGET ACTUAL BUDGET
PCD
Region: Midwest State: IL
C141 254,848 179,941 165,591 192,528
C142 428,711 557,990 549,629 597,026
F101 337,553 241,523 257,516 258,421
F102 178,082 200,326 200,330 214,343
F103 253,080 296,063 296,286 316,776
G100 202,175 186,456 174,579 199,495
G104 72,619 101,468 115,282 108,565
McGyver – How to Look at a Single Record Multiple Ways
YEAR2010 2011 2012ACTUAL BUDGET ACTUAL BUDGET
PCD
Region: Midwest State: MOC141 269,942 142,901 149,201 152,898C142 448,590 502,356 518,391 537,497F101 238,167 228,746 243,786 244,747F102 175,008 202,575 193,069 216,748F103 336,941 276,585 276,930 295,934G100 181,146 157,661 162,706 168,685G104 102,790 91,433 92,896 97,829G110 93,095 83,158 88,475 88,973G121 76,564 117,256 113,589 125,457
McGyver – How to Look at a Single Record Multiple Ways
YEAR2010 2011 2012ACTUAL BUDGET ACTUAL BUDGET
PCD
Region: Midwest State: TXC141 297,990 142,990 157,375 152,992C142 406,250 536,972 531,995 574,538F101 252,353 156,591 166,045 167,542F102 160,326 166,363 184,912 177,999F103 262,012 321,013 325,875 343,475G100 189,906 192,668 176,431 206,143G104 101,238 96,518 93,081 103,270G110 107,982 97,147 96,310 103,940G121 107,749 106,366 97,148 113,806
McGyver – How to Look at a Single Record Multiple Ways
YEAR2010 2011 2012ACTUAL BUDGET ACTUAL BUDGET
PCD
Region TotalsC141 822,780 465,832 472,167 498,418C142 1,283,551 1,597,318 1,600,015 1,709,061F101 828,073 626,860 667,347 670,710F102 513,416 569,264 578,311 609,090F103 852,033 893,661 899,091 956,185G100 573,227 536,785 513,716 574,323G104 276,647 289,419 301,259 309,664G110 300,997 324,839 318,157 347,560G121 291,114 323,811 308,764 346,459 Total 5,741,838 5,627,789 5,658,827 6,021,470
McGyver – How to Look at a Single Record Multiple Ways
More Tips from FOCAL POINT Wizards
Large or multiple Compound Reports with NOBREAK By Warren Hinchliffe JavaScript to Validate Date Entry By Tom Flynn and Jeralee Seaburn, Converting and Shortening an Integer to Alphanumeric By Carl Fuglein, Tom Flynn, Gerard van der Paal, and John Lewis Open Drilldown in a New Tab By Marilyn Patchen Beyer McGyver Dynamic Subtotals/SubFoots by David SmithCTRAN Without Pain by Francis Mariani WebFOCUS Excel Templates by Tony AlsfordWebFOCUS MetaDATEs by John KutaszColumn Title Formatting By Warren Hinchliffe Conditional Graph Hover Text By Warren Hinchliffe