g-skontorechnen.w 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v9r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME gSkontoRechnen
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gSkontoRechnen
  6. /*------------------------------------------------------------------------
  7. File:
  8. Description: from cntnrdlg.w - ADM2 SmartDialog Template
  9. Input Parameters:
  10. <none>
  11. Output Parameters:
  12. <none>
  13. Author:
  14. Created:
  15. ------------------------------------------------------------------------*/
  16. /* This .W file was created with the Progress AppBuilder. */
  17. /*----------------------------------------------------------------------*/
  18. /* Create an unnamed pool to store all the widgets created
  19. by this procedure. This is a good default which assures
  20. that this procedure's triggers and internal procedures
  21. will execute in this procedure's storage, and that proper
  22. cleanup will occur on deletion of the procedure. */
  23. CREATE WIDGET-POOL.
  24. /* *************************** Definitions ************************** */
  25. /* Parameters Definitions --- */
  26. /* Local Variable Definitions --- */
  27. DEF VAR MaxPage AS INT NO-UNDO.
  28. DEF VAR AktSeite AS INT NO-UNDO.
  29. DEF VAR FMutFlag AS LOG NO-UNDO.
  30. DEF VAR Firma AS CHAR NO-UNDO.
  31. DEF VAR AdFirma AS CHAR NO-UNDO.
  32. DEF TEMP-TABLE TSko LIKE SkontoAb
  33. USE-INDEX SkontoAb-k1 AS PRIMARY.
  34. DEF BUFFER BSko FOR TSko.
  35. /* _UIB-CODE-BLOCK-END */
  36. &ANALYZE-RESUME
  37. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  38. /* ******************** Preprocessor Definitions ******************** */
  39. &Scoped-define PROCEDURE-TYPE SmartDialog
  40. &Scoped-define DB-AWARE no
  41. &Scoped-define ADM-CONTAINER DIALOG-BOX
  42. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  43. /* Name of first Frame and/or Browse and/or first Query */
  44. &Scoped-define FRAME-NAME gSkontoRechnen
  45. /* Standard List Definitions */
  46. &Scoped-Define ENABLED-OBJECTS F_VonKnr F_BisKnr F_VonDatum F_BisDatum ~
  47. Btn_Rechnen F_Kunde RECT-21
  48. &Scoped-Define DISPLAYED-OBJECTS F_VonKnr F_BisKnr F_VonDatum F_BisDatum ~
  49. F_Kunde
  50. /* Custom List Definitions */
  51. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  52. &Scoped-define List-6 F_VonKnr F_BisKnr F_VonDatum F_BisDatum
  53. /* _UIB-PREPROCESSOR-BLOCK-END */
  54. &ANALYZE-RESUME
  55. /* *********************** Control Definitions ********************** */
  56. /* Define a dialog box */
  57. /* Definitions of the field level widgets */
  58. DEFINE BUTTON Btn_Rechnen
  59. LABEL "Rechnen"
  60. SIZE 12 BY 1.
  61. DEFINE VARIABLE F_BisDatum AS DATE FORMAT "99.99.9999":U
  62. LABEL "--"
  63. VIEW-AS FILL-IN NATIVE
  64. SIZE 16 BY 1
  65. BGCOLOR 15 NO-UNDO.
  66. DEFINE VARIABLE F_BisKnr AS INTEGER FORMAT "999999":U INITIAL 0
  67. LABEL "--"
  68. VIEW-AS FILL-IN NATIVE
  69. SIZE 11 BY 1
  70. BGCOLOR 15 NO-UNDO.
  71. DEFINE VARIABLE F_Kunde AS CHARACTER FORMAT "X(256)":U
  72. VIEW-AS FILL-IN NATIVE
  73. SIZE 85 BY 1
  74. BGCOLOR 15 NO-UNDO.
  75. DEFINE VARIABLE F_VonDatum AS DATE FORMAT "99.99.9999":U
  76. LABEL "von - bis Rechnungsdatum"
  77. VIEW-AS FILL-IN NATIVE
  78. SIZE 16 BY 1
  79. BGCOLOR 15 NO-UNDO.
  80. DEFINE VARIABLE F_VonKnr AS INTEGER FORMAT "999999":U INITIAL 0
  81. LABEL "von - bis Kundennummer"
  82. VIEW-AS FILL-IN NATIVE
  83. SIZE 11 BY 1
  84. BGCOLOR 15 NO-UNDO.
  85. DEFINE RECTANGLE RECT-21
  86. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  87. SIZE 89 BY 6.19.
  88. /* ************************ Frame Definitions *********************** */
  89. DEFINE FRAME gSkontoRechnen
  90. F_VonKnr AT ROW 2 COL 28 COLON-ALIGNED
  91. F_BisKnr AT ROW 2 COL 48 COLON-ALIGNED
  92. F_VonDatum AT ROW 3 COL 28 COLON-ALIGNED
  93. F_BisDatum AT ROW 3 COL 48 COLON-ALIGNED
  94. Btn_Rechnen AT ROW 2 COL 77
  95. F_Kunde AT ROW 5 COL 2 COLON-ALIGNED NO-LABEL NO-TAB-STOP
  96. RECT-21 AT ROW 1.24 COL 2
  97. SPACE(1.59) SKIP(0.32)
  98. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  99. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  100. TITLE "Skontoabrechnung rechnen".
  101. /* *********************** Procedure Settings ************************ */
  102. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  103. /* Settings for THIS-PROCEDURE
  104. Type: SmartDialog
  105. Allow: Basic,Browse,DB-Fields,Query,Smart
  106. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  107. Design Page: 1
  108. Other Settings: COMPILE
  109. */
  110. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  111. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gSkontoRechnen
  112. /* ************************* Included-Libraries *********************** */
  113. {src/adm2/containr.i}
  114. /* _UIB-CODE-BLOCK-END */
  115. &ANALYZE-RESUME
  116. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  117. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  118. /* SETTINGS FOR DIALOG-BOX gSkontoRechnen
  119. Custom */
  120. ASSIGN
  121. FRAME gSkontoRechnen:SCROLLABLE = FALSE
  122. FRAME gSkontoRechnen:HIDDEN = TRUE.
  123. /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME gSkontoRechnen
  124. 6 */
  125. /* SETTINGS FOR FILL-IN F_BisKnr IN FRAME gSkontoRechnen
  126. 6 */
  127. ASSIGN
  128. F_Kunde:READ-ONLY IN FRAME gSkontoRechnen = TRUE.
  129. /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME gSkontoRechnen
  130. 6 */
  131. /* SETTINGS FOR FILL-IN F_VonKnr IN FRAME gSkontoRechnen
  132. 6 */
  133. /* _RUN-TIME-ATTRIBUTES-END */
  134. &ANALYZE-RESUME
  135. /* Setting information for Queries and Browse Widgets fields */
  136. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gSkontoRechnen
  137. /* Query rebuild information for DIALOG-BOX gSkontoRechnen
  138. _Options = "SHARE-LOCK"
  139. _Query is NOT OPENED
  140. */ /* DIALOG-BOX gSkontoRechnen */
  141. &ANALYZE-RESUME
  142. /* ************************ Control Triggers ************************ */
  143. &Scoped-define SELF-NAME gSkontoRechnen
  144. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gSkontoRechnen gSkontoRechnen
  145. ON END-ERROR OF FRAME gSkontoRechnen /* Skontoabrechnung rechnen */
  146. DO:
  147. RUN ENDE.
  148. RETURN NO-APPLY.
  149. END.
  150. /* _UIB-CODE-BLOCK-END */
  151. &ANALYZE-RESUME
  152. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gSkontoRechnen gSkontoRechnen
  153. ON GO OF FRAME gSkontoRechnen /* Skontoabrechnung rechnen */
  154. DO:
  155. /*
  156. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR.
  157. */
  158. END.
  159. /* _UIB-CODE-BLOCK-END */
  160. &ANALYZE-RESUME
  161. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gSkontoRechnen gSkontoRechnen
  162. ON WINDOW-CLOSE OF FRAME gSkontoRechnen /* Skontoabrechnung rechnen */
  163. DO:
  164. RUN ENDE.
  165. RETURN NO-APPLY.
  166. END.
  167. /* _UIB-CODE-BLOCK-END */
  168. &ANALYZE-RESUME
  169. &Scoped-define SELF-NAME Btn_Rechnen
  170. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Rechnen gSkontoRechnen
  171. ON CHOOSE OF Btn_Rechnen IN FRAME gSkontoRechnen /* Rechnen */
  172. DO:
  173. RUN RECHNEN.
  174. END.
  175. /* _UIB-CODE-BLOCK-END */
  176. &ANALYZE-RESUME
  177. &UNDEFINE SELF-NAME
  178. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gSkontoRechnen
  179. /* *************************** Main Block *************************** */
  180. MaxPage = 1.
  181. AktSeite = 1.
  182. SESSION:DATA-ENTRY-RETURN = TRUE.
  183. SUBSCRIBE TO 'TOOLBAR' ANYWHERE.
  184. /* TRIGGERS ------------------------------------------------------ */
  185. ON 'ALT-CURSOR-RIGHT':U OF FRAME {&FRAME-NAME} ANYWHERE
  186. DO:
  187. RUN NEXTPAGE.
  188. END.
  189. ON 'ALT-CURSOR-LEFT':U OF FRAME {&FRAME-NAME} ANYWHERE
  190. DO:
  191. RUN PREVPAGE.
  192. END.
  193. ON 'U1':U OF {&WINDOW-NAME} ANYWHERE
  194. DO:
  195. RUN ENTRY_CURSOR.
  196. END.
  197. /*
  198. ON 'PAGE-DOWN':U OF {&WINDOW-NAME} ANYWHERE
  199. DO:
  200. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Next':U ).
  201. END.
  202. ON 'PAGE-UP':U OF {&WINDOW-NAME} ANYWHERE
  203. DO:
  204. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Prev':U ).
  205. END.
  206. ON 'ALT-RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE
  207. DO:
  208. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'UPDATE':U ).
  209. END.
  210. ON 'ALT-INS':U OF FRAME {&FRAME-NAME} ANYWHERE
  211. DO:
  212. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'ADD':U ).
  213. END.
  214. ON 'ALT-DEL':U OF FRAME {&FRAME-NAME} ANYWHERE
  215. DO:
  216. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'DELETE':U ).
  217. END.
  218. ON 'ALT-R':U OF FRAME {&FRAME-NAME} ANYWHERE
  219. DO:
  220. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'RESET':U ).
  221. END.
  222. ON 'F9':U OF FRAME {&FRAME-NAME} ANYWHERE
  223. DO:
  224. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ).
  225. END.
  226. ON 'ALT-S':U OF FRAME {&FRAME-NAME} ANYWHERE
  227. DO:
  228. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ).
  229. END.
  230. ON 'ALT-K':U OF FRAME {&FRAME-NAME} ANYWHERE
  231. DO:
  232. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'COPY':U ).
  233. END.
  234. ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE
  235. DO:
  236. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  237. IF FMutFlag = FALSE THEN DO:
  238. RUN ENDE.
  239. RETURN NO-APPLY.
  240. END.
  241. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'CANCEL':U ).
  242. RETURN NO-APPLY.
  243. END.
  244. */
  245. /* ------------------------------------------------------------------ */
  246. {src/adm2/dialogmn.i}
  247. /* _UIB-CODE-BLOCK-END */
  248. &ANALYZE-RESUME
  249. /* ********************** Internal Procedures *********************** */
  250. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gSkontoRechnen _ADM-CREATE-OBJECTS
  251. PROCEDURE adm-create-objects :
  252. /*------------------------------------------------------------------------------
  253. Purpose: Create handles for all SmartObjects used in this procedure.
  254. After SmartObjects are initialized, then SmartLinks are added.
  255. Parameters: <none>
  256. ------------------------------------------------------------------------------*/
  257. END PROCEDURE.
  258. /* _UIB-CODE-BLOCK-END */
  259. &ANALYZE-RESUME
  260. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage gSkontoRechnen
  261. PROCEDURE changePage :
  262. /*------------------------------------------------------------------------------
  263. Purpose: Super Override
  264. Parameters:
  265. Notes:
  266. ------------------------------------------------------------------------------*/
  267. /* Code placed here will execute PRIOR to standard behavior. */
  268. RUN SUPER.
  269. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  270. CASE AktSeite:
  271. WHEN 1 THEN DO:
  272. /* RUN addLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */
  273. /* RUN addLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */
  274. /* RUN ToolbarInit ( INPUT h_d-auftr ). */
  275. RUN ENTRY_CURSOR.
  276. END.
  277. WHEN 2 THEN DO:
  278. RUN ENTRY_CURSOR.
  279. END.
  280. END CASE.
  281. END PROCEDURE.
  282. /* _UIB-CODE-BLOCK-END */
  283. &ANALYZE-RESUME
  284. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gSkontoRechnen _DEFAULT-DISABLE
  285. PROCEDURE disable_UI :
  286. /*------------------------------------------------------------------------------
  287. Purpose: DISABLE the User Interface
  288. Parameters: <none>
  289. Notes: Here we clean-up the user-interface by deleting
  290. dynamic widgets we have created and/or hide
  291. frames. This procedure is usually called when
  292. we are ready to "clean-up" after running.
  293. ------------------------------------------------------------------------------*/
  294. /* Hide all frames. */
  295. HIDE FRAME gSkontoRechnen.
  296. END PROCEDURE.
  297. /* _UIB-CODE-BLOCK-END */
  298. &ANALYZE-RESUME
  299. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gSkontoRechnen
  300. PROCEDURE enableObject :
  301. /*------------------------------------------------------------------------------
  302. Purpose: Super Override
  303. Parameters:
  304. Notes:
  305. ------------------------------------------------------------------------------*/
  306. /* Code placed here will execute PRIOR to standard behavior. */
  307. RUN SUPER.
  308. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR.
  309. END PROCEDURE.
  310. /* _UIB-CODE-BLOCK-END */
  311. &ANALYZE-RESUME
  312. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gSkontoRechnen _DEFAULT-ENABLE
  313. PROCEDURE enable_UI :
  314. /*------------------------------------------------------------------------------
  315. Purpose: ENABLE the User Interface
  316. Parameters: <none>
  317. Notes: Here we display/view/enable the widgets in the
  318. user-interface. In addition, OPEN all queries
  319. associated with each FRAME and BROWSE.
  320. These statements here are based on the "Other
  321. Settings" section of the widget Property Sheets.
  322. ------------------------------------------------------------------------------*/
  323. DISPLAY F_VonKnr F_BisKnr F_VonDatum F_BisDatum F_Kunde
  324. WITH FRAME gSkontoRechnen.
  325. ENABLE F_VonKnr F_BisKnr F_VonDatum F_BisDatum Btn_Rechnen F_Kunde RECT-21
  326. WITH FRAME gSkontoRechnen.
  327. VIEW FRAME gSkontoRechnen.
  328. {&OPEN-BROWSERS-IN-QUERY-gSkontoRechnen}
  329. END PROCEDURE.
  330. /* _UIB-CODE-BLOCK-END */
  331. &ANALYZE-RESUME
  332. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gSkontoRechnen
  333. PROCEDURE ENDE :
  334. /*------------------------------------------------------------------------------
  335. Purpose:
  336. Parameters: <none>
  337. Notes:
  338. ------------------------------------------------------------------------------*/
  339. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  340. IF AktSeite > 1 THEN DO:
  341. RUN selectPage ( INPUT 1 ).
  342. RETURN NO-APPLY.
  343. END.
  344. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  345. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  346. RETURN NO-APPLY.
  347. END PROCEDURE.
  348. /* _UIB-CODE-BLOCK-END */
  349. &ANALYZE-RESUME
  350. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR gSkontoRechnen
  351. PROCEDURE ENTRY_CURSOR :
  352. /*------------------------------------------------------------------------------
  353. Purpose:
  354. Parameters: <none>
  355. Notes:
  356. ------------------------------------------------------------------------------*/
  357. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  358. CASE AktSeite:
  359. /* WHEN 1 THEN RUN applyEntry IN h_v-adresse ( INPUT ? ). */
  360. /* WHEN 2 THEN RUN applyEntry IN h_f-adrkomm ( INPUT ? ). */
  361. /* WHEN 3 THEN RUN applyEntry IN h_b-auftbb ( INPUT ? ). */
  362. /* WHEN 4 THEN RUN applyEntry IN h_b-aufdet ( INPUT ? ). */
  363. /* WHEN 5 THEN RUN applyEntry IN h_b-aufstreu ( INPUT ? ). */
  364. /* WHEN 6 THEN RUN applyEntry IN h_b-auffak ( INPUT ? ). */
  365. /* WHEN 7 THEN RUN applyEntry IN h_b-position ( INPUT ? ). */
  366. END CASE.
  367. RETURN NO-APPLY.
  368. END PROCEDURE.
  369. /* _UIB-CODE-BLOCK-END */
  370. &ANALYZE-RESUME
  371. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gSkontoRechnen
  372. PROCEDURE exitObject :
  373. /*------------------------------------------------------------------------------
  374. Purpose: Super Override
  375. Parameters:
  376. Notes:
  377. ------------------------------------------------------------------------------*/
  378. RUN ENDE.
  379. RETURN NO-APPLY.
  380. END PROCEDURE.
  381. /* _UIB-CODE-BLOCK-END */
  382. &ANALYZE-RESUME
  383. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXTPAGE gSkontoRechnen
  384. PROCEDURE NEXTPAGE :
  385. /*------------------------------------------------------------------------------
  386. Purpose:
  387. Parameters: <none>
  388. Notes:
  389. ------------------------------------------------------------------------------*/
  390. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  391. IF AktSeite = MaxPage THEN AktSeite = 1.
  392. ELSE AktSeite = AktSeite + 1.
  393. RUN selectPage ( INPUT AktSeite ).
  394. END PROCEDURE.
  395. /* _UIB-CODE-BLOCK-END */
  396. &ANALYZE-RESUME
  397. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PREVPAGE gSkontoRechnen
  398. PROCEDURE PREVPAGE :
  399. /*------------------------------------------------------------------------------
  400. Purpose:
  401. Parameters: <none>
  402. Notes:
  403. ------------------------------------------------------------------------------*/
  404. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  405. IF AktSeite = 1 THEN AktSeite = MaxPage.
  406. ELSE AktSeite = AktSeite - 1.
  407. RUN selectPage ( INPUT AktSeite ).
  408. END PROCEDURE.
  409. /* _UIB-CODE-BLOCK-END */
  410. &ANALYZE-RESUME
  411. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RECHNEN gSkontoRechnen
  412. PROCEDURE RECHNEN :
  413. /*------------------------------------------------------------------------------
  414. Purpose:
  415. Parameters: <none>
  416. Notes:
  417. ------------------------------------------------------------------------------*/
  418. DEF VAR FwSprcd AS INT NO-UNDO.
  419. DEF VAR Rundbetr AS DEC DECIMALS 4 NO-UNDO.
  420. DEF VAR VBrutto AS DEC DECIMALS 4 NO-UNDO.
  421. DEF VAR VNetto AS DEC DECIMALS 4 NO-UNDO.
  422. DEF VAR VMwst AS DEC DECIMALS 4 NO-UNDO.
  423. DEF VAR VProz AS DEC DECIMALS 4 NO-UNDO.
  424. DEF VAR VSkonto AS DEC DECIMALS 4 NO-UNDO.
  425. DEF VAR TSkonto AS DEC DECIMALS 4 EXTENT 10 NO-UNDO.
  426. DEF VAR PSkonto AS DEC DECIMALS 4 EXTENT 10 NO-UNDO.
  427. DEF VAR MaxMWST AS INT NO-UNDO.
  428. DEF VAR VTage AS INT NO-UNDO.
  429. DEF VAR Berechtigt AS LOG NO-UNDO.
  430. DEF VAR Inklusive AS LOG NO-UNDO.
  431. DEF VAR VWuCd AS INT NO-UNDO.
  432. DEF VAR VArt AS INT NO-UNDO.
  433. DEF VAR VWert AS DEC DECIMALS 4 NO-UNDO.
  434. DEF VAR VDatum AS DATE FORMAT "99.99.9999" NO-UNDO.
  435. DEF VAR i1 AS INT NO-UNDO.
  436. DO WITH FRAME {&FRAME-NAME}:
  437. ASSIGN {&List-6}.
  438. IF F_VonKnr = 0 AND
  439. F_BisKnr = 0 THEN F_BisKnr = 999999.
  440. IF F_VonKnr > F_BisKnr THEN F_BisKnr = F_VonKnr.
  441. IF F_VonDatum = ? THEN F_VonDatum = 01/01/0001.
  442. IF F_BisDatum = ? THEN DO:
  443. F_BisDatum = TODAY.
  444. DO WHILE TRUE.
  445. IF MONTH(F_BisDatum + 1) <> MONTH(F_BisDatum) THEN LEAVE.
  446. F_BisDatum = F_BisDatum - 1.
  447. END.
  448. END.
  449. DISPLAY {&List-6}.
  450. DISABLE Btn_Rechnen.
  451. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  452. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
  453. FwSprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U) NO-ERROR.
  454. F_Kunde = 'Löschen der nicht verbuchten Skonti'.
  455. DISPLAY F_Kunde.
  456. FOR EACH SkontoAb USE-INDEX SkontoAb-k1
  457. WHERE SkontoAb.Firma = Firma
  458. AND SkontoAb.Sko_Sta = 0
  459. AND SkontoAb.Knr >= F_VonKnr
  460. AND SkontoAb.Knr <= F_BisKnr :
  461. DELETE SkontoAb.
  462. END.
  463. F_Kunde = 'Aufbereiten der Rechnungen'.
  464. DISPLAY F_Kunde.
  465. VWucd = -1.
  466. FOR EACH TSko:
  467. DELETE TSko.
  468. END.
  469. FOR EACH Savko USE-INDEX Savko-k6
  470. WHERE Savko.Firma = Firma
  471. AND Savko.Knr >= F_VonKnr
  472. AND Savko.Knr <= F_BisKnr
  473. AND Savko.Fak_Datum >= F_VonDatum
  474. AND Savko.Fak_Datum <= F_BisDatum NO-LOCK,
  475. EACH Savze USE-INDEX Savze-k1
  476. WHERE Savze.Firma = Savko.Firma
  477. AND Savze.Aufnr = Savko.Aufnr
  478. AND Savze.Artnr <> 0
  479. AND Savze.Trnr <> 0
  480. AND Savze.MWST% = 0 :
  481. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  482. WHERE MWSTAns.MWST_Cd = Savze.WuCd
  483. AND MWSTAns.Datum <= Savko.Fak_Datum NO-LOCK.
  484. Savze.MWST% = MWSTAns.Ansatz.
  485. END.
  486. FOR EACH Savko USE-INDEX Savko-k6
  487. WHERE Savko.Firma = Firma
  488. AND Savko.Knr >= F_VonKnr
  489. AND Savko.Knr <= F_BisKnr
  490. AND Savko.Fak_Datum >= F_VonDatum
  491. AND Savko.Fak_Datum <= F_BisDatum NO-LOCK,
  492. EACH Savze USE-INDEX Savze-k1
  493. WHERE Savze.Firma = Savko.Firma
  494. AND Savze.Aufnr = Savko.Aufnr
  495. AND Savze.Artnr <> 0
  496. AND Savze.Trnr <> 0 NO-LOCK
  497. BREAK BY Savko.Firma
  498. BY Savko.Fak_Knr
  499. BY Savko.Faknr
  500. BY Savze.MWST%
  501. BY Savze.MWST_Inkl :
  502. IF FIRST-OF ( Savko.Fak_Knr ) THEN DO:
  503. FIND Adresse USE-INDEX Adresse-k1
  504. WHERE Adresse.Firma = AdFirma
  505. AND Adresse.Knr = Savko.Fak_Knr NO-LOCK NO-ERROR.
  506. F_Kunde = STRING(Savko.Fak_Knr,"999999 / ") + Adresse.Anzeig_Br.
  507. DISPLAY F_Kunde WITH FRAME {&FRAME-NAME}.
  508. END.
  509. IF FIRST-OF ( Savko.Faknr ) THEN DO:
  510. FIND Kondi USE-INDEX Kondi-k1
  511. WHERE Kondi.Sprcd = FwSprcd
  512. AND Kondi.Kond = Savko.Kond NO-LOCK NO-ERROR.
  513. IF Kondi.Skonto[01] = 0 THEN Berechtigt = FALSE.
  514. ELSE Berechtigt = TRUE.
  515. VTage = Kondi.Tage[01].
  516. VProz = Kondi.Skonto[01].
  517. END.
  518. DO WHILE FIRST-OF ( Savze.MWST_Inkl ):
  519. VBrutto = 0.
  520. VNetto = 0.
  521. LEAVE.
  522. END.
  523. DO WHILE Berechtigt:
  524. IF Savze.Sk_Ber THEN DO:
  525. VBrutto = VBrutto + Savze.Net_Betr
  526. - Savze.Auf_Rab
  527. - Savze.Abh_Rab
  528. - Savze.Auf_Sp_Rab.
  529. END.
  530. IF NOT LAST-OF ( Savze.MWST_Inkl ) THEN LEAVE.
  531. IF VBrutto = 0 THEN LEAVE.
  532. IF Savze.MWST_Inkl THEN VNetto = VBrutto * 100 / (100 + Savze.MWST%).
  533. ELSE VNetto = VBrutto.
  534. FIND TSko USE-INDEX SkontoAb-k1
  535. WHERE TSko.Firma = Savko.Firma
  536. AND TSko.Sko_Sta = 0
  537. AND TSko.Knr = Savko.Fak_Knr
  538. AND TSko.VonDatum = F_VonDatum
  539. AND TSko.Faknr = Savko.Faknr
  540. AND TSko.MWST-% = Savze.MWST% NO-ERROR.
  541. IF NOT AVAILABLE TSko THEN DO:
  542. CREATE TSko.
  543. ASSIGN TSko.Firma = Savko.Firma
  544. TSko.Sko_Sta = 0
  545. TSko.Knr = Savko.Fak_Knr
  546. TSko.VonDatum = F_VonDatum
  547. TSko.Faknr = Savko.Faknr
  548. TSko.Fak_Datum = Savko.Fak_Datum
  549. TSko.MWST-% = Savze.MWST%
  550. TSko.Netto = VNetto
  551. TSko.BisDatum = F_BisDatum
  552. TSko.Sko_Datum = TSko.Fak_Datum + VTage
  553. TSko.Sko_Proz = VProz.
  554. END.
  555. ELSE DO:
  556. ASSIGN TSko.Netto = TSko.Netto + VNetto.
  557. END.
  558. TSko.MWST_Betrag = TSko.Netto * Savze.MWST% / 100.
  559. TSko.Brutto = TSko.Netto + TSko.MWST_Betrag.
  560. TSko.Sko_Betr = TSko.Brutto * VProz / 100.
  561. LEAVE.
  562. END.
  563. IF NOT LAST-OF ( Savko.Fak_Knr ) THEN NEXT.
  564. FOR EACH TSko USE-INDEX SkontoAb-k1
  565. BREAK BY TSko.Firma
  566. BY TSko.Sko_Sta
  567. BY TSko.Knr
  568. BY TSko.Faknr
  569. BY TSko.MWST-% :
  570. IF FIRST-OF ( TSko.Faknr ) THEN DO:
  571. VDatum = ?.
  572. VSkonto = 0.
  573. TSkonto = 0.
  574. PSkonto = 0.
  575. MaxMWST = 0.
  576. VBrutto = 0.
  577. FOR EACH Debhi USE-INDEX Debhi-k3
  578. WHERE Debhi.Firma = TSko.Firma
  579. AND Debhi.Knr = TSko.Knr
  580. AND Debhi.Faknr = TSko.Faknr
  581. AND Debhi.Soll = 0 NO-LOCK:
  582. IF VDatum = ? THEN VDatum = Debhi.Datum.
  583. IF Debhi.Datum > VDatum THEN VDatum = Debhi.Datum.
  584. VSkonto = VSkonto + Debhi.Skonto.
  585. END.
  586. END.
  587. MaxMWST = MaxMWST + 1.
  588. PSkonto[MaxMWST] = TSko.MWST-%.
  589. TSkonto[MaxMWST] = TSko.Netto + TSko.MWST_Betrag.
  590. VBrutto = VBrutto + TSko.Brutto.
  591. TSko.Zah_Datum = VDatum.
  592. IF VDatum = ? THEN DO:
  593. TSko.Anz_Tage = TODAY - TSko.Sko_Datum.
  594. END.
  595. ELSE DO:
  596. TSko.Anz_Tage = TSko.Zah_Datum - TSko.Sko_Datum.
  597. END.
  598. IF TSko.Anz_Tage <= 0 THEN TSko.Berechtigt = TRUE.
  599. ELSE TSko.Berechtigt = FALSE.
  600. IF NOT LAST-OF ( TSko.Faknr ) THEN NEXT.
  601. VNetto = VSkonto.
  602. i1 = 0.
  603. FOR EACH BSko USE-INDEX SkontoAb-k1
  604. WHERE BSko.Firma = TSko.Firma
  605. AND BSko.Sko_Sta = TSko.Sko_Sta
  606. AND BSko.Knr = TSko.Knr
  607. AND BSko.Faknr = TSko.Faknr :
  608. i1 = i1 + 1.
  609. IF i1 = MaxMWST THEN BSko.Sko_Abzug = VNetto.
  610. ELSE DO:
  611. Rundbetr = TSkonto[i1] * 100 / VBrutto.
  612. Rundbetr = VSkonto * Rundbetr / 100.
  613. VNetto = VNetto - Rundbetr.
  614. BSko.Sko_Abzug = Rundbetr.
  615. END.
  616. END.
  617. IF NOT LAST-OF ( TSko.Knr ) THEN NEXT.
  618. FOR EACH BSko USE-INDEX SkontoAb-k1
  619. WHERE BSko.Firma = TSko.Firma
  620. AND BSko.Sko_Sta = TSko.Sko_Sta
  621. AND BSko.Knr = TSko.Knr :
  622. CREATE SkontoAb.
  623. BUFFER-COPY BSko TO SkontoAb.
  624. DELETE BSko.
  625. END.
  626. END.
  627. END.
  628. END.
  629. RUN ENDE.
  630. END PROCEDURE.
  631. /* _UIB-CODE-BLOCK-END */
  632. &ANALYZE-RESUME
  633. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage gSkontoRechnen
  634. PROCEDURE selectPage :
  635. /*------------------------------------------------------------------------------
  636. Purpose: Super Override
  637. Parameters:
  638. Notes:
  639. ------------------------------------------------------------------------------*/
  640. DEF INPUT PARAMETER piPageNum AS INT NO-UNDO.
  641. DEF VAR FMutFlag AS LOG NO-UNDO.
  642. DEF VAR MutProg AS CHAR NO-UNDO.
  643. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  644. DO WHILE TRUE:
  645. IF NOT FMutFlag THEN LEAVE.
  646. MutProg = DYNAMIC-FUNCTION('GETMUTPROG':U).
  647. IF MutProg <> THIS-PROCEDURE:FILE-NAME THEN LEAVE.
  648. RETURN NO-APPLY.
  649. END.
  650. CASE piPageNum:
  651. END CASE.
  652. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  653. CASE AktSeite:
  654. WHEN 1 THEN DO:
  655. /* RUN removeLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */
  656. /* RUN removeLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */
  657. END.
  658. END CASE.
  659. RUN SUPER( INPUT piPageNum).
  660. END PROCEDURE.
  661. /* _UIB-CODE-BLOCK-END */
  662. &ANALYZE-RESUME
  663. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR gSkontoRechnen
  664. PROCEDURE TOOLBAR :
  665. /*------------------------------------------------------------------------------
  666. Purpose:
  667. Parameters: <none>
  668. Notes:
  669. ------------------------------------------------------------------------------*/
  670. DEF INPUT PARAMETER pcAction AS CHAR NO-UNDO.
  671. /*
  672. RUN TOOLBAR IN h_dyntoolbar ( INPUT pcAction ).
  673. */
  674. END PROCEDURE.
  675. /* _UIB-CODE-BLOCK-END */
  676. &ANALYZE-RESUME