v-femeld.w 20 KB

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