v-rabsumm.w 30 KB

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