v-bontab.w 27 KB

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