b-webmenu.w 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567
  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. DEFINE TEMP-TABLE twebmenu LIKE webmenu.
  28. { incl/tmpbrowser.i }
  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-webmenu.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.benutzer rowObject.sprcd ~
  46. rowObject.Position rowObject.stufe rowObject.menutext rowObject.menulink
  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_NUMMERIEREN LABEL "Positionen neu Nummerieren".
  69. /* Definitions of the field level widgets */
  70. DEFINE RECTANGLE RECT-1
  71. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  72. SIZE 132 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.benutzer FORMAT "x(30)":U
  86. rowObject.sprcd FORMAT "99":U
  87. rowObject.Position FORMAT "9999":U
  88. rowObject.stufe FORMAT "999":U
  89. rowObject.menutext FORMAT "x(40)":U
  90. rowObject.menulink FORMAT "x(40)":U WIDTH 30
  91. /* _UIB-CODE-BLOCK-END */
  92. &ANALYZE-RESUME
  93. WITH NO-ASSIGN NO-AUTO-VALIDATE NO-ROW-MARKERS SEPARATORS SIZE 130 BY 6.67.
  94. /* ************************ Frame Definitions *********************** */
  95. DEFINE FRAME F-Main
  96. br_table AT ROW 1.48 COL 3 WIDGET-ID 200
  97. RECT-1 AT ROW 1.24 COL 2 WIDGET-ID 2
  98. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  99. SIDE-LABELS NO-UNDERLINE THREE-D
  100. AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100.
  101. /* *********************** Procedure Settings ************************ */
  102. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  103. /* Settings for THIS-PROCEDURE
  104. Type: SmartDataBrowser
  105. Data Source: "d-webmenu.w"
  106. Allow: Basic,Browse
  107. Frames: 1
  108. Add Fields to: Neither
  109. Other Settings: PERSISTENT-ONLY COMPILE
  110. */
  111. /* This procedure should always be RUN PERSISTENT. Report the error, */
  112. /* then cleanup and return. */
  113. IF NOT THIS-PROCEDURE:PERSISTENT THEN 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 = 134.
  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.benutzer
  153. "rowObject.benutzer" ? ? "character" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  154. _FldNameList[2] = _<SDO>.rowObject.sprcd
  155. _FldNameList[3] = _<SDO>.rowObject.Position
  156. _FldNameList[4] = _<SDO>.rowObject.stufe
  157. _FldNameList[5] > _<SDO>.rowObject.menutext
  158. "rowObject.menutext" ? ? "character" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  159. _FldNameList[6] > _<SDO>.rowObject.menulink
  160. "rowObject.menulink" ? ? "character" ? ? ? ? ? ? no ? no no "30" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  161. _Query is NOT OPENED
  162. */ /* BROWSE br_table */
  163. &ANALYZE-RESUME
  164. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  165. /* Query rebuild information for FRAME F-Main
  166. _Options = "NO-LOCK"
  167. _Query is NOT OPENED
  168. */ /* FRAME F-Main */
  169. &ANALYZE-RESUME
  170. /* ************************ Control Triggers ************************ */
  171. &Scoped-define BROWSE-NAME br_table
  172. &Scoped-define SELF-NAME br_table
  173. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  174. ON CTRL-END OF br_table IN FRAME F-Main
  175. DO:
  176. APPLY "END":U TO BROWSE {&BROWSE-NAME}.
  177. END.
  178. /* _UIB-CODE-BLOCK-END */
  179. &ANALYZE-RESUME
  180. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  181. ON CTRL-HOME OF br_table IN FRAME F-Main
  182. DO:
  183. APPLY "HOME":U TO BROWSE {&BROWSE-NAME}.
  184. END.
  185. /* _UIB-CODE-BLOCK-END */
  186. &ANALYZE-RESUME
  187. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  188. ON DEFAULT-ACTION OF br_table IN FRAME F-Main
  189. DO:
  190. {src/adm2/brsdefault.i}
  191. END.
  192. /* _UIB-CODE-BLOCK-END */
  193. &ANALYZE-RESUME
  194. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  195. ON END OF br_table IN FRAME F-Main
  196. DO:
  197. {src/adm2/brsend.i}
  198. END.
  199. /* _UIB-CODE-BLOCK-END */
  200. &ANALYZE-RESUME
  201. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  202. ON ENTRY OF br_table IN FRAME F-Main
  203. DO:
  204. IF VALID-HANDLE(hFenster) THEN
  205. DO:
  206. RUN SET_TABLEIO IN hFenster ( 'viewermenu' ).
  207. APPLY 'VALUE-CHANGED' TO SELF.
  208. END.
  209. END.
  210. /* _UIB-CODE-BLOCK-END */
  211. &ANALYZE-RESUME
  212. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  213. ON HOME OF br_table IN FRAME F-Main
  214. DO:
  215. {src/adm2/brshome.i}
  216. END.
  217. /* _UIB-CODE-BLOCK-END */
  218. &ANALYZE-RESUME
  219. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  220. ON LEFT-MOUSE-CLICK OF br_table IN FRAME F-Main
  221. DO:
  222. APPLY 'ENTRY' TO {&BROWSE-NAME}.
  223. END.
  224. /* _UIB-CODE-BLOCK-END */
  225. &ANALYZE-RESUME
  226. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  227. ON LEFT-MOUSE-DBLCLICK OF br_table IN FRAME F-Main
  228. DO:
  229. IF NOT VALID-HANDLE( hFenster ) THEN RETURN NO-APPLY.
  230. RUN TOOLBAR IN hFenster ( INPUT 'UPDATE' ).
  231. RETURN NO-APPLY.
  232. END.
  233. /* _UIB-CODE-BLOCK-END */
  234. &ANALYZE-RESUME
  235. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  236. ON OFF-END OF br_table IN FRAME F-Main
  237. DO:
  238. {src/adm2/brsoffnd.i}
  239. END.
  240. /* _UIB-CODE-BLOCK-END */
  241. &ANALYZE-RESUME
  242. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  243. ON OFF-HOME OF br_table IN FRAME F-Main
  244. DO:
  245. {src/adm2/brsoffhm.i}
  246. END.
  247. /* _UIB-CODE-BLOCK-END */
  248. &ANALYZE-RESUME
  249. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  250. ON ROW-ENTRY OF br_table IN FRAME F-Main
  251. DO:
  252. {src/adm2/brsentry.i}
  253. END.
  254. /* _UIB-CODE-BLOCK-END */
  255. &ANALYZE-RESUME
  256. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  257. ON ROW-LEAVE OF br_table IN FRAME F-Main
  258. DO:
  259. {src/adm2/brsleave.i}
  260. END.
  261. /* _UIB-CODE-BLOCK-END */
  262. &ANALYZE-RESUME
  263. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  264. ON SCROLL-NOTIFY OF br_table IN FRAME F-Main
  265. DO:
  266. {src/adm2/brsscrol.i}
  267. END.
  268. /* _UIB-CODE-BLOCK-END */
  269. &ANALYZE-RESUME
  270. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  271. ON START-SEARCH OF br_table IN FRAME F-Main
  272. DO:
  273. { incl/brwstartsearch.i }
  274. END.
  275. /* _UIB-CODE-BLOCK-END */
  276. &ANALYZE-RESUME
  277. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin
  278. ON VALUE-CHANGED OF br_table IN FRAME F-Main
  279. DO:
  280. {src/adm2/brschnge.i}
  281. END.
  282. /* _UIB-CODE-BLOCK-END */
  283. &ANALYZE-RESUME
  284. &UNDEFINE SELF-NAME
  285. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK bTableWin
  286. /* *************************** Main Block *************************** */
  287. { incl/brwmainblock.i }
  288. { incl/brwinternproc.i }
  289. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  290. RUN initializeObject.
  291. &ENDIF
  292. /* _UIB-CODE-BLOCK-END */
  293. &ANALYZE-RESUME
  294. /* ********************** Internal Procedures *********************** */
  295. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE destroyObject bTableWin
  296. PROCEDURE destroyObject :
  297. /*------------------------------------------------------------------------------
  298. Purpose: Super Override
  299. Parameters:
  300. Notes:
  301. ------------------------------------------------------------------------------*/
  302. DEF VAR hBrowser AS HANDLE NO-UNDO.
  303. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}.
  304. DYNAMIC-FUNCTION('setBrowserDaten':U, INPUT hBrowser,
  305. INPUT Sektion ) NO-ERROR.
  306. RUN SUPER.
  307. /* Code placed here will execute AFTER standard behavior. */
  308. END PROCEDURE.
  309. /* _UIB-CODE-BLOCK-END */
  310. &ANALYZE-RESUME
  311. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI bTableWin _DEFAULT-DISABLE
  312. PROCEDURE disable_UI :
  313. /*------------------------------------------------------------------------------
  314. Purpose: DISABLE the User Interface
  315. Parameters: <none>
  316. Notes: Here we clean-up the user-interface by deleting
  317. dynamic widgets we have created and/or hide
  318. frames. This procedure is usually called when
  319. we are ready to "clean-up" after running.
  320. ------------------------------------------------------------------------------*/
  321. /* Hide all frames. */
  322. HIDE FRAME F-Main.
  323. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  324. END PROCEDURE.
  325. /* _UIB-CODE-BLOCK-END */
  326. &ANALYZE-RESUME
  327. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_BROWSE bTableWin
  328. PROCEDURE ENTRY_BROWSE :
  329. /*------------------------------------------------------------------------------
  330. Purpose:
  331. Parameters: <none>
  332. Notes:
  333. ------------------------------------------------------------------------------*/
  334. APPLY 'ENTRY' TO {&BROWSE-NAME} IN FRAME {&FRAME-NAME}.
  335. RETURN NO-APPLY.
  336. END PROCEDURE.
  337. /* _UIB-CODE-BLOCK-END */
  338. &ANALYZE-RESUME
  339. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject bTableWin
  340. PROCEDURE initializeObject :
  341. /*------------------------------------------------------------------------------
  342. Purpose: Super Override
  343. Parameters:
  344. Notes:
  345. ------------------------------------------------------------------------------*/
  346. { incl/brwinitialize.i }
  347. END PROCEDURE.
  348. /* _UIB-CODE-BLOCK-END */
  349. &ANALYZE-RESUME
  350. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NUMMERIEREN bTableWin
  351. PROCEDURE NUMMERIEREN :
  352. /*------------------------------------------------------------------------------
  353. Purpose:
  354. Parameters: <none>
  355. Notes:
  356. ------------------------------------------------------------------------------*/
  357. DEFINE VARIABLE rRecid AS RECID NO-UNDO.
  358. DEFINE VARIABLE iPosition AS INTEGER NO-UNDO.
  359. DEFINE BUFFER bwebmenu FOR webmenu.
  360. rRecid = DYNAMIC-FUNCTION ('getCurrentRecid':U IN hDaten) NO-ERROR.
  361. IF rRecid = ? THEN RETURN NO-APPLY.
  362. FIND bwebmenu WHERE RECID(bwebmenu) = rRecid.
  363. EMPTY TEMP-TABLE twebmenu.
  364. iPosition = 0.
  365. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  366. FOR EACH webmenu NO-LOCK
  367. WHERE webmenu.mandant = bwebmenu.mandant
  368. AND webmenu.benutzer = bwebmenu.benutzer
  369. AND webmenu.sprcd = bwebmenu.sprcd:
  370. iPosition = iPosition + 10.
  371. CREATE twebmenu.
  372. BUFFER-COPY webmenu
  373. EXCEPT webmenu.position
  374. TO twebmenu
  375. ASSIGN
  376. twebmenu.position = iPosition.
  377. END.
  378. FOR EACH webmenu
  379. WHERE webmenu.mandant = bwebmenu.mandant
  380. AND webmenu.benutzer = bwebmenu.benutzer
  381. AND webmenu.sprcd = bwebmenu.sprcd:
  382. DELETE webmenu.
  383. END.
  384. FOR EACH twebmenu:
  385. CREATE webmenu.
  386. BUFFER-COPY twebmenu
  387. TO webmenu.
  388. END.
  389. RELEASE webmenu.
  390. LEAVE.
  391. END.
  392. DYNAMIC-FUNCTION ('openQuery':U IN hDaten).
  393. RETURN NO-APPLY.
  394. END PROCEDURE.
  395. /* _UIB-CODE-BLOCK-END */
  396. &ANALYZE-RESUME
  397. /* ************************ Function Implementations ***************** */
  398. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setZeilenfarbe bTableWin
  399. FUNCTION setZeilenfarbe RETURNS LOGICAL
  400. ( ipFarbe AS INT ) :
  401. /*------------------------------------------------------------------------------
  402. Purpose:
  403. Notes:
  404. ------------------------------------------------------------------------------*/
  405. { incl/brwsetzeilenfarbe.i }
  406. END FUNCTION.
  407. /* _UIB-CODE-BLOCK-END */
  408. &ANALYZE-RESUME