datei2viper.p 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v9r12
  2. &ANALYZE-RESUME
  3. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Procedure
  4. /*------------------------------------------------------------------------
  5. File :
  6. Purpose :
  7. Syntax :
  8. Description :
  9. Author(s) :
  10. Created :
  11. Notes :
  12. ----------------------------------------------------------------------*/
  13. /* This .W file was created with the Progress AppBuilder. */
  14. /*----------------------------------------------------------------------*/
  15. /* *************************** Definitions ************************** */
  16. DEF INPUT PARAMETER ipDatei AS CHAR NO-UNDO.
  17. DEF VAR cvpr_DokTitel AS CHAR NO-UNDO.
  18. DEF VAR cvpr_Dokument AS CHAR NO-UNDO.
  19. DEF VAR cPDF_Dokument AS CHAR NO-UNDO.
  20. DEF VAR iArtZeile AS INT NO-UNDO.
  21. DEF VAR iSubZeile AS INT NO-UNDO.
  22. DEF VAR iKopfZeile AS INT NO-UNDO.
  23. DEF VAR iVPagePos AS INT NO-UNDO.
  24. DEF VAR cTexte AS CHAR EXTENT 10 NO-UNDO.
  25. DEF VAR lok AS LOG INIT FALSE NO-UNDO.
  26. DEF VAR cRTFText AS CHAR NO-UNDO.
  27. DEF VAR i1 AS INT NO-UNDO.
  28. DEF VAR n1 AS DEC NO-UNDO.
  29. DEF VAR cDatei AS CHAR NO-UNDO.
  30. DEF VAR iMax AS INT NO-UNDO.
  31. DEF VAR iHoehe AS INT NO-UNDO.
  32. DEF VAR iBreite AS INT NO-UNDO.
  33. DEF VAR cOrientation AS CHAR NO-UNDO.
  34. DEF VAR cDokument AS CHAR NO-UNDO.
  35. DEF VAR cPrinter AS CHAR NO-UNDO.
  36. DEF TEMP-TABLE tZeilen NO-UNDO
  37. FIELD iZeile AS INT
  38. FIELD cZeile AS CHAR
  39. .
  40. /* _UIB-CODE-BLOCK-END */
  41. &ANALYZE-RESUME
  42. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  43. /* ******************** Preprocessor Definitions ******************** */
  44. &Scoped-define PROCEDURE-TYPE Procedure
  45. &Scoped-define DB-AWARE no
  46. /* _UIB-PREPROCESSOR-BLOCK-END */
  47. &ANALYZE-RESUME
  48. /* *********************** Procedure Settings ************************ */
  49. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  50. /* Settings for THIS-PROCEDURE
  51. Type: Procedure
  52. Allow:
  53. Frames: 0
  54. Add Fields to: Neither
  55. Other Settings: CODE-ONLY COMPILE
  56. */
  57. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  58. /* ************************* Create Window ************************** */
  59. &ANALYZE-SUSPEND _CREATE-WINDOW
  60. /* DESIGN Window definition (used by the UIB)
  61. CREATE WINDOW Procedure ASSIGN
  62. HEIGHT = 15
  63. WIDTH = 60.
  64. /* END WINDOW DEFINITION */
  65. */
  66. &ANALYZE-RESUME
  67. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure
  68. /* *************************** Main Block *************************** */
  69. IF SEARCH(ipDatei) = ? THEN RETURN.
  70. FILE-INFO:FILE-NAME = SEARCH(ipDatei).
  71. IF FILE-INFO:FULL-PATHNAME = ? THEN RETURN.
  72. IF FILE-INFO:FILE-SIZE < 100 THEN RETURN.
  73. INPUT FROM VALUE(ipDatei) BINARY NO-MAP NO-CONVERT.
  74. REPEAT TRANSACTION ON STOP UNDO, LEAVE.
  75. i1 = i1 + 1.
  76. CREATE tZeilen.
  77. ASSIGN tZeilen.iZeile = i1.
  78. IMPORT UNFORMATTED tZeilen.cZeile.
  79. tZeilen.cZeile = RIGHT-TRIM(tZeilen.cZeile).
  80. IF LENGTH(tZeilen.cZeile) > iMax THEN iMax = LENGTH(tZeilen.cZeile).
  81. END.
  82. INPUT CLOSE.
  83. IF iMax > 160 THEN DO:
  84. iHoehe = 1800.
  85. iBreite = 2700.
  86. cOrientation = 'Landscape'.
  87. cDokument = 'ListeQuer'.
  88. END.
  89. ELSE DO:
  90. iHoehe = 2700.
  91. iBreite = 1800.
  92. cOrientation = 'Portrait'.
  93. cDokument = 'Liste'.
  94. END.
  95. cPrinter = SESSION:PRINTER-NAME.
  96. { viper/vpr.i INIT }
  97. { viper/vpr.i START }
  98. cvpr_DokTitel = cDokument.
  99. cvpr_Dokument = SUBSTITUTE('&1/&2.vfr', 'viper', cvpr_DokTitel).
  100. RUN vpr_LoadVFR (cvpr_Dokument).
  101. RUN vpr_ActivateReport (cvpr_DokTitel).
  102. RUN vpr_SelectPrinter (cPrinter).
  103. RUN vpr_ResetDoc.
  104. RUN vpr_SetPreviewMode ('Direct').
  105. RUN vpr_setDocTitle ( cvpr_DokTitel ).
  106. RUN vpr_SetDelimiter (CHR(01)).
  107. RUN vpr_SetPrinterAttrib ('copies=1').
  108. RUN vpr_SetCurrentPageProperties ('Paperorientation', cOrientation).
  109. RUN vpr_initGroups('').
  110. n1 = iBreite / iMax.
  111. i1 = INTEGER(SUBSTRING(STRING(n1,'9999.9999'),01,04)).
  112. FOR EACH tZeilen BY tZeilen.iZeile.
  113. IF tZeilen.cZeile BEGINS CHR(12) THEN DO:
  114. RUN vpr_newPage.
  115. RUN vpr_initGroups('').
  116. RUN vpr_SetCurrentPageProperties ('Paperorientation', cOrientation).
  117. tZeilen.cZeile = SUBSTRING(tZeilen.cZeile,02).
  118. IF tZeilen.cZeile = '' THEN NEXT.
  119. END.
  120. RUN vpr_setCellFont('Zeile', 'Zeilen', 7, i1, '', 'Courier New').
  121. RUN vpr_SetCellText('Zeile', 'Zeilen', tZeilen.cZeile).
  122. RUN vpr_flushGroup('Zeilen').
  123. END.
  124. RUN vpr_endDoc.
  125. cDatei = SUBSTITUTE('&1Liste&2.pdf', SESSION:TEMP-DIR, REPLACE(STRING(TIME,'HH:MM:SS'), ':', '')).
  126. RUN vpr_printPDF ( 0, 0, INPUT-OUTPUT cDatei ).
  127. { viper/vpr.i STOP }
  128. DEF VAR o-i AS i NO-UNDO.
  129. RUN shellExecuteA (0,
  130. "open",
  131. cDatei,
  132. "",
  133. "",
  134. 0,
  135. OUTPUT o-i).
  136. PROCEDURE ShellExecuteA EXTERNAL "shell32.dll" :
  137. DEFINE INPUT PARAMETER lphwnd AS LONG.
  138. DEFINE INPUT PARAMETER lpOperation AS CHAR.
  139. DEFINE INPUT PARAMETER lpFile AS CHAR.
  140. DEFINE INPUT PARAMETER lpParameters AS CHAR.
  141. DEFINE INPUT PARAMETER lpDirectory AS CHAR.
  142. DEFINE INPUT PARAMETER nShowCmd AS LONG.
  143. DEFINE RETURN PARAMETER hInstance AS LONG.
  144. END PROCEDURE.
  145. /* _UIB-CODE-BLOCK-END */
  146. &ANALYZE-RESUME