CS_Two_Folders

Here's a utility .cmd I created for doing CompareSuite compares against two folders.
 
Download (extracts to 'MyItzybits'): 
http://www.box.net/shared/p2gvyvorkq



Creative Commons License
CS_Two_Folders by Michael T. Bee is licensed under a Creative Commons Attribution 3.0 Unported License.
Based on a work at michaeltbeeitprof.blogspot.com.
Permissions beyond the scope of this license may be available at mailto:michael.t.bee.itprof@gmail.com.

PDFViewer

Here's a utility I created for viewing PDF files.

Download (extracts to 'MyItzybits'): 
http://www.box.net/shared/jsfagmezmd

Just the HTA:
http://www.box.net/shared/jocxhj5uef

The PageForward/Backward (AutoIt) Scripts: 
http://www.box.net/shared/4eu47giktk
http://www.box.net/shared/95no527p4s

History:

09/22/2010 ZoomDefault config added tighted parm processing
08/26/2010 InitPDF startup parm added to allow you to begin on a particular PDF
07/27/2010 Prev ~ Next allow you to scroll in increments of n files.  If 1st file 'Prev' is disabled ~ if last file Next is disabled.



Creative Commons License
PDFViewer by Michael T. Bee is licensed under a Creative Commons Attribution 3.0 Unported License.
Based on a work at michaeltbeeitprof.blogspot.com.
Permissions beyond the scope of this license may be available at mailto:michael.t.bee.itprof@gmail.com.

FEXViewer

Here's a utility I created for viewing WebFocus FEX files.

Download(extracts to 'MyItzyBits'):
http://www.box.net/shared/t66r8y1u8l

WebFocus: Compounded PDF ~ SQLOUT ~ "Nodata" Pagination

There is a lot going on in these examples.  I wouldn’t expect it to be clear without walking through them(which I hope to do a local user group meeting).  Meanwhile, if you have questions or suggestions please drop me a line.

I create smaller parts of a report piecemeal -- then combine them into "_page_1.fex", "_page_2.fex", etc. using “EX” vs. “-INCLUDE”.  I chose this method - because there appears to be inconsistency in how the amper-variables resolve via "-INCLUDE".  However, “EX” requires that you specify each of the variables to be used.

EXAMPLE:

-*-
-* Ethnicity, gender, disability ~
-* &DGRP - 'C'(=Child Count)

-SET &DGRP = 'C';
-RUN
EX ddp_district_demog_page_1 AAA='AAA',
DGRP=&DGRP,
DN=&DN,
DT=&DT,
FIRSTTIME='Y',
GENFILES='Y',
PCHOLD=&PCHOLD,
PDFSTATE=&PDFSTATE,
NOBREAK=&NOBREAK,
NOCLOSE='Y',
PAGENO=&PAGENO,
REPORTNAME=&REPORTNAME,
SCHYR=&SCHYR,
TOTPAGES=&TOTPAGES
-RUN

-SET &NOBREAK = 'NOBREAK';
-SET &PAGENO = &PAGENO + 1;
-SET &FIRSTTIME = 'N';
-RUN
 

-*-
-* Ethnicity, gender, disability ~
-* &DGRP - (serving district='S')

-SET &DGRP='S';
-RUN

EX
ddp_district_demog_page_2 AAA='AAA',
DGRP=&DGRP,
DN=&DN,
DT=&DT,
FIRSTTIME='N',
GENFILES='Y',
PCHOLD=&PCHOLD,
PDFSTATE=&PDFSTATE,
NOBREAK=&NOBREAK,
NOCLOSE='Y',
PAGENO=&PAGENO,
REPORTNAME=&REPORTNAME,
SCHYR=&SCHYR,
TOTPAGES=&TOTPAGES
-RUN


Compounded PDF Screen or disk:

Key to creating multipart reports (think “subreport” from Crystal) is a varying “ON TABLE…” statement using amper variables: ‘ON TABLE &PCHOLD FORMAT PDF &PDFSTATE &NOBREAK’.

Supply these with various values to display the report to the screen or save to disk, and to open the first, middle, or last part of the report.  The example uses a separate .fex calls for each part of the page and a final call to the "page-footer" as "closer" of compounded report(see below).  By default this "footer" fex closes the report – but, for multi-page reports -- for all but the last pages supply an amper-variable “NOCLOSE=’Y’”.

-*-
-* …1st part of the report:
-SET &PDFSTATE='OPEN';
-SET &NOBREAK='NOBREAK';

-*-
-* …2nd part of the report:
-SET &PDFSTATE='';
-SET &NOBREAK='NOBREAK';

-*-
-* …final part of the report:
-SET &PDFSTATE='CLOSE';
-SET &NOBREAK=' ';

-*-
-* For screen
-SET  &PCHOLD='PCHOLD';

-*-
-* For disk
-SET &PCHOLD='HOLD'
-*…in which case you would also _name_ the report and use FILEDEF
If going to the screen


-*-
-* "Footer" example

-IF &NOCLOSE EQ  'Y' GOTO PDFNOCLOSE;
-PDFCLOSE
-SET &PDFSTATE='CLOSE';
-SET &NOBREAK='';
-RUN
-PDFNOCLOSE


When using this method– the WebFocus code has to be “tweaked” to still function in report painter.  IN my code I supply two sets of ‘ON TABLE’ comments just prior to the beginning of the report:

-* For compounded report use:
-*ON TABLE &PCHOLD FORMAT PDF &PDFSTATE &NOBREAK
-*-
-* For painter use:
-*ON TABLE PCHOLD FORMAT PDF

I swap one or the other of these 'ON TABLE' statements in dependent on whether I am preparing the report for production -- or "tweaking" it in the painter.



SQLOUT

Using the default “SQLReport” appears to be problematic.  It appears to work the first time – but, not on subsequent executions.   This has something to do with how configured on our servers– but, to get around the problems we supply a SQL statement to webfocus and use the prepared SQLOUT using this method.

ENGINE SQLMSS SET DEFAULT_CONNECTION MDEDATAB
SQL SQLMSS PREPARE SQLOUT FOR
SELECT…
END
TABLE FILE                      SQLOUT
PRINT

Note:

WebFocus appears to not like T-SQL memory variables.  That is you have to supply very simple amper-variabled  SQL statements vs. “DECLARE …”.




Footing Variables and Empty Reports

If you want a ‘dd-mmm-yyyy’ type date – here’s an example. ‘REPORT_DATE’ is a define created from concatenating the &DATE variable with three different format suffixes.

If you want ‘-Nothing to report’ to appear use the &LINES (system variable) – in combination with your own &NODATA variable.  By default I set to ‘-Nothing to Report’ – but, if I want it to be custum for an individual page I can pass this value into the report for that page.  When &LINES=0 – on the “empty data” condition –BLANKITEM will be set to the &NODATA verbiage and you’ll see that at the top of the report.

-DEFAULT                        &REPORTLINES    =   0;
-SET                            &REPORTLINES    =   &LINES;
DEFINE FILE                     DDP_I_PAGE_FOOTING
NOTHING_TO_REPORT               /A100       =   IF &REPORTLINES EQ 0 THEN '&NODATA.EVAL';
REPORT_DATE                     /A11        =   '&DATED.EVAL' || '-' || '&DATEMt.EVAL' || '-' || '&DATEYY.EVAL';
REPORT_TIME                     /A8         =   STRREP(8,'&TOD.EVAL',1,'.',1,':',8,REPORT_TIME);
BLANKITEM                       /A100       =   IF NOTHING_TO_REPORT NE '' THEN NOTHING_TO_REPORT ELSE '';
DAT_YER_1                       /A5         =   DAT_YER;
END
-RUN

-*ON TABLE &PCHOLD FORMAT PDF &PDFSTATE &NOBREAK
-*ON TABLE PCHOLD FORMAT PDF
TABLE FILE                      DDP_I_PAGE_FOOTING
SUM
                                BLANKITEM           AS ''
BY                              BLANKITEM           NOPRINT
BY                              DAT_YER             NOPRINT
FOOTING BOTTOM
" <+0>&REPORTNAME.EVAL/P"
" <+0>Page &PAGENO.EVAL of &TOTPAGES.EVAL"
WHERE READLIMIT   EQ 1;
WHERE RECORDLIMIT EQ 1;
ON TABLE SET PAGE-NUM OFF
ON TABLE NOTOTAL
ON TABLE &PCHOLD FORMAT PDF &PDFSTATE &NOBREAK

AdobeReader ~ ReadAloud

One of the features of the Adobe Reader I find very useful is "read aloud".  If you have "Streets and Maps" from Microsoft (or Vista~windows 7) -- you can change the default voice from "MS-Sam" to "MS-Anna".

FIND ~ 'Mark All'

You can take keywords in the WebFocus editor and with FIND ~ ‘Mark All’ – amp; establish bookmarks for   associated text…

I do this for ‘FILE’, ‘ON TABLE HOLD’, and ‘FORMAT PDF’…


Favorite Tweets