AppBuilder template

<< Click to Display Table of Contents >>

Navigation:  PROGRESS users >

AppBuilder template

Printing a browse is one of the common situations for the developer.

We suggest this template that you can insert in the progress.cst (src/template) file in order to add quickly this functionality in your screens.

 

By default, a preview is generated.

 

If you want different settings, modify the button PRIVATE-DATA attribute at design or run-time.

 

Syntax :

[PAGE=nn] [,FILE=filename] [,vpxPrint flags]

 

Where nn is the page size in lines, filename the output file name. Note that if you override the private-data, the <PREVIEW> tag is no longer automatic.

 

 

*BUTTON         &Print

DESCRIPTION     BROWSE PRINT

INHERIT         C&ustom Size/Color

LABEL           &Print

NAME            BtnxPrint

TRIGGER CHOOSE

DO:

DEF VAR I AS INT NO-UNDO.

DEF VAR lPage   AS INT NO-UNDO INITIAL 66.

DEF VAR filename AS CHAR NO-UNDO initial "browse.xpr".

DEF VAR A       AS CHAR NO-UNDO.

DEF VAR B       AS CHAR NO-UNDO.

 

IF {&SELF-NAME}:PRIVATE-DATA = ? then

               {&SELF-NAME}:PRIVATE-DATA = "<PREVIEW=ZoomToWidth>".

                 

DO I = 1 TO NUM-ENTRIES({&SELF-NAME}:PRIVATE-DATA) :

       A = ENTRY(I, {&SELF-NAME}:PRIVATE-DATA ).

       B = ENTRY(1, A, "=").

       IF B = "PAGE" THEN

                   lPage = INT(ENTRY(2, A, "=")) NO-ERROR.

                   

       if B = "FILE" then

                   filename = TRIM(entry(2, A, "=")) NO-ERROR.

 

       END.

 

 

OUTPUT TO value(filename) PAGED PAGE-SIZE VALUE(lPage).  

 

DO I = 1 TO NUM-ENTRIES({&SELF-NAME}:PRIVATE-DATA) :

           A = ENTRY(I, {&SELF-NAME}:PRIVATE-DATA ).

           IF A > ""

           AND NOT A BEGINS "page"

           AND NOT A BEGINS "FILE" THEN

               PUT CONTROL A.

       END.

 

 GET FIRST {&BROWSE-NAME}.

 REPEAT WHILE AVAILABLE {&FIRST-TABLE-IN-QUERY-{&BROWSE-NAME}} :

     /* Print */

     DISP {&FIELDS-IN-QUERY-{&BROWSE-NAME}} WITH WIDTH 260 STREAM-IO.

     GET NEXT {&BROWSE-NAME}.

     END.

 

 OUTPUT TO TERMINAL.

 RUN printFile( fileNAme ).

END.

END TRIGGER