v-aktpreis.w 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956
  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. {adecomm/appserv.i}
  8. /* Temp-Table and Buffer definitions */
  9. DEFINE TEMP-TABLE RowObject NO-UNDO
  10. {"d-aktpreis.i"}.
  11. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS vTableWin
  12. /*------------------------------------------------------------------------
  13. File:
  14. Description: from viewer.w - Template for SmartDataViewer objects
  15. Input Parameters:
  16. <none>
  17. Output Parameters:
  18. <none>
  19. ------------------------------------------------------------------------*/
  20. /* This .W file was created with the Progress AppBuilder. */
  21. /*----------------------------------------------------------------------*/
  22. /* Create an unnamed pool to store all the widgets created
  23. by this procedure. This is a good default which assures
  24. that this procedure's triggers and internal procedures
  25. will execute in this procedure's storage, and that proper
  26. cleanup will occur on deletion of the procedure. */
  27. CREATE WIDGET-POOL.
  28. /* *************************** Definitions ************************** */
  29. /* Komma-Trennzeichen */
  30. /* Keyfelder werden beim Mutieren nicht "Enabled" */
  31. &Scoped-define ERSTES_FELD Ab_Datum
  32. &Scoped-define LETZTES_FELD Bemerkung
  33. &Scoped-define KEY_FELDER Gruppe
  34. &Scoped-define NUR_LESEN Aktion
  35. { incl/viwdefinition.i }
  36. DEF VAR lAktpreis AS LOG NO-UNDO.
  37. DEF VAR BegDat AS DATE NO-UNDO.
  38. {src/adm2/widgetprto.i}
  39. /* _UIB-CODE-BLOCK-END */
  40. &ANALYZE-RESUME
  41. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  42. /* ******************** Preprocessor Definitions ******************** */
  43. &Scoped-define PROCEDURE-TYPE SmartDataViewer
  44. &Scoped-define DB-AWARE no
  45. &Scoped-define ADM-CONTAINER FRAME
  46. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  47. /* Include file with RowObject temp-table definition */
  48. &Scoped-define DATA-FIELD-DEFS "d-aktpreis.i"
  49. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  50. &Scoped-define FRAME-NAME F-Main
  51. /* Standard List Definitions */
  52. &Scoped-Define ENABLED-FIELDS RowObject.Gruppe RowObject.Ab_Datum ~
  53. RowObject.Bis_Datum RowObject.Wert RowObject.Bemerkung RowObject.Aktion
  54. &Scoped-define ENABLED-TABLES RowObject
  55. &Scoped-define FIRST-ENABLED-TABLE RowObject
  56. &Scoped-Define ENABLED-OBJECTS RECT-6 CB_Art
  57. &Scoped-Define DISPLAYED-FIELDS RowObject.Gruppe RowObject.Ab_Datum ~
  58. RowObject.Bis_Datum RowObject.Jahr RowObject.Grp RowObject.Art ~
  59. RowObject.VK_Netto RowObject.VK_Brutto RowObject.Marge RowObject.VK_Normal ~
  60. RowObject.Artnr RowObject.Firma RowObject.Inhalt RowObject.Wert ~
  61. RowObject.Bemerkung RowObject.Aktion
  62. &Scoped-define DISPLAYED-TABLES RowObject
  63. &Scoped-define FIRST-DISPLAYED-TABLE RowObject
  64. &Scoped-Define DISPLAYED-OBJECTS CB_Art
  65. /* Custom List Definitions */
  66. /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */
  67. /* _UIB-PREPROCESSOR-BLOCK-END */
  68. &ANALYZE-RESUME
  69. /* *********************** Control Definitions ********************** */
  70. /* Definitions of the field level widgets */
  71. DEFINE VARIABLE CB_Art AS CHARACTER FORMAT "X(256)":U
  72. LABEL "Abschlagsart"
  73. VIEW-AS COMBO-BOX INNER-LINES 5
  74. LIST-ITEM-PAIRS "Betrag","0",
  75. "Prozent","1"
  76. DROP-DOWN-LIST
  77. SIZE 17 BY 1
  78. BGCOLOR 15 NO-UNDO.
  79. DEFINE RECTANGLE RECT-6
  80. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  81. SIZE 70 BY 6.71.
  82. /* ************************ Frame Definitions *********************** */
  83. DEFINE FRAME F-Main
  84. RowObject.Gruppe AT ROW 1.52 COL 23 COLON-ALIGNED WIDGET-ID 18
  85. VIEW-AS FILL-IN NATIVE
  86. SIZE 35 BY 1
  87. BGCOLOR 15
  88. RowObject.Ab_Datum AT ROW 2.52 COL 23 COLON-ALIGNED WIDGET-ID 2
  89. LABEL "gültig von/bis Datum"
  90. VIEW-AS FILL-IN NATIVE
  91. SIZE 17 BY 1
  92. BGCOLOR 15
  93. RowObject.Bis_Datum AT ROW 2.52 COL 42 COLON-ALIGNED WIDGET-ID 12
  94. LABEL "/"
  95. VIEW-AS FILL-IN NATIVE
  96. SIZE 16 BY 1
  97. BGCOLOR 15
  98. CB_Art AT ROW 3.52 COL 23 COLON-ALIGNED WIDGET-ID 36
  99. RowObject.Jahr AT ROW 4 COL 58 COLON-ALIGNED WIDGET-ID 22
  100. VIEW-AS FILL-IN NATIVE
  101. SIZE 4 BY 1
  102. BGCOLOR 15 NO-TAB-STOP
  103. RowObject.Grp AT ROW 4 COL 58 COLON-ALIGNED WIDGET-ID 16
  104. VIEW-AS FILL-IN NATIVE
  105. SIZE 4 BY 1
  106. BGCOLOR 15 NO-TAB-STOP
  107. RowObject.Art AT ROW 4 COL 58 COLON-ALIGNED WIDGET-ID 6
  108. VIEW-AS FILL-IN NATIVE
  109. SIZE 4 BY 1
  110. BGCOLOR 15 NO-TAB-STOP
  111. RowObject.VK_Netto AT ROW 4 COL 58 COLON-ALIGNED WIDGET-ID 28
  112. VIEW-AS FILL-IN NATIVE
  113. SIZE 4 BY 1
  114. BGCOLOR 15 NO-TAB-STOP
  115. RowObject.VK_Brutto AT ROW 4 COL 58 COLON-ALIGNED WIDGET-ID 26
  116. VIEW-AS FILL-IN NATIVE
  117. SIZE 4 BY 1
  118. BGCOLOR 15 NO-TAB-STOP
  119. RowObject.Marge AT ROW 4 COL 58 COLON-ALIGNED WIDGET-ID 24
  120. VIEW-AS FILL-IN NATIVE
  121. SIZE 4 BY 1
  122. BGCOLOR 15 NO-TAB-STOP
  123. RowObject.VK_Normal AT ROW 4 COL 58 COLON-ALIGNED WIDGET-ID 30
  124. VIEW-AS FILL-IN NATIVE
  125. SIZE 4 BY 1
  126. BGCOLOR 15 NO-TAB-STOP
  127. RowObject.Artnr AT ROW 4 COL 58 COLON-ALIGNED WIDGET-ID 8
  128. VIEW-AS FILL-IN NATIVE
  129. SIZE 4 BY 1
  130. BGCOLOR 15 NO-TAB-STOP
  131. RowObject.Firma AT ROW 4 COL 58 COLON-ALIGNED WIDGET-ID 14
  132. VIEW-AS FILL-IN NATIVE
  133. SIZE 4 BY 1
  134. BGCOLOR 15 NO-TAB-STOP
  135. RowObject.Inhalt AT ROW 4 COL 58 COLON-ALIGNED WIDGET-ID 20
  136. VIEW-AS FILL-IN NATIVE
  137. SIZE 4 BY 1
  138. BGCOLOR 15 NO-TAB-STOP
  139. RowObject.Wert AT ROW 4.52 COL 23 COLON-ALIGNED WIDGET-ID 32
  140. LABEL "Abschlag"
  141. VIEW-AS FILL-IN NATIVE
  142. SIZE 17 BY 1
  143. BGCOLOR 15
  144. RowObject.Bemerkung AT ROW 5.52 COL 23 COLON-ALIGNED WIDGET-ID 10
  145. VIEW-AS FILL-IN NATIVE
  146. SIZE 35 BY 1
  147. BGCOLOR 15
  148. RowObject.Aktion AT ROW 6.52 COL 23 COLON-ALIGNED WIDGET-ID 4
  149. VIEW-AS FILL-IN NATIVE
  150. SIZE 35 BY 1
  151. BGCOLOR 15
  152. RECT-6 AT ROW 1.24 COL 2 WIDGET-ID 34
  153. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS
  154. SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE
  155. AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100.
  156. /* *********************** Procedure Settings ************************ */
  157. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  158. /* Settings for THIS-PROCEDURE
  159. Type: SmartDataViewer
  160. Data Source: "d-aktpreis.w"
  161. Allow: Basic,DB-Fields,Smart
  162. Container Links: Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  163. Frames: 1
  164. Add Fields to: Neither
  165. Other Settings: PERSISTENT-ONLY COMPILE APPSERVER
  166. Temp-Tables and Buffers:
  167. TABLE: RowObject D "?" NO-UNDO
  168. ADDITIONAL-FIELDS:
  169. {d-aktpreis.i}
  170. END-FIELDS.
  171. END-TABLES.
  172. */
  173. /* This procedure should always be RUN PERSISTENT. Report the error, */
  174. /* then cleanup and return. */
  175. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  176. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  177. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  178. RETURN.
  179. END.
  180. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  181. /* ************************* Create Window ************************** */
  182. &ANALYZE-SUSPEND _CREATE-WINDOW
  183. /* DESIGN Window definition (used by the UIB)
  184. CREATE WINDOW vTableWin ASSIGN
  185. HEIGHT = 7.33
  186. WIDTH = 72.6.
  187. /* END WINDOW DEFINITION */
  188. */
  189. &ANALYZE-RESUME
  190. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB vTableWin
  191. /* ************************* Included-Libraries *********************** */
  192. {src/adm2/viewer.i}
  193. /* _UIB-CODE-BLOCK-END */
  194. &ANALYZE-RESUME
  195. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  196. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  197. /* SETTINGS FOR WINDOW vTableWin
  198. VISIBLE,,RUN-PERSISTENT */
  199. /* SETTINGS FOR FRAME F-Main
  200. NOT-VISIBLE FRAME-NAME Size-to-Fit */
  201. ASSIGN
  202. FRAME F-Main:SCROLLABLE = FALSE
  203. FRAME F-Main:HIDDEN = TRUE.
  204. /* SETTINGS FOR FILL-IN RowObject.Ab_Datum IN FRAME F-Main
  205. EXP-LABEL */
  206. /* SETTINGS FOR FILL-IN RowObject.Art IN FRAME F-Main
  207. NO-ENABLE */
  208. ASSIGN
  209. RowObject.Art:HIDDEN IN FRAME F-Main = TRUE
  210. RowObject.Art:READ-ONLY IN FRAME F-Main = TRUE.
  211. /* SETTINGS FOR FILL-IN RowObject.Artnr IN FRAME F-Main
  212. NO-ENABLE */
  213. ASSIGN
  214. RowObject.Artnr:HIDDEN IN FRAME F-Main = TRUE
  215. RowObject.Artnr:READ-ONLY IN FRAME F-Main = TRUE.
  216. /* SETTINGS FOR FILL-IN RowObject.Bis_Datum IN FRAME F-Main
  217. EXP-LABEL */
  218. /* SETTINGS FOR FILL-IN RowObject.Firma IN FRAME F-Main
  219. NO-ENABLE */
  220. ASSIGN
  221. RowObject.Firma:HIDDEN IN FRAME F-Main = TRUE
  222. RowObject.Firma:READ-ONLY IN FRAME F-Main = TRUE.
  223. /* SETTINGS FOR FILL-IN RowObject.Grp IN FRAME F-Main
  224. NO-ENABLE */
  225. ASSIGN
  226. RowObject.Grp:HIDDEN IN FRAME F-Main = TRUE
  227. RowObject.Grp:READ-ONLY IN FRAME F-Main = TRUE.
  228. /* SETTINGS FOR FILL-IN RowObject.Inhalt IN FRAME F-Main
  229. NO-ENABLE */
  230. ASSIGN
  231. RowObject.Inhalt:HIDDEN IN FRAME F-Main = TRUE
  232. RowObject.Inhalt:READ-ONLY IN FRAME F-Main = TRUE.
  233. /* SETTINGS FOR FILL-IN RowObject.Jahr IN FRAME F-Main
  234. NO-ENABLE */
  235. ASSIGN
  236. RowObject.Jahr:HIDDEN IN FRAME F-Main = TRUE
  237. RowObject.Jahr:READ-ONLY IN FRAME F-Main = TRUE.
  238. /* SETTINGS FOR FILL-IN RowObject.Marge IN FRAME F-Main
  239. NO-ENABLE */
  240. ASSIGN
  241. RowObject.Marge:HIDDEN IN FRAME F-Main = TRUE
  242. RowObject.Marge:READ-ONLY IN FRAME F-Main = TRUE.
  243. /* SETTINGS FOR FILL-IN RowObject.VK_Brutto IN FRAME F-Main
  244. NO-ENABLE */
  245. ASSIGN
  246. RowObject.VK_Brutto:HIDDEN IN FRAME F-Main = TRUE
  247. RowObject.VK_Brutto:READ-ONLY IN FRAME F-Main = TRUE.
  248. /* SETTINGS FOR FILL-IN RowObject.VK_Netto IN FRAME F-Main
  249. NO-ENABLE */
  250. ASSIGN
  251. RowObject.VK_Netto:HIDDEN IN FRAME F-Main = TRUE
  252. RowObject.VK_Netto:READ-ONLY IN FRAME F-Main = TRUE.
  253. /* SETTINGS FOR FILL-IN RowObject.VK_Normal IN FRAME F-Main
  254. NO-ENABLE */
  255. ASSIGN
  256. RowObject.VK_Normal:HIDDEN IN FRAME F-Main = TRUE
  257. RowObject.VK_Normal:READ-ONLY IN FRAME F-Main = TRUE.
  258. /* SETTINGS FOR FILL-IN RowObject.Wert IN FRAME F-Main
  259. EXP-LABEL */
  260. /* _RUN-TIME-ATTRIBUTES-END */
  261. &ANALYZE-RESUME
  262. /* Setting information for Queries and Browse Widgets fields */
  263. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  264. /* Query rebuild information for FRAME F-Main
  265. _Options = "NO-LOCK"
  266. _Query is NOT OPENED
  267. */ /* FRAME F-Main */
  268. &ANALYZE-RESUME
  269. /* ************************ Control Triggers ************************ */
  270. &Scoped-define SELF-NAME CB_Art
  271. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Art vTableWin
  272. ON VALUE-CHANGED OF CB_Art IN FRAME F-Main /* Abschlagsart */
  273. DO:
  274. IF NOT FMut THEN SELF:SCREEN-VALUE = rowObject.Art:SCREEN-VALUE NO-ERROR.
  275. rowObject.Art:SCREEN-VALUE = SELF:SCREEN-VALUE.
  276. IF Fmut THEN rowObject.Art:MODIFIED = TRUE.
  277. END.
  278. /* _UIB-CODE-BLOCK-END */
  279. &ANALYZE-RESUME
  280. &UNDEFINE SELF-NAME
  281. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin
  282. /* *************************** Main Block *************************** */
  283. { incl/viwmainblock.i }
  284. FIND Steuer NO-LOCK USE-INDEX Steuer-k1
  285. WHERE Steuer.Firma = Firma NO-ERROR.
  286. IF AVAILABLE Steuer THEN DO:
  287. IF Steuer.Aktionspreis = 0 THEN lAktpreis = TRUE. /* Preisgruppen */
  288. ELSE lAktpreis = FALSE. /* Kundengruppen */
  289. END.
  290. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  291. RUN initializeObject.
  292. &ENDIF
  293. /************************ INTERNAL PROCEDURES ********************/
  294. /* _UIB-CODE-BLOCK-END */
  295. &ANALYZE-RESUME
  296. /* ********************** Internal Procedures *********************** */
  297. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE addRecord vTableWin
  298. PROCEDURE addRecord :
  299. /*------------------------------------------------------------------------------
  300. Purpose: Super Override
  301. Parameters:
  302. Notes:
  303. ------------------------------------------------------------------------------*/
  304. DYNAMIC-FUNCTION('setFlagAbbruch':U, TRUE, ProgName) NO-ERROR.
  305. RETURN NO-APPLY.
  306. /*
  307. FNeu = TRUE.
  308. FMut = TRUE.
  309. FDisp = TRUE.
  310. RUN SUPER.
  311. */
  312. /* Code placed here will execute AFTER standard behavior. */
  313. END PROCEDURE.
  314. /* _UIB-CODE-BLOCK-END */
  315. &ANALYZE-RESUME
  316. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancelRecord vTableWin
  317. PROCEDURE cancelRecord :
  318. /*------------------------------------------------------------------------------
  319. Purpose: Super Override
  320. Parameters:
  321. Notes:
  322. ------------------------------------------------------------------------------*/
  323. FCancel = TRUE.
  324. RUN SUPER.
  325. /* Code placed here will execute AFTER standard behavior. */
  326. END PROCEDURE.
  327. /* _UIB-CODE-BLOCK-END */
  328. &ANALYZE-RESUME
  329. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE copyRecord vTableWin
  330. PROCEDURE copyRecord :
  331. /*------------------------------------------------------------------------------
  332. Purpose: Super Override
  333. Parameters:
  334. Notes:
  335. ------------------------------------------------------------------------------*/
  336. DYNAMIC-FUNCTION('setFlagAbbruch':U, TRUE, ProgName) NO-ERROR.
  337. RETURN NO-APPLY.
  338. /*
  339. FNeu = TRUE.
  340. FMut = TRUE.
  341. FCopy = TRUE.
  342. FDisp = TRUE.
  343. RUN SUPER.
  344. */
  345. END PROCEDURE.
  346. /* _UIB-CODE-BLOCK-END */
  347. &ANALYZE-RESUME
  348. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE deleteRecord vTableWin
  349. PROCEDURE deleteRecord :
  350. /*------------------------------------------------------------------------------
  351. Purpose: Super Override
  352. Parameters:
  353. Notes:
  354. ------------------------------------------------------------------------------*/
  355. DEF VAR Ja AS LOG NO-UNDO.
  356. DEF VAR cGruppen AS CHAR NO-UNDO.
  357. DEF VAR Artnr AS INT NO-UNDO.
  358. DEF VAR Inhalt AS INT NO-UNDO.
  359. DEF VAR Jahr AS INT NO-UNDO.
  360. DEF VAR Ab_Datum AS DATE NO-UNDO.
  361. DEF VAR Aktion AS CHAR NO-UNDO.
  362. DEF VAR i1 AS INT NO-UNDO.
  363. DEF VAR Grp AS INT NO-UNDO.
  364. DO WITH FRAME {&FRAME-NAME}:
  365. Ja = ?.
  366. MESSAGE 'Möchten Sie die ganze Aktion löschen (Ja)' SKIP
  367. 'Nur den markierten Satz (Nein)' SKIP
  368. 'gar nichts löschen (Abbrechen)'
  369. VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO-CANCEL
  370. UPDATE Ja.
  371. IF Ja = ? THEN DO:
  372. RUN 'TOOLBAR' IN hKontainer ( INPUT 'CANCEL':U ).
  373. RETURN NO-APPLY.
  374. END.
  375. Artnr = INTEGER(rowObject.Artnr :SCREEN-VALUE).
  376. Inhalt = INTEGER(rowObject.Inhalt :SCREEN-VALUE).
  377. Jahr = INTEGER(rowObject.Jahr :SCREEN-VALUE).
  378. Ab_Datum = DATE (rowObject.Ab_Datum:SCREEN-VALUE).
  379. Aktion = rowObject.Aktion :SCREEN-VALUE .
  380. cGruppen = ''.
  381. IF Ja = FALSE THEN DO:
  382. cGruppen = rowObject.Grp:SCREEN-VALUE.
  383. RUN SUPER.
  384. END.
  385. IF Ja = TRUE THEN DO:
  386. REPEAT TRANSACTION:
  387. FOR EACH AktPreis USE-INDEX AktPreis-k1
  388. WHERE AktPreis.Firma = Firma
  389. AND AktPreis.Artnr = Artnr
  390. AND AktPreis.Inhalt = Inhalt
  391. AND AktPreis.Jahr = Jahr
  392. AND AktPreis.Ab_Datum = Ab_Datum:
  393. IF cGruppen <> '' THEN cGruppen = cGruppen + ';'.
  394. cGruppen = cGruppen + STRING(AktPreis.Grp,'999').
  395. DELETE AktPreis.
  396. END.
  397. LEAVE.
  398. END.
  399. RUN SET_OPENFLAG IN hDaten ( TRUE ).
  400. END.
  401. IF lAktPreis THEN DO: /* Preisgruppen */
  402. REPEAT TRANSACTION WITH FRAME {&FRAME-NAME}:
  403. DO i1 = 1 TO NUM-ENTRIES(cGruppen, ';'):
  404. Grp = INTEGER(ENTRY(i1, cGruppen, ';')).
  405. FOR EACH ArtPreis USE-INDEX ArtPreis-k1
  406. WHERE ArtPreis.Firma = Firma
  407. AND ArtPreis.Artnr = Artnr
  408. AND ArtPreis.Inhalt = Inhalt
  409. AND ArtPreis.Jahr = Jahr
  410. AND ArtPreis.Preis_Grp = Grp
  411. AND ArtPreis.Ab_Datum = Ab_Datum
  412. AND ArtPreis.Aktion = TRUE :
  413. DELETE ArtPreis.
  414. END.
  415. END.
  416. LEAVE.
  417. END.
  418. RUN SET_OPENFLAG IN hDaten ( TRUE ).
  419. END.
  420. END.
  421. END PROCEDURE.
  422. /* _UIB-CODE-BLOCK-END */
  423. &ANALYZE-RESUME
  424. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disableFields vTableWin
  425. PROCEDURE disableFields :
  426. /*------------------------------------------------------------------------------
  427. Purpose: Super Override
  428. Parameters:
  429. Notes:
  430. ------------------------------------------------------------------------------*/
  431. DEFINE INPUT PARAMETER pcFieldType AS CHARACTER NO-UNDO.
  432. DO WITH FRAME {&FRAME-NAME}:
  433. END.
  434. RUN SUPER( INPUT pcFieldType).
  435. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  436. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  437. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
  438. RUN FARBE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT 15 ).
  439. END.
  440. DO WITH FRAME {&FRAME-NAME}:
  441. END.
  442. END PROCEDURE.
  443. /* _UIB-CODE-BLOCK-END */
  444. &ANALYZE-RESUME
  445. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI vTableWin _DEFAULT-DISABLE
  446. PROCEDURE disable_UI :
  447. /*------------------------------------------------------------------------------
  448. Purpose: DISABLE the User Interface
  449. Parameters: <none>
  450. Notes: Here we clean-up the user-interface by deleting
  451. dynamic widgets we have created and/or hide
  452. frames. This procedure is usually called when
  453. we are ready to "clean-up" after running.
  454. ------------------------------------------------------------------------------*/
  455. /* Hide all frames. */
  456. HIDE FRAME F-Main.
  457. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  458. END PROCEDURE.
  459. /* _UIB-CODE-BLOCK-END */
  460. &ANALYZE-RESUME
  461. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE displayFields vTableWin
  462. PROCEDURE displayFields :
  463. /*------------------------------------------------------------------------------
  464. Purpose: Super Override
  465. Parameters:
  466. Notes:
  467. ------------------------------------------------------------------------------*/
  468. DEFINE INPUT PARAMETER pcColValues AS CHARACTER NO-UNDO.
  469. IF NOT FDisp THEN DO:
  470. FDisp = TRUE.
  471. RETURN.
  472. END.
  473. IF FCancel THEN pcColValues = OldColValues.
  474. IF NOT FNeu THEN OldColValues = pcColValues.
  475. OldColList = DYNAMIC-FUNCTION('getDisplayedFields':U).
  476. IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ).
  477. DO WITH FRAME {&FRAME-NAME}:
  478. END.
  479. RUN SUPER( INPUT pcColValues).
  480. FCancel = FALSE.
  481. DO WITH FRAME {&FRAME-NAME}:
  482. CB_Art:SCREEN-VALUE = rowObject.Art:SCREEN-VALUE NO-ERROR.
  483. END.
  484. END PROCEDURE.
  485. /* _UIB-CODE-BLOCK-END */
  486. &ANALYZE-RESUME
  487. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin
  488. PROCEDURE enableFields :
  489. /*------------------------------------------------------------------------------
  490. Purpose: Super Override
  491. Parameters:
  492. Notes:
  493. ------------------------------------------------------------------------------*/
  494. /* Code placed here will execute PRIOR to standard behavior. */
  495. /*
  496. RUN SUPER.
  497. */
  498. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  499. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT FALSE ).
  500. IF NUM-ENTRIES('{&NUR_LESEN}', ',') > 0 THEN DO:
  501. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&NUR_LESEN}', INPUT TRUE ).
  502. END.
  503. DO WITH FRAME {&FRAME-NAME}:
  504. END.
  505. IF FNeu THEN RETURN.
  506. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
  507. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
  508. END.
  509. END PROCEDURE.
  510. /* _UIB-CODE-BLOCK-END */
  511. &ANALYZE-RESUME
  512. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject vTableWin
  513. PROCEDURE enableObject :
  514. /*------------------------------------------------------------------------------
  515. Purpose: Super Override
  516. Parameters:
  517. Notes:
  518. ------------------------------------------------------------------------------*/
  519. /* Code placed here will execute PRIOR to standard behavior. */
  520. RUN SUPER.
  521. { incl/viwenableobject.i }
  522. END PROCEDURE.
  523. /* _UIB-CODE-BLOCK-END */
  524. &ANALYZE-RESUME
  525. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_FELD_TEST vTableWin
  526. PROCEDURE ENTRY_FELD_TEST :
  527. /*------------------------------------------------------------------------------
  528. Purpose:
  529. Parameters: <none>
  530. Notes:
  531. ------------------------------------------------------------------------------*/
  532. { incl/viwentryfeldtest.i }
  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 i1 AS INT NO-UNDO.
  550. IF FCancel THEN RETURN.
  551. IF NOT FCopy THEN DO WITH FRAME {&FRAME-NAME}:
  552. /* i1 = LOOKUP('Feld', oldColList, ',') + 1. */
  553. /* ENTRY(i1, pcColValues, CHR(1)) = 'Fehlwert' NO-ERROR. */
  554. END.
  555. IF FCopy THEN DO:
  556. END.
  557. END PROCEDURE.
  558. /* _UIB-CODE-BLOCK-END */
  559. &ANALYZE-RESUME
  560. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_FELD_TEST vTableWin
  561. PROCEDURE LEAVE_FELD_TEST :
  562. /*------------------------------------------------------------------------------
  563. Purpose:
  564. Parameters: <none>
  565. Notes:
  566. ------------------------------------------------------------------------------*/
  567. { incl/viwleavefeldtest.i }
  568. DO WHILE FNeu WITH FRAME {&FRAME-NAME}:
  569. CASE FeldName:
  570. END CASE.
  571. LEAVE.
  572. END.
  573. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  574. CASE FeldName:
  575. END CASE.
  576. LEAVE.
  577. END.
  578. IF LOOKUP(FeldName, '{&LETZTES_FELD}', ',') > 0 THEN DO:
  579. DO WHILE TRUE:
  580. IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE.
  581. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE.
  582. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE.
  583. RETURN ''.
  584. END.
  585. APPLY 'ALT-S'.
  586. RETURN 'APPLY'.
  587. END.
  588. RETURN ''.
  589. END PROCEDURE.
  590. /* _UIB-CODE-BLOCK-END */
  591. &ANALYZE-RESUME
  592. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RETURN_FELD vTableWin
  593. PROCEDURE RETURN_FELD :
  594. /*------------------------------------------------------------------------------
  595. Purpose:
  596. Parameters: <none>
  597. Notes:
  598. ------------------------------------------------------------------------------*/
  599. { incl/viwreturnfeld.i }
  600. END PROCEDURE.
  601. /* _UIB-CODE-BLOCK-END */
  602. &ANALYZE-RESUME
  603. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEST_EINGABEN vTableWin
  604. PROCEDURE TEST_EINGABEN :
  605. /*------------------------------------------------------------------------------
  606. Purpose:
  607. Parameters: <none>
  608. Notes:
  609. ------------------------------------------------------------------------------*/
  610. DEF OUTPUT PARAMETER opJa AS LOG NO-UNDO.
  611. DEF VAR eHandle AS HANDLE NO-UNDO.
  612. DEF VAR cString AS CHAR NO-UNDO.
  613. DEF VAR iNummer AS INT NO-UNDO.
  614. opJa = FALSE.
  615. eHandle = ?.
  616. IF NOT FMut THEN RETURN.
  617. AAA000:
  618. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  619. LEAVE.
  620. END.
  621. IF VALID-HANDLE(eHandle) THEN DO:
  622. APPLY 'ENTRY' TO eHandle.
  623. RETURN NO-APPLY.
  624. END.
  625. opJa = TRUE.
  626. END PROCEDURE.
  627. /* _UIB-CODE-BLOCK-END */
  628. &ANALYZE-RESUME
  629. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateMode vTableWin
  630. PROCEDURE updateMode :
  631. /*------------------------------------------------------------------------------
  632. Purpose: Super Override
  633. Parameters:
  634. Notes:
  635. ------------------------------------------------------------------------------*/
  636. DEFINE INPUT PARAMETER pcMode AS CHARACTER NO-UNDO.
  637. CASE pcMode:
  638. WHEN 'updateBegin' THEN DO:
  639. END.
  640. WHEN 'updateEnd' THEN DO:
  641. END.
  642. END.
  643. RUN SUPER( INPUT pcMode).
  644. CASE pcMode:
  645. WHEN 'updateBegin' THEN DO:
  646. FMut = TRUE.
  647. BegDat = DATE(rowObject.Ab_Datum:SCREEN-VALUE IN FRAME {&FRAME-NAME}) NO-ERROR.
  648. END.
  649. WHEN 'updateEnd' THEN DO:
  650. FNeu = FALSE.
  651. FMut = FALSE.
  652. FCopy = FALSE.
  653. END.
  654. END.
  655. END PROCEDURE.
  656. /* _UIB-CODE-BLOCK-END */
  657. &ANALYZE-RESUME
  658. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateRecord vTableWin
  659. PROCEDURE updateRecord :
  660. /*------------------------------------------------------------------------------
  661. Purpose: Super Override
  662. Parameters:
  663. Notes:
  664. ------------------------------------------------------------------------------*/
  665. DEF VAR Artnr AS INT NO-UNDO.
  666. DEF VAR Inhalt AS INT NO-UNDO.
  667. DEF VAR Jahr AS INT NO-UNDO.
  668. DEF VAR Grp AS INT NO-UNDO.
  669. DEF VAR Aktion AS CHAR NO-UNDO.
  670. DEF VAR AbDatum AS DATE NO-UNDO.
  671. DEF VAR cArtikel AS CHAR NO-UNDO.
  672. DEF VAR cPreisGrp AS CHAR NO-UNDO.
  673. DEF VAR Art AS INT NO-UNDO.
  674. DEF VAR EP AS DEC DECIMALS 4 NO-UNDO.
  675. DEF VAR Wert AS DEC DECIMALS 4 NO-UNDO.
  676. DEF VAR VK_Normal AS DEC DECIMALS 4 NO-UNDO.
  677. DEF VAR Bru_Netto AS LOG NO-UNDO.
  678. DEF VAR hArtPreis AS HANDLE NO-UNDO.
  679. DEF VAR hNetto AS HANDLE NO-UNDO.
  680. DEF VAR hBrutto AS HANDLE NO-UNDO.
  681. DEF VAR hMarge AS HANDLE NO-UNDO.
  682. DEF VAR hDatum AS HANDLE NO-UNDO.
  683. DO WITH FRAME {&FRAME-NAME}:
  684. Artnr = INTEGER(rowObject.Artnr:SCREEN-VALUE ).
  685. Inhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE ).
  686. Jahr = INTEGER(rowObject.Jahr:SCREEN-VALUE ).
  687. Grp = INTEGER(rowObject.Grp:SCREEN-VALUE ).
  688. Art = INTEGER(rowObject.Art:SCREEN-VALUE ).
  689. Aktion = rowObject.Aktion:SCREEN-VALUE .
  690. AbDatum = DATE (rowObject.Ab_Datum:SCREEN-VALUE).
  691. Wert = DECIMAL(rowObject.Wert :SCREEN-VALUE).
  692. VK_Normal = DECIMAL(rowObject.VK_Normal:SCREEN-VALUE).
  693. END.
  694. FNeu = FALSE.
  695. FCopy = FALSE.
  696. RUN SUPER.
  697. IF NOT lAktPreis THEN RETURN.
  698. FIND Artst USE-INDEX Artst-k1
  699. WHERE Artst.Firma = Firma
  700. AND Artst.Artnr = Artnr
  701. AND Artst.Inhalt = Inhalt
  702. AND Artst.Jahr = Jahr NO-LOCK NO-ERROR.
  703. EP = Artst.Listen_EP.
  704. IF EP = 0 THEN EP = Artst.LEP.
  705. hArtPreis = BUFFER ArtPreis:HANDLE.
  706. hNetto = hArtPreis:BUFFER-FIELD('VK_Netto') .
  707. hBrutto = hArtPreis:BUFFER-FIELD('VK_Brutto') .
  708. hMarge = hArtPreis:BUFFER-FIELD('Marge') .
  709. hDatum = hArtPreis:BUFFER-FIELD('Ab_Datum').
  710. REPEAT TRANSACTION:
  711. RUN FIND_PREISGRUPPE ( INPUT Grp, OUTPUT cPreisGrp ) NO-ERROR.
  712. IF cPreisGrp = '' THEN LEAVE.
  713. IF INTEGER(ENTRY(3, cPreisGrp, CHR(01))) = 1 THEN Bru_Netto = TRUE.
  714. ELSE Bru_Netto = FALSE.
  715. FOR EACH ArtPreis USE-INDEX ArtPreis-k1
  716. WHERE ArtPreis.Firma = Firma
  717. AND ArtPreis.Artnr = Artnr
  718. AND ArtPreis.Inhalt = Inhalt
  719. AND ArtPreis.Jahr = Jahr
  720. AND ArtPreis.Preis_Grp = Grp
  721. AND ArtPreis.Ab_Datum = BegDat
  722. AND ArtPreis.Aktion = TRUE :
  723. IF Bru_Netto THEN DO:
  724. IF Art = 0 THEN ArtPreis.VK_Brutto = VK_Normal - Wert.
  725. IF Art = 1 THEN ArtPreis.VK_Brutto = VK_Normal * (100 - Wert) / 100.
  726. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT ArtPreis.VK_Brutto ).
  727. Art = 2.
  728. END.
  729. ELSE DO:
  730. IF Art = 0 THEN ArtPreis.VK_Netto = VK_Normal - Wert.
  731. IF Art = 1 THEN ArtPreis.VK_Netto = VK_Normal * (100 - Wert) / 100.
  732. /*
  733. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT ArtPreis.VK_Netto ).
  734. */
  735. Art = 1.
  736. END.
  737. RUN ARTPREISRECHNEN ( INPUT Art, INPUT hNetto ,
  738. INPUT hBrutto,
  739. INPUT hMarge ,
  740. INPUT hDatum ,
  741. INPUT 'CHF' ).
  742. ArtPreis.Ab_Datum = DATE (rowObject.Ab_Datum:SCREEN-VALUE ).
  743. ArtPreis.AktName = rowObject.Aktion:SCREEN-VALUE .
  744. IF EP <> 0 THEN ArtPreis.Marge = 100 - (EP * 100 / ArtPreis.VK_Netto).
  745. ELSE ArtPreis.Marge = 0.
  746. END.
  747. RELEASE ArtPreis.
  748. LEAVE.
  749. END.
  750. RUN REPOS_TABELLE IN hDaten NO-ERROR.
  751. END PROCEDURE.
  752. /* _UIB-CODE-BLOCK-END */
  753. &ANALYZE-RESUME