| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v9r12
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Procedure
- /*------------------------------------------------------------------------
- File :
- Purpose :
- Syntax :
- Description :
- Author(s) :
- Created :
- Notes :
- ----------------------------------------------------------------------*/
- /* This .W file was created with the Progress AppBuilder. */
- /*----------------------------------------------------------------------*/
- /* *************************** Definitions ************************** */
- DEF INPUT PARAMETER ipDatei AS CHAR NO-UNDO.
- DEF VAR cvpr_DokTitel AS CHAR NO-UNDO.
- DEF VAR cvpr_Dokument AS CHAR NO-UNDO.
- DEF VAR cPDF_Dokument AS CHAR NO-UNDO.
- DEF VAR iArtZeile AS INT NO-UNDO.
- DEF VAR iSubZeile AS INT NO-UNDO.
- DEF VAR iKopfZeile AS INT NO-UNDO.
- DEF VAR iVPagePos AS INT NO-UNDO.
- DEF VAR cTexte AS CHAR EXTENT 10 NO-UNDO.
- DEF VAR lok AS LOG INIT FALSE NO-UNDO.
- DEF VAR cRTFText AS CHAR NO-UNDO.
- DEF VAR i1 AS INT NO-UNDO.
- DEF VAR n1 AS DEC NO-UNDO.
- DEF VAR cDatei AS CHAR NO-UNDO.
- DEF VAR iMax AS INT NO-UNDO.
- DEF VAR iHoehe AS INT NO-UNDO.
- DEF VAR iBreite AS INT NO-UNDO.
- DEF VAR cOrientation AS CHAR NO-UNDO.
- DEF VAR cDokument AS CHAR NO-UNDO.
- DEF VAR cPrinter AS CHAR NO-UNDO.
- DEF TEMP-TABLE tZeilen NO-UNDO
- FIELD iZeile AS INT
- FIELD cZeile AS CHAR
- .
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
- /* ******************** Preprocessor Definitions ******************** */
- &Scoped-define PROCEDURE-TYPE Procedure
- &Scoped-define DB-AWARE no
- /* _UIB-PREPROCESSOR-BLOCK-END */
- &ANALYZE-RESUME
- /* *********************** Procedure Settings ************************ */
- &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
- /* Settings for THIS-PROCEDURE
- Type: Procedure
- Allow:
- Frames: 0
- Add Fields to: Neither
- Other Settings: CODE-ONLY COMPILE
- */
- &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
- /* ************************* Create Window ************************** */
- &ANALYZE-SUSPEND _CREATE-WINDOW
- /* DESIGN Window definition (used by the UIB)
- CREATE WINDOW Procedure ASSIGN
- HEIGHT = 15
- WIDTH = 60.
- /* END WINDOW DEFINITION */
- */
- &ANALYZE-RESUME
-
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure
- /* *************************** Main Block *************************** */
- IF SEARCH(ipDatei) = ? THEN RETURN.
-
- FILE-INFO:FILE-NAME = SEARCH(ipDatei).
- IF FILE-INFO:FULL-PATHNAME = ? THEN RETURN.
- IF FILE-INFO:FILE-SIZE < 100 THEN RETURN.
- INPUT FROM VALUE(ipDatei) BINARY NO-MAP NO-CONVERT.
- REPEAT TRANSACTION ON STOP UNDO, LEAVE.
- i1 = i1 + 1.
- CREATE tZeilen.
- ASSIGN tZeilen.iZeile = i1.
- IMPORT UNFORMATTED tZeilen.cZeile.
- tZeilen.cZeile = RIGHT-TRIM(tZeilen.cZeile).
- IF LENGTH(tZeilen.cZeile) > iMax THEN iMax = LENGTH(tZeilen.cZeile).
- END.
- INPUT CLOSE.
- IF iMax > 160 THEN DO:
- iHoehe = 1800.
- iBreite = 2700.
- cOrientation = 'Landscape'.
- cDokument = 'ListeQuer'.
- END.
- ELSE DO:
- iHoehe = 2700.
- iBreite = 1800.
- cOrientation = 'Portrait'.
- cDokument = 'Liste'.
- END.
- cPrinter = SESSION:PRINTER-NAME.
- { viper/vpr.i INIT }
- { viper/vpr.i START }
- cvpr_DokTitel = cDokument.
- cvpr_Dokument = SUBSTITUTE('&1/&2.vfr', 'viper', cvpr_DokTitel).
- RUN vpr_LoadVFR (cvpr_Dokument).
- RUN vpr_ActivateReport (cvpr_DokTitel).
- RUN vpr_SelectPrinter (cPrinter).
- RUN vpr_ResetDoc.
- RUN vpr_SetPreviewMode ('Direct').
- RUN vpr_setDocTitle ( cvpr_DokTitel ).
- RUN vpr_SetDelimiter (CHR(01)).
- RUN vpr_SetPrinterAttrib ('copies=1').
- RUN vpr_SetCurrentPageProperties ('Paperorientation', cOrientation).
- RUN vpr_initGroups('').
- n1 = iBreite / iMax.
- i1 = INTEGER(SUBSTRING(STRING(n1,'9999.9999'),01,04)).
- FOR EACH tZeilen BY tZeilen.iZeile.
- IF tZeilen.cZeile BEGINS CHR(12) THEN DO:
- RUN vpr_newPage.
- RUN vpr_initGroups('').
- RUN vpr_SetCurrentPageProperties ('Paperorientation', cOrientation).
- tZeilen.cZeile = SUBSTRING(tZeilen.cZeile,02).
- IF tZeilen.cZeile = '' THEN NEXT.
- END.
- RUN vpr_setCellFont('Zeile', 'Zeilen', 7, i1, '', 'Courier New').
- RUN vpr_SetCellText('Zeile', 'Zeilen', tZeilen.cZeile).
- RUN vpr_flushGroup('Zeilen').
- END.
- RUN vpr_endDoc.
- cDatei = SUBSTITUTE('&1Liste&2.pdf', SESSION:TEMP-DIR, REPLACE(STRING(TIME,'HH:MM:SS'), ':', '')).
- RUN vpr_printPDF ( 0, 0, INPUT-OUTPUT cDatei ).
- { viper/vpr.i STOP }
- DEF VAR o-i AS i NO-UNDO.
- RUN shellExecuteA (0,
- "open",
- cDatei,
- "",
- "",
- 0,
- OUTPUT o-i).
- PROCEDURE ShellExecuteA EXTERNAL "shell32.dll" :
- DEFINE INPUT PARAMETER lphwnd AS LONG.
- DEFINE INPUT PARAMETER lpOperation AS CHAR.
- DEFINE INPUT PARAMETER lpFile AS CHAR.
- DEFINE INPUT PARAMETER lpParameters AS CHAR.
- DEFINE INPUT PARAMETER lpDirectory AS CHAR.
- DEFINE INPUT PARAMETER nShowCmd AS LONG.
- DEFINE RETURN PARAMETER hInstance AS LONG.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
|