b-viewer_ze.w 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568
  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. CREATE WIDGET-POOL.
  24. /* *************************** Definitions ************************** */
  25. /* Parameters Definitions --- */
  26. /* Local Variable Definitions --- */
  27. { incl/tmpbrowser.i }
  28. DEFINE TEMP-TABLE tviewer_ze LIKE viewer_ze.
  29. {src/adm2/widgetprto.i}
  30. /* _UIB-CODE-BLOCK-END */
  31. &ANALYZE-RESUME
  32. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  33. /* ******************** Preprocessor Definitions ******************** */
  34. &Scoped-define PROCEDURE-TYPE SmartDataBrowser
  35. &Scoped-define DB-AWARE no
  36. &Scoped-define ADM-SUPPORTED-LINKS TableIO-Target,Data-Target,Update-Source
  37. /* Include file with RowObject temp-table definition */
  38. &Scoped-define DATA-FIELD-DEFS "d-viewer_ze.i"
  39. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  40. &Scoped-define FRAME-NAME F-Main
  41. &Scoped-define BROWSE-NAME br_table
  42. /* Internal Tables (found by Frame, Query & Browse Queries) */
  43. &Scoped-define INTERNAL-TABLES rowObject
  44. /* Definitions for BROWSE br_table */
  45. &Scoped-define FIELDS-IN-QUERY-br_table rowObject.program rowObject.tabelle ~
  46. rowObject.feld rowObject.prior rowObject.feldtype
  47. &Scoped-define ENABLED-FIELDS-IN-QUERY-br_table
  48. &Scoped-define QUERY-STRING-br_table FOR EACH rowObject NO-LOCK INDEXED-REPOSITION
  49. &Scoped-define OPEN-QUERY-br_table OPEN QUERY br_table FOR EACH rowObject NO-LOCK INDEXED-REPOSITION.
  50. &Scoped-define TABLES-IN-QUERY-br_table rowObject
  51. &Scoped-define FIRST-TABLE-IN-QUERY-br_table rowObject
  52. /* Definitions for FRAME F-Main */
  53. /* Standard List Definitions */
  54. &Scoped-Define ENABLED-OBJECTS RECT-1 br_table
  55. /* Custom List Definitions */
  56. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  57. /* _UIB-PREPROCESSOR-BLOCK-END */
  58. &ANALYZE-RESUME
  59. /* ************************ Function Prototypes ********************** */
  60. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setZeilenfarbe bTableWin
  61. FUNCTION setZeilenfarbe RETURNS LOGICAL
  62. ( ipFarbe AS INT ) FORWARD.
  63. /* _UIB-CODE-BLOCK-END */
  64. &ANALYZE-RESUME
  65. /* *********************** Control Definitions ********************** */
  66. /* Menu Definitions */
  67. DEFINE MENU POPUP-MENU-br_table
  68. MENU-ITEM X_NEUENUMMERN LABEL "Prioritäten neu nummerieren".
  69. /* Definitions of the field level widgets */
  70. DEFINE RECTANGLE RECT-1
  71. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  72. SIZE 90 BY 7.14.
  73. /* Query definitions */
  74. &ANALYZE-SUSPEND
  75. DEFINE TEMP-TABLE RowObject NO-UNDO
  76. {{&DATA-FIELD-DEFS}}
  77. {src/adm2/robjflds.i}.
  78. DEFINE QUERY br_table FOR
  79. rowObject SCROLLING.
  80. &ANALYZE-RESUME
  81. /* Browse definitions */
  82. DEFINE BROWSE br_table
  83. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS br_table bTableWin _STRUCTURED
  84. QUERY br_table NO-LOCK DISPLAY
  85. rowObject.program FORMAT "x(20)":U
  86. rowObject.tabelle FORMAT "x(20)":U
  87. rowObject.feld FORMAT "x(20)":U
  88. rowObject.prior FORMAT "zzz9":U
  89. rowObject.feldtype FORMAT "x(12)":U
  90. /* _UIB-CODE-BLOCK-END */
  91. &ANALYZE-RESUME
  92. WITH NO-ASSIGN NO-AUTO-VALIDATE NO-ROW-MARKERS SEPARATORS SIZE 88 BY 6.67.
  93. /* ************************ Frame Definitions *********************** */
  94. DEFINE FRAME F-Main
  95. br_table AT ROW 1.48 COL 3 WIDGET-ID 200
  96. RECT-1 AT ROW 1.24 COL 2 WIDGET-ID 2
  97. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  98. SIDE-LABELS NO-UNDERLINE THREE-D
  99. AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100.
  100. /* *********************** Procedure Settings ************************ */
  101. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  102. /* Settings for THIS-PROCEDURE
  103. Type: SmartDataBrowser
  104. Data Source: "d-viewer_ze.w"
  105. Allow: Basic,Browse
  106. Frames: 1
  107. Add Fields to: Neither
  108. Other Settings: PERSISTENT-ONLY COMPILE
  109. */
  110. /* This procedure should always be RUN PERSISTENT. Report the error, */
  111. /* then cleanup and return. */
  112. IF NOT THIS-PROCEDURE:PERSISTENT THEN
  113. DO:
  114. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  115. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  116. RETURN.
  117. END.
  118. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  119. /* ************************* Create Window ************************** */
  120. &ANALYZE-SUSPEND _CREATE-WINDOW
  121. /* DESIGN Window definition (used by the UIB)
  122. CREATE WINDOW bTableWin ASSIGN
  123. HEIGHT = 7.62
  124. WIDTH = 92.
  125. /* END WINDOW DEFINITION */
  126. */
  127. &ANALYZE-RESUME
  128. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB bTableWin
  129. /* ************************* Included-Libraries *********************** */
  130. {src/adm2/browser.i}
  131. /* _UIB-CODE-BLOCK-END */
  132. &ANALYZE-RESUME
  133. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  134. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  135. /* SETTINGS FOR WINDOW bTableWin
  136. NOT-VISIBLE,,RUN-PERSISTENT */
  137. /* SETTINGS FOR FRAME F-Main
  138. NOT-VISIBLE FRAME-NAME Size-to-Fit */
  139. /* BROWSE-TAB br_table RECT-1 F-Main */
  140. ASSIGN
  141. FRAME F-Main:SCROLLABLE = FALSE
  142. FRAME F-Main:HIDDEN = TRUE.
  143. ASSIGN
  144. br_table:POPUP-MENU IN FRAME F-Main = MENU POPUP-MENU-br_table:HANDLE.
  145. /* _RUN-TIME-ATTRIBUTES-END */
  146. &ANALYZE-RESUME
  147. /* Setting information for Queries and Browse Widgets fields */
  148. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE br_table
  149. /* Query rebuild information for BROWSE br_table
  150. _TblList = "rowObject"
  151. _Options = "NO-LOCK INDEXED-REPOSITION"
  152. _FldNameList[1] = _<SDO>.rowObject.program
  153. _FldNameList[2] = _<SDO>.rowObject.tabelle
  154. _FldNameList[3] = _<SDO>.rowObject.feld
  155. _FldNameList[4] = _<SDO>.rowObject.prior
  156. _FldNameList[5] = _<SDO>.rowObject.feldtype
  157. _Query is NOT OPENED
  158. */ /* BROWSE br_table */
  159. &ANALYZE-RESUME
  160. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  161. /* Query rebuild information for FRAME F-Main
  162. _Options = "NO-LOCK"
  163. _Query is NOT OPENED
  164. */ /* FRAME F-Main */
  165. &ANALYZE-RESUME
  166. /* ************************ Control Triggers ************************ */
  167. &Scoped-define BROWSE-NAME br_table
  168. &Scoped-define SELF-NAME br_table
  169. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  170. ON CTRL-END OF br_table IN FRAME F-Main
  171. DO:
  172. APPLY "END":U TO BROWSE {&BROWSE-NAME}.
  173. END.
  174. /* _UIB-CODE-BLOCK-END */
  175. &ANALYZE-RESUME
  176. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  177. ON CTRL-HOME OF br_table IN FRAME F-Main
  178. DO:
  179. APPLY "HOME":U TO BROWSE {&BROWSE-NAME}.
  180. END.
  181. /* _UIB-CODE-BLOCK-END */
  182. &ANALYZE-RESUME
  183. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  184. ON DEFAULT-ACTION OF br_table IN FRAME F-Main
  185. DO:
  186. {src/adm2/brsdefault.i}
  187. END.
  188. /* _UIB-CODE-BLOCK-END */
  189. &ANALYZE-RESUME
  190. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  191. ON END OF br_table IN FRAME F-Main
  192. DO:
  193. {src/adm2/brsend.i}
  194. END.
  195. /* _UIB-CODE-BLOCK-END */
  196. &ANALYZE-RESUME
  197. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  198. ON ENTRY OF br_table IN FRAME F-Main
  199. DO:
  200. /* IF NOT VALID-HANDLE(hFenster) THEN hFenster = DYNAMIC-FUNCTION('getContainerSource':U) NO-ERROR.*/
  201. /* IF VALID-HANDLE(hFenster) THEN RUN SET_TABLEIO IN hFenster ( 'Viewerzeile' ). */
  202. END.
  203. /* _UIB-CODE-BLOCK-END */
  204. &ANALYZE-RESUME
  205. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  206. ON HOME OF br_table IN FRAME F-Main
  207. DO:
  208. {src/adm2/brshome.i}
  209. END.
  210. /* _UIB-CODE-BLOCK-END */
  211. &ANALYZE-RESUME
  212. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  213. ON LEFT-MOUSE-CLICK OF br_table IN FRAME F-Main
  214. DO:
  215. IF NOT VALID-HANDLE(hFenster) THEN hFenster = DYNAMIC-FUNCTION('getContainerSource':U) NO-ERROR.
  216. IF VALID-HANDLE(hFenster) THEN RUN SET_TABLEIO IN hFenster ( 'Viewerzeile' ).
  217. END.
  218. /* _UIB-CODE-BLOCK-END */
  219. &ANALYZE-RESUME
  220. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  221. ON LEFT-MOUSE-DBLCLICK OF br_table IN FRAME F-Main
  222. DO:
  223. IF NOT VALID-HANDLE( hFenster ) THEN RETURN NO-APPLY.
  224. RUN TOOLBAR IN hFenster ( INPUT 'UPDATE' ).
  225. RETURN NO-APPLY.
  226. END.
  227. /* _UIB-CODE-BLOCK-END */
  228. &ANALYZE-RESUME
  229. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  230. ON OFF-END OF br_table IN FRAME F-Main
  231. DO:
  232. {src/adm2/brsoffnd.i}
  233. END.
  234. /* _UIB-CODE-BLOCK-END */
  235. &ANALYZE-RESUME
  236. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  237. ON OFF-HOME OF br_table IN FRAME F-Main
  238. DO:
  239. {src/adm2/brsoffhm.i}
  240. END.
  241. /* _UIB-CODE-BLOCK-END */
  242. &ANALYZE-RESUME
  243. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  244. ON ROW-ENTRY OF br_table IN FRAME F-Main
  245. DO:
  246. {src/adm2/brsentry.i}
  247. END.
  248. /* _UIB-CODE-BLOCK-END */
  249. &ANALYZE-RESUME
  250. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  251. ON ROW-LEAVE OF br_table IN FRAME F-Main
  252. DO:
  253. {src/adm2/brsleave.i}
  254. END.
  255. /* _UIB-CODE-BLOCK-END */
  256. &ANALYZE-RESUME
  257. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  258. ON SCROLL-NOTIFY OF br_table IN FRAME F-Main
  259. DO:
  260. {src/adm2/brsscrol.i}
  261. END.
  262. /* _UIB-CODE-BLOCK-END */
  263. &ANALYZE-RESUME
  264. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  265. ON START-SEARCH OF br_table IN FRAME F-Main
  266. DO:
  267. { incl/brwstartsearch.i }
  268. END.
  269. /* _UIB-CODE-BLOCK-END */
  270. &ANALYZE-RESUME
  271. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  272. ON VALUE-CHANGED OF br_table IN FRAME F-Main
  273. DO:
  274. {src/adm2/brschnge.i}
  275. DEFINE VARIABLE rRecid AS RECID NO-UNDO.
  276. DEFINE BUFFER bviewer FOR viewer_ze.
  277. IF BROWSE {&BROWSE-NAME}:NUM-SELECTED-ROWS = 0 THEN BROWSE {&BROWSE-NAME}:SELECT-FOCUSED-ROW ().
  278. BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW (1) NO-ERROR.
  279. IF ERROR-STATUS:ERROR THEN RETURN.
  280. rRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten) NO-ERROR.
  281. IF rRecid = ? THEN RETURN.
  282. FIND bviewer NO-LOCK WHERE RECID(bviewer) = rRecid.
  283. PUBLISH 'ANZEIGE_FELDER' ( bviewer.benutzer, bviewer.program, bviewer.tabelle ).
  284. END.
  285. /* _UIB-CODE-BLOCK-END */
  286. &ANALYZE-RESUME
  287. &UNDEFINE SELF-NAME
  288. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK bTableWin
  289. /* *************************** Main Block *************************** */
  290. { incl/brwmainblock.i }
  291. { incl/brwinternproc.i }
  292. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  293. RUN initializeObject.
  294. &ENDIF
  295. /* _UIB-CODE-BLOCK-END */
  296. &ANALYZE-RESUME
  297. /* ********************** Internal Procedures *********************** */
  298. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE destroyObject bTableWin
  299. PROCEDURE destroyObject :
  300. /*------------------------------------------------------------------------------
  301. Purpose: Super Override
  302. Parameters:
  303. Notes:
  304. ------------------------------------------------------------------------------*/
  305. DEF VAR hBrowser AS HANDLE NO-UNDO.
  306. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}.
  307. DYNAMIC-FUNCTION('setBrowserDaten':U, INPUT hBrowser,
  308. INPUT Sektion ) NO-ERROR.
  309. RUN SUPER.
  310. /* Code placed here will execute AFTER standard behavior. */
  311. END PROCEDURE.
  312. /* _UIB-CODE-BLOCK-END */
  313. &ANALYZE-RESUME
  314. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI bTableWin _DEFAULT-DISABLE
  315. PROCEDURE disable_UI :
  316. /*------------------------------------------------------------------------------
  317. Purpose: DISABLE the User Interface
  318. Parameters: <none>
  319. Notes: Here we clean-up the user-interface by deleting
  320. dynamic widgets we have created and/or hide
  321. frames. This procedure is usually called when
  322. we are ready to "clean-up" after running.
  323. ------------------------------------------------------------------------------*/
  324. /* Hide all frames. */
  325. HIDE FRAME F-Main.
  326. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  327. END PROCEDURE.
  328. /* _UIB-CODE-BLOCK-END */
  329. &ANALYZE-RESUME
  330. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_BROWSE bTableWin
  331. PROCEDURE ENTRY_BROWSE :
  332. /*------------------------------------------------------------------------------
  333. Purpose:
  334. Parameters: <none>
  335. Notes:
  336. ------------------------------------------------------------------------------*/
  337. APPLY 'ENTRY' TO {&BROWSE-NAME} IN FRAME {&FRAME-NAME}.
  338. RETURN NO-APPLY.
  339. END PROCEDURE.
  340. /* _UIB-CODE-BLOCK-END */
  341. &ANALYZE-RESUME
  342. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject bTableWin
  343. PROCEDURE initializeObject :
  344. /*------------------------------------------------------------------------------
  345. Purpose: Super Override
  346. Parameters:
  347. Notes:
  348. ------------------------------------------------------------------------------*/
  349. { incl/brwinitialize.i }
  350. END PROCEDURE.
  351. /* _UIB-CODE-BLOCK-END */
  352. &ANALYZE-RESUME
  353. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUENUMMERN bTableWin
  354. PROCEDURE NEUENUMMERN :
  355. /*------------------------------------------------------------------------------
  356. Purpose:
  357. Notes:
  358. ------------------------------------------------------------------------------*/
  359. DEFINE VARIABLE rview-ze AS RECID NO-UNDO.
  360. DEFINE VARIABLE iPrior AS INTEGER NO-UNDO.
  361. DEFINE BUFFER bviewer_ze FOR viewer_ze.
  362. rview-ze = DYNAMIC-FUNCTION ('getCurrentRecid':U IN hDaten) NO-ERROR.
  363. IF rview-ze = ? OR
  364. rview-ze = 0 THEN RETURN NO-APPLY.
  365. FIND bviewer_ze NO-LOCK WHERE RECID(bviewer_ze) = rview-ze NO-ERROR.
  366. iPrior = 0.
  367. EMPTY TEMP-TABLE tviewer_ze.
  368. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  369. FOR EACH viewer_ze NO-LOCK
  370. WHERE viewer_ze.mandant = bviewer_ze.mandant
  371. AND viewer_ze.benutzer = bviewer_ze.benutzer
  372. AND viewer_ze.program = bviewer_ze.program
  373. AND viewer_ze.tabelle = bviewer_ze.tabelle
  374. BY viewer_ze.prior:
  375. iPrior = iPrior + 10.
  376. CREATE tviewer_ze.
  377. BUFFER-COPY viewer_ze
  378. EXCEPT viewer_ze.prior
  379. TO tviewer_ze
  380. ASSIGN
  381. tviewer_ze.prior = iPrior.
  382. END.
  383. FOR EACH tviewer_ze:
  384. FIND viewer_ze OF tviewer_ze.
  385. ASSIGN
  386. viewer_ze.prior = tviewer_ze.prior.
  387. END.
  388. LEAVE.
  389. END.
  390. DYNAMIC-FUNCTION ('openQuery':U IN hDaten) NO-ERROR.
  391. END PROCEDURE.
  392. /* _UIB-CODE-BLOCK-END */
  393. &ANALYZE-RESUME
  394. /* ************************ Function Implementations ***************** */
  395. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setZeilenfarbe bTableWin
  396. FUNCTION setZeilenfarbe RETURNS LOGICAL
  397. ( ipFarbe AS INT ) :
  398. /*------------------------------------------------------------------------------
  399. Purpose:
  400. Notes:
  401. ------------------------------------------------------------------------------*/
  402. { incl/brwsetzeilenfarbe.i }
  403. END FUNCTION.
  404. /* _UIB-CODE-BLOCK-END */
  405. &ANALYZE-RESUME