b-viewer_ko.w 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. framework 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. USING utilities.utilitiesHandler FROM PROPATH.
  24. CREATE WIDGET-POOL.
  25. /* *************************** Definitions ************************** */
  26. /* Parameters Definitions --- */
  27. /* Local Variable Definitions --- */
  28. { incl/tmpbrowser.i }
  29. { properties_formular_html.i }
  30. {src/adm2/widgetprto.i}
  31. /* _UIB-CODE-BLOCK-END */
  32. &ANALYZE-RESUME
  33. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  34. /* ******************** Preprocessor Definitions ******************** */
  35. &Scoped-define PROCEDURE-TYPE SmartDataBrowser
  36. &Scoped-define DB-AWARE no
  37. &Scoped-define ADM-SUPPORTED-LINKS TableIO-Target,Data-Target,Update-Source
  38. /* Include file with RowObject temp-table definition */
  39. &Scoped-define DATA-FIELD-DEFS "d-viewer_ko.i"
  40. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  41. &Scoped-define FRAME-NAME F-Main
  42. &Scoped-define BROWSE-NAME br_viewerko
  43. /* Internal Tables (found by Frame, Query & Browse Queries) */
  44. &Scoped-define INTERNAL-TABLES rowObject
  45. /* Definitions for BROWSE br_viewerko */
  46. &Scoped-define FIELDS-IN-QUERY-br_viewerko rowObject.mandant ~
  47. rowObject.benutzer rowObject.program rowObject.tabelle
  48. &Scoped-define ENABLED-FIELDS-IN-QUERY-br_viewerko
  49. &Scoped-define QUERY-STRING-br_viewerko FOR EACH rowObject NO-LOCK INDEXED-REPOSITION
  50. &Scoped-define OPEN-QUERY-br_viewerko OPEN QUERY br_viewerko FOR EACH rowObject NO-LOCK INDEXED-REPOSITION.
  51. &Scoped-define TABLES-IN-QUERY-br_viewerko rowObject
  52. &Scoped-define FIRST-TABLE-IN-QUERY-br_viewerko rowObject
  53. /* Definitions for FRAME F-Main */
  54. /* Standard List Definitions */
  55. &Scoped-Define ENABLED-OBJECTS RECT-1 RECT-3 br_viewerko Btn_create
  56. /* Custom List Definitions */
  57. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  58. /* _UIB-PREPROCESSOR-BLOCK-END */
  59. &ANALYZE-RESUME
  60. /* ************************ Function Prototypes ********************** */
  61. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createSelections bTableWin
  62. FUNCTION createSelections RETURNS CHARACTER
  63. ( iprviewer_ze AS RECID, ipiSprcd AS INTEGER, OUTPUT cWerte AS CHARACTER, OUTPUT cAnzeige AS CHARACTER ) FORWARD.
  64. /* _UIB-CODE-BLOCK-END */
  65. &ANALYZE-RESUME
  66. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getLabel bTableWin
  67. FUNCTION getLabel RETURNS CHARACTER
  68. ( iprRecid AS RECID, ipcArt AS CHARACTER, ipiSprcd AS INTEGER ) FORWARD.
  69. /* _UIB-CODE-BLOCK-END */
  70. &ANALYZE-RESUME
  71. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setZeilenfarbe bTableWin
  72. FUNCTION setZeilenfarbe RETURNS LOGICAL
  73. ( ipFarbe AS INTEGER ) FORWARD.
  74. /* _UIB-CODE-BLOCK-END */
  75. &ANALYZE-RESUME
  76. /* *********************** Control Definitions ********************** */
  77. /* Definitions of the field level widgets */
  78. DEFINE BUTTON Btn_create
  79. LABEL "Format erstellen"
  80. SIZE 22 BY 1.
  81. DEFINE RECTANGLE RECT-1
  82. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  83. SIZE 90 BY 7.14.
  84. DEFINE RECTANGLE RECT-3
  85. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  86. SIZE 32 BY 7.14.
  87. /* Query definitions */
  88. &ANALYZE-SUSPEND
  89. DEFINE TEMP-TABLE RowObject NO-UNDO
  90. {{&DATA-FIELD-DEFS}}
  91. {src/adm2/robjflds.i}.
  92. DEFINE QUERY br_viewerko FOR
  93. rowObject SCROLLING.
  94. &ANALYZE-RESUME
  95. /* Browse definitions */
  96. DEFINE BROWSE br_viewerko
  97. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS br_viewerko bTableWin _STRUCTURED
  98. QUERY br_viewerko NO-LOCK DISPLAY
  99. rowObject.mandant FORMAT "x(08)":U
  100. rowObject.benutzer FORMAT "x(30)":U
  101. rowObject.program FORMAT "x(20)":U
  102. rowObject.tabelle FORMAT "x(20)":U
  103. /* _UIB-CODE-BLOCK-END */
  104. &ANALYZE-RESUME
  105. WITH NO-ASSIGN NO-AUTO-VALIDATE NO-ROW-MARKERS SEPARATORS SIZE 88 BY 6.67.
  106. /* ************************ Frame Definitions *********************** */
  107. DEFINE FRAME F-Main
  108. br_viewerko AT ROW 1.48 COL 3 WIDGET-ID 200
  109. Btn_create AT ROW 2 COL 99 WIDGET-ID 4
  110. RECT-1 AT ROW 1.24 COL 2 WIDGET-ID 2
  111. RECT-3 AT ROW 1.24 COL 93 WIDGET-ID 6
  112. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  113. SIDE-LABELS NO-UNDERLINE THREE-D
  114. AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100.
  115. /* *********************** Procedure Settings ************************ */
  116. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  117. /* Settings for THIS-PROCEDURE
  118. Type: SmartDataBrowser
  119. Data Source: "d-viewer_ko.w"
  120. Allow: Basic,Browse
  121. Frames: 1
  122. Add Fields to: Neither
  123. Other Settings: PERSISTENT-ONLY COMPILE
  124. */
  125. /* This procedure should always be RUN PERSISTENT. Report the error, */
  126. /* then cleanup and return. */
  127. IF NOT THIS-PROCEDURE:PERSISTENT THEN
  128. DO:
  129. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  130. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  131. RETURN.
  132. END.
  133. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  134. /* ************************* Create Window ************************** */
  135. &ANALYZE-SUSPEND _CREATE-WINDOW
  136. /* DESIGN Window definition (used by the UIB)
  137. CREATE WINDOW bTableWin ASSIGN
  138. HEIGHT = 7.62
  139. WIDTH = 125.2.
  140. /* END WINDOW DEFINITION */
  141. */
  142. &ANALYZE-RESUME
  143. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB bTableWin
  144. /* ************************* Included-Libraries *********************** */
  145. {src/adm2/browser.i}
  146. /* _UIB-CODE-BLOCK-END */
  147. &ANALYZE-RESUME
  148. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  149. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  150. /* SETTINGS FOR WINDOW bTableWin
  151. NOT-VISIBLE,,RUN-PERSISTENT */
  152. /* SETTINGS FOR FRAME F-Main
  153. NOT-VISIBLE FRAME-NAME Size-to-Fit */
  154. /* BROWSE-TAB br_viewerko RECT-3 F-Main */
  155. ASSIGN
  156. FRAME F-Main:SCROLLABLE = FALSE
  157. FRAME F-Main:HIDDEN = TRUE.
  158. /* _RUN-TIME-ATTRIBUTES-END */
  159. &ANALYZE-RESUME
  160. /* Setting information for Queries and Browse Widgets fields */
  161. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE br_viewerko
  162. /* Query rebuild information for BROWSE br_viewerko
  163. _TblList = "rowObject"
  164. _Options = "NO-LOCK INDEXED-REPOSITION"
  165. _FldNameList[1] = _<SDO>.rowObject.mandant
  166. _FldNameList[2] = _<SDO>.rowObject.benutzer
  167. _FldNameList[3] = _<SDO>.rowObject.program
  168. _FldNameList[4] = _<SDO>.rowObject.tabelle
  169. _Query is NOT OPENED
  170. */ /* BROWSE br_viewerko */
  171. &ANALYZE-RESUME
  172. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  173. /* Query rebuild information for FRAME F-Main
  174. _Options = "NO-LOCK"
  175. _Query is NOT OPENED
  176. */ /* FRAME F-Main */
  177. &ANALYZE-RESUME
  178. /* ************************ Control Triggers ************************ */
  179. &Scoped-define BROWSE-NAME br_viewerko
  180. &Scoped-define SELF-NAME br_viewerko
  181. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin
  182. ON CTRL-END OF br_viewerko IN FRAME F-Main
  183. DO:
  184. APPLY "END":U TO BROWSE {&BROWSE-NAME}.
  185. END.
  186. /* _UIB-CODE-BLOCK-END */
  187. &ANALYZE-RESUME
  188. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin
  189. ON CTRL-HOME OF br_viewerko IN FRAME F-Main
  190. DO:
  191. APPLY "HOME":U TO BROWSE {&BROWSE-NAME}.
  192. END.
  193. /* _UIB-CODE-BLOCK-END */
  194. &ANALYZE-RESUME
  195. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin
  196. ON DEFAULT-ACTION OF br_viewerko IN FRAME F-Main
  197. DO:
  198. {src/adm2/brsdefault.i}
  199. END.
  200. /* _UIB-CODE-BLOCK-END */
  201. &ANALYZE-RESUME
  202. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin
  203. ON END OF br_viewerko IN FRAME F-Main
  204. DO:
  205. {src/adm2/brsend.i}
  206. END.
  207. /* _UIB-CODE-BLOCK-END */
  208. &ANALYZE-RESUME
  209. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin
  210. ON ENTRY OF br_viewerko IN FRAME F-Main
  211. DO:
  212. IF VALID-HANDLE(hFenster) THEN
  213. DO:
  214. RUN SET_TABLEIO IN hFenster ( 'viewerkopf' ).
  215. APPLY 'VALUE-CHANGED' TO SELF.
  216. END.
  217. END.
  218. /* _UIB-CODE-BLOCK-END */
  219. &ANALYZE-RESUME
  220. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin
  221. ON HOME OF br_viewerko IN FRAME F-Main
  222. DO:
  223. {src/adm2/brshome.i}
  224. END.
  225. /* _UIB-CODE-BLOCK-END */
  226. &ANALYZE-RESUME
  227. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin
  228. ON LEFT-MOUSE-CLICK OF br_viewerko IN FRAME F-Main
  229. DO:
  230. APPLY 'ENTRY' TO {&BROWSE-NAME}.
  231. END.
  232. /* _UIB-CODE-BLOCK-END */
  233. &ANALYZE-RESUME
  234. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin
  235. ON LEFT-MOUSE-DBLCLICK OF br_viewerko IN FRAME F-Main
  236. DO:
  237. IF NOT VALID-HANDLE( hFenster ) THEN RETURN NO-APPLY.
  238. RUN TOOLBAR IN hFenster ( INPUT 'UPDATE' ).
  239. RETURN NO-APPLY.
  240. END.
  241. /* _UIB-CODE-BLOCK-END */
  242. &ANALYZE-RESUME
  243. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin
  244. ON OFF-END OF br_viewerko IN FRAME F-Main
  245. DO:
  246. {src/adm2/brsoffnd.i}
  247. END.
  248. /* _UIB-CODE-BLOCK-END */
  249. &ANALYZE-RESUME
  250. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin
  251. ON OFF-HOME OF br_viewerko IN FRAME F-Main
  252. DO:
  253. {src/adm2/brsoffhm.i}
  254. END.
  255. /* _UIB-CODE-BLOCK-END */
  256. &ANALYZE-RESUME
  257. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin
  258. ON ROW-ENTRY OF br_viewerko IN FRAME F-Main
  259. DO:
  260. {src/adm2/brsentry.i}
  261. END.
  262. /* _UIB-CODE-BLOCK-END */
  263. &ANALYZE-RESUME
  264. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin
  265. ON ROW-LEAVE OF br_viewerko IN FRAME F-Main
  266. DO:
  267. {src/adm2/brsleave.i}
  268. END.
  269. /* _UIB-CODE-BLOCK-END */
  270. &ANALYZE-RESUME
  271. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin
  272. ON SCROLL-NOTIFY OF br_viewerko IN FRAME F-Main
  273. DO:
  274. {src/adm2/brsscrol.i}
  275. END.
  276. /* _UIB-CODE-BLOCK-END */
  277. &ANALYZE-RESUME
  278. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin
  279. ON START-SEARCH OF br_viewerko IN FRAME F-Main
  280. DO:
  281. { incl/brwstartsearch.i }
  282. END.
  283. /* _UIB-CODE-BLOCK-END */
  284. &ANALYZE-RESUME
  285. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_viewerko bTableWin
  286. ON VALUE-CHANGED OF br_viewerko IN FRAME F-Main
  287. DO:
  288. {src/adm2/brschnge.i}
  289. DEFINE VARIABLE rRecid AS RECID NO-UNDO.
  290. DEFINE BUFFER bviewer FOR viewer_ko.
  291. IF BROWSE {&BROWSE-NAME}:NUM-SELECTED-ROWS = 0 THEN BROWSE {&BROWSE-NAME}:SELECT-FOCUSED-ROW ().
  292. BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW (1).
  293. IF ERROR-STATUS:ERROR THEN RETURN.
  294. rRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten) NO-ERROR.
  295. IF rRecid = ? THEN RETURN.
  296. FIND bviewer NO-LOCK WHERE RECID(bviewer) = rRecid.
  297. PUBLISH 'ANZEIGE_FELDER' ( bviewer.benutzer, bviewer.program, bviewer.tabelle ).
  298. END.
  299. /* _UIB-CODE-BLOCK-END */
  300. &ANALYZE-RESUME
  301. &Scoped-define SELF-NAME Btn_create
  302. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_create bTableWin
  303. ON CHOOSE OF Btn_create IN FRAME F-Main /* Format erstellen */
  304. DO:
  305. DEFINE VARIABLE rRecid AS RECID NO-UNDO.
  306. BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  307. rRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten) NO-ERROR.
  308. RUN CREATE_HTML_INCLUDE ( rRecid ).
  309. END.
  310. /* _UIB-CODE-BLOCK-END */
  311. &ANALYZE-RESUME
  312. &UNDEFINE SELF-NAME
  313. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK bTableWin
  314. /* *************************** Main Block *************************** */
  315. { incl/brwmainblock.i }
  316. { incl/brwinternproc.i }
  317. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  318. RUN initializeObject.
  319. &ENDIF
  320. /* _UIB-CODE-BLOCK-END */
  321. &ANALYZE-RESUME
  322. /* ********************** Internal Procedures *********************** */
  323. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_HTML_INCLUDE bTableWin
  324. PROCEDURE CREATE_HTML_INCLUDE :
  325. /*------------------------------------------------------------------------------
  326. Purpose:
  327. Parameters: <none>
  328. Notes:
  329. ------------------------------------------------------------------------------*/
  330. DEFINE INPUT PARAMETER iprRecid AS RECID NO-UNDO.
  331. DEFINE VARIABLE cFilename AS CHARACTER NO-UNDO.
  332. DEFINE VARIABLE cZeile AS CHARACTER NO-UNDO.
  333. DEFINE VARIABLE cStyle AS CHARACTER NO-UNDO.
  334. DEFINE VARIABLE cAttribute AS CHARACTER NO-UNDO.
  335. DEFINE VARIABLE iTabIndex AS INTEGER NO-UNDO.
  336. DEFINE VARIABLE cTabIndex AS CHARACTER NO-UNDO.
  337. DEFINE VARIABLE cSelectTabelle AS CHARACTER NO-UNDO.
  338. DEFINE VARIABLE cSelTabText AS CHARACTER NO-UNDO.
  339. DEFINE VARIABLE cSelTabWert AS CHARACTER NO-UNDO.
  340. DEFINE VARIABLE cSelectTexte AS CHARACTER NO-UNDO.
  341. DEFINE VARIABLE cSelectWerte AS CHARACTER NO-UNDO.
  342. DEFINE VARIABLE cOption AS CHARACTER NO-UNDO.
  343. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  344. DEFINE VARIABLE hqSelTab AS HANDLE NO-UNDO.
  345. DEFINE VARIABLE hbSelTab AS HANDLE NO-UNDO.
  346. DEFINE VARIABLE cWhere AS CHARACTER NO-UNDO.
  347. DEFINE VARIABLE iBuffVal AS INTEGER NO-UNDO.
  348. DEFINE VARIABLE lcHTML AS LONGCHAR NO-UNDO.
  349. DEFINE VARIABLE mcHtml AS MEMPTR NO-UNDO.
  350. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  351. DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
  352. DEFINE VARIABLE lFirma AS LOGICAL NO-UNDO INIT FALSE.
  353. DEFINE VARIABLE lSelections AS LOGICAL NO-UNDO INIT FALSE.
  354. DEFINE VARIABLE iSprcd AS INTEGER NO-UNDO.
  355. DEFINE VARIABLE cIndexFields AS CHARACTER NO-UNDO.
  356. DEFINE VARIABLE outilitiesHandler AS utilitiesHandler NO-UNDO.
  357. outilitiesHandler = NEW utilitiesHandler().
  358. FIX-CODEPAGE (lcHTML) = 'utf-8'.
  359. FIND viewer_ko NO-LOCK
  360. WHERE RECID(viewer_ko) = iprRecid.
  361. FIND Benutzer NO-LOCK
  362. WHERE Benutzer.Benutzer = viewer_ko.benutzer NO-ERROR.
  363. iSprcd = (IF Benutzer.Sprcd > 0 AND Benutzer.Sprcd < 11 THEN Benutzer.Sprcd ELSE 1).
  364. cIndexFields = outilitiesHandler:getPrimaryIndexFields( INPUT viewer_ko.tabelle ) NO-ERROR.
  365. cFileName = SUBSTITUTE('../include/&1.incl', viewer_ko.program ).
  366. OUTPUT TO VALUE(cFileName) NO-MAP NO-CONVERT.
  367. cZeile = SUBSTITUTE(cform-container, viewer_ko.anzahlspalten).
  368. PUT CONTROL cZeile CHR(10).
  369. iTabIndex = 0.
  370. FOR EACH viewer_ze NO-LOCK OF viewer_ko
  371. BY viewer_ze.prior:
  372. PUT CONTROL ' ' cform-group CHR(10).
  373. IF NOT viewer_ze.lHidden THEN
  374. DO:
  375. cString = DYNAMIC-FUNCTION ('getLabel':U, RECID(viewer_ze), 'side', iSprcd) NO-ERROR.
  376. cZeile = FILL(' ',08) + SUBSTITUTE(clabel, viewer_ze.feld, cString).
  377. PUT CONTROL cZeile CHR(10).
  378. END.
  379. cAttribute = viewer_ze.attributes.
  380. cTabIndex = ''.
  381. IF NOT viewer_ze.lHidden THEN
  382. DO:
  383. iTabIndex = iTabIndex + 1.
  384. cTabIndex = SUBSTITUTE ('tabindex="&1"', TRIM(STRING(iTabIndex,'>>>9'))).
  385. IF INDEX(cAttribute, 'tabindex') = 0 THEN cAttribute = cAttribute + ' ' + cTabIndex.
  386. END.
  387. DO WHILE viewer_ze.selecttexte <> '':
  388. cStyle = viewer_ze.styles.
  389. cStyle = cStyle
  390. + (IF cStyle = '' THEN '' ELSE '; ')
  391. + SUBSTITUTE('text-align: &1', viewer_ze.textalign).
  392. cStyle = SUBSTITUTE('style="&1"', cStyle).
  393. cSelectTexte = REPLACE(viewer_ze.selecttexte, ',', ';').
  394. cSelectWerte = REPLACE(viewer_ze.selectwerte, ',', ';').
  395. cOption = ''.
  396. DO ii = 1 TO NUM-ENTRIES(cSelectWerte, ';'):
  397. cOption = cOption
  398. + (IF cOption = '' THEN '' ELSE CHR(10))
  399. + SUBSTITUTE('&3<option value="&1">&2</option>', ENTRY(ii, cSelectWerte, ';'), ENTRY(ii, cSelectTexte, ';'), FILL(' ',12)).
  400. END.
  401. cZeile = FILL(' ',08) + SUBSTITUTE(cselect, cAttribute, cStyle, viewer_ze.privatedata, CHR(10), cOption, FILL(' ',08)).
  402. PUT CONTROL cZeile CHR(10).
  403. LEAVE.
  404. END.
  405. DO WHILE viewer_ze.selecttabelle <> '':
  406. cSelectTabelle = REPLACE(viewer_ze.selecttabelle, ',', ';').
  407. cSelTabWert = ENTRY(2, cSelectTabelle, ';') NO-ERROR.
  408. cSelTabText = ENTRY(3, cSelectTabelle, ';') NO-ERROR.
  409. cSelectTabelle = ENTRY(1, cSelectTabelle, ';') NO-ERROR.
  410. IF cSelectTabelle = 'selections' THEN
  411. DO:
  412. cWhere = DYNAMIC-FUNCTION ('createSelections':U, RECID(viewer_ze), iSprcd, OUTPUT cSelectWerte, OUTPUT cSelectTexte ).
  413. lSelections = TRUE.
  414. END.
  415. ELSE
  416. DO:
  417. CREATE QUERY hqSelTab.
  418. CREATE BUFFER hbSelTab FOR TABLE cSelectTabelle.
  419. hFeld = hbSelTab:BUFFER-FIELD('Firma') NO-ERROR.
  420. IF VALID-HANDLE(hFeld) THEN lFirma = TRUE.
  421. hqSelTab:SET-BUFFERS(hbSelTab).
  422. IF lFirma THEN cWhere = SUBSTITUTE('FOR EACH &1 NO-LOCK WHERE &1.Firma = &2 ' , cSelectTabelle, QUOTER(viewer_ze.mandant)).
  423. IF NOT lFirma THEN cWhere = SUBSTITUTE('FOR EACH &1 NO-LOCK ' , cSelectTabelle ).
  424. hqSelTab:QUERY-PREPARE (cWhere).
  425. hqSelTab:QUERY-OPEN().
  426. cSelectTexte = ''.
  427. cSelectWerte = ''.
  428. DO WHILE TRUE:
  429. hqSelTab:GET-NEXT() NO-ERROR.
  430. IF hqSelTab:QUERY-OFF-END THEN LEAVE.
  431. iBuffVal = (IF hbSelTab:BUFFER-FIELD(cSelTabText):EXTENT > 0 THEN iSprcd ELSE 0).
  432. cSelectWerte = cSelectWerte
  433. + (IF cSelectWerte = '' THEN '' ELSE ';')
  434. + hbSelTab:BUFFER-FIELD(cSelTabWert):BUFFER-VALUE(0).
  435. cSelectTexte = cSelectTexte
  436. + (IF cSelectTexte = '' THEN '' ELSE ';')
  437. + hbSelTab:BUFFER-FIELD(cSelTabText):BUFFER-VALUE(iBuffVal)
  438. + SUBSTITUTE(' (&1)', hbSelTab:BUFFER-FIELD(cSelTabWert):BUFFER-VALUE(0)).
  439. END.
  440. DELETE OBJECT hbSelTab.
  441. DELETE OBJECT hqSelTab.
  442. cStyle = viewer_ze.styles.
  443. cStyle = cStyle
  444. + (IF cStyle = '' THEN '' ELSE '; ')
  445. + SUBSTITUTE('text-align: &1', viewer_ze.textalign).
  446. cStyle = SUBSTITUTE('style="&1"', cStyle).
  447. cOption = ''.
  448. END.
  449. DO ii = 1 TO NUM-ENTRIES(cSelectWerte, ';'):
  450. cOption = cOption
  451. + (IF cOption = '' THEN '' ELSE CHR(10))
  452. + SUBSTITUTE('&3<option value="&1">&2</option>', ENTRY(ii, cSelectWerte, ';'), ENTRY(ii, cSelectTexte, ';'), FILL(' ',12)).
  453. END.
  454. cZeile = FILL(' ',08) + SUBSTITUTE(cselect, cAttribute, cStyle, viewer_ze.privatedata, CHR(10), cOption, FILL(' ',08)).
  455. PUT CONTROL cZeile CHR(10).
  456. LEAVE.
  457. END.
  458. DO WHILE
  459. viewer_ze.selecttexte = '' AND
  460. viewer_ze.selecttabelle = '':
  461. cStyle = viewer_ze.styles.
  462. cStyle = cStyle
  463. + (IF cStyle = '' THEN '' ELSE '; ')
  464. + SUBSTITUTE('text-align: &1', viewer_ze.textalign).
  465. cStyle = SUBSTITUTE('style="&1"', cStyle).
  466. cZeile = FILL(' ',08) + SUBSTITUTE(cinput, cAttribute, cStyle, viewer_ze.privatedata).
  467. PUT CONTROL cZeile CHR(10).
  468. LEAVE.
  469. END.
  470. PUT CONTROL ' </div>' CHR(10).
  471. END.
  472. PUT CONTROL '</div>' CHR(10).
  473. OUTPUT CLOSE.
  474. FILE-INFO:FILE-NAME = cFilename.
  475. SET-SIZE(mcHTML) = FILE-INFO:FILE-SIZE + 1.
  476. COPY-LOB FROM FILE cFileName TO mcHTML NO-CONVERT.
  477. COPY-LOB FROM mcHTML TO lcHTML.
  478. COPY-LOB FROM lcHTML TO FILE cFilename NO-CONVERT.
  479. FIND htmldokumente
  480. WHERE htmldokumente.mandant = viewer_ko.mandant
  481. AND htmldokumente.benutzer = viewer_ko.benutzer
  482. AND htmldokumente.program = viewer_ko.program
  483. AND htmldokumente.art = 'formular'
  484. AND htmldokumente.sprcd = iSprcd NO-ERROR.
  485. IF NOT AVAILABLE htmldokumente THEN
  486. DO:
  487. CREATE htmldokumente.
  488. ASSIGN
  489. htmldokumente.mandant = viewer_ko.mandant
  490. htmldokumente.benutzer = viewer_ko.benutzer
  491. htmldokumente.program = viewer_ko.program
  492. htmldokumente.art = 'formular'
  493. htmldokumente.sprcd = iSprcd NO-ERROR.
  494. END.
  495. htmldokumente.htmltext = STRING(lcHTML).
  496. RELEASE htmldokumente.
  497. SET-SIZE (mcHTML) = 0.
  498. END PROCEDURE.
  499. /* _UIB-CODE-BLOCK-END */
  500. &ANALYZE-RESUME
  501. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE destroyObject bTableWin
  502. PROCEDURE destroyObject :
  503. /*------------------------------------------------------------------------------
  504. Purpose: Super Override
  505. Parameters:
  506. Notes:
  507. ------------------------------------------------------------------------------*/
  508. DEFINE VARIABLE hBrowser AS HANDLE NO-UNDO.
  509. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}.
  510. DYNAMIC-FUNCTION('setBrowserDaten':U, INPUT hBrowser,
  511. INPUT Sektion ) NO-ERROR.
  512. RUN SUPER.
  513. /* Code placed here will execute AFTER standard behavior. */
  514. END PROCEDURE.
  515. /* _UIB-CODE-BLOCK-END */
  516. &ANALYZE-RESUME
  517. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI bTableWin _DEFAULT-DISABLE
  518. PROCEDURE disable_UI :
  519. /*------------------------------------------------------------------------------
  520. Purpose: DISABLE the User Interface
  521. Parameters: <none>
  522. Notes: Here we clean-up the user-interface by deleting
  523. dynamic widgets we have created and/or hide
  524. frames. This procedure is usually called when
  525. we are ready to "clean-up" after running.
  526. ------------------------------------------------------------------------------*/
  527. /* Hide all frames. */
  528. HIDE FRAME F-Main.
  529. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  530. END PROCEDURE.
  531. /* _UIB-CODE-BLOCK-END */
  532. &ANALYZE-RESUME
  533. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_BROWSE bTableWin
  534. PROCEDURE ENTRY_BROWSE :
  535. /*------------------------------------------------------------------------------
  536. Purpose:
  537. Parameters: <none>
  538. Notes:
  539. ------------------------------------------------------------------------------*/
  540. APPLY 'ENTRY' TO {&BROWSE-NAME} IN FRAME {&FRAME-NAME}.
  541. RETURN NO-APPLY.
  542. END PROCEDURE.
  543. /* _UIB-CODE-BLOCK-END */
  544. &ANALYZE-RESUME
  545. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject bTableWin
  546. PROCEDURE initializeObject :
  547. /*------------------------------------------------------------------------------
  548. Purpose: Super Override
  549. Parameters:
  550. Notes:
  551. ------------------------------------------------------------------------------*/
  552. { incl/brwinitialize.i }
  553. END PROCEDURE.
  554. /* _UIB-CODE-BLOCK-END */
  555. &ANALYZE-RESUME
  556. /* ************************ Function Implementations ***************** */
  557. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createSelections bTableWin
  558. FUNCTION createSelections RETURNS CHARACTER
  559. ( iprviewer_ze AS RECID, ipiSprcd AS INTEGER, OUTPUT cWerte AS CHARACTER, OUTPUT cAnzeige AS CHARACTER ):
  560. /*------------------------------------------------------------------------------*/
  561. /* Purpose: Super Override */
  562. /* Parameters: */
  563. /* Notes: */
  564. /*------------------------------------------------------------------------------*/
  565. DEFINE VARIABLE cTabelle AS CHARACTER NO-UNDO.
  566. DEFINE VARIABLE cInhalt AS CHARACTER NO-UNDO.
  567. DEFINE VARIABLE lFound AS LOGICAL NO-UNDO.
  568. DEFINE BUFFER bviewer_ze FOR viewer_ze.
  569. FIND bviewer_ze NO-LOCK WHERE RECID(bviewer_ze) = iprviewer_ze.
  570. FOR EACH selections NO-LOCK
  571. WHERE selections.mandant = bviewer_ze.mandant
  572. AND selections.tabelle = bviewer_ze.tabelle
  573. AND selections.feld = bviewer_ze.feld
  574. AND selections.sprcd = ipiSprcd:
  575. cWerte = cWerte
  576. + (IF cWerte = '' THEN '' ELSE ';')
  577. + selections.wert.
  578. cAnzeige = cAnzeige
  579. + (IF cAnzeige = '' THEN '' ELSE ';')
  580. + selections.anzeige + SUBSTITUTE(' (&1) ':U, selections.wert).
  581. END.
  582. IF cWerte <> '' THEN RETURN cWerte.
  583. FOR EACH selections NO-LOCK
  584. WHERE selections.mandant = bviewer_ze.mandant
  585. AND selections.tabelle = ''
  586. AND selections.feld = bviewer_ze.feld
  587. AND selections.sprcd = ipiSprcd:
  588. cWerte = cWerte
  589. + (IF cWerte = '' THEN '' ELSE ';')
  590. + selections.wert.
  591. cAnzeige = cAnzeige
  592. + (IF cAnzeige = '' THEN '' ELSE ';')
  593. + selections.anzeige + SUBSTITUTE(' (&1) ':U, selections.wert).
  594. END.
  595. IF cWerte <> '' THEN RETURN cWerte.
  596. FOR EACH selections NO-LOCK
  597. WHERE selections.mandant = bviewer_ze.mandant
  598. AND selections.tabelle = ''
  599. AND selections.feld = bviewer_ze.feld:
  600. cWerte = cWerte
  601. + (IF cWerte = '' THEN '' ELSE ';')
  602. + selections.wert.
  603. cAnzeige = cAnzeige
  604. + (IF cAnzeige = '' THEN '' ELSE ';')
  605. + selections.anzeige + SUBSTITUTE(' (&1) ':U, selections.wert).
  606. END.
  607. END FUNCTION.
  608. /* _UIB-CODE-BLOCK-END */
  609. &ANALYZE-RESUME
  610. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getLabel bTableWin
  611. FUNCTION getLabel RETURNS CHARACTER
  612. ( iprRecid AS RECID, ipcArt AS CHARACTER, ipiSprcd AS INTEGER ):
  613. /*------------------------------------------------------------------------------
  614. Purpose:
  615. Notes:
  616. ------------------------------------------------------------------------------*/
  617. DEFINE VARIABLE cLabel AS CHARACTER NO-UNDO.
  618. DEFINE BUFFER bviewer_ze FOR viewer_ze.
  619. FIND bviewer_ze NO-LOCK WHERE RECID(bviewer_ze) = iprRecid.
  620. IF ipiSprcd = 0 OR
  621. ipiSprcd > 10 THEN ipiSprcd = 1.
  622. FIND FIRST labeltexte NO-LOCK
  623. WHERE labeltexte.mandant = bviewer_ze.mandant
  624. AND labeltexte.benutzer = bviewer_ze.benutzer
  625. AND labeltexte.program = bviewer_ze.program
  626. AND labeltexte.tabelle = bviewer_ze.tabelle
  627. AND labeltexte.feld = bviewer_ze.feld
  628. AND labeltexte.sprcd = ipiSprcd NO-ERROR.
  629. IF NOT AVAILABLE labeltexte THEN
  630. DO:
  631. FIND FIRST labeltexte NO-LOCK
  632. WHERE labeltexte.mandant = bviewer_ze.mandant
  633. AND labeltexte.program = bviewer_ze.program
  634. AND labeltexte.tabelle = bviewer_ze.tabelle
  635. AND labeltexte.feld = bviewer_ze.feld
  636. AND labeltexte.sprcd = ipiSprcd NO-ERROR.
  637. END.
  638. IF NOT AVAILABLE labeltexte THEN
  639. DO:
  640. FIND FIRST labeltexte NO-LOCK
  641. WHERE labeltexte.mandant = bviewer_ze.mandant
  642. AND labeltexte.tabelle = bviewer_ze.tabelle
  643. AND labeltexte.feld = bviewer_ze.feld
  644. AND labeltexte.sprcd = ipiSprcd NO-ERROR.
  645. END.
  646. IF NOT AVAILABLE labeltexte THEN
  647. DO:
  648. FIND FIRST labeltexte NO-LOCK
  649. WHERE labeltexte.mandant = bviewer_ze.mandant
  650. AND labeltexte.feld = bviewer_ze.feld
  651. AND labeltexte.sprcd = ipiSprcd NO-ERROR.
  652. END.
  653. CASE ipcArt:
  654. WHEN 'side' THEN
  655. cLabel = (IF AVAILABLE labeltexte THEN labeltexte.sidelabel ELSE bviewer_ze.feld).
  656. WHEN 'head' THEN
  657. cLabel = (IF AVAILABLE labeltexte THEN labeltexte.headlabel ELSE bviewer_ze.feld).
  658. END CASE.
  659. RETURN cLabel.
  660. END FUNCTION.
  661. /* _UIB-CODE-BLOCK-END */
  662. &ANALYZE-RESUME
  663. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setZeilenfarbe bTableWin
  664. FUNCTION setZeilenfarbe RETURNS LOGICAL
  665. ( ipFarbe AS INTEGER ) :
  666. /*------------------------------------------------------------------------------
  667. Purpose:
  668. Notes:
  669. ------------------------------------------------------------------------------*/
  670. { incl/brwsetzeilenfarbe.i }
  671. END FUNCTION.
  672. /* _UIB-CODE-BLOCK-END */
  673. &ANALYZE-RESUME