d-p_latorre-form.w 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. &Scoped-define FRAME-NAME D-Dialog
  8. /* Temp-Table and Buffer definitions */
  9. DEFINE TEMP-TABLE THilfsTab NO-UNDO LIKE HilfsTab.
  10. DEFINE NEW SHARED TEMP-TABLE XTermOut NO-UNDO LIKE TermOut.
  11. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS D-Dialog
  12. /*------------------------------------------------------------------------
  13. File:
  14. Description: from cntnrdlg.w - ADM SmartDialog Template
  15. Input Parameters:
  16. <none>
  17. Output Parameters:
  18. <none>
  19. Author:
  20. Created:
  21. ------------------------------------------------------------------------*/
  22. /* This .W file was created with the Progress UIB. */
  23. /*----------------------------------------------------------------------*/
  24. /* Create an unnamed pool to store all the widgets created
  25. by this procedure. This is a good default which assures
  26. that this procedure's triggers and internal procedures
  27. will execute in this procedure's storage, and that proper
  28. cleanup will occur on deletion of the procedure. */
  29. CREATE WIDGET-POOL.
  30. /* *************************** Definitions ************************** */
  31. /* Parameters Definitions --- */
  32. /* Local Variable Definitions --- */
  33. DEF VAR VProgName AS CHAR NO-UNDO.
  34. DEF VAR VDateiName AS CHAR NO-UNDO.
  35. DEF VAR VPfad AS CHAR NO-UNDO.
  36. DEF VAR ok AS LOG NO-UNDO.
  37. DEF VAR ARecid AS RECID NO-UNDO.
  38. DEF VAR BRecid AS RECID NO-UNDO.
  39. DEF VAR TRecid AS RECID NO-UNDO.
  40. DEF VAR VTemp AS CHAR NO-UNDO.
  41. DEF VAR VZeile AS CHAR FORMAT "x(255)" NO-UNDO.
  42. DEF VAR VAusgabe AS CHAR FORMAT "x(255)" NO-UNDO.
  43. DEF VAR VMaxSpalt AS INT NO-UNDO.
  44. DEF VAR VFBreite AS INT EXTENT 20 NO-UNDO.
  45. DEF VAR VFAusricht AS CHAR EXTENT 20 NO-UNDO.
  46. DEF TEMP-TABLE TExcel FIELD Zeile AS INT
  47. FIELD Feld AS CHAR EXTENT 40.
  48. /* ---------- Globale Variablen ---------------------------------- */
  49. { v8/globvar.i" " " " "SHARED" }
  50. { v8/debivar.i " " " " "SHARED" }
  51. { v8/artivar.i " " " " "SHARED" }
  52. { v8/contvar.i " " " " "SHARED" }
  53. { v8/listtitv.i "NEW" "SHARED" }
  54. /* _UIB-CODE-BLOCK-END */
  55. &ANALYZE-RESUME
  56. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  57. /* ******************** Preprocessor Definitions ******************** */
  58. &Scoped-define PROCEDURE-TYPE SmartDialog
  59. &Scoped-define DB-AWARE no
  60. &Scoped-define ADM-CONTAINER DIALOG-BOX
  61. /* Name of first Frame and/or Browse and/or first Query */
  62. &Scoped-define FRAME-NAME D-Dialog
  63. /* Standard List Definitions */
  64. &Scoped-Define ENABLED-OBJECTS Btn_Datei F_Dateiname CB_Drucker ~
  65. CB_Schriftbild T_Drucker Btn_OK Btn_Cancel RECT-1
  66. &Scoped-Define DISPLAYED-OBJECTS F_Dateiname CB_Drucker CB_Schriftbild ~
  67. T_Drucker
  68. /* Custom List Definitions */
  69. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  70. &Scoped-define List-1 F_Dateiname T_Drucker
  71. /* _UIB-PREPROCESSOR-BLOCK-END */
  72. &ANALYZE-RESUME
  73. /* *********************** Control Definitions ********************** */
  74. /* Define a dialog box */
  75. /* Definitions of the field level widgets */
  76. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  77. LABEL "&Abbrechen"
  78. SIZE 16.8 BY 1
  79. BGCOLOR 8 .
  80. DEFINE BUTTON Btn_Datei
  81. LABEL "Dateiname"
  82. SIZE 16.8 BY 1.
  83. DEFINE BUTTON Btn_OK AUTO-GO
  84. LABEL "&Start"
  85. SIZE 16.8 BY 1
  86. BGCOLOR 8 .
  87. DEFINE VARIABLE CB_Drucker AS CHARACTER FORMAT "X(256)":U
  88. VIEW-AS COMBO-BOX INNER-LINES 5
  89. DROP-DOWN-LIST
  90. SIZE 40 BY 1
  91. BGCOLOR 15 NO-UNDO.
  92. DEFINE VARIABLE CB_Schriftbild AS CHARACTER FORMAT "X(256)":U
  93. VIEW-AS COMBO-BOX INNER-LINES 5
  94. DROP-DOWN-LIST
  95. SIZE 40 BY 1
  96. BGCOLOR 15 NO-UNDO.
  97. DEFINE VARIABLE F_Dateiname AS CHARACTER FORMAT "X(256)":U
  98. VIEW-AS FILL-IN NATIVE
  99. SIZE 55 BY 1
  100. BGCOLOR 15 NO-UNDO.
  101. DEFINE RECTANGLE RECT-1
  102. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  103. SIZE 121 BY 3.33.
  104. DEFINE VARIABLE T_Drucker AS LOGICAL INITIAL no
  105. LABEL "Druckersetup"
  106. VIEW-AS TOGGLE-BOX
  107. SIZE-PIXELS 140 BY 21 NO-UNDO.
  108. /* ************************ Frame Definitions *********************** */
  109. DEFINE FRAME D-Dialog
  110. Btn_Datei AT ROW 1.52 COL 4
  111. F_Dateiname AT ROW 1.52 COL 20 COLON-ALIGNED NO-LABEL
  112. CB_Drucker AT ROW 3 COL 4 NO-LABEL
  113. CB_Schriftbild AT ROW 3 COL 42 COLON-ALIGNED NO-LABEL
  114. T_Drucker AT Y 42 X 430
  115. Btn_OK AT ROW 1.52 COL 87
  116. Btn_Cancel AT ROW 1.52 COL 105.4
  117. RECT-1 AT ROW 1.24 COL 2
  118. SPACE(3.19) SKIP(0.18)
  119. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  120. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  121. TITLE "Formulare aus Excel drucken"
  122. DEFAULT-BUTTON Btn_OK CANCEL-BUTTON Btn_Cancel.
  123. /* *********************** Procedure Settings ************************ */
  124. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  125. /* Settings for THIS-PROCEDURE
  126. Type: SmartDialog
  127. Allow: Basic,Browse,DB-Fields,Query,Smart
  128. Other Settings: COMPILE
  129. Temp-Tables and Buffers:
  130. TABLE: THilfsTab T "?" NO-UNDO AnaDat HilfsTab
  131. TABLE: XTermOut T "NEW SHARED" NO-UNDO AnaDat TermOut
  132. END-TABLES.
  133. */
  134. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  135. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB D-Dialog
  136. /* ************************* Included-Libraries *********************** */
  137. {src/adm/method/containr.i}
  138. /* _UIB-CODE-BLOCK-END */
  139. &ANALYZE-RESUME
  140. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  141. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  142. /* SETTINGS FOR DIALOG-BOX D-Dialog
  143. Custom */
  144. ASSIGN
  145. FRAME D-Dialog:SCROLLABLE = FALSE
  146. FRAME D-Dialog:HIDDEN = TRUE.
  147. /* SETTINGS FOR COMBO-BOX CB_Drucker IN FRAME D-Dialog
  148. ALIGN-L */
  149. /* SETTINGS FOR FILL-IN F_Dateiname IN FRAME D-Dialog
  150. 1 */
  151. /* SETTINGS FOR TOGGLE-BOX T_Drucker IN FRAME D-Dialog
  152. 1 */
  153. /* _RUN-TIME-ATTRIBUTES-END */
  154. &ANALYZE-RESUME
  155. /* Setting information for Queries and Browse Widgets fields */
  156. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX D-Dialog
  157. /* Query rebuild information for DIALOG-BOX D-Dialog
  158. _Options = "SHARE-LOCK"
  159. _Query is NOT OPENED
  160. */ /* DIALOG-BOX D-Dialog */
  161. &ANALYZE-RESUME
  162. /* ************************ Control Triggers ************************ */
  163. &Scoped-define SELF-NAME D-Dialog
  164. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL D-Dialog D-Dialog
  165. ON WINDOW-CLOSE OF FRAME D-Dialog /* Formulare aus Excel drucken */
  166. DO:
  167. /* Add Trigger to equate WINDOW-CLOSE to END-ERROR. */
  168. APPLY "END-ERROR":U TO SELF.
  169. END.
  170. /* _UIB-CODE-BLOCK-END */
  171. &ANALYZE-RESUME
  172. &Scoped-define SELF-NAME Btn_Datei
  173. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Datei D-Dialog
  174. ON CHOOSE OF Btn_Datei IN FRAME D-Dialog /* Dateiname */
  175. DO:
  176. SYSTEM-DIALOG GET-FILE VDateiName
  177. FILTERS "csv-Dateien (*.csv) " "*.csv",
  178. "Text-Datein mit Separator (*.txt) " "*.txt",
  179. "Alle Dateien (*.*) " "*.*"
  180. TITLE "Welches Formular soll gedruckt werden ?"
  181. MUST-EXIST
  182. UPDATE Ja.
  183. IF NOT Ja THEN RETURN NO-APPLY.
  184. F_Dateiname = VDateiname.
  185. DISPLAY F_Dateiname WITH FRAME {&FRAME-NAME}.
  186. END.
  187. /* _UIB-CODE-BLOCK-END */
  188. &ANALYZE-RESUME
  189. &Scoped-define SELF-NAME Btn_OK
  190. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK D-Dialog
  191. ON CHOOSE OF Btn_OK IN FRAME D-Dialog /* Start */
  192. DO:
  193. DO WITH FRAME {&FRAME-NAME}:
  194. ASSIGN {&List-1}.
  195. VDateiName = F_Dateiname.
  196. IF SEARCH(VDateiname) = ? THEN DO:
  197. APPLY 'ENTRY' TO F_Dateiname.
  198. RETURN NO-APPLY.
  199. END.
  200. DISABLE Btn_OK
  201. Btn_cancel.
  202. {&WINDOW-NAME}:LOAD-MOUSE-POINTER('WAIT').
  203. RUN DRUCKEN.
  204. {&WINDOW-NAME}:LOAD-MOUSE-POINTER('ARROW').
  205. ENABLE Btn_OK
  206. Btn_cancel.
  207. END.
  208. END.
  209. /* _UIB-CODE-BLOCK-END */
  210. &ANALYZE-RESUME
  211. &Scoped-define SELF-NAME CB_Drucker
  212. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Drucker D-Dialog
  213. ON VALUE-CHANGED OF CB_Drucker IN FRAME D-Dialog
  214. DO:
  215. ok = TRUE.
  216. DO WHILE ok:
  217. ok = CB_Schriftbild:DELETE(1).
  218. END.
  219. FOR EACH Schrift USE-INDEX Schrift-k1
  220. WHERE Schrift.Schname = CB_Drucker:SCREEN-VALUE NO-LOCK:
  221. ok = CB_Schriftbild:ADD-LAST(Schrift.Schbild).
  222. END.
  223. i1 = 0.
  224. DO WHILE BRecid > 0:
  225. i1 = CB_Schriftbild:LOOKUP(LiDruck.ListBild).
  226. LEAVE.
  227. END.
  228. IF i1 = 0 THEN i1 = 1.
  229. CB_Schriftbild:SCREEN-VALUE = CB_Schriftbild:ENTRY(i1).
  230. END.
  231. /* _UIB-CODE-BLOCK-END */
  232. &ANALYZE-RESUME
  233. &Scoped-define SELF-NAME F_Dateiname
  234. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Dateiname D-Dialog
  235. ON LEAVE OF F_Dateiname IN FRAME D-Dialog
  236. DO:
  237. F_Dateiname = SELF:SCREEN-VALUE.
  238. IF SEARCH(F_Dateiname) = ? THEN DO:
  239. APPLY 'ENTRY' TO SELF.
  240. RETURN NO-APPLY.
  241. END.
  242. VDateiName = F_Dateiname.
  243. PUT-KEY-VALUE SECTION "LaTorre" KEY "Formular" VALUE VDateiName.
  244. END.
  245. /* _UIB-CODE-BLOCK-END */
  246. &ANALYZE-RESUME
  247. &UNDEFINE SELF-NAME
  248. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK D-Dialog
  249. /* *************************** Main Block *************************** */
  250. DO WITH FRAME {&FRAME-NAME}:
  251. CB_Drucker:DELIMITER = ';'.
  252. CB_Schriftbild:DELIMITER = ';'.
  253. ok = TRUE.
  254. DO WHILE ok:
  255. ok = CB_Drucker:DELETE(1).
  256. END.
  257. FOR EACH Schrift USE-INDEX Schrift-k1 NO-LOCK
  258. BREAK BY Schrift.Schname :
  259. IF NOT FIRST-OF ( Schrift.Schname ) THEN NEXT.
  260. ok = CB_Drucker:ADD-LAST(Schrift.Schname).
  261. END.
  262. CB_Drucker:SCREEN-VALUE = CB_Drucker:ENTRY(1) NO-ERROR.
  263. GET-KEY-VALUE SECTION "LaTorre" KEY "Formular" VALUE VDateiName.
  264. IF VDateiName = ? THEN DO:
  265. VDateiname = SESSION:TEMP-DIR.
  266. END.
  267. F_Dateiname = VDateiName.
  268. FIND Tabel USE-INDEX Tabel-k1
  269. WHERE Tabel.Firma = GVFirma
  270. AND Tabel.RecArt = 'LISTEN'
  271. AND Tabel.CodeC = 'FORMULARE'
  272. AND Tabel.CodeI = 1
  273. AND Tabel.Sprcd = 0 NO-LOCK NO-ERROR.
  274. IF AVAILABLE Tabel THEN TRecid = RECID(Tabel).
  275. ELSE TRecid = 0.
  276. END.
  277. {src/adm/template/dialogmn.i}
  278. /* _UIB-CODE-BLOCK-END */
  279. &ANALYZE-RESUME
  280. /* ********************** Internal Procedures *********************** */
  281. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects D-Dialog _ADM-CREATE-OBJECTS
  282. PROCEDURE adm-create-objects :
  283. /*------------------------------------------------------------------------------
  284. Purpose: Create handles for all SmartObjects used in this procedure.
  285. After SmartObjects are initialized, then SmartLinks are added.
  286. Parameters: <none>
  287. ------------------------------------------------------------------------------*/
  288. END PROCEDURE.
  289. /* _UIB-CODE-BLOCK-END */
  290. &ANALYZE-RESUME
  291. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available D-Dialog _ADM-ROW-AVAILABLE
  292. PROCEDURE adm-row-available :
  293. /*------------------------------------------------------------------------------
  294. Purpose: Dispatched to this procedure when the Record-
  295. Source has a new row available. This procedure
  296. tries to get the new row (or foriegn keys) from
  297. the Record-Source and process it.
  298. Parameters: <none>
  299. ------------------------------------------------------------------------------*/
  300. /* Define variables needed by this internal procedure. */
  301. {src/adm/template/row-head.i}
  302. /* Process the newly available records (i.e. display fields,
  303. open queries, and/or pass records on to any RECORD-TARGETS). */
  304. {src/adm/template/row-end.i}
  305. END PROCEDURE.
  306. /* _UIB-CODE-BLOCK-END */
  307. &ANALYZE-RESUME
  308. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE D-Dialog
  309. PROCEDURE AUSGABE :
  310. /*------------------------------------------------------------------------------
  311. Purpose:
  312. Parameters: <none>
  313. Notes:
  314. ------------------------------------------------------------------------------*/
  315. i2 = 0.
  316. FOR EACH TExcel BY TExcel.Zeile:
  317. i1 = 1.
  318. VAusgabe = ''.
  319. DO ix = 1 TO VMaxSpalt.
  320. i3 = LENGTH(TExcel.Feld[ix]).
  321. DO WHILE TRUE:
  322. IF VFAusricht[ix] = 'L' THEN DO:
  323. SUBSTRING(VAusgabe,i1) = TExcel.Feld[ix].
  324. LEAVE.
  325. END.
  326. IF VFAusricht[ix] = 'R' THEN DO:
  327. i4 = i1 + VFBreite[ix] - i3.
  328. SUBSTRING(VAusgabe,i4) = TExcel.Feld[ix].
  329. LEAVE.
  330. END.
  331. LEAVE.
  332. END.
  333. i1 = i1 + VFBreite[ix] + 1.
  334. END.
  335. PUT STREAM Out_Stream CONTROL VAusgabe CHR(10).
  336. END.
  337. END PROCEDURE.
  338. /* _UIB-CODE-BLOCK-END */
  339. &ANALYZE-RESUME
  340. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI D-Dialog _DEFAULT-DISABLE
  341. PROCEDURE disable_UI :
  342. /*------------------------------------------------------------------------------
  343. Purpose: DISABLE the User Interface
  344. Parameters: <none>
  345. Notes: Here we clean-up the user-interface by deleting
  346. dynamic widgets we have created and/or hide
  347. frames. This procedure is usually called when
  348. we are ready to "clean-up" after running.
  349. ------------------------------------------------------------------------------*/
  350. /* Hide all frames. */
  351. HIDE FRAME D-Dialog.
  352. END PROCEDURE.
  353. /* _UIB-CODE-BLOCK-END */
  354. &ANALYZE-RESUME
  355. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE D-Dialog
  356. PROCEDURE DRUCKAUSGABE :
  357. /*------------------------------------------------------------------------------
  358. Purpose:
  359. Parameters: <none>
  360. Notes:
  361. ------------------------------------------------------------------------------*/
  362. DEF VAR AnzKopien AS INT NO-UNDO.
  363. AnzKopien = BLiDruck.ListCopy.
  364. IF AnzKopien = 0 THEN AnzKopien = 1.
  365. IF BDrucker.Emul = 'TERMINAL' THEN AnzKopien = 1.
  366. DO VCopy = 1 TO AnzKopien:
  367. DO WHILE BDrucker.Emul <> "TERMINAL":
  368. IF BSteuer.Drucker <> "" AND
  369. OPSYS = "Unix" THEN
  370. OUTPUT STREAM Out_Stream
  371. THROUGH VALUE(BSteuer.Drucker)
  372. VALUE(BSchrift.Schname)
  373. CONVERT TARGET "ibm850".
  374. ELSE OUTPUT STREAM Out_Stream
  375. TO VALUE(BSchrift.Schname)
  376. CONVERT TARGET "ibm850".
  377. PUT STREAM Out_Stream CONTROL BSchrift.Schseqbeg.
  378. IF BLiDruck.Listlq THEN PUT STREAM Out_Stream CONTROL BDrucker.Drulqb.
  379. IF BLiDruck.Schacht > 0 THEN PUT STREAM Out_Stream CONTROL BDrucker.DruSchacht[Schacht].
  380. INPUT STREAM In_Stream FROM VALUE(VTemp) NO-ECHO NO-MAP.
  381. REPEAT ON STOP UNDO, LEAVE WITH FRAME f_Print:
  382. IMPORT STREAM In_Stream UNFORMATTED VZeile.
  383. DISPLAY STREAM Out_Stream VZeile
  384. WITH FRAME f_Print NO-LABELS STREAM-IO
  385. NO-BOX USE-TEXT WIDTH 255.
  386. END.
  387. PUT STREAM Out_Stream CONTROL CHR(12).
  388. OUTPUT STREAM Out_Stream CLOSE.
  389. INPUT STREAM In_Stream CLOSE.
  390. LEAVE.
  391. END.
  392. DO WHILE BDrucker.Emul = "TERMINAL":
  393. RUN "v8/d-liste.w" ( INPUT HelpText[02] ).
  394. LEAVE.
  395. END.
  396. END.
  397. END PROCEDURE.
  398. /* _UIB-CODE-BLOCK-END */
  399. &ANALYZE-RESUME
  400. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN D-Dialog
  401. PROCEDURE DRUCKEN :
  402. /*------------------------------------------------------------------------------
  403. Purpose:
  404. Parameters: <none>
  405. Notes:
  406. ------------------------------------------------------------------------------*/
  407. DEF VAR XProgname AS CHAR NO-UNDO.
  408. DEF VAR VListnr AS INT NO-UNDO.
  409. DEF VAR FNeu AS LOG NO-UNDO.
  410. DEF VAR VDrucker AS CHAR NO-UNDO.
  411. DEF VAR VSchrift AS CHAR NO-UNDO.
  412. DEF VAR cUser AS CHAR NO-UNDO.
  413. DO WITH FRAME {&FRAME-NAME}:
  414. cUser = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR.
  415. VProgname = TRIM(cUser) + '!FORMULARE'.
  416. XProgname = 'FORMULARE'.
  417. FNeu = FALSE.
  418. DO WITH FRAME {&FRAME-NAME}:
  419. VDrucker = CB_Drucker:SCREEN-VALUE.
  420. VSchrift = CB_Schriftbild:SCREEN-VALUE.
  421. END.
  422. REPEAT TRANSACTION:
  423. FIND FIRST Listen USE-INDEX Listen-k1
  424. WHERE Listen.Firma = GVFirma
  425. AND Listen.Progname = VProgname
  426. AND Listen.Listfl = '' NO-ERROR.
  427. IF NOT AVAILABLE Listen THEN DO:
  428. FIND LAST Listen USE-INDEX Listen-k1
  429. WHERE Listen.Firma = GVFirma NO-LOCK NO-ERROR.
  430. IF AVAILABLE Listen THEN VListnr = Listen.Listnr + 1.
  431. ELSE VListnr = 1.
  432. CREATE Listen.
  433. ASSIGN Listen.Firma = GVFirma
  434. Listen.Listnr = VListnr
  435. Listen.Progname = VProgname
  436. Listen.Listfl = ''
  437. Listen.Jahr = GVJahr
  438. Listen.Sprcd = GVSprcd
  439. Listen.Sort = 1
  440. Listen.ProgWahl = 1
  441. FNeu = TRUE.
  442. END.
  443. Listen.Listfl = 'A'.
  444. ARecid = RECID(Listen).
  445. FIND LiDruck USE-INDEX LiDruck-k1
  446. WHERE LiDruck.Firma = GVFirma
  447. AND LiDruck.Listnr = Listen.Listnr
  448. AND LiDruck.ProgWahl = Listen.ProgWahl NO-ERROR.
  449. IF NOT AVAILABLE LiDruck THEN DO:
  450. CREATE LiDruck.
  451. ASSIGN LiDruck.Firma = GVFirma
  452. LiDruck.Listnr = Listen.Listnr
  453. LiDruck.ProgWahl = Listen.ProgWahl
  454. LiDruck.Listprog = XProgname
  455. LiDruck.ListCopy = 1
  456. LiDruck.Schacht = 0
  457. LiDruck.Listlq = FALSE.
  458. END.
  459. BRecid = RECID(LiDruck).
  460. IF TRecid = 0 THEN DO:
  461. CREATE Tabel.
  462. ASSIGN Tabel.Firma = GVFirma
  463. Tabel.RecArt = 'LISTEN'
  464. Tabel.CodeC = 'FORMULARE'
  465. Tabel.CodeI = 1
  466. Tabel.Sprcd = 0.
  467. END.
  468. ELSE DO:
  469. FIND Tabel WHERE RECID(Tabel) = TRecid.
  470. END.
  471. TRecid = RECID(Tabel).
  472. ASSIGN Tabel.Int_1 = ARecid
  473. Tabel.Int_2 = BRecid.
  474. ASSIGN Listen.Sort = 1.
  475. FIND Schrift USE-INDEX Schrift-k1
  476. WHERE Schrift.Schname = VDrucker
  477. AND Schrift.Schbild = VSchrift NO-LOCK NO-ERROR.
  478. IF AVAILABLE Schrift THEN DO:
  479. IF LiDruck.ListDru <> VDrucker OR
  480. LiDruck.ListBild <> VSchrift THEN DO:
  481. ASSIGN LiDruck.ListTzz = Schrift.Schzztot
  482. LiDruck.ListKzz = Schrift.Schzzbeg
  483. LiDruck.ListFzz = Schrift.Schzzend.
  484. END.
  485. ASSIGN LiDruck.ListDru = VDrucker
  486. LiDruck.ListBild = VSchrift.
  487. END.
  488. RUN LIBILD.
  489. RELEASE Listen.
  490. RELEASE LiDruck.
  491. LEAVE.
  492. END.
  493. IF FNeu THEN DO:
  494. T_Drucker = TRUE.
  495. DISPLAY T_Drucker WITH FRAME {&FRAME-NAME}.
  496. END.
  497. IF T_Drucker THEN DO:
  498. {&WINDOW-NAME}:LOAD-MOUSE-POINTER('ARROW').
  499. RUN DRUCKER.
  500. {&WINDOW-NAME}:LOAD-MOUSE-POINTER('WAIT').
  501. END.
  502. FIND BSteuer WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR.
  503. FIND BListen WHERE RECID(BListen) = ARecid NO-LOCK NO-ERROR.
  504. FIND BLiDruck WHERE RECID(BLiDruck) = BRecid NO-LOCK NO-ERROR.
  505. FIND BSchrift USE-INDEX Schrift-k1
  506. WHERE BSchrift.Schname = BLiDruck.ListDru
  507. AND BSchrift.Schbild = BLiDruck.ListBild NO-LOCK NO-ERROR.
  508. FIND BDrucker USE-INDEX Drucker-k1
  509. WHERE BDrucker.Drucker = BSchrift.Schdru NO-LOCK NO-ERROR.
  510. IF T_Drucker THEN DO:
  511. FIND LiDruck WHERE RECID(LiDruck) = BRecid NO-LOCK NO-ERROR.
  512. i1 = CB_Drucker:LOOKUP(LiDruck.ListDru).
  513. IF i1 = 0 THEN i1 = 1.
  514. CB_Drucker:SCREEN-VALUE = CB_Drucker:ENTRY(i1).
  515. APPLY 'VALUE-CHANGED' TO CB_Drucker.
  516. END.
  517. TiDruck = TRUE.
  518. VSeite = 0.
  519. RUN TEMP_FILE.
  520. RUN LISTTIT1.
  521. RUN WORKFILE.
  522. IF DOpen = TRUE THEN OUTPUT STREAM Out_Stream TO VALUE(VTemp).
  523. RUN AUSGABE.
  524. IF DOpen THEN OUTPUT STREAM Out_Stream CLOSE.
  525. DOpen = FALSE.
  526. RUN DRUCKAUSGABE.
  527. IF VTemp <> '' THEN OS-DELETE VALUE(VTemp).
  528. END.
  529. REPEAT TRANSACTION:
  530. FIND BListen WHERE RECID(BListen) = ARecid.
  531. BListen.ListFl = ''.
  532. RELEASE BListen.
  533. LEAVE.
  534. END.
  535. FIND BListen WHERE RECID(BListen) = ARecid NO-LOCK NO-ERROR.
  536. END PROCEDURE.
  537. /* _UIB-CODE-BLOCK-END */
  538. &ANALYZE-RESUME
  539. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKER D-Dialog
  540. PROCEDURE DRUCKER :
  541. /*------------------------------------------------------------------------------
  542. Purpose:
  543. Parameters: <none>
  544. Notes:
  545. ------------------------------------------------------------------------------*/
  546. LVRecid = TRecid.
  547. RUN "v8/d-druckauswahl.w".
  548. END PROCEDURE.
  549. /* _UIB-CODE-BLOCK-END */
  550. &ANALYZE-RESUME
  551. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI D-Dialog _DEFAULT-ENABLE
  552. PROCEDURE enable_UI :
  553. /*------------------------------------------------------------------------------
  554. Purpose: ENABLE the User Interface
  555. Parameters: <none>
  556. Notes: Here we display/view/enable the widgets in the
  557. user-interface. In addition, OPEN all queries
  558. associated with each FRAME and BROWSE.
  559. These statements here are based on the "Other
  560. Settings" section of the widget Property Sheets.
  561. ------------------------------------------------------------------------------*/
  562. DISPLAY F_Dateiname CB_Drucker CB_Schriftbild T_Drucker
  563. WITH FRAME D-Dialog.
  564. ENABLE Btn_Datei F_Dateiname CB_Drucker CB_Schriftbild T_Drucker Btn_OK
  565. Btn_Cancel RECT-1
  566. WITH FRAME D-Dialog.
  567. VIEW FRAME D-Dialog.
  568. {&OPEN-BROWSERS-IN-QUERY-D-Dialog}
  569. END PROCEDURE.
  570. /* _UIB-CODE-BLOCK-END */
  571. &ANALYZE-RESUME
  572. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIBILD D-Dialog
  573. PROCEDURE LIBILD :
  574. /*------------------------------------------------------------------------------
  575. Purpose:
  576. Parameters: <none>
  577. Notes:
  578. ------------------------------------------------------------------------------*/
  579. Helptext = "".
  580. FOR EACH LiBild USE-INDEX LiBild-k1
  581. WHERE LiBild.Sprcd = GVSprcd
  582. AND LiBild.Prog = LiDruck.Listprog
  583. AND LiBild.Tenr > 0 NO-LOCK ix = 1 TO 20:
  584. Helptext[ix] = LiBild.Litext.
  585. END.
  586. Breite = INTEGER(SUBSTRING(Helptext[01],02,03)).
  587. END PROCEDURE.
  588. /* _UIB-CODE-BLOCK-END */
  589. &ANALYZE-RESUME
  590. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LISTTIT1 D-Dialog
  591. PROCEDURE LISTTIT1 :
  592. /*------------------------------------------------------------------------------
  593. Purpose:
  594. Parameters: <none>
  595. Notes:
  596. ------------------------------------------------------------------------------*/
  597. Fuell = SUBSTRING(Helptext[01],01,01).
  598. Breite = INTEGER(SUBSTRING(Helptext[01],02,03)).
  599. VRand = INTEGER(SUBSTRING(Helptext[01],68,03)).
  600. END PROCEDURE.
  601. /* _UIB-CODE-BLOCK-END */
  602. &ANALYZE-RESUME
  603. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LISTTIT2 D-Dialog
  604. PROCEDURE LISTTIT2 :
  605. /*------------------------------------------------------------------------------
  606. Purpose:
  607. Parameters: <none>
  608. Notes:
  609. ------------------------------------------------------------------------------*/
  610. END PROCEDURE.
  611. /* _UIB-CODE-BLOCK-END */
  612. &ANALYZE-RESUME
  613. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view D-Dialog
  614. PROCEDURE local-view :
  615. /*------------------------------------------------------------------------------
  616. Purpose: Override standard ADM method
  617. Notes:
  618. ------------------------------------------------------------------------------*/
  619. RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) .
  620. IF TRecid <> 0 THEN DO WITH FRAME {&FRAME-NAME}:
  621. FIND Tabel WHERE RECID(Tabel) = TRecid NO-LOCK NO-ERROR.
  622. BRecid = Tabel.INt_2.
  623. FIND LiDruck WHERE RECID(LiDruck) = BRecid NO-LOCK NO-ERROR.
  624. CB_Drucker:SCREEN-VALUE = LiDruck.ListDru NO-ERROR.
  625. APPLY 'VALUE-CHANGED' TO CB_Drucker IN FRAME {&FRAME-NAME}.
  626. CB_Schriftbild:SCREEN-VALUE = LiDruck.ListBild NO-ERROR.
  627. END.
  628. ELSE DO:
  629. APPLY 'VALUE-CHANGED' TO CB_Drucker IN FRAME {&FRAME-NAME}.
  630. END.
  631. END PROCEDURE.
  632. /* _UIB-CODE-BLOCK-END */
  633. &ANALYZE-RESUME
  634. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUE_SEITE D-Dialog
  635. PROCEDURE NEUE_SEITE :
  636. /*------------------------------------------------------------------------------
  637. Purpose:
  638. Parameters: <none>
  639. Notes:
  640. ------------------------------------------------------------------------------*/
  641. DEF VAR A AS INT NO-UNDO.
  642. DEF VAR B AS INT NO-UNDO.
  643. DO WHILE VSeite > 0:
  644. IF DOpen THEN DO:
  645. PUT STREAM Out_Stream CHR(12).
  646. LEAVE.
  647. END.
  648. A = BLiDruck.Listtzz.
  649. DO B = VLine TO A:
  650. VZNr = VZNr + 1.
  651. CREATE XTermOut.
  652. ASSIGN XTermOut.ZNr = VZNr
  653. XTermOut.Zeile = ''.
  654. END.
  655. LEAVE.
  656. END.
  657. VLine = 0.
  658. VSeite = VSeite + 1.
  659. END PROCEDURE.
  660. /* _UIB-CODE-BLOCK-END */
  661. &ANALYZE-RESUME
  662. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records D-Dialog _ADM-SEND-RECORDS
  663. PROCEDURE send-records :
  664. /*------------------------------------------------------------------------------
  665. Purpose: Send record ROWID's for all tables used by
  666. this file.
  667. Parameters: see template/snd-head.i
  668. ------------------------------------------------------------------------------*/
  669. /* SEND-RECORDS does nothing because there are no External
  670. Tables specified for this SmartDialog, and there are no
  671. tables specified in any contained Browse, Query, or Frame. */
  672. END PROCEDURE.
  673. /* _UIB-CODE-BLOCK-END */
  674. &ANALYZE-RESUME
  675. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed D-Dialog
  676. PROCEDURE state-changed :
  677. /* -----------------------------------------------------------
  678. Purpose:
  679. Parameters: <none>
  680. Notes:
  681. -------------------------------------------------------------*/
  682. DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
  683. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
  684. END PROCEDURE.
  685. /* _UIB-CODE-BLOCK-END */
  686. &ANALYZE-RESUME
  687. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEMP_FILE D-Dialog
  688. PROCEDURE TEMP_FILE :
  689. /*------------------------------------------------------------------------------
  690. Purpose:
  691. Parameters: <none>
  692. Notes:
  693. ------------------------------------------------------------------------------*/
  694. i2 = 0.
  695. VMaxSpalt = 0.
  696. VFAusricht = ''.
  697. VFBreite = 0.
  698. INPUT STREAM In_Stream FROM VALUE(VDateiname) NO-ECHO NO-MAP.
  699. REPEAT ON STOP UNDO, LEAVE WITH FRAME f_Print:
  700. IMPORT STREAM In_Stream UNFORMATTED VZeile.
  701. i1 = NUM-ENTRIES(VZeile, ';').
  702. IF i1 > VMaxSpalt THEN VMaxSpalt = i1.
  703. CREATE TExcel.
  704. i2 = i2 + 1.
  705. TExcel.Zeile = i2.
  706. DO ix = 1 TO i1:
  707. TExcel.Feld[ix] = ENTRY(ix, VZeile, ';').
  708. IF i2 = 1 THEN VFBreite [ix] = INTEGER(TExcel.Feld[ix]).
  709. IF i2 = 2 THEN VFAusricht[ix] = TRIM (TExcel.Feld[ix]).
  710. END.
  711. IF i2 = 1 THEN DELETE TExcel.
  712. IF i2 = 2 THEN DELETE TExcel.
  713. END.
  714. INPUT STREAM In_Stream CLOSE.
  715. END PROCEDURE.
  716. /* _UIB-CODE-BLOCK-END */
  717. &ANALYZE-RESUME
  718. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WORKFILE D-Dialog
  719. PROCEDURE WORKFILE :
  720. /*------------------------------------------------------------------------------
  721. Purpose:
  722. Parameters: <none>
  723. Notes:
  724. ------------------------------------------------------------------------------*/
  725. DOpen = FALSE.
  726. VTemp = ''.
  727. IF BDrucker.Emul = 'TERMINAL' THEN DO:
  728. FOR EACH XTermOut:
  729. DELETE XTermOut.
  730. END.
  731. VZNr = 0.
  732. RETURN.
  733. END.
  734. DO WHILE TRUE TRANSACTION:
  735. FIND Tabel USE-INDEX Tabel-k1
  736. WHERE Tabel.Firma = GVFirma
  737. AND Tabel.RecArt = 'TEMPFILE'
  738. AND Tabel.CodeI = 0
  739. AND Tabel.CodeC = 'FORMULARE'
  740. AND Tabel.Sprcd = 0 NO-ERROR.
  741. IF NOT AVAILABLE Tabel THEN DO:
  742. CREATE Tabel.
  743. ASSIGN Tabel.Firma = GVFirma
  744. Tabel.RecArt = 'TEMPFILE'
  745. Tabel.CodeI = 0
  746. Tabel.CodeC = 'FORMULARE'
  747. Tabel.Sprcd = 0
  748. Tabel.Bez1 = SESSION:TEMP-DIR.
  749. END.
  750. Tabel.Int_1 = Tabel.Int_1 + 1.
  751. VTemp = Tabel.Bez1 + 'FORMULARE' + STRING(Tabel.Int_1) + '.tmp'.
  752. RELEASE Tabel.
  753. LEAVE.
  754. END.
  755. DOpen = TRUE.
  756. END PROCEDURE.
  757. /* _UIB-CODE-BLOCK-END */
  758. &ANALYZE-RESUME