b-tabel.w 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS bTableWin
  8. /*------------------------------------------------------------------------
  9. File: adm2\src\browser.w
  10. Description: SmartDataBrowser Object
  11. Input Parameters:
  12. <none>
  13. Output Parameters:
  14. <none>
  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 cFelder AS CHAR NO-UNDO.
  28. DEF VAR cFeld AS CHAR NO-UNDO.
  29. DEF VAR cLabel AS CHAR NO-UNDO.
  30. DEF VAR cFormat AS CHAR NO-UNDO.
  31. DEF VAR cLang AS CHAR NO-UNDO.
  32. DEF VAR FoFirma AS CHAR NO-UNDO INIT 'x(08)'.
  33. DEF VAR FoRecArt AS CHAR NO-UNDO INIT 'x(12)'.
  34. DEF VAR FoSprcd AS CHAR NO-UNDO INIT '9'.
  35. DEF VAR FoCodeI AS CHAR NO-UNDO INIT '999999'.
  36. DEF VAR FoCodeC AS CHAR NO-UNDO INIT 'x(08)'.
  37. DEF VAR FoBez1 AS CHAR NO-UNDO INIT 'x(30)'.
  38. DEF VAR FoBez2 AS CHAR NO-UNDO INIT 'x(30)'.
  39. DEF VAR FoBezL AS CHAR NO-UNDO INIT 'x(80)'.
  40. DEF VAR FoInt_1 AS CHAR NO-UNDO INIT 'zzz,zz9-'.
  41. DEF VAR FoInt_2 AS CHAR NO-UNDO INIT 'zzz,zz9-'.
  42. DEF VAR FoInt_3 AS CHAR NO-UNDO INIT 'zzz,zz9-'.
  43. DEF VAR FoDec_1 AS CHAR NO-UNDO INIT 'zzz,zz9.99-'.
  44. DEF VAR FoDec_2 AS CHAR NO-UNDO INIT 'zzz,zz9.99-'.
  45. DEF VAR FoDec_3 AS CHAR NO-UNDO INIT 'zzz,zz9.99-'.
  46. DEF VAR RecArt AS CHAR NO-UNDO INIT 'Allgemein'.
  47. /* _UIB-CODE-BLOCK-END */
  48. &ANALYZE-RESUME
  49. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  50. /* ******************** Preprocessor Definitions ******************** */
  51. &Scoped-define PROCEDURE-TYPE SmartDataBrowser
  52. &Scoped-define DB-AWARE no
  53. &Scoped-define ADM-SUPPORTED-LINKS TableIO-Target,Data-Target,Update-Source
  54. /* Include file with RowObject temp-table definition */
  55. &Scoped-define DATA-FIELD-DEFS "d-tabel.i"
  56. /* Name of first Frame and/or Browse and/or first Query */
  57. &Scoped-define FRAME-NAME F-Main
  58. &Scoped-define BROWSE-NAME br_table
  59. /* Internal Tables (found by Frame, Query & Browse Queries) */
  60. &Scoped-define INTERNAL-TABLES rowObject
  61. /* Definitions for BROWSE br_table */
  62. &Scoped-define FIELDS-IN-QUERY-br_table rowObject.Firma rowObject.Sprcd ~
  63. rowObject.RecArt rowObject.CodeC rowObject.CodeI rowObject.Bez1 ~
  64. rowObject.Bez2 rowObject.BezL rowObject.Int_1 rowObject.Int_2 ~
  65. rowObject.Int_3 rowObject.Dec_1 rowObject.Dec_2 rowObject.Dec_3
  66. &Scoped-define ENABLED-FIELDS-IN-QUERY-br_table
  67. &Scoped-define QUERY-STRING-br_table FOR EACH rowObject NO-LOCK INDEXED-REPOSITION
  68. &Scoped-define OPEN-QUERY-br_table OPEN QUERY br_table FOR EACH rowObject NO-LOCK INDEXED-REPOSITION.
  69. &Scoped-define TABLES-IN-QUERY-br_table rowObject
  70. &Scoped-define FIRST-TABLE-IN-QUERY-br_table rowObject
  71. /* Definitions for FRAME F-Main */
  72. /* Standard List Definitions */
  73. &Scoped-Define ENABLED-OBJECTS RECT-Browser br_table
  74. /* Custom List Definitions */
  75. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  76. /* _UIB-PREPROCESSOR-BLOCK-END */
  77. &ANALYZE-RESUME
  78. /* *********************** Control Definitions ********************** */
  79. /* Definitions of the field level widgets */
  80. DEFINE RECTANGLE RECT-Browser
  81. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  82. SIZE 109.8 BY 7.14.
  83. /* Query definitions */
  84. &ANALYZE-SUSPEND
  85. DEFINE TEMP-TABLE RowObject NO-UNDO
  86. {{&DATA-FIELD-DEFS}}
  87. {src/adm2/robjflds.i}.
  88. DEFINE QUERY br_table FOR
  89. rowObject SCROLLING.
  90. &ANALYZE-RESUME
  91. /* Browse definitions */
  92. DEFINE BROWSE br_table
  93. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS br_table bTableWin _STRUCTURED
  94. QUERY br_table NO-LOCK DISPLAY
  95. rowObject.Firma FORMAT "x(08)":U
  96. rowObject.Sprcd FORMAT "99":U WIDTH 6
  97. rowObject.RecArt FORMAT "x(12)":U
  98. rowObject.CodeC COLUMN-LABEL "Code" FORMAT "x(8)":U
  99. rowObject.CodeI COLUMN-LABEL "Code" FORMAT "999999":U
  100. rowObject.Bez1 COLUMN-LABEL "Bezeichnung 1" FORMAT "x(30)":U
  101. rowObject.Bez2 COLUMN-LABEL "Bezeichnung 2" FORMAT "x(30)":U
  102. rowObject.BezL COLUMN-LABEL "Bezeichnung Lang" FORMAT "x(80)":U
  103. rowObject.Int_1 FORMAT "zzz,zz9-":U
  104. rowObject.Int_2 FORMAT "zzz,zz9-":U
  105. rowObject.Int_3 FORMAT "zzz,zz9-":U
  106. rowObject.Dec_1 FORMAT "zzz,zz9.99-":U
  107. rowObject.Dec_2 FORMAT "zzz,zz9.99-":U
  108. rowObject.Dec_3 FORMAT "zzz,zz9.99-":U
  109. /* _UIB-CODE-BLOCK-END */
  110. &ANALYZE-RESUME
  111. WITH NO-ASSIGN NO-AUTO-VALIDATE NO-ROW-MARKERS SEPARATORS SIZE 106 BY 6.67
  112. BGCOLOR 15 .
  113. /* ************************ Frame Definitions *********************** */
  114. DEFINE FRAME F-Main
  115. br_table AT ROW 1.48 COL 3
  116. RECT-Browser AT ROW 1.24 COL 2
  117. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  118. SIDE-LABELS NO-UNDERLINE THREE-D
  119. AT COL 1 ROW 1 SCROLLABLE .
  120. /* *********************** Procedure Settings ************************ */
  121. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  122. /* Settings for THIS-PROCEDURE
  123. Type: SmartDataBrowser
  124. Data Source: "d-tabel.w"
  125. Allow: Basic,Browse
  126. Frames: 1
  127. Add Fields to: Neither
  128. Other Settings: PERSISTENT-ONLY COMPILE
  129. */
  130. /* This procedure should always be RUN PERSISTENT. Report the error, */
  131. /* then cleanup and return. */
  132. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  133. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  134. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  135. RETURN.
  136. END.
  137. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  138. /* ************************* Create Window ************************** */
  139. &ANALYZE-SUSPEND _CREATE-WINDOW
  140. /* DESIGN Window definition (used by the UIB)
  141. CREATE WINDOW bTableWin ASSIGN
  142. HEIGHT = 7.67
  143. WIDTH = 111.4.
  144. /* END WINDOW DEFINITION */
  145. */
  146. &ANALYZE-RESUME
  147. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB bTableWin
  148. /* ************************* Included-Libraries *********************** */
  149. {src/adm2/browser.i}
  150. /* _UIB-CODE-BLOCK-END */
  151. &ANALYZE-RESUME
  152. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  153. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  154. /* SETTINGS FOR WINDOW bTableWin
  155. NOT-VISIBLE,,RUN-PERSISTENT */
  156. /* SETTINGS FOR FRAME F-Main
  157. NOT-VISIBLE Size-to-Fit */
  158. /* BROWSE-TAB br_table RECT-Browser F-Main */
  159. ASSIGN
  160. FRAME F-Main:SCROLLABLE = FALSE
  161. FRAME F-Main:HIDDEN = TRUE.
  162. ASSIGN
  163. br_table:COLUMN-RESIZABLE IN FRAME F-Main = TRUE
  164. br_table:COLUMN-MOVABLE IN FRAME F-Main = TRUE.
  165. /* _RUN-TIME-ATTRIBUTES-END */
  166. &ANALYZE-RESUME
  167. /* Setting information for Queries and Browse Widgets fields */
  168. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE br_table
  169. /* Query rebuild information for BROWSE br_table
  170. _TblList = "rowObject"
  171. _Options = "NO-LOCK INDEXED-REPOSITION"
  172. _FldNameList[1] > _<SDO>.rowObject.Firma
  173. "rowObject.Firma" ? ? "character" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  174. _FldNameList[2] > _<SDO>.rowObject.Sprcd
  175. "rowObject.Sprcd" ? ? "integer" ? ? ? ? ? ? no "?" no no "6" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  176. _FldNameList[3] = _<SDO>.rowObject.RecArt
  177. _FldNameList[4] > _<SDO>.rowObject.CodeC
  178. "rowObject.CodeC" "Code" ? "character" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  179. _FldNameList[5] > _<SDO>.rowObject.CodeI
  180. "rowObject.CodeI" "Code" ? "integer" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  181. _FldNameList[6] > _<SDO>.rowObject.Bez1
  182. "rowObject.Bez1" "Bezeichnung 1" ? "character" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  183. _FldNameList[7] > _<SDO>.rowObject.Bez2
  184. "rowObject.Bez2" "Bezeichnung 2" ? "character" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  185. _FldNameList[8] > _<SDO>.rowObject.BezL
  186. "rowObject.BezL" "Bezeichnung Lang" ? "character" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  187. _FldNameList[9] > _<SDO>.rowObject.Int_1
  188. "rowObject.Int_1" ? ? "integer" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  189. _FldNameList[10] > _<SDO>.rowObject.Int_2
  190. "rowObject.Int_2" ? ? "integer" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  191. _FldNameList[11] > _<SDO>.rowObject.Int_3
  192. "rowObject.Int_3" ? ? "integer" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  193. _FldNameList[12] > _<SDO>.rowObject.Dec_1
  194. "rowObject.Dec_1" ? ? "decimal" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  195. _FldNameList[13] > _<SDO>.rowObject.Dec_2
  196. "rowObject.Dec_2" ? ? "decimal" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  197. _FldNameList[14] > _<SDO>.rowObject.Dec_3
  198. "rowObject.Dec_3" ? ? "decimal" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  199. _Query is NOT OPENED
  200. */ /* BROWSE br_table */
  201. &ANALYZE-RESUME
  202. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  203. /* Query rebuild information for FRAME F-Main
  204. _Options = "NO-LOCK"
  205. _Query is NOT OPENED
  206. */ /* FRAME F-Main */
  207. &ANALYZE-RESUME
  208. /* ************************ Control Triggers ************************ */
  209. &Scoped-define BROWSE-NAME br_table
  210. &Scoped-define SELF-NAME br_table
  211. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  212. ON CTRL-END OF br_table IN FRAME F-Main
  213. DO:
  214. APPLY "END":U TO BROWSE br_table.
  215. END.
  216. /* _UIB-CODE-BLOCK-END */
  217. &ANALYZE-RESUME
  218. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  219. ON CTRL-HOME OF br_table IN FRAME F-Main
  220. DO:
  221. APPLY "HOME":U TO BROWSE br_table.
  222. END.
  223. /* _UIB-CODE-BLOCK-END */
  224. &ANALYZE-RESUME
  225. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  226. ON END OF br_table IN FRAME F-Main
  227. DO:
  228. {src/adm2/brsend.i}
  229. END.
  230. /* _UIB-CODE-BLOCK-END */
  231. &ANALYZE-RESUME
  232. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  233. ON HOME OF br_table IN FRAME F-Main
  234. DO:
  235. {src/adm2/brshome.i}
  236. END.
  237. /* _UIB-CODE-BLOCK-END */
  238. &ANALYZE-RESUME
  239. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  240. ON OFF-END OF br_table IN FRAME F-Main
  241. DO:
  242. {src/adm2/brsoffnd.i}
  243. END.
  244. /* _UIB-CODE-BLOCK-END */
  245. &ANALYZE-RESUME
  246. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  247. ON OFF-HOME OF br_table IN FRAME F-Main
  248. DO:
  249. {src/adm2/brsoffhm.i}
  250. END.
  251. /* _UIB-CODE-BLOCK-END */
  252. &ANALYZE-RESUME
  253. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  254. ON ROW-DISPLAY OF br_table IN FRAME F-Main
  255. DO:
  256. rowObject.Firma:FORMAT IN BROWSE {&BROWSE-NAME} = FoFirma.
  257. rowObject.Sprcd:FORMAT IN BROWSE {&BROWSE-NAME} = FoSprcd.
  258. rowObject.RecArt:FORMAT IN BROWSE {&BROWSE-NAME} = FoRecArt.
  259. rowObject.CodeI:FORMAT IN BROWSE {&BROWSE-NAME} = FoCodeI.
  260. rowObject.CodeC:FORMAT IN BROWSE {&BROWSE-NAME} = FoCodeC.
  261. rowObject.Bez1:FORMAT IN BROWSE {&BROWSE-NAME} = FoBez1.
  262. rowObject.Bez2:FORMAT IN BROWSE {&BROWSE-NAME} = FoBez2.
  263. rowObject.BezL:FORMAT IN BROWSE {&BROWSE-NAME} = FoBezL.
  264. rowObject.Int_1:FORMAT IN BROWSE {&BROWSE-NAME} = FoInt_1.
  265. rowObject.Int_2:FORMAT IN BROWSE {&BROWSE-NAME} = FoInt_2.
  266. rowObject.Int_3:FORMAT IN BROWSE {&BROWSE-NAME} = FoInt_3.
  267. rowObject.Dec_1:FORMAT IN BROWSE {&BROWSE-NAME} = FoDec_1.
  268. rowObject.Dec_2:FORMAT IN BROWSE {&BROWSE-NAME} = FoDec_2.
  269. rowObject.Dec_3:FORMAT IN BROWSE {&BROWSE-NAME} = FoDec_3.
  270. END.
  271. /* _UIB-CODE-BLOCK-END */
  272. &ANALYZE-RESUME
  273. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  274. ON ROW-ENTRY OF br_table IN FRAME F-Main
  275. DO:
  276. {src/adm2/brsentry.i}
  277. END.
  278. /* _UIB-CODE-BLOCK-END */
  279. &ANALYZE-RESUME
  280. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  281. ON ROW-LEAVE OF br_table IN FRAME F-Main
  282. DO:
  283. {src/adm2/brsleave.i}
  284. END.
  285. /* _UIB-CODE-BLOCK-END */
  286. &ANALYZE-RESUME
  287. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  288. ON SCROLL-NOTIFY OF br_table IN FRAME F-Main
  289. DO:
  290. {src/adm2/brsscrol.i}
  291. END.
  292. /* _UIB-CODE-BLOCK-END */
  293. &ANALYZE-RESUME
  294. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  295. ON VALUE-CHANGED OF br_table IN FRAME F-Main
  296. DO:
  297. {src/adm2/brschnge.i}
  298. END.
  299. /* _UIB-CODE-BLOCK-END */
  300. &ANALYZE-RESUME
  301. &UNDEFINE SELF-NAME
  302. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK bTableWin
  303. /* *************************** Main Block *************************** */
  304. RecArt = DYNAMIC-FUNCTION('GETTABELLE':U) NO-ERROR.
  305. IF RecArt = ? THEN RecArt = ''.
  306. SUBSCRIBE TO 'SETRECTBREITE' ANYWHERE.
  307. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  308. RUN initializeObject.
  309. &ENDIF
  310. /* _UIB-CODE-BLOCK-END */
  311. &ANALYZE-RESUME
  312. /* ********************** Internal Procedures *********************** */
  313. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI bTableWin _DEFAULT-DISABLE
  314. PROCEDURE disable_UI :
  315. /*------------------------------------------------------------------------------
  316. Purpose: DISABLE the User Interface
  317. Parameters: <none>
  318. Notes: Here we clean-up the user-interface by deleting
  319. dynamic widgets we have created and/or hide
  320. frames. This procedure is usually called when
  321. we are ready to "clean-up" after running.
  322. ------------------------------------------------------------------------------*/
  323. /* Hide all frames. */
  324. HIDE FRAME F-Main.
  325. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  326. END PROCEDURE.
  327. /* _UIB-CODE-BLOCK-END */
  328. &ANALYZE-RESUME
  329. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FORMAT_BROWSER bTableWin
  330. PROCEDURE FORMAT_BROWSER :
  331. /*------------------------------------------------------------------------------
  332. Purpose:
  333. Parameters: <none>
  334. Notes:
  335. ------------------------------------------------------------------------------*/
  336. DEF INPUT PARAMETER ipFelder AS CHAR NO-UNDO.
  337. DEF VAR hColumn AS HANDLE NO-UNDO.
  338. DEF VAR i1 AS INT NO-UNDO.
  339. DEF VAR i2 AS INT NO-UNDO.
  340. DEF VAR ib AS INT NO-UNDO.
  341. DEF VAR ie AS INT NO-UNDO.
  342. DEF VAR nColumn AS INT NO-UNDO.
  343. DEF VAR xFeld AS CHAR NO-UNDO.
  344. DEF VAR xLabel AS CHAR NO-UNDO.
  345. DEF VAR xFormat AS CHAR NO-UNDO.
  346. DEF VAR xLang AS CHAR NO-UNDO.
  347. DEF VAR iLength AS DEC DECIMALS 4 NO-UNDO.
  348. DEF VAR dBreite AS DEC DECIMALS 4 NO-UNDO.
  349. IF NUM-ENTRIES(ipFelder, ';') = 0 THEN RETURN.
  350. DO i1 = 1 TO NUM-ENTRIES(ipFelder, ';').
  351. xFeld = ''.
  352. xLabel = ''.
  353. xFormat = ''.
  354. xLang = ''.
  355. cFelder = ENTRY(i1, ipFelder, ';').
  356. xFeld = ENTRY(1, cFelder, ',') NO-ERROR.
  357. xLabel = ENTRY(2, cFelder, ',') NO-ERROR.
  358. xFormat = ENTRY(3, cFelder, ',') NO-ERROR.
  359. DO WHILE TRUE:
  360. IF xFormat <> '' THEN LEAVE.
  361. CASE xFeld:
  362. WHEN 'Firma' THEN xFormat = 'x(08)'.
  363. WHEN 'RecArt' THEN xFormat = 'x(12)'.
  364. WHEN 'Sprcd' THEN xFormat = '9'.
  365. WHEN 'CodeI' THEN xFormat = '999999'.
  366. WHEN 'CodeC' THEN xFormat = 'x(08)'.
  367. WHEN 'Bez1' THEN xFormat = 'x(30)'.
  368. WHEN 'Bez2' THEN xFormat = 'x(30)'.
  369. WHEN 'BezL' THEN xFormat = 'x(80)'.
  370. WHEN 'Int_1' THEN xFormat = 'zzz,zz9'.
  371. WHEN 'Int_2' THEN xFormat = 'zzz,zz9'.
  372. WHEN 'Int_3' THEN xFormat = 'zzz,zz9'.
  373. WHEN 'Dec_1' THEN xFormat = 'zzz,zz9.99'.
  374. WHEN 'Dec_2' THEN xFormat = 'zzz,zz9.99'.
  375. WHEN 'Dec_3' THEN xFormat = 'zzz,zz9.99'.
  376. END CASE.
  377. LEAVE.
  378. END.
  379. DO WHILE TRUE:
  380. ib = INDEX(xFormat, '(').
  381. IF ib = 0 THEN DO:
  382. xLang = STRING(LENGTH(xFormat)).
  383. LEAVE.
  384. END.
  385. ib = ib + 1.
  386. ie = INDEX(xFormat, ')').
  387. IF ie = 0 THEN DO:
  388. xLang = STRING(LENGTH(xFormat)).
  389. LEAVE.
  390. END.
  391. i2 = ie - ib.
  392. xLang = STRING(INTEGER(SUBSTRING(xFormat,ib,i2))).
  393. LEAVE.
  394. END.
  395. cFeld = cFeld + xFeld.
  396. cLabel = cLabel + xLabel.
  397. cFormat = cFormat + xFormat.
  398. cLang = cLang + xLang.
  399. IF i1 < NUM-ENTRIES(ipFelder, ';') THEN DO:
  400. cFeld = cFeld + ';'.
  401. cLabel = cLabel + ';'.
  402. cFormat = cFormat + ';'.
  403. cLang = cLang + ';'.
  404. END.
  405. END.
  406. DO WITH FRAME {&FRAME-NAME}:
  407. DO WHILE TRUE:
  408. hColumn = {&BROWSE-NAME}:FIRST-COLUMN.
  409. DO WHILE VALID-HANDLE(hColumn):
  410. i1 = LOOKUP(hColumn:NAME, cFeld , ';').
  411. IF i1 = 0 THEN hColumn:VISIBLE = FALSE.
  412. hColumn = hColumn:NEXT-COLUMN.
  413. END.
  414. dBreite = 0.
  415. i2 = 0.
  416. hColumn = {&BROWSE-NAME}:FIRST-COLUMN.
  417. DO WHILE VALID-HANDLE(hColumn):
  418. i2 = i2 + 1.
  419. DO WHILE TRUE:
  420. IF hColumn:VISIBLE = FALSE THEN LEAVE.
  421. i1 = LOOKUP(hColumn:NAME, cFeld , ';').
  422. IF i1 = 0 THEN LEAVE.
  423. IF i1 = i2 THEN LEAVE.
  424. {&BROWSE-NAME}:MOVE-COLUMN(i2, i1).
  425. hColumn = {&BROWSE-NAME}:FIRST-COLUMN.
  426. i2 = 0.
  427. LEAVE.
  428. END.
  429. IF i2 = 0 THEN NEXT.
  430. hColumn = hColumn:NEXT-COLUMN.
  431. END.
  432. dBreite = 0.
  433. i1 = 0.
  434. hColumn = {&BROWSE-NAME}:FIRST-COLUMN.
  435. DO WHILE VALID-HANDLE(hColumn):
  436. DO WHILE TRUE:
  437. IF hColumn:VISIBLE = FALSE THEN LEAVE.
  438. i1 = i1 + 1.
  439. hColumn:LABEL = ENTRY(i1, cLabel , ';').
  440. iLength = DECIMAL(ENTRY(i1, cLang , ';')).
  441. CASE hColumn:DATA-TYPE:
  442. WHEN 'CHARACTER' THEN DO:
  443. IF iLength < 6 THEN iLength = iLength * 2.00.
  444. ELSE
  445. IF iLength < 10 THEN iLength = iLength * 1.75.
  446. ELSE
  447. IF iLength < 15 THEN iLength = iLength * 1.50.
  448. ELSE
  449. IF iLength < 20 THEN iLength = iLength * 1.25.
  450. ELSE iLength = iLength + 2.
  451. END.
  452. WHEN 'INTEGER' THEN iLength = iLength * 1.666.
  453. WHEN 'DECIMAL' THEN iLength = iLength * 1.666.
  454. END CASE.
  455. CASE hColumn:NAME:
  456. WHEN 'Firma' THEN FoFirma = ENTRY(i1, cFormat, ';').
  457. WHEN 'Sprcd' THEN FoSprcd = ENTRY(i1, cFormat, ';').
  458. WHEN 'RecArt' THEN FoRecArt = ENTRY(i1, cFormat, ';').
  459. WHEN 'CodeI' THEN FoCodeI = ENTRY(i1, cFormat, ';').
  460. WHEN 'CodeC' THEN FoCodeC = ENTRY(i1, cFormat, ';').
  461. WHEN 'Bez1' THEN FoBez1 = ENTRY(i1, cFormat, ';').
  462. WHEN 'Bez2' THEN FoBez2 = ENTRY(i1, cFormat, ';').
  463. WHEN 'BezL' THEN FoBezL = ENTRY(i1, cFormat, ';').
  464. WHEN 'Int_1' THEN FoInt_1 = ENTRY(i1, cFormat, ';').
  465. WHEN 'Int_2' THEN FoInt_2 = ENTRY(i1, cFormat, ';').
  466. WHEN 'Int_3' THEN FoInt_3 = ENTRY(i1, cFormat, ';').
  467. WHEN 'Dec_1' THEN FoDec_1 = ENTRY(i1, cFormat, ';').
  468. WHEN 'Dec_2' THEN FoDec_2 = ENTRY(i1, cFormat, ';').
  469. WHEN 'Dec_3' THEN FoDec_3 = ENTRY(i1, cFormat, ';').
  470. END CASE.
  471. hColumn:WIDTH = iLength.
  472. iLength = LENGTH(hColumn:LABEL) * 1.3.
  473. IF hColumn:WIDTH < iLength THEN hColumn:WIDTH = iLength.
  474. dBreite = dBreite + hColumn:WIDTH.
  475. LEAVE.
  476. END.
  477. hColumn = hColumn:NEXT-COLUMN.
  478. END.
  479. LEAVE.
  480. END.
  481. IF dBreite > 105 THEN dBreite = 105.
  482. {&BROWSE-NAME}:WIDTH = dBreite + 5.
  483. RECT-Browser:WIDTH = dBreite + 7.
  484. DEF VAR iDown AS INT NO-UNDO.
  485. DEF VAR Ja AS LOG NO-UNDO.
  486. iDown = {&BROWSE-NAME}:DOWN / 2.
  487. Ja = {&BROWSE-NAME}:SET-REPOSITIONED-ROW(iDown, "CONDITIONAL").
  488. DEF VAR fAttrib AS CHAR NO-UNDO.
  489. DEF VAR cSection AS CHAR NO-UNDO.
  490. cSection = 'Tabelle-' + RecArt.
  491. GET-KEY-VALUE SECTION cSection KEY ? VALUE cFelder.
  492. IF cFelder = ? THEN cFelder = ''.
  493. DO WHILE TRUE:
  494. IF NUM-ENTRIES(cFelder, ';') = 0 THEN LEAVE.
  495. hColumn = {&BROWSE-NAME}:FIRST-COLUMN.
  496. i1 = 0.
  497. DO WHILE VALID-HANDLE(hColumn):
  498. i1 = i1 + 1.
  499. DO WHILE TRUE:
  500. IF LOOKUP(hColumn:NAME, cFelder, ',') = 0 THEN LEAVE.
  501. IF hColumn:VISIBLE = FALSE THEN LEAVE.
  502. GET-KEY-VALUE SECTION cSection
  503. KEY hColumn:NAME
  504. VALUE fAttrib.
  505. IF NUM-ENTRIES(fAttrib, ';') < 2 THEN LEAVE.
  506. nColumn = 0.
  507. dBreite = 0.
  508. nColumn = INTEGER(ENTRY(1,fAttrib, ';')).
  509. dBreite = DECIMAL(ENTRY(2,fAttrib, ';')).
  510. IF nColumn = ? THEN LEAVE.
  511. IF nColumn = 0 THEN LEAVE.
  512. IF dBreite = ? THEN LEAVE.
  513. IF dBreite = 0 THEN LEAVE.
  514. IF hColumn:WIDTH <> dBreite THEN hColumn:WIDTH = dBreite.
  515. IF i1 = nColumn THEN LEAVE.
  516. {&BROWSE-NAME}:MOVE-COLUMN(i1, nColumn).
  517. hColumn = {&BROWSE-NAME}:FIRST-COLUMN.
  518. i1 = 0.
  519. LEAVE.
  520. END.
  521. IF i1 > 0 THEN hColumn = hColumn:NEXT-COLUMN.
  522. END.
  523. LEAVE.
  524. END.
  525. RETURN STRING(RECT-Browser:WIDTH-CHAR).
  526. END.
  527. END PROCEDURE.
  528. /* _UIB-CODE-BLOCK-END */
  529. &ANALYZE-RESUME
  530. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE hideObject bTableWin
  531. PROCEDURE hideObject :
  532. /*------------------------------------------------------------------------------
  533. Purpose: Super Override
  534. Parameters:
  535. Notes:
  536. ------------------------------------------------------------------------------*/
  537. DEF VAR hColumn AS HANDLE NO-UNDO.
  538. DEF VAR fAttrib AS CHAR NO-UNDO.
  539. DEF VAR cSection AS CHAR NO-UNDO.
  540. DEF VAR i1 AS INT NO-UNDO.
  541. cSection = 'Tabelle-' + RecArt.
  542. DO WITH FRAME {&FRAME-NAME}:
  543. hColumn = {&BROWSE-NAME}:FIRST-COLUMN.
  544. i1 = 0.
  545. DO WHILE VALID-HANDLE(hColumn):
  546. DO WHILE TRUE:
  547. IF hColumn:VISIBLE = FALSE THEN LEAVE.
  548. i1 = i1 + 1.
  549. fAttrib = STRING(i1) + ';'
  550. + STRING(hColumn:WIDTH).
  551. PUT-KEY-VALUE SECTION cSection
  552. KEY hColumn:NAME
  553. VALUE fAttrib.
  554. LEAVE.
  555. END.
  556. hColumn = hColumn:NEXT-COLUMN.
  557. END.
  558. END.
  559. RUN SUPER.
  560. END PROCEDURE.
  561. /* _UIB-CODE-BLOCK-END */
  562. &ANALYZE-RESUME
  563. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SETRECTBREITE bTableWin
  564. PROCEDURE SETRECTBREITE :
  565. /*------------------------------------------------------------------------------
  566. Purpose:
  567. Parameters: <none>
  568. Notes:
  569. ------------------------------------------------------------------------------*/
  570. DEF INPUT PARAMETER ipBreite AS DEC NO-UNDO.
  571. DO WITH FRAME {&FRAME-NAME}:
  572. RECT-Browser:WIDTH-CHAR = ipBreite.
  573. END.
  574. END PROCEDURE.
  575. /* _UIB-CODE-BLOCK-END */
  576. &ANALYZE-RESUME