v-aktionen.w 26 KB

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