v-aufko-trigger.w 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633
  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. {adecomm/appserv.i}
  8. /* Temp-Table and Buffer definitions */
  9. DEFINE TEMP-TABLE RowObject NO-UNDO
  10. {"d-aufko.i"}.
  11. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS vTableWin
  12. /*------------------------------------------------------------------------
  13. File:
  14. Description: from viewer.w - Template for SmartDataViewer objects
  15. Input Parameters:
  16. <none>
  17. Output Parameters:
  18. <none>
  19. ------------------------------------------------------------------------*/
  20. /* This .W file was created with the Progress AppBuilder. */
  21. /*----------------------------------------------------------------------*/
  22. /* Create an unnamed pool to store all the widgets created
  23. by this procedure. This is a good default which assures
  24. that this procedure's triggers and internal procedures
  25. will execute in this procedure's storage, and that proper
  26. cleanup will occur on deletion of the procedure. */
  27. CREATE WIDGET-POOL.
  28. /* *************************** Definitions ************************** */
  29. /* Komma-Trennzeichen */
  30. /* Keyfelder werden beim Mutieren nicht "Enabled" */
  31. &Scoped-define ERSTES_FELD
  32. &Scoped-define LETZTES_FELD
  33. &Scoped-define KEY_FELDER
  34. &Scoped-define NUR_LESEN
  35. { incl/viwdefinition.i }
  36. {src/adm2/widgetprto.i}
  37. /* _UIB-CODE-BLOCK-END */
  38. &ANALYZE-RESUME
  39. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  40. /* ******************** Preprocessor Definitions ******************** */
  41. &Scoped-define PROCEDURE-TYPE SmartDataViewer
  42. &Scoped-define DB-AWARE no
  43. &Scoped-define ADM-CONTAINER FRAME
  44. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  45. /* Include file with RowObject temp-table definition */
  46. &Scoped-define DATA-FIELD-DEFS "d-aufko.i"
  47. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  48. &Scoped-define FRAME-NAME F-Main
  49. /* Standard List Definitions */
  50. &Scoped-Define ENABLED-FIELDS RowObject.Firma RowObject.Aufnr
  51. &Scoped-define ENABLED-TABLES RowObject
  52. &Scoped-define FIRST-ENABLED-TABLE RowObject
  53. &Scoped-Define DISPLAYED-FIELDS RowObject.Firma RowObject.Aufnr
  54. &Scoped-define DISPLAYED-TABLES RowObject
  55. &Scoped-define FIRST-DISPLAYED-TABLE RowObject
  56. /* Custom List Definitions */
  57. /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */
  58. /* _UIB-PREPROCESSOR-BLOCK-END */
  59. &ANALYZE-RESUME
  60. /* *********************** Control Definitions ********************** */
  61. /* Definitions of the field level widgets */
  62. /* ************************ Frame Definitions *********************** */
  63. DEFINE FRAME F-Main
  64. RowObject.Firma AT ROW 1.57 COL 8 COLON-ALIGNED WIDGET-ID 4
  65. VIEW-AS FILL-IN
  66. SIZE 13.6 BY 1
  67. RowObject.Aufnr AT ROW 2.57 COL 8 COLON-ALIGNED WIDGET-ID 2
  68. VIEW-AS FILL-IN
  69. SIZE 11.8 BY 1
  70. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS
  71. SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE
  72. AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100.
  73. /* *********************** Procedure Settings ************************ */
  74. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  75. /* Settings for THIS-PROCEDURE
  76. Type: SmartDataViewer
  77. Data Source: "d-aufko.w"
  78. Allow: Basic,DB-Fields,Smart
  79. Container Links: Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  80. Frames: 1
  81. Add Fields to: Neither
  82. Other Settings: PERSISTENT-ONLY COMPILE APPSERVER
  83. Temp-Tables and Buffers:
  84. TABLE: RowObject D "?" NO-UNDO
  85. ADDITIONAL-FIELDS:
  86. {d-aufko.i}
  87. END-FIELDS.
  88. END-TABLES.
  89. */
  90. /* This procedure should always be RUN PERSISTENT. Report the error, */
  91. /* then cleanup and return. */
  92. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  93. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  94. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  95. RETURN.
  96. END.
  97. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  98. /* ************************* Create Window ************************** */
  99. &ANALYZE-SUSPEND _CREATE-WINDOW
  100. /* DESIGN Window definition (used by the UIB)
  101. CREATE WINDOW vTableWin ASSIGN
  102. HEIGHT = 3.14
  103. WIDTH = 57.4.
  104. /* END WINDOW DEFINITION */
  105. */
  106. &ANALYZE-RESUME
  107. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB vTableWin
  108. /* ************************* Included-Libraries *********************** */
  109. {src/adm2/viewer.i}
  110. /* _UIB-CODE-BLOCK-END */
  111. &ANALYZE-RESUME
  112. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  113. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  114. /* SETTINGS FOR WINDOW vTableWin
  115. VISIBLE,,RUN-PERSISTENT */
  116. /* SETTINGS FOR FRAME F-Main
  117. NOT-VISIBLE FRAME-NAME Size-to-Fit */
  118. ASSIGN
  119. FRAME F-Main:SCROLLABLE = FALSE
  120. FRAME F-Main:HIDDEN = TRUE.
  121. /* _RUN-TIME-ATTRIBUTES-END */
  122. &ANALYZE-RESUME
  123. /* Setting information for Queries and Browse Widgets fields */
  124. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  125. /* Query rebuild information for FRAME F-Main
  126. _Options = "NO-LOCK"
  127. _Query is NOT OPENED
  128. */ /* FRAME F-Main */
  129. &ANALYZE-RESUME
  130. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin
  131. /* *************************** Main Block *************************** */
  132. { incl/viwmainblock.i }
  133. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  134. RUN initializeObject.
  135. &ENDIF
  136. /************************ INTERNAL PROCEDURES ********************/
  137. /* _UIB-CODE-BLOCK-END */
  138. &ANALYZE-RESUME
  139. /* ********************** Internal Procedures *********************** */
  140. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE addRecord vTableWin
  141. PROCEDURE addRecord :
  142. /*------------------------------------------------------------------------------
  143. Purpose: Super Override
  144. Parameters:
  145. Notes:
  146. ------------------------------------------------------------------------------*/
  147. FNeu = TRUE.
  148. FMut = TRUE.
  149. FDisp = TRUE.
  150. RUN SUPER.
  151. /* Code placed here will execute AFTER standard behavior. */
  152. END PROCEDURE.
  153. /* _UIB-CODE-BLOCK-END */
  154. &ANALYZE-RESUME
  155. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancelRecord vTableWin
  156. PROCEDURE cancelRecord :
  157. /*------------------------------------------------------------------------------
  158. Purpose: Super Override
  159. Parameters:
  160. Notes:
  161. ------------------------------------------------------------------------------*/
  162. FCancel = TRUE.
  163. RUN SUPER.
  164. /* Code placed here will execute AFTER standard behavior. */
  165. END PROCEDURE.
  166. /* _UIB-CODE-BLOCK-END */
  167. &ANALYZE-RESUME
  168. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE copyRecord vTableWin
  169. PROCEDURE copyRecord :
  170. /*------------------------------------------------------------------------------
  171. Purpose: Super Override
  172. Parameters:
  173. Notes:
  174. ------------------------------------------------------------------------------*/
  175. FNeu = TRUE.
  176. FMut = TRUE.
  177. FCopy = TRUE.
  178. FDisp = TRUE.
  179. RUN SUPER.
  180. END PROCEDURE.
  181. /* _UIB-CODE-BLOCK-END */
  182. &ANALYZE-RESUME
  183. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE deleteRecord vTableWin
  184. PROCEDURE deleteRecord :
  185. /*------------------------------------------------------------------------------
  186. Purpose: Super Override
  187. Parameters:
  188. Notes:
  189. ------------------------------------------------------------------------------*/
  190. DEF VAR Ja AS LOG NO-UNDO.
  191. Ja = DYNAMIC-FUNCTION( 'ANTWORT_NEIN':U, INPUT 1000 ).
  192. IF NOT Ja THEN DO:
  193. RUN TOOLBAR IN hKontainer ( INPUT 'CANCEL':U ) NO-ERROR.
  194. RETURN NO-APPLY.
  195. END.
  196. /* REPEAT TRANSACTION: */
  197. /* RUN INAKTIVIEREN IN hDaten. */
  198. /* LEAVE. */
  199. /* END. */
  200. /* */
  201. RUN SUPER.
  202. /* Code placed here will execute AFTER standard behavior. */
  203. END PROCEDURE.
  204. /* _UIB-CODE-BLOCK-END */
  205. &ANALYZE-RESUME
  206. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disableFields vTableWin
  207. PROCEDURE disableFields :
  208. /*------------------------------------------------------------------------------
  209. Purpose: Super Override
  210. Parameters:
  211. Notes:
  212. ------------------------------------------------------------------------------*/
  213. DEFINE INPUT PARAMETER pcFieldType AS CHARACTER NO-UNDO.
  214. DO WITH FRAME {&FRAME-NAME}:
  215. END.
  216. RUN SUPER( INPUT pcFieldType).
  217. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  218. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  219. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
  220. RUN FARBE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT 15 ).
  221. END.
  222. DO WITH FRAME {&FRAME-NAME}:
  223. END.
  224. END PROCEDURE.
  225. /* _UIB-CODE-BLOCK-END */
  226. &ANALYZE-RESUME
  227. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI vTableWin _DEFAULT-DISABLE
  228. PROCEDURE disable_UI :
  229. /*------------------------------------------------------------------------------
  230. Purpose: DISABLE the User Interface
  231. Parameters: <none>
  232. Notes: Here we clean-up the user-interface by deleting
  233. dynamic widgets we have created and/or hide
  234. frames. This procedure is usually called when
  235. we are ready to "clean-up" after running.
  236. ------------------------------------------------------------------------------*/
  237. /* Hide all frames. */
  238. HIDE FRAME F-Main.
  239. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  240. END PROCEDURE.
  241. /* _UIB-CODE-BLOCK-END */
  242. &ANALYZE-RESUME
  243. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE displayFields vTableWin
  244. PROCEDURE displayFields :
  245. /*------------------------------------------------------------------------------
  246. Purpose: Super Override
  247. Parameters:
  248. Notes:
  249. ------------------------------------------------------------------------------*/
  250. DEFINE INPUT PARAMETER pcColValues AS CHARACTER NO-UNDO.
  251. IF NOT FDisp THEN DO:
  252. FDisp = TRUE.
  253. RETURN.
  254. END.
  255. IF FCancel THEN pcColValues = OldColValues.
  256. IF NOT FNeu THEN OldColValues = pcColValues.
  257. OldColList = DYNAMIC-FUNCTION('getDisplayedFields':U).
  258. IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ).
  259. DO WITH FRAME {&FRAME-NAME}:
  260. END.
  261. RUN SUPER( INPUT pcColValues).
  262. FCancel = FALSE.
  263. DO WITH FRAME {&FRAME-NAME}:
  264. END.
  265. END PROCEDURE.
  266. /* _UIB-CODE-BLOCK-END */
  267. &ANALYZE-RESUME
  268. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin
  269. PROCEDURE enableFields :
  270. /*------------------------------------------------------------------------------
  271. Purpose: Super Override
  272. Parameters:
  273. Notes:
  274. ------------------------------------------------------------------------------*/
  275. /* Code placed here will execute PRIOR to standard behavior. */
  276. /*
  277. RUN SUPER.
  278. */
  279. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  280. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT FALSE ).
  281. IF NUM-ENTRIES('{&NUR_LESEN}', ',') > 0 THEN DO:
  282. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&NUR_LESEN}', INPUT TRUE ).
  283. END.
  284. DO WITH FRAME {&FRAME-NAME}:
  285. END.
  286. IF FNeu THEN RETURN.
  287. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
  288. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
  289. END.
  290. END PROCEDURE.
  291. /* _UIB-CODE-BLOCK-END */
  292. &ANALYZE-RESUME
  293. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject vTableWin
  294. PROCEDURE enableObject :
  295. /*------------------------------------------------------------------------------
  296. Purpose: Super Override
  297. Parameters:
  298. Notes:
  299. ------------------------------------------------------------------------------*/
  300. /* Code placed here will execute PRIOR to standard behavior. */
  301. RUN SUPER.
  302. { incl/viwenableobject.i }
  303. END PROCEDURE.
  304. /* _UIB-CODE-BLOCK-END */
  305. &ANALYZE-RESUME
  306. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_FELD_TEST vTableWin
  307. PROCEDURE ENTRY_FELD_TEST :
  308. /*------------------------------------------------------------------------------
  309. Purpose:
  310. Parameters: <none>
  311. Notes:
  312. ------------------------------------------------------------------------------*/
  313. { incl/viwentryfeldtest.i }
  314. DO WITH FRAME {&FRAME-NAME}:
  315. CASE FeldName:
  316. END CASE.
  317. END.
  318. RETURN ''.
  319. END PROCEDURE.
  320. /* _UIB-CODE-BLOCK-END */
  321. &ANALYZE-RESUME
  322. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FEHLWERTE vTableWin
  323. PROCEDURE FEHLWERTE :
  324. /*------------------------------------------------------------------------------
  325. Purpose:
  326. Parameters: <none>
  327. Notes:
  328. ------------------------------------------------------------------------------*/
  329. DEF INPUT-OUTPUT PARAMETER pcColValues AS CHAR NO-UNDO.
  330. DEF VAR i1 AS INT NO-UNDO.
  331. IF FCancel THEN RETURN.
  332. IF NOT FCopy THEN DO WITH FRAME {&FRAME-NAME}:
  333. /* i1 = LOOKUP('Feld', oldColList, ',') + 1. */
  334. /* ENTRY(i1, pcColValues, CHR(1)) = 'Fehlwert' NO-ERROR. */
  335. END.
  336. IF FCopy THEN DO:
  337. END.
  338. END PROCEDURE.
  339. /* _UIB-CODE-BLOCK-END */
  340. &ANALYZE-RESUME
  341. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_FELD_TEST vTableWin
  342. PROCEDURE LEAVE_FELD_TEST :
  343. /*------------------------------------------------------------------------------
  344. Purpose:
  345. Parameters: <none>
  346. Notes:
  347. ------------------------------------------------------------------------------*/
  348. { incl/viwleavefeldtest.i }
  349. DO WHILE FNeu WITH FRAME {&FRAME-NAME}:
  350. CASE FeldName:
  351. END CASE.
  352. LEAVE.
  353. END.
  354. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  355. CASE FeldName:
  356. END CASE.
  357. LEAVE.
  358. END.
  359. IF LOOKUP(FeldName, '{&LETZTES_FELD}', ',') > 0 THEN DO:
  360. DO WHILE TRUE:
  361. IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE.
  362. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE.
  363. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE.
  364. RETURN ''.
  365. END.
  366. APPLY 'ALT-S'.
  367. RETURN 'APPLY'.
  368. END.
  369. RETURN ''.
  370. END PROCEDURE.
  371. /* _UIB-CODE-BLOCK-END */
  372. &ANALYZE-RESUME
  373. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RETURN_FELD vTableWin
  374. PROCEDURE RETURN_FELD :
  375. /*------------------------------------------------------------------------------
  376. Purpose:
  377. Parameters: <none>
  378. Notes:
  379. ------------------------------------------------------------------------------*/
  380. { incl/viwreturnfeld.i }
  381. END PROCEDURE.
  382. /* _UIB-CODE-BLOCK-END */
  383. &ANALYZE-RESUME
  384. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEST_EINGABEN vTableWin
  385. PROCEDURE TEST_EINGABEN :
  386. /*------------------------------------------------------------------------------
  387. Purpose:
  388. Parameters: <none>
  389. Notes:
  390. ------------------------------------------------------------------------------*/
  391. DEF OUTPUT PARAMETER opJa AS LOG NO-UNDO.
  392. DEF VAR eHandle AS HANDLE NO-UNDO.
  393. DEF VAR cString AS CHAR NO-UNDO.
  394. DEF VAR iNummer AS INT NO-UNDO.
  395. opJa = FALSE.
  396. eHandle = ?.
  397. IF NOT FMut THEN RETURN.
  398. AAA000:
  399. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  400. LEAVE.
  401. END.
  402. IF VALID-HANDLE(eHandle) THEN DO:
  403. APPLY 'ENTRY' TO eHandle.
  404. RETURN NO-APPLY.
  405. END.
  406. opJa = TRUE.
  407. END PROCEDURE.
  408. /* _UIB-CODE-BLOCK-END */
  409. &ANALYZE-RESUME
  410. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateMode vTableWin
  411. PROCEDURE updateMode :
  412. /*------------------------------------------------------------------------------
  413. Purpose: Super Override
  414. Parameters:
  415. Notes:
  416. ------------------------------------------------------------------------------*/
  417. DEFINE INPUT PARAMETER pcMode AS CHARACTER NO-UNDO.
  418. CASE pcMode:
  419. WHEN 'updateBegin' THEN DO:
  420. END.
  421. WHEN 'updateEnd' THEN DO:
  422. END.
  423. END.
  424. RUN SUPER( INPUT pcMode).
  425. CASE pcMode:
  426. WHEN 'updateBegin' THEN DO:
  427. FMut = TRUE.
  428. END.
  429. WHEN 'updateEnd' THEN DO:
  430. FNeu = FALSE.
  431. FMut = FALSE.
  432. FCopy = FALSE.
  433. END.
  434. END.
  435. END PROCEDURE.
  436. /* _UIB-CODE-BLOCK-END */
  437. &ANALYZE-RESUME
  438. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateRecord vTableWin
  439. PROCEDURE updateRecord :
  440. /*------------------------------------------------------------------------------
  441. Purpose: Super Override
  442. Parameters:
  443. Notes:
  444. ------------------------------------------------------------------------------*/
  445. DO WITH FRAME {&FRAME-NAME}:
  446. IF FNeu THEN DO:
  447. DYNAMIC-FUNCTION('SETMODIFIEDFLAG':U, INPUT Fenster, INPUT TRUE).
  448. END.
  449. END.
  450. FNeu = FALSE.
  451. FCopy = FALSE.
  452. RUN SUPER.
  453. /* Code placed here will execute AFTER standard behavior. */
  454. END PROCEDURE.
  455. /* _UIB-CODE-BLOCK-END */
  456. &ANALYZE-RESUME