&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