g-quoter.w 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v9r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME gDialog
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gDialog
  6. /*------------------------------------------------------------------------
  7. File:
  8. Description: from cntnrdlg.w - ADM2 SmartDialog Template
  9. Input Parameters:
  10. <none>
  11. Output Parameters:
  12. <none>
  13. Author:
  14. Created:
  15. ------------------------------------------------------------------------*/
  16. /* This .W file was created with the Progress AppBuilder. */
  17. /*----------------------------------------------------------------------*/
  18. /* Create an unnamed pool to store all the widgets created
  19. by this procedure. This is a good default which assures
  20. that this procedure's triggers and internal procedures
  21. will execute in this procedure's storage, and that proper
  22. cleanup will occur on deletion of the procedure. */
  23. CREATE WIDGET-POOL.
  24. /* *************************** Definitions ************************** */
  25. /* Parameters Definitions --- */
  26. /* Local Variable Definitions --- */
  27. DEF VAR sOrdner AS CHAR NO-UNDO.
  28. DEF STREAM IN_Stream.
  29. DEF STREAM OUT_Stream.
  30. /* ---------- Globale Variablen ---------------------------------- */
  31. /* _UIB-CODE-BLOCK-END */
  32. &ANALYZE-RESUME
  33. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  34. /* ******************** Preprocessor Definitions ******************** */
  35. &Scoped-define PROCEDURE-TYPE SmartDialog
  36. &Scoped-define DB-AWARE no
  37. &Scoped-define ADM-CONTAINER DIALOG-BOX
  38. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  39. /* Name of first Frame and/or Browse and/or first Query */
  40. &Scoped-define FRAME-NAME gDialog
  41. /* Standard List Definitions */
  42. &Scoped-Define ENABLED-OBJECTS F_Eingang Btn_Eingang F_Ausgang F_Zeichen ~
  43. Btn_Ausgang Btn_OK Btn_Cancel
  44. &Scoped-Define DISPLAYED-OBJECTS F_Eingang F_Ausgang F_Zeichen
  45. /* Custom List Definitions */
  46. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  47. &Scoped-define List-5 Btn_OK Btn_Cancel
  48. &Scoped-define List-6 F_Eingang F_Ausgang F_Zeichen
  49. /* _UIB-PREPROCESSOR-BLOCK-END */
  50. &ANALYZE-RESUME
  51. /* *********************** Control Definitions ********************** */
  52. /* Define a dialog box */
  53. /* Definitions of the field level widgets */
  54. DEFINE BUTTON Btn_Ausgang
  55. IMAGE-UP FILE "grafik/select.bmp":U
  56. LABEL "Datei"
  57. SIZE 5 BY 1.
  58. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  59. LABEL "Cancel"
  60. SIZE 12 BY 1.
  61. DEFINE BUTTON Btn_Eingang
  62. IMAGE-UP FILE "grafik/select.bmp":U
  63. LABEL "Datei"
  64. SIZE 5 BY 1.
  65. DEFINE BUTTON Btn_OK AUTO-GO
  66. LABEL "OK"
  67. SIZE 12 BY 1.
  68. DEFINE VARIABLE F_Ausgang AS CHARACTER FORMAT "X(256)":U
  69. LABEL "Ausgabe-Datei"
  70. VIEW-AS FILL-IN NATIVE
  71. SIZE 45 BY 1
  72. BGCOLOR 15 NO-UNDO.
  73. DEFINE VARIABLE F_Eingang AS CHARACTER FORMAT "X(256)":U
  74. LABEL "Eingangs-Datei"
  75. VIEW-AS FILL-IN NATIVE
  76. SIZE 45 BY 1
  77. BGCOLOR 15 NO-UNDO.
  78. DEFINE VARIABLE F_Zeichen AS CHARACTER FORMAT "x":U INITIAL "~;"
  79. LABEL "Trennzeichen"
  80. VIEW-AS FILL-IN
  81. SIZE 3 BY 1
  82. BGCOLOR 15 NO-UNDO.
  83. /* ************************ Frame Definitions *********************** */
  84. DEFINE FRAME gDialog
  85. F_Eingang AT ROW 3 COL 18 COLON-ALIGNED
  86. Btn_Eingang AT ROW 3 COL 66 NO-TAB-STOP
  87. F_Ausgang AT ROW 4.52 COL 18 COLON-ALIGNED
  88. F_Zeichen AT ROW 6 COL 18 COLON-ALIGNED
  89. Btn_Ausgang AT ROW 4.52 COL 66 NO-TAB-STOP
  90. Btn_OK AT ROW 7.52 COL 20
  91. Btn_Cancel AT ROW 7.52 COL 53
  92. SPACE(12.19) SKIP(0.95)
  93. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  94. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  95. TITLE "Quoter Datei"
  96. DEFAULT-BUTTON Btn_OK CANCEL-BUTTON Btn_Cancel.
  97. /* *********************** Procedure Settings ************************ */
  98. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  99. /* Settings for THIS-PROCEDURE
  100. Type: SmartDialog
  101. Allow: Basic,Browse,DB-Fields,Query,Smart
  102. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  103. */
  104. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  105. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gDialog
  106. /* ************************* Included-Libraries *********************** */
  107. {src/adm2/containr.i}
  108. /* _UIB-CODE-BLOCK-END */
  109. &ANALYZE-RESUME
  110. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  111. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  112. /* SETTINGS FOR DIALOG-BOX gDialog
  113. Custom */
  114. ASSIGN
  115. FRAME gDialog:SCROLLABLE = FALSE
  116. FRAME gDialog:HIDDEN = TRUE.
  117. /* SETTINGS FOR BUTTON Btn_Cancel IN FRAME gDialog
  118. 5 */
  119. /* SETTINGS FOR BUTTON Btn_OK IN FRAME gDialog
  120. 5 */
  121. /* SETTINGS FOR FILL-IN F_Ausgang IN FRAME gDialog
  122. 6 */
  123. /* SETTINGS FOR FILL-IN F_Eingang IN FRAME gDialog
  124. 6 */
  125. /* SETTINGS FOR FILL-IN F_Zeichen IN FRAME gDialog
  126. 6 */
  127. /* _RUN-TIME-ATTRIBUTES-END */
  128. &ANALYZE-RESUME
  129. /* Setting information for Queries and Browse Widgets fields */
  130. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gDialog
  131. /* Query rebuild information for DIALOG-BOX gDialog
  132. _Options = "SHARE-LOCK"
  133. _Query is NOT OPENED
  134. */ /* DIALOG-BOX gDialog */
  135. &ANALYZE-RESUME
  136. /* ************************ Control Triggers ************************ */
  137. &Scoped-define SELF-NAME gDialog
  138. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gDialog gDialog
  139. ON END-ERROR OF FRAME gDialog /* Quoter Datei */
  140. DO:
  141. &IF DEFINED(UIB_IS_RUNNING) = 0 &THEN
  142. DYNAMIC-FUNCTION('SETDIALOGFLAG', INPUT FALSE ).
  143. &ENDIF
  144. END.
  145. /* _UIB-CODE-BLOCK-END */
  146. &ANALYZE-RESUME
  147. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gDialog gDialog
  148. ON WINDOW-CLOSE OF FRAME gDialog /* Quoter Datei */
  149. DO:
  150. &IF DEFINED(UIB_IS_RUNNING) = 0 &THEN
  151. DYNAMIC-FUNCTION('SETDIALOGFLAG', INPUT FALSE ).
  152. &ENDIF
  153. APPLY "END-ERROR":U TO SELF.
  154. END.
  155. /* _UIB-CODE-BLOCK-END */
  156. &ANALYZE-RESUME
  157. &Scoped-define SELF-NAME Btn_Ausgang
  158. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Ausgang gDialog
  159. ON CHOOSE OF Btn_Ausgang IN FRAME gDialog /* Datei */
  160. DO:
  161. RUN SUCHEN_DATEI ( INPUT 2 ).
  162. F_Ausgang:SCREEN-VALUE = F_Ausgang.
  163. APPLY 'ENTRY' TO F_Ausgang.
  164. END.
  165. /* _UIB-CODE-BLOCK-END */
  166. &ANALYZE-RESUME
  167. &Scoped-define SELF-NAME Btn_Cancel
  168. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gDialog
  169. ON CHOOSE OF Btn_Cancel IN FRAME gDialog /* Cancel */
  170. DO:
  171. &IF DEFINED(UIB_IS_RUNNING) = 0 &THEN
  172. DYNAMIC-FUNCTION('SETDIALOGFLAG', INPUT FALSE ).
  173. &ENDIF
  174. END.
  175. /* _UIB-CODE-BLOCK-END */
  176. &ANALYZE-RESUME
  177. &Scoped-define SELF-NAME Btn_Eingang
  178. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Eingang gDialog
  179. ON CHOOSE OF Btn_Eingang IN FRAME gDialog /* Datei */
  180. DO:
  181. RUN SUCHEN_DATEI ( INPUT 1 ).
  182. F_Eingang:SCREEN-VALUE = F_Eingang.
  183. APPLY 'ENTRY' TO F_Eingang.
  184. END.
  185. /* _UIB-CODE-BLOCK-END */
  186. &ANALYZE-RESUME
  187. &Scoped-define SELF-NAME Btn_OK
  188. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gDialog
  189. ON CHOOSE OF Btn_OK IN FRAME gDialog /* OK */
  190. DO:
  191. DO WITH FRAME {&FRAME-NAME}:
  192. ASSIGN {&list-6}.
  193. DISABLE {&List-5}.
  194. RUN VERARBEITEN.
  195. ENABLE {&List-5}.
  196. END.
  197. END.
  198. /* _UIB-CODE-BLOCK-END */
  199. &ANALYZE-RESUME
  200. &Scoped-define SELF-NAME F_Ausgang
  201. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Ausgang gDialog
  202. ON LEAVE OF F_Ausgang IN FRAME gDialog /* Ausgabe-Datei */
  203. DO:
  204. /*
  205. F_Ausgang = SELF:SCREEN-VALUE.
  206. IF F_Ausgang = '' THEN DO:
  207. APPLY 'ENTRY' TO SELF.
  208. RETURN NO-APPLY.
  209. END.
  210. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  211. OUTPUT TO VALUE(F_Ausgang).
  212. LEAVE.
  213. END.
  214. OUTPUT CLOSE.
  215. IF SEARCH(F_Ausgang) = ? OR
  216. SEARCH(F_Ausgang) <> F_Ausgang THEN DO:
  217. APPLY 'ENTRY' TO SELF.
  218. RETURN NO-APPLY.
  219. END.
  220. OS-DELETE VALUE(F_Ausgang).
  221. */
  222. END.
  223. /* _UIB-CODE-BLOCK-END */
  224. &ANALYZE-RESUME
  225. &Scoped-define SELF-NAME F_Eingang
  226. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Eingang gDialog
  227. ON LEAVE OF F_Eingang IN FRAME gDialog /* Eingangs-Datei */
  228. DO:
  229. /*
  230. F_Eingang = SELF:SCREEN-VALUE.
  231. IF SEARCH(F_Eingang) = ? THEN DO:
  232. APPLY 'ENTRY' TO SELF.
  233. RETURN NO-APPLY.
  234. END.
  235. */
  236. END.
  237. /* _UIB-CODE-BLOCK-END */
  238. &ANALYZE-RESUME
  239. &UNDEFINE SELF-NAME
  240. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gDialog
  241. /* *************************** Main Block *************************** */
  242. SESSION:DATA-ENTRY-RETURN = TRUE.
  243. sOrdner = SESSION:TEMP-DIR.
  244. &IF DEFINED(UIB_IS_RUNNING) = 0 &THEN
  245. DYNAMIC-FUNCTION('SETDIALOGFLAG', INPUT TRUE ).
  246. &ENDIF
  247. {src/adm2/dialogmn.i}
  248. /* _UIB-CODE-BLOCK-END */
  249. &ANALYZE-RESUME
  250. /* ********************** Internal Procedures *********************** */
  251. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gDialog _ADM-CREATE-OBJECTS
  252. PROCEDURE adm-create-objects :
  253. /*------------------------------------------------------------------------------
  254. Purpose: Create handles for all SmartObjects used in this procedure.
  255. After SmartObjects are initialized, then SmartLinks are added.
  256. Parameters: <none>
  257. ------------------------------------------------------------------------------*/
  258. END PROCEDURE.
  259. /* _UIB-CODE-BLOCK-END */
  260. &ANALYZE-RESUME
  261. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gDialog _DEFAULT-DISABLE
  262. PROCEDURE disable_UI :
  263. /*------------------------------------------------------------------------------
  264. Purpose: DISABLE the User Interface
  265. Parameters: <none>
  266. Notes: Here we clean-up the user-interface by deleting
  267. dynamic widgets we have created and/or hide
  268. frames. This procedure is usually called when
  269. we are ready to "clean-up" after running.
  270. ------------------------------------------------------------------------------*/
  271. /* Hide all frames. */
  272. HIDE FRAME gDialog.
  273. END PROCEDURE.
  274. /* _UIB-CODE-BLOCK-END */
  275. &ANALYZE-RESUME
  276. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gDialog _DEFAULT-ENABLE
  277. PROCEDURE enable_UI :
  278. /*------------------------------------------------------------------------------
  279. Purpose: ENABLE the User Interface
  280. Parameters: <none>
  281. Notes: Here we display/view/enable the widgets in the
  282. user-interface. In addition, OPEN all queries
  283. associated with each FRAME and BROWSE.
  284. These statements here are based on the "Other
  285. Settings" section of the widget Property Sheets.
  286. ------------------------------------------------------------------------------*/
  287. DISPLAY F_Eingang F_Ausgang F_Zeichen
  288. WITH FRAME gDialog.
  289. ENABLE F_Eingang Btn_Eingang F_Ausgang F_Zeichen Btn_Ausgang Btn_OK
  290. Btn_Cancel
  291. WITH FRAME gDialog.
  292. VIEW FRAME gDialog.
  293. {&OPEN-BROWSERS-IN-QUERY-gDialog}
  294. END PROCEDURE.
  295. /* _UIB-CODE-BLOCK-END */
  296. &ANALYZE-RESUME
  297. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUCHEN_DATEI gDialog
  298. PROCEDURE SUCHEN_DATEI :
  299. /*------------------------------------------------------------------------------
  300. Purpose:
  301. Parameters: <none>
  302. Notes:
  303. ------------------------------------------------------------------------------*/
  304. DEF INPUT PARAMETER ipFeld AS INT NO-UNDO.
  305. DEF VAR VDateiname AS CHAR NO-UNDO.
  306. DEF VAR Ja AS LOG NO-UNDO.
  307. DEF VAR ii AS INT NO-UNDO.
  308. CASE ipFeld:
  309. WHEN 1 THEN DO:
  310. IF F_Eingang > '' THEN VDateiname = F_Eingang.
  311. SYSTEM-DIALOG GET-FILE VDateiname
  312. FILTERS 'csv Dateien' '*.csv',
  313. '(alle Dateien)' '*.*'
  314. INITIAL-DIR sOrdner
  315. MUST-EXIST
  316. TITLE 'Eingabe Datei'
  317. USE-FILENAME
  318. UPDATE Ja.
  319. END.
  320. WHEN 2 THEN DO:
  321. IF F_Ausgang > '' THEN VDateiname = F_Ausgang.
  322. SYSTEM-DIALOG GET-FILE VDateiname
  323. FILTERS 'Progress Export' '*.pro',
  324. '(alle Dateien)' '*.*'
  325. INITIAL-DIR sOrdner
  326. TITLE 'Ausgabe Datei'
  327. SAVE-AS ASK-OVERWRITE
  328. USE-FILENAME
  329. UPDATE Ja.
  330. END.
  331. END CASE.
  332. IF NOT Ja THEN RETURN.
  333. IF ipFeld = 1 THEN F_Eingang = VDateiname.
  334. IF ipFeld = 2 THEN F_Ausgang = VDateiname.
  335. ii = R-INDEX(VDateiname, '\').
  336. DO WHILE TRUE:
  337. IF ii = 0 THEN LEAVE.
  338. sOrdner = SUBSTRING(VDateiname,01,ii - 1).
  339. LEAVE.
  340. END.
  341. ii = R-INDEX(VDateiname, '/').
  342. DO WHILE TRUE:
  343. IF ii = 0 THEN LEAVE.
  344. sOrdner = SUBSTRING(VDateiname,01,ii - 1).
  345. LEAVE.
  346. END.
  347. END PROCEDURE.
  348. /* _UIB-CODE-BLOCK-END */
  349. &ANALYZE-RESUME
  350. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERARBEITEN gDialog
  351. PROCEDURE VERARBEITEN :
  352. /*------------------------------------------------------------------------------
  353. Purpose:
  354. Parameters: <none>
  355. Notes:
  356. ------------------------------------------------------------------------------*/
  357. DEF VAR VInZeile AS CHAR NO-UNDO.
  358. DEF VAR VOutZeile AS CHAR NO-UNDO.
  359. DEF VAR ii AS INT NO-UNDO.
  360. DEF VAR jj AS INT NO-UNDO.
  361. INPUT STREAM In_Stream FROM VALUE(F_Eingang) NO-ECHO NO-MAP.
  362. OUTPUT STREAM Out_Stream TO VALUE(F_Ausgang) NO-ECHO NO-MAP.
  363. REPEAT ON STOP UNDO, LEAVE WITH FRAME f_Print:
  364. IMPORT STREAM In_Stream UNFORMATTED VInZeile.
  365. ii = NUM-ENTRIES(VInZeile, F_Zeichen ).
  366. VOutZeile = ''.
  367. DO jj = 1 TO ii:
  368. VOutZeile = VOutZeile + '"' + ENTRY(jj, VInZeile, F_Zeichen ) + '"'.
  369. IF jj < ii THEN VOutZeile = VOutZeile + ' '.
  370. END.
  371. PUT STREAM Out_Stream CONTROL VOutZeile CHR(10).
  372. END.
  373. INPUT CLOSE.
  374. OUTPUT CLOSE.
  375. END PROCEDURE.
  376. /* _UIB-CODE-BLOCK-END */
  377. &ANALYZE-RESUME