v-libild.w 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790
  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-libild.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 Prog
  31. &Scoped-define LETZTES_FELD LiText
  32. &Scoped-define KEY_FELDER Prog,Tenr
  33. &Scoped-define NUR_LESEN
  34. /* Parameters Definitions --- */
  35. /* Local Variable Definitions --- */
  36. DEF VAR SAktiv AS LOG NO-UNDO INIT FALSE.
  37. DEF VAR FNeu AS LOG NO-UNDO INIT FALSE.
  38. DEF VAR FMut AS LOG NO-UNDO INIT FALSE.
  39. DEF VAR FCopy AS LOG NO-UNDO INIT FALSE.
  40. DEF VAR FDisp AS LOG NO-UNDO INIT TRUE .
  41. DEF VAR Fenster AS HANDLE NO-UNDO.
  42. DEF VAR oldColValues AS CHAR NO-UNDO.
  43. DEF VAR oldColList AS CHAR NO-UNDO.
  44. DEF VAR Firma AS CHAR NO-UNDO.
  45. DEF VAR Sprcd AS INT NO-UNDO INIT 1.
  46. /* _UIB-CODE-BLOCK-END */
  47. &ANALYZE-RESUME
  48. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  49. /* ******************** Preprocessor Definitions ******************** */
  50. &Scoped-define PROCEDURE-TYPE SmartDataViewer
  51. &Scoped-define DB-AWARE no
  52. &Scoped-define ADM-CONTAINER FRAME
  53. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  54. /* Include file with RowObject temp-table definition */
  55. &Scoped-define DATA-FIELD-DEFS "d-libild.i"
  56. /* Name of first Frame and/or Browse and/or first Query */
  57. &Scoped-define FRAME-NAME F-Main
  58. /* Standard List Definitions */
  59. &Scoped-Define ENABLED-FIELDS RowObject.Prog RowObject.Tenr ~
  60. RowObject.Litext
  61. &Scoped-define ENABLED-TABLES RowObject
  62. &Scoped-define FIRST-ENABLED-TABLE RowObject
  63. &Scoped-define DISPLAYED-TABLES RowObject
  64. &Scoped-define FIRST-DISPLAYED-TABLE RowObject
  65. &Scoped-Define ENABLED-OBJECTS CB_Sprache RECT-4
  66. &Scoped-Define DISPLAYED-FIELDS RowObject.Prog RowObject.Sprcd ~
  67. RowObject.Tenr RowObject.Litext
  68. &Scoped-Define DISPLAYED-OBJECTS CB_Sprache
  69. /* Custom List Definitions */
  70. /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */
  71. /* _UIB-PREPROCESSOR-BLOCK-END */
  72. &ANALYZE-RESUME
  73. /* *********************** Control Definitions ********************** */
  74. /* Definitions of the field level widgets */
  75. DEFINE VARIABLE CB_Sprache AS CHARACTER FORMAT "X(256)":U
  76. LABEL "Sprache"
  77. VIEW-AS COMBO-BOX INNER-LINES 5
  78. LIST-ITEM-PAIRS "Item 1","Item 1"
  79. DROP-DOWN-LIST
  80. SIZE 30 BY 1
  81. BGCOLOR 15 NO-UNDO.
  82. DEFINE RECTANGLE RECT-4
  83. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  84. SIZE 112 BY 5.29.
  85. /* ************************ Frame Definitions *********************** */
  86. DEFINE FRAME F-Main
  87. RowObject.Prog AT ROW 1.52 COL 11 COLON-ALIGNED
  88. LABEL "Programm" FORMAT "x(25)"
  89. VIEW-AS FILL-IN NATIVE
  90. SIZE 25 BY 1
  91. BGCOLOR 15
  92. CB_Sprache AT ROW 1.52 COL 49.2 COLON-ALIGNED
  93. RowObject.Sprcd AT ROW 2.05 COL 54.2 COLON-ALIGNED
  94. LABEL "Sprache" FORMAT "999999"
  95. VIEW-AS FILL-IN
  96. SIZE 4.8 BY 1 NO-TAB-STOP
  97. RowObject.Tenr AT ROW 2.52 COL 11 COLON-ALIGNED
  98. VIEW-AS FILL-IN NATIVE
  99. SIZE 7.6 BY 1
  100. BGCOLOR 15
  101. RowObject.Litext AT ROW 3.52 COL 11 COLON-ALIGNED
  102. LABEL "Text" FORMAT "x(70)"
  103. VIEW-AS FILL-IN NATIVE
  104. SIZE 99 BY 1
  105. BGCOLOR 15 FONT 3
  106. RECT-4 AT ROW 1.24 COL 2
  107. "1234567890123456789012345678901234567890123456789012345678901234567890" VIEW-AS TEXT
  108. SIZE 99 BY .71 AT ROW 4.52 COL 13
  109. FONT 3
  110. " 1 2 3 4 5 6 7" VIEW-AS TEXT
  111. SIZE 99 BY .71 AT ROW 5.19 COL 13
  112. FONT 3
  113. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS
  114. SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE
  115. AT COL 1 ROW 1 SCROLLABLE .
  116. /* *********************** Procedure Settings ************************ */
  117. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  118. /* Settings for THIS-PROCEDURE
  119. Type: SmartDataViewer
  120. Data Source: "d-libild.w"
  121. Allow: Basic,DB-Fields,Smart
  122. Container Links: Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  123. Frames: 1
  124. Add Fields to: Neither
  125. Other Settings: PERSISTENT-ONLY COMPILE
  126. Temp-Tables and Buffers:
  127. TABLE: RowObject D "?" ?
  128. ADDITIONAL-FIELDS:
  129. {d-libild.i}
  130. END-FIELDS.
  131. END-TABLES.
  132. */
  133. /* This procedure should always be RUN PERSISTENT. Report the error, */
  134. /* then cleanup and return. */
  135. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  136. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  137. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  138. RETURN.
  139. END.
  140. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  141. /* ************************* Create Window ************************** */
  142. &ANALYZE-SUSPEND _CREATE-WINDOW
  143. /* DESIGN Window definition (used by the UIB)
  144. CREATE WINDOW vTableWin ASSIGN
  145. HEIGHT = 6.14
  146. WIDTH = 115.8.
  147. /* END WINDOW DEFINITION */
  148. */
  149. &ANALYZE-RESUME
  150. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB vTableWin
  151. /* ************************* Included-Libraries *********************** */
  152. {src/adm2/viewer.i}
  153. /* _UIB-CODE-BLOCK-END */
  154. &ANALYZE-RESUME
  155. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  156. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  157. /* SETTINGS FOR WINDOW vTableWin
  158. VISIBLE,,RUN-PERSISTENT */
  159. /* SETTINGS FOR FRAME F-Main
  160. NOT-VISIBLE Size-to-Fit */
  161. ASSIGN
  162. FRAME F-Main:SCROLLABLE = FALSE
  163. FRAME F-Main:HIDDEN = TRUE.
  164. /* SETTINGS FOR FILL-IN RowObject.Litext IN FRAME F-Main
  165. EXP-LABEL EXP-FORMAT */
  166. /* SETTINGS FOR FILL-IN RowObject.Prog IN FRAME F-Main
  167. EXP-LABEL EXP-FORMAT */
  168. /* SETTINGS FOR FILL-IN RowObject.Sprcd IN FRAME F-Main
  169. NO-ENABLE EXP-LABEL EXP-FORMAT */
  170. ASSIGN
  171. RowObject.Sprcd:HIDDEN IN FRAME F-Main = TRUE
  172. RowObject.Sprcd:READ-ONLY IN FRAME F-Main = TRUE.
  173. /* _RUN-TIME-ATTRIBUTES-END */
  174. &ANALYZE-RESUME
  175. /* Setting information for Queries and Browse Widgets fields */
  176. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  177. /* Query rebuild information for FRAME F-Main
  178. _Options = "NO-LOCK"
  179. _Query is NOT OPENED
  180. */ /* FRAME F-Main */
  181. &ANALYZE-RESUME
  182. /* ************************ Control Triggers ************************ */
  183. &Scoped-define SELF-NAME CB_Sprache
  184. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Sprache vTableWin
  185. ON VALUE-CHANGED OF CB_Sprache IN FRAME F-Main /* Sprache */
  186. DO:
  187. DEF VAR hData AS HANDLE NO-UNDO.
  188. IF FMut THEN SELF:SCREEN-VALUE = rowObject.Sprcd:SCREEN-VALUE.
  189. rowObject.Sprcd:SCREEN-VALUE = SELF:SCREEN-VALUE.
  190. IF NOT FMut THEN DO:
  191. hData = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR.
  192. DYNAMIC-FUNCTION('setSprcd':U IN hData, INTEGER(SELF:SCREEN-VALUE)) NO-ERROR.
  193. END.
  194. END.
  195. /* _UIB-CODE-BLOCK-END */
  196. &ANALYZE-RESUME
  197. &UNDEFINE SELF-NAME
  198. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin
  199. /* *************************** Main Block *************************** */
  200. SAktiv = DYNAMIC-FUNCTION('getSuperAktiv':U) NO-ERROR.
  201. IF SAktiv THEN DO:
  202. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  203. Sprcd = DYNAMIC-FUNCTION('GETSPRCD':U) NO-ERROR.
  204. END.
  205. /* Triggers ------------------------------------------------------ */
  206. ON 'RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE
  207. DO:
  208. RUN RETURN_FELD ( INPUT SELF:HANDLE ).
  209. IF RETURN-VALUE = 'TAB' THEN DO:
  210. APPLY 'TAB' TO SELF.
  211. RETURN NO-APPLY.
  212. END.
  213. END.
  214. ON 'ENTRY':U OF FRAME {&FRAME-NAME} ANYWHERE
  215. DO:
  216. RUN ENTRY_FELD_TEST ( INPUT SELF:HANDLE ).
  217. IF RETURN-VALUE = 'ERROR' THEN DO:
  218. APPLY 'ENTRY' TO SELF.
  219. RETURN NO-APPLY.
  220. END.
  221. IF RETURN-VALUE = 'APPLY' THEN DO:
  222. RETURN NO-APPLY.
  223. END.
  224. END.
  225. ON 'LEAVE':U OF FRAME {&FRAME-NAME} ANYWHERE
  226. DO:
  227. RUN LEAVE_FELD_TEST ( INPUT SELF:HANDLE ).
  228. IF RETURN-VALUE = 'ERROR' THEN DO:
  229. APPLY 'ENTRY' TO SELF.
  230. RETURN NO-APPLY.
  231. END.
  232. IF RETURN-VALUE = 'APPLY' THEN DO:
  233. RETURN NO-APPLY.
  234. END.
  235. END.
  236. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  237. RUN initializeObject.
  238. &ENDIF
  239. /************************ INTERNAL PROCEDURES ********************/
  240. /* _UIB-CODE-BLOCK-END */
  241. &ANALYZE-RESUME
  242. /* ********************** Internal Procedures *********************** */
  243. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE addRecord vTableWin
  244. PROCEDURE addRecord :
  245. /*------------------------------------------------------------------------------
  246. Purpose: Super Override
  247. Parameters:
  248. Notes:
  249. ------------------------------------------------------------------------------*/
  250. FNeu = TRUE.
  251. FMut = TRUE.
  252. RUN SUPER.
  253. END PROCEDURE.
  254. /* _UIB-CODE-BLOCK-END */
  255. &ANALYZE-RESUME
  256. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancelRecord vTableWin
  257. PROCEDURE cancelRecord :
  258. /*------------------------------------------------------------------------------
  259. Purpose: Super Override
  260. Parameters:
  261. Notes:
  262. ------------------------------------------------------------------------------*/
  263. /* Code placed here will execute PRIOR to standard behavior. */
  264. RUN SUPER.
  265. /* Code placed here will execute AFTER standard behavior. */
  266. END PROCEDURE.
  267. /* _UIB-CODE-BLOCK-END */
  268. &ANALYZE-RESUME
  269. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE copyRecord vTableWin
  270. PROCEDURE copyRecord :
  271. /*------------------------------------------------------------------------------
  272. Purpose: Super Override
  273. Parameters:
  274. Notes:
  275. ------------------------------------------------------------------------------*/
  276. FNeu = TRUE.
  277. FMut = TRUE.
  278. FCopy = TRUE.
  279. FDisp = FALSE.
  280. RUN SUPER.
  281. END PROCEDURE.
  282. /* _UIB-CODE-BLOCK-END */
  283. &ANALYZE-RESUME
  284. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE deleteRecord vTableWin
  285. PROCEDURE deleteRecord :
  286. /*------------------------------------------------------------------------------
  287. Purpose: Super Override
  288. Parameters:
  289. Notes:
  290. ------------------------------------------------------------------------------*/
  291. DEF VAR Ja AS LOG NO-UNDO.
  292. Ja = DYNAMIC-FUNCTION( 'ANTWORT_JA':U, INPUT 1000 ).
  293. IF NOT Ja THEN DO:
  294. PUBLISH 'TOOLBAR' ( INPUT 'CANCEL':U ).
  295. RETURN NO-APPLY.
  296. END.
  297. RUN SUPER.
  298. /* Code placed here will execute AFTER standard behavior. */
  299. END PROCEDURE.
  300. /* _UIB-CODE-BLOCK-END */
  301. &ANALYZE-RESUME
  302. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disableFields vTableWin
  303. PROCEDURE disableFields :
  304. /*------------------------------------------------------------------------------
  305. Purpose: Super Override
  306. Parameters:
  307. Notes:
  308. ------------------------------------------------------------------------------*/
  309. DEFINE INPUT PARAMETER pcFieldType AS CHARACTER NO-UNDO.
  310. DO WITH FRAME {&FRAME-NAME}:
  311. END.
  312. RUN SUPER( INPUT pcFieldType).
  313. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  314. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  315. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
  316. RUN FARBE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT 15 ).
  317. END.
  318. DO WITH FRAME {&FRAME-NAME}:
  319. END.
  320. END PROCEDURE.
  321. /* _UIB-CODE-BLOCK-END */
  322. &ANALYZE-RESUME
  323. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI vTableWin _DEFAULT-DISABLE
  324. PROCEDURE disable_UI :
  325. /*------------------------------------------------------------------------------
  326. Purpose: DISABLE the User Interface
  327. Parameters: <none>
  328. Notes: Here we clean-up the user-interface by deleting
  329. dynamic widgets we have created and/or hide
  330. frames. This procedure is usually called when
  331. we are ready to "clean-up" after running.
  332. ------------------------------------------------------------------------------*/
  333. /* Hide all frames. */
  334. HIDE FRAME F-Main.
  335. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  336. END PROCEDURE.
  337. /* _UIB-CODE-BLOCK-END */
  338. &ANALYZE-RESUME
  339. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE displayFields vTableWin
  340. PROCEDURE displayFields :
  341. /*------------------------------------------------------------------------------
  342. Purpose: Super Override
  343. Parameters:
  344. Notes:
  345. ------------------------------------------------------------------------------*/
  346. DEFINE INPUT PARAMETER pcColValues AS CHARACTER NO-UNDO.
  347. IF NOT FDisp THEN DO:
  348. FDisp = TRUE.
  349. RETURN.
  350. END.
  351. OldColValues = pcColValues.
  352. OldColList = DYNAMIC-FUNCTION('getDisplayedFields':U).
  353. IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ).
  354. DO WITH FRAME {&FRAME-NAME}:
  355. END.
  356. RUN SUPER( INPUT pcColValues).
  357. DO WITH FRAME {&FRAME-NAME}:
  358. END.
  359. END PROCEDURE.
  360. /* _UIB-CODE-BLOCK-END */
  361. &ANALYZE-RESUME
  362. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin
  363. PROCEDURE enableFields :
  364. /*------------------------------------------------------------------------------
  365. Purpose: Super Override
  366. Parameters:
  367. Notes:
  368. ------------------------------------------------------------------------------*/
  369. /* Code placed here will execute PRIOR to standard behavior. */
  370. /*
  371. RUN SUPER.
  372. */
  373. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  374. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT FALSE ).
  375. IF NUM-ENTRIES('{&NUR_LESEN}', ',') > 0 THEN DO:
  376. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&NUR_LESEN}', INPUT TRUE ).
  377. END.
  378. DO WITH FRAME {&FRAME-NAME}:
  379. END.
  380. IF FNeu THEN RETURN.
  381. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
  382. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
  383. END.
  384. END PROCEDURE.
  385. /* _UIB-CODE-BLOCK-END */
  386. &ANALYZE-RESUME
  387. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject vTableWin
  388. PROCEDURE enableObject :
  389. /*------------------------------------------------------------------------------
  390. Purpose: Super Override
  391. Parameters:
  392. Notes:
  393. ------------------------------------------------------------------------------*/
  394. DO WITH FRAME {&FRAME-NAME}:
  395. RUN COMBO_SPRACHE ( CB_Sprache:HANDLE ).
  396. END.
  397. RUN SUPER.
  398. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  399. IF SAktiv THEN DO:
  400. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  401. END.
  402. END PROCEDURE.
  403. /* _UIB-CODE-BLOCK-END */
  404. &ANALYZE-RESUME
  405. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_FELD_TEST vTableWin
  406. PROCEDURE ENTRY_FELD_TEST :
  407. /*------------------------------------------------------------------------------
  408. Purpose:
  409. Parameters: <none>
  410. Notes:
  411. ------------------------------------------------------------------------------*/
  412. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  413. DEF VAR FeldName AS CHAR NO-UNDO.
  414. DEF VAR FeldInhalt AS CHAR NO-UNDO.
  415. FeldName = ''.
  416. FeldInhalt = ''.
  417. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  418. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  419. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  420. FeldName = ipHandle:NAME.
  421. IF ipHandle:TYPE = 'FILL-IN' OR
  422. ipHandle:TYPE = 'COMBO-BOX' OR
  423. ipHandle:TYPE = 'TOGGLE-BOX' THEN FeldInhalt = ipHandle:SCREEN-VALUE.
  424. IF NOT FMut THEN RETURN ''.
  425. DO WITH FRAME {&FRAME-NAME}:
  426. CASE FeldName:
  427. END CASE.
  428. END.
  429. RETURN ''.
  430. END PROCEDURE.
  431. /* _UIB-CODE-BLOCK-END */
  432. &ANALYZE-RESUME
  433. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FEHLWERTE vTableWin
  434. PROCEDURE FEHLWERTE :
  435. /*------------------------------------------------------------------------------
  436. Purpose:
  437. Parameters: <none>
  438. Notes:
  439. ------------------------------------------------------------------------------*/
  440. DEF INPUT-OUTPUT PARAMETER pcColValues AS CHAR NO-UNDO.
  441. DEF VAR FwFelder AS CHAR NO-UNDO.
  442. DEF VAR FwFeld AS CHAR NO-UNDO.
  443. DEF VAR FwValue AS CHAR NO-UNDO.
  444. DEF VAR ix AS INT NO-UNDO.
  445. DEF VAR i1 AS INT NO-UNDO.
  446. GET-KEY-VALUE SECTION 'Fw???????' KEY ? VALUE FwFelder.
  447. IF NOT FCopy THEN DO:
  448. DO ix = 1 TO NUM-ENTRIES(FwFelder, ','):
  449. FwFeld = ENTRY (ix , FwFelder , ',').
  450. i1 = LOOKUP(FwFeld, oldColList, ',') + 1.
  451. IF i1 < 2 THEN NEXT.
  452. GET-KEY-VALUE SECTION 'Fw???????' KEY FwFeld VALUE FwValue.
  453. ENTRY(i1, pcColValues, CHR(1)) = FwValue NO-ERROR.
  454. END.
  455. END.
  456. IF FCopy THEN DO:
  457. END.
  458. OldColValues = pcColValues.
  459. END PROCEDURE.
  460. /* _UIB-CODE-BLOCK-END */
  461. &ANALYZE-RESUME
  462. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_FELD_TEST vTableWin
  463. PROCEDURE LEAVE_FELD_TEST :
  464. /*------------------------------------------------------------------------------
  465. Purpose:
  466. Parameters: <none>
  467. Notes:
  468. ------------------------------------------------------------------------------*/
  469. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  470. DEF VAR FeldName AS CHAR NO-UNDO.
  471. DEF VAR FeldInhalt AS CHAR NO-UNDO.
  472. DEF VAR ix AS INT NO-UNDO.
  473. DEF VAR LKY AS INT NO-UNDO.
  474. DEF VAR hLEAVE AS HANDLE NO-UNDO.
  475. DEF VAR hENTER AS HANDLE NO-UNDO.
  476. DEF VAR Daten AS CHAR NO-UNDO.
  477. IF FMut = FALSE THEN RETURN ''.
  478. LKY = LASTKEY.
  479. hENTER = LAST-EVENT:WIDGET-ENTER.
  480. hLEAVE = LAST-EVENT:WIDGET-LEAVE.
  481. FeldName = ''.
  482. FeldInhalt = ''.
  483. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  484. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  485. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  486. FeldName = ipHandle:NAME.
  487. IF ipHandle:TYPE = 'FILL-IN' OR
  488. ipHandle:TYPE = 'COMBO-BOX' OR
  489. ipHandle:TYPE = 'TOGGLE-BOX' THEN FeldInhalt = ipHandle:SCREEN-VALUE.
  490. DO WHILE FNeu WITH FRAME {&FRAME-NAME}:
  491. CASE FeldName:
  492. WHEN 'Prog' THEN DO:
  493. APPLY 'ENTRY' TO rowObject.Tenr.
  494. RETURN 'APPLY'.
  495. END.
  496. WHEN 'Tenr' THEN DO:
  497. FIND LiBild USE-INDEX Libild-k1
  498. WHERE LiBild.Sprcd = Sprcd
  499. AND LiBild.Prog = rowObject.Prog:SCREEN-VALUE
  500. AND LiBild.TeNr = INTEGER(FeldInhalt)
  501. NO-LOCK NO-ERROR.
  502. IF NOT AVAILABLE LiBild THEN RETURN ''.
  503. RUN FEHLER ( INPUT 1023 ).
  504. RETURN 'ERROR'.
  505. END.
  506. END CASE.
  507. LEAVE.
  508. END.
  509. IF LOOKUP(FeldName, '{&LETZTES_FELD}', ',') > 0 THEN DO:
  510. DO WHILE TRUE:
  511. IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE.
  512. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE.
  513. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE.
  514. RETURN ''.
  515. END.
  516. APPLY 'ALT-S'.
  517. RETURN 'APPLY'.
  518. END.
  519. RETURN ''.
  520. END PROCEDURE.
  521. /* _UIB-CODE-BLOCK-END */
  522. &ANALYZE-RESUME
  523. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RETURN_FELD vTableWin
  524. PROCEDURE RETURN_FELD :
  525. /*------------------------------------------------------------------------------
  526. Purpose:
  527. Parameters: <none>
  528. Notes:
  529. ------------------------------------------------------------------------------*/
  530. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  531. DEF VAR FeldName AS CHAR NO-UNDO.
  532. IF FMut = FALSE THEN RETURN ''.
  533. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  534. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  535. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  536. FeldName = ipHandle:NAME.
  537. IF LOOKUP(FeldName, '{&ENABLED-FIELDS}', ' ') > 0 THEN DO:
  538. RETURN 'TAB'.
  539. END.
  540. IF LOOKUP(FeldName, '{&ENABLED-OBJECTS}', ' ') > 0 THEN DO:
  541. RETURN 'TAB'.
  542. END.
  543. FeldName = 'rowObject.' + FeldName.
  544. IF LOOKUP(FeldName, '{&ENABLED-FIELDS}', ' ') > 0 THEN DO:
  545. RETURN 'TAB'.
  546. END.
  547. IF LOOKUP(FeldName, '{&ENABLED-OBJECTS}', ' ') > 0 THEN DO:
  548. RETURN 'TAB'.
  549. END.
  550. RETURN ''.
  551. END PROCEDURE.
  552. /* _UIB-CODE-BLOCK-END */
  553. &ANALYZE-RESUME
  554. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateMode vTableWin
  555. PROCEDURE updateMode :
  556. /*------------------------------------------------------------------------------
  557. Purpose: Super Override
  558. Parameters:
  559. Notes:
  560. ------------------------------------------------------------------------------*/
  561. DEFINE INPUT PARAMETER pcMode AS CHARACTER NO-UNDO.
  562. CASE pcMode:
  563. WHEN 'updateBegin' THEN DO:
  564. END.
  565. WHEN 'updateEnd' THEN DO:
  566. END.
  567. END.
  568. RUN SUPER( INPUT pcMode).
  569. CASE pcMode:
  570. WHEN 'updateBegin' THEN DO:
  571. FMut = TRUE.
  572. END.
  573. WHEN 'updateEnd' THEN DO:
  574. FNeu = FALSE.
  575. FMut = FALSE.
  576. FCopy = FALSE.
  577. END.
  578. END.
  579. END PROCEDURE.
  580. /* _UIB-CODE-BLOCK-END */
  581. &ANALYZE-RESUME
  582. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateRecord vTableWin
  583. PROCEDURE updateRecord :
  584. /*------------------------------------------------------------------------------
  585. Purpose: Super Override
  586. Parameters:
  587. Notes:
  588. ------------------------------------------------------------------------------*/
  589. DO WITH FRAME {&FRAME-NAME}:
  590. IF FNeu THEN DO:
  591. rowObject.Sprcd:SCREEN-VALUE = STRING(Sprcd).
  592. END.
  593. END.
  594. FNeu = FALSE.
  595. FCopy = FALSE.
  596. RUN SUPER.
  597. /* Code placed here will execute AFTER standard behavior. */
  598. END PROCEDURE.
  599. /* _UIB-CODE-BLOCK-END */
  600. &ANALYZE-RESUME