v-rabtab.w 32 KB

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