g-herstrueck.w 46 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v9r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME gRueckverguetung
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gRueckverguetung
  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 ProgName AS CHAR NO-UNDO.
  31. DEF VAR Firma AS CHAR NO-UNDO.
  32. DEF VAR AdFirma AS CHAR NO-UNDO.
  33. DEF VAR iHerst AS INT NO-UNDO.
  34. DEF VAR iMWSTCd AS INT NO-UNDO.
  35. DEF VAR iAdrCd AS INT NO-UNDO.
  36. DEF TEMP-TABLE TWork FIELD Artnr AS INT
  37. FIELD Inhalt AS INT
  38. FIELD Jahr AS INT
  39. FIELD Eingang AS DEC DECIMALS 4
  40. FIELD EP AS DEC DECIMALS 4
  41. FIELD Ausgang AS DEC DECIMALS 4
  42. FIELD VP AS DEC DECIMALS 4
  43. FIELD RID AS RECID
  44. FIELD Art AS LOG
  45. FIELD Wert AS DEC DECIMALS 4
  46. FIELD MWST_Cd AS INT
  47. FIELD Preis_Grp AS INT.
  48. DEF TEMP-TABLE TKunden FIELD Knr AS INT
  49. FIELD Artnr AS INT
  50. FIELD Inhalt AS INT
  51. FIELD Jahr AS INT
  52. FIELD Eingang AS DEC DECIMALS 4
  53. FIELD EP AS DEC DECIMALS 4
  54. FIELD Ausgang AS DEC DECIMALS 4
  55. FIELD VP AS DEC DECIMALS 4
  56. FIELD RID AS RECID
  57. FIELD Art AS LOG
  58. FIELD Wert AS DEC DECIMALS 4
  59. FIELD MWST_Cd AS INT
  60. INDEX TKunden-k1 Knr Artnr Inhalt Jahr.
  61. DEF TEMP-TABLE TMWST FIELD MWST_Cd AS INT
  62. FIELD MWST_Ansatz AS DEC
  63. FIELD Netto AS DEC.
  64. /* _UIB-CODE-BLOCK-END */
  65. &ANALYZE-RESUME
  66. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  67. /* ******************** Preprocessor Definitions ******************** */
  68. &Scoped-define PROCEDURE-TYPE SmartDialog
  69. &Scoped-define DB-AWARE no
  70. &Scoped-define ADM-CONTAINER DIALOG-BOX
  71. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  72. /* Name of first Frame and/or Browse and/or first Query */
  73. &Scoped-define FRAME-NAME gRueckverguetung
  74. /* Standard List Definitions */
  75. &Scoped-Define ENABLED-OBJECTS CB_Hersteller F_Warengrp F_Knr F_Preisgrp ~
  76. CB_AdrCode F_Inhalt F_VonDatum F_BisDatum CB_MWST Btn_Start Btn_Abbrechen ~
  77. RECT-21 RECT-22 RECT-23
  78. &Scoped-Define DISPLAYED-OBJECTS CB_Hersteller F_Warengrp F_Knr F_Preisgrp ~
  79. CB_AdrCode F_Inhalt F_VonDatum F_BisDatum CB_MWST
  80. /* Custom List Definitions */
  81. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  82. &Scoped-define List-1 CB_Hersteller F_Warengrp F_Knr F_Preisgrp CB_AdrCode ~
  83. F_Inhalt F_VonDatum F_BisDatum CB_MWST Btn_Start Btn_Abbrechen
  84. &Scoped-define List-6 CB_Hersteller F_Warengrp F_Knr F_Preisgrp CB_AdrCode ~
  85. F_Inhalt F_VonDatum F_BisDatum CB_MWST
  86. /* _UIB-PREPROCESSOR-BLOCK-END */
  87. &ANALYZE-RESUME
  88. /* *********************** Control Definitions ********************** */
  89. /* Define a dialog box */
  90. /* Definitions of the field level widgets */
  91. DEFINE BUTTON Btn_Abbrechen
  92. LABEL "&Abbrechen"
  93. SIZE 15 BY 1.
  94. DEFINE BUTTON Btn_Start
  95. IMAGE-UP FILE "grafik/results%.ico":U
  96. LABEL "&Starten"
  97. SIZE 7 BY 1.67.
  98. DEFINE VARIABLE CB_AdrCode AS CHARACTER FORMAT "X(256)":U
  99. LABEL "Adresscode"
  100. VIEW-AS COMBO-BOX INNER-LINES 5
  101. LIST-ITEM-PAIRS "Item 1","Item 1"
  102. DROP-DOWN-LIST
  103. SIZE 15 BY 1
  104. BGCOLOR 15 NO-UNDO.
  105. DEFINE VARIABLE CB_Hersteller AS CHARACTER FORMAT "X(256)":U
  106. LABEL "Hersteller"
  107. VIEW-AS COMBO-BOX SORT INNER-LINES 5
  108. DROP-DOWN-LIST
  109. SIZE 40 BY 1
  110. BGCOLOR 15 NO-UNDO.
  111. DEFINE VARIABLE CB_MWST AS CHARACTER FORMAT "X(256)":U
  112. LABEL "Mehrwertsteuer Hersteller"
  113. VIEW-AS COMBO-BOX INNER-LINES 5
  114. LIST-ITEM-PAIRS "Item 1","Item 1"
  115. DROP-DOWN-LIST
  116. SIZE 40 BY 1
  117. BGCOLOR 15 NO-UNDO.
  118. DEFINE VARIABLE F_BisDatum AS DATE FORMAT "99.99.9999":U
  119. VIEW-AS FILL-IN NATIVE
  120. SIZE 16 BY 1
  121. BGCOLOR 15 NO-UNDO.
  122. DEFINE VARIABLE F_Inhalt AS CHARACTER FORMAT "X(256)":U
  123. LABEL "/"
  124. VIEW-AS FILL-IN NATIVE
  125. SIZE 20 BY 1 TOOLTIP "Inhalt dieses Adresscodefeldes"
  126. BGCOLOR 15 NO-UNDO.
  127. DEFINE VARIABLE F_Knr AS CHARACTER FORMAT "X(256)":U
  128. LABEL "Kunden"
  129. VIEW-AS FILL-IN NATIVE
  130. SIZE 40 BY 1 TOOLTIP "mit rechter Maustaste zur Auswahl, Leer = alle; ALT-L -> Liste"
  131. BGCOLOR 15 NO-UNDO.
  132. DEFINE VARIABLE F_Preisgrp AS CHARACTER FORMAT "X(256)":U
  133. LABEL "Preisgruppen"
  134. VIEW-AS FILL-IN NATIVE
  135. SIZE 40 BY 1 TOOLTIP "mit rechter Maustaste zur Auswahl, Leer = alle"
  136. BGCOLOR 15 NO-UNDO.
  137. DEFINE VARIABLE F_VonDatum AS DATE FORMAT "99.99.9999":U
  138. LABEL "von - bis Datum"
  139. VIEW-AS FILL-IN NATIVE
  140. SIZE 16 BY 1
  141. BGCOLOR 15 NO-UNDO.
  142. DEFINE VARIABLE F_Warengrp AS CHARACTER FORMAT "X(256)":U
  143. LABEL "Warengruppen"
  144. VIEW-AS FILL-IN NATIVE
  145. SIZE 40 BY 1 TOOLTIP "mit rechter Maustaste zur Auswahl, Leer = alle"
  146. BGCOLOR 15 NO-UNDO.
  147. DEFINE RECTANGLE RECT-21
  148. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  149. SIZE 88 BY 3.33.
  150. DEFINE RECTANGLE RECT-22
  151. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  152. SIZE 88 BY 4.29.
  153. DEFINE RECTANGLE RECT-23
  154. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  155. SIZE 88 BY 5.71.
  156. /* ************************ Frame Definitions *********************** */
  157. DEFINE FRAME gRueckverguetung
  158. CB_Hersteller AT ROW 1.95 COL 42 COLON-ALIGNED
  159. F_Warengrp AT ROW 2.95 COL 42 COLON-ALIGNED
  160. F_Knr AT ROW 5.95 COL 42 COLON-ALIGNED
  161. F_Preisgrp AT ROW 6.95 COL 42 COLON-ALIGNED
  162. CB_AdrCode AT ROW 7.95 COL 42 COLON-ALIGNED
  163. F_Inhalt AT ROW 7.95 COL 62 COLON-ALIGNED
  164. F_VonDatum AT ROW 10.48 COL 42 COLON-ALIGNED
  165. F_BisDatum AT ROW 10.48 COL 66 COLON-ALIGNED NO-LABEL
  166. CB_MWST AT ROW 11.52 COL 42 COLON-ALIGNED
  167. Btn_Start AT ROW 13.38 COL 44
  168. Btn_Abbrechen AT ROW 13.71 COL 68.2
  169. RECT-21 AT ROW 1.48 COL 3
  170. RECT-22 AT ROW 5.29 COL 3
  171. RECT-23 AT ROW 10 COL 3
  172. "Artikelselektion" VIEW-AS TEXT
  173. SIZE 21.2 BY 1 AT ROW 1.95 COL 5.2
  174. "Kundenselektion" VIEW-AS TEXT
  175. SIZE 21.2 BY 1 AT ROW 5.95 COL 5.2
  176. SPACE(66.59) SKIP(9.28)
  177. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  178. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  179. TITLE "Rückvergütung durch Hersteller".
  180. /* *********************** Procedure Settings ************************ */
  181. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  182. /* Settings for THIS-PROCEDURE
  183. Type: SmartDialog
  184. Allow: Basic,Browse,DB-Fields,Query,Smart
  185. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  186. Design Page: 1
  187. Other Settings: COMPILE
  188. */
  189. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  190. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gRueckverguetung
  191. /* ************************* Included-Libraries *********************** */
  192. {src/adm2/containr.i}
  193. /* _UIB-CODE-BLOCK-END */
  194. &ANALYZE-RESUME
  195. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  196. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  197. /* SETTINGS FOR DIALOG-BOX gRueckverguetung
  198. */
  199. ASSIGN
  200. FRAME gRueckverguetung:SCROLLABLE = FALSE
  201. FRAME gRueckverguetung:HIDDEN = TRUE.
  202. /* SETTINGS FOR BUTTON Btn_Abbrechen IN FRAME gRueckverguetung
  203. 1 */
  204. /* SETTINGS FOR BUTTON Btn_Start IN FRAME gRueckverguetung
  205. 1 */
  206. /* SETTINGS FOR COMBO-BOX CB_AdrCode IN FRAME gRueckverguetung
  207. 1 6 */
  208. /* SETTINGS FOR COMBO-BOX CB_Hersteller IN FRAME gRueckverguetung
  209. 1 6 */
  210. /* SETTINGS FOR COMBO-BOX CB_MWST IN FRAME gRueckverguetung
  211. 1 6 */
  212. /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME gRueckverguetung
  213. 1 6 */
  214. /* SETTINGS FOR FILL-IN F_Inhalt IN FRAME gRueckverguetung
  215. 1 6 */
  216. /* SETTINGS FOR FILL-IN F_Knr IN FRAME gRueckverguetung
  217. 1 6 */
  218. /* SETTINGS FOR FILL-IN F_Preisgrp IN FRAME gRueckverguetung
  219. 1 6 */
  220. /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME gRueckverguetung
  221. 1 6 */
  222. /* SETTINGS FOR FILL-IN F_Warengrp IN FRAME gRueckverguetung
  223. 1 6 */
  224. /* _RUN-TIME-ATTRIBUTES-END */
  225. &ANALYZE-RESUME
  226. /* Setting information for Queries and Browse Widgets fields */
  227. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gRueckverguetung
  228. /* Query rebuild information for DIALOG-BOX gRueckverguetung
  229. _Options = "SHARE-LOCK"
  230. _Query is NOT OPENED
  231. */ /* DIALOG-BOX gRueckverguetung */
  232. &ANALYZE-RESUME
  233. /* ************************ Control Triggers ************************ */
  234. &Scoped-define SELF-NAME gRueckverguetung
  235. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gRueckverguetung gRueckverguetung
  236. ON END-ERROR OF FRAME gRueckverguetung /* Rückvergütung durch Hersteller */
  237. DO:
  238. RUN ENDE.
  239. RETURN NO-APPLY.
  240. END.
  241. /* _UIB-CODE-BLOCK-END */
  242. &ANALYZE-RESUME
  243. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gRueckverguetung gRueckverguetung
  244. ON GO OF FRAME gRueckverguetung /* Rückvergütung durch Hersteller */
  245. DO:
  246. /*
  247. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR.
  248. */
  249. END.
  250. /* _UIB-CODE-BLOCK-END */
  251. &ANALYZE-RESUME
  252. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gRueckverguetung gRueckverguetung
  253. ON WINDOW-CLOSE OF FRAME gRueckverguetung /* Rückvergütung durch Hersteller */
  254. DO:
  255. RUN ENDE.
  256. RETURN NO-APPLY.
  257. END.
  258. /* _UIB-CODE-BLOCK-END */
  259. &ANALYZE-RESUME
  260. &Scoped-define SELF-NAME Btn_Abbrechen
  261. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Abbrechen gRueckverguetung
  262. ON CHOOSE OF Btn_Abbrechen IN FRAME gRueckverguetung /* Abbrechen */
  263. DO:
  264. RUN ENDE.
  265. RETURN NO-APPLY.
  266. END.
  267. /* _UIB-CODE-BLOCK-END */
  268. &ANALYZE-RESUME
  269. &Scoped-define SELF-NAME Btn_Start
  270. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Start gRueckverguetung
  271. ON CHOOSE OF Btn_Start IN FRAME gRueckverguetung /* Starten */
  272. DO:
  273. DEF VAR i AS INT NO-UNDO.
  274. DO WITH FRAME {&FRAME-NAME}:
  275. RUN BEREINIGEN ( F_Warengrp:HANDLE ).
  276. RUN BEREINIGEN ( F_Preisgrp:HANDLE ).
  277. ASSIGN {&List-6}.
  278. IF F_VonDatum = ? THEN DO:
  279. BELL.
  280. APPLY 'ENTRY' TO F_VonDatum.
  281. RETURN NO-APPLY.
  282. END.
  283. IF F_BisDatum = ? THEN DO:
  284. BELL.
  285. APPLY 'ENTRY' TO F_BisDatum.
  286. RETURN NO-APPLY.
  287. END.
  288. IF F_BisDatum < F_VonDatum THEN DO:
  289. BELL.
  290. APPLY 'ENTRY' TO F_VonDatum.
  291. RETURN NO-APPLY.
  292. END.
  293. F_Knr = REPLACE(F_Knr, ';', ',').
  294. DO i = 1 TO NUM-ENTRIES(F_Knr, ','):
  295. ENTRY(i, F_Knr, ',') = TRIM(STRING(INTEGER(ENTRY(i, F_Knr, ',')))).
  296. END.
  297. iHerst = INTEGER(CB_Hersteller:SCREEN-VALUE).
  298. iMWSTCd = INTEGER(CB_MWST :SCREEN-VALUE).
  299. iAdrCd = INTEGER(CB_AdrCode :SCREEN-VALUE).
  300. DISPLAY {&List-6}.
  301. RUN SCHREIBENFWAUSWERTUNGEN
  302. ( INPUT ProgName,
  303. INPUT FRAME {&FRAME-NAME}:CURRENT-ITERATION ) NO-ERROR.
  304. Btn_Start :SENSITIVE = FALSE.
  305. Btn_Abbrechen:SENSITIVE = FALSE.
  306. SESSION:SET-WAIT-STATE('GENERAL').
  307. RUN REPORT.
  308. SESSION:SET-WAIT-STATE('').
  309. Btn_Start :SENSITIVE = TRUE.
  310. Btn_Abbrechen:SENSITIVE = TRUE.
  311. RUN ENDE.
  312. RETURN NO-APPLY.
  313. END.
  314. /*
  315. DO WITH FRAME {&FRAME-NAME}:
  316. ASSIGN {&List-6}.
  317. VHerst = INTEGER(SUBSTRING(CB_Hersteller :SCREEN-VALUE,01,03)).
  318. VWgr = INTEGER(SUBSTRING(CB_Warengrp :SCREEN-VALUE,01,03)).
  319. VPreisgrp = INTEGER(SUBSTRING(CB_Preisgruppe:SCREEN-VALUE,01,03)).
  320. VWcK = INTEGER(SUBSTRING(CB_MWST :SCREEN-VALUE,01,02)).
  321. IF F_VonDatum = ? THEN DO:
  322. APPLY 'ENTRY' TO F_VonDatum.
  323. RETURN NO-APPLY.
  324. END.
  325. IF F_BisDatum = ? THEN DO:
  326. APPLY 'ENTRY' TO F_BisDatum.
  327. RETURN NO-APPLY.
  328. END.
  329. IF F_BisDatum < F_VonDatum THEN DO:
  330. APPLY 'ENTRY' TO F_VonDatum.
  331. RETURN NO-APPLY.
  332. END.
  333. xKunden = F_Knr.
  334. F_Knr = ''.
  335. DO ix = 1 TO LENGTH(XKunden).
  336. IF SUBSTRING(xKunden,ix,01) >= '0' AND
  337. SUBSTRING(xKunden,ix,01) <= '9' THEN DO:
  338. F_Knr = F_Knr + SUBSTRING(xKunden,ix,01).
  339. NEXT.
  340. END.
  341. IF SUBSTRING(xKunden,ix,01) = ' ' THEN NEXT.
  342. IF SUBSTRING(xKunden,ix,01) > '9' THEN NEXT.
  343. F_Knr = F_Knr + ','.
  344. END.
  345. XKunden = F_Knr.
  346. DO ix = 1 TO NUM-ENTRIES(XKunden, ','):
  347. VKnr = INTEGER(ENTRY(ix, xKunden)).
  348. FIND Debst USE-INDEX Debst-k1
  349. WHERE Debst.Firma = GVFirma
  350. AND Debst.Knr = VKnr NO-LOCK NO-ERROR.
  351. IF NOT AVAILABLE Debst THEN DO:
  352. Linktext = 'Die Kundennummer ' + STRING(VKnr) + ' gibt es nicht! '.
  353. MESSAGE Linktext VIEW-AS ALERT-BOX ERROR.
  354. DISPLAY F_Knr.
  355. APPLY 'ENTRY' TO F_Knr.
  356. RETURN NO-APPLY.
  357. END.
  358. END.
  359. F_Knr = ''.
  360. DO ix = 1 TO NUM-ENTRIES(XKunden, ','):
  361. VKnr = INTEGER(ENTRY(ix, xKunden)).
  362. IF ix > 1 THEN F_Knr = F_Knr + ','.
  363. F_Knr = F_Knr + TRIM(STRING(VKnr,'zzzzzz')).
  364. END.
  365. xKunden = F_Knr.
  366. DISPLAY F_Knr.
  367. IF FKMut THEN PUT-KEY-VALUE SECTION 'Rückvergütung' KEY 'Kunden' VALUE xKunden.
  368. VDatum = F_VonDatum.
  369. BDatum = F_BisDatum.
  370. DISPLAY {&List-6}.
  371. RUN SCHREIBENFWAUSWERTUNGEN ( INPUT 'd-rueckverguetung',
  372. INPUT FRAME {&FRAME-NAME}:CURRENT-ITERATION ) NO-ERROR.
  373. DISABLE {&List-1}.
  374. RUN BERECHNEN.
  375. ENABLE {&List-1}.
  376. END.
  377. */
  378. RUN ENDE.
  379. RETURN NO-APPLY.
  380. END.
  381. /* _UIB-CODE-BLOCK-END */
  382. &ANALYZE-RESUME
  383. &Scoped-define SELF-NAME CB_AdrCode
  384. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_AdrCode gRueckverguetung
  385. ON RETURN OF CB_AdrCode IN FRAME gRueckverguetung /* Adresscode */
  386. DO:
  387. APPLY 'TAB' TO SELF.
  388. RETURN NO-APPLY.
  389. END.
  390. /* _UIB-CODE-BLOCK-END */
  391. &ANALYZE-RESUME
  392. &Scoped-define SELF-NAME CB_Hersteller
  393. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Hersteller gRueckverguetung
  394. ON RETURN OF CB_Hersteller IN FRAME gRueckverguetung /* Hersteller */
  395. DO:
  396. APPLY 'TAB' TO SELF.
  397. RETURN NO-APPLY.
  398. END.
  399. /* _UIB-CODE-BLOCK-END */
  400. &ANALYZE-RESUME
  401. &Scoped-define SELF-NAME CB_MWST
  402. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_MWST gRueckverguetung
  403. ON RETURN OF CB_MWST IN FRAME gRueckverguetung /* Mehrwertsteuer Hersteller */
  404. DO:
  405. APPLY 'TAB' TO SELF.
  406. RETURN NO-APPLY.
  407. END.
  408. /* _UIB-CODE-BLOCK-END */
  409. &ANALYZE-RESUME
  410. &Scoped-define SELF-NAME F_Knr
  411. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr gRueckverguetung
  412. ON ALT-L OF F_Knr IN FRAME gRueckverguetung /* Kunden */
  413. DO:
  414. RUN g-adresslisten.w ( INPUT SELF ).
  415. APPLY 'ENTRY' TO SELF.
  416. APPLY 'END' TO SELF.
  417. RETURN NO-APPLY.
  418. END.
  419. /* _UIB-CODE-BLOCK-END */
  420. &ANALYZE-RESUME
  421. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr gRueckverguetung
  422. ON RIGHT-MOUSE-CLICK OF F_Knr IN FRAME gRueckverguetung /* Kunden */
  423. DO:
  424. DO WITH FRAME {&FRAME-NAME}:
  425. ASSIGN {&List-6}.
  426. END.
  427. RUN g-auswahl-adresse.w ( INPUT F_Knr:HANDLE ).
  428. END.
  429. /* _UIB-CODE-BLOCK-END */
  430. &ANALYZE-RESUME
  431. &Scoped-define SELF-NAME F_Preisgrp
  432. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Preisgrp gRueckverguetung
  433. ON RIGHT-MOUSE-CLICK OF F_Preisgrp IN FRAME gRueckverguetung /* Preisgruppen */
  434. DO:
  435. RUN g-auswahl-tabelle.w ( INPUT SELF, INPUT 'PREGRP' ).
  436. APPLY 'ENTRY' TO SELF.
  437. APPLY 'END' TO SELF.
  438. RETURN NO-APPLY.
  439. END.
  440. /* _UIB-CODE-BLOCK-END */
  441. &ANALYZE-RESUME
  442. &Scoped-define SELF-NAME F_Warengrp
  443. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Warengrp gRueckverguetung
  444. ON RIGHT-MOUSE-CLICK OF F_Warengrp IN FRAME gRueckverguetung /* Warengruppen */
  445. DO:
  446. RUN g-auswahl-wgr.w ( INPUT F_Warengrp:HANDLE ).
  447. APPLY 'ENTRY' TO SELF.
  448. APPLY 'END' TO SELF.
  449. RETURN NO-APPLY.
  450. END.
  451. /* _UIB-CODE-BLOCK-END */
  452. &ANALYZE-RESUME
  453. &UNDEFINE SELF-NAME
  454. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gRueckverguetung
  455. /* *************************** Main Block *************************** */
  456. MaxPage = 1.
  457. AktSeite = 1.
  458. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
  459. Firma = DYNAMIC-FUNCTION('GETMANDANT':U ) NO-ERROR.
  460. ProgName = ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.') NO-ERROR.
  461. SESSION:DATA-ENTRY-RETURN = TRUE.
  462. SUBSCRIBE TO 'TOOLBAR' ANYWHERE.
  463. /* TRIGGERS ------------------------------------------------------ */
  464. ON 'ALT-CURSOR-RIGHT':U OF FRAME {&FRAME-NAME} ANYWHERE
  465. DO:
  466. RUN NEXTPAGE.
  467. END.
  468. ON 'ALT-CURSOR-LEFT':U OF FRAME {&FRAME-NAME} ANYWHERE
  469. DO:
  470. RUN PREVPAGE.
  471. END.
  472. ON 'U1':U OF {&WINDOW-NAME} ANYWHERE
  473. DO:
  474. RUN ENTRY_CURSOR.
  475. END.
  476. /*
  477. ON 'PAGE-DOWN':U OF {&WINDOW-NAME} ANYWHERE
  478. DO:
  479. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Next':U ).
  480. END.
  481. ON 'PAGE-UP':U OF {&WINDOW-NAME} ANYWHERE
  482. DO:
  483. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Prev':U ).
  484. END.
  485. ON 'ALT-RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE
  486. DO:
  487. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'UPDATE':U ).
  488. END.
  489. ON 'ALT-INS':U OF FRAME {&FRAME-NAME} ANYWHERE
  490. DO:
  491. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'ADD':U ).
  492. END.
  493. ON 'ALT-DEL':U OF FRAME {&FRAME-NAME} ANYWHERE
  494. DO:
  495. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'DELETE':U ).
  496. END.
  497. ON 'ALT-R':U OF FRAME {&FRAME-NAME} ANYWHERE
  498. DO:
  499. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'RESET':U ).
  500. END.
  501. ON 'F9':U OF FRAME {&FRAME-NAME} ANYWHERE
  502. DO:
  503. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ).
  504. END.
  505. ON 'ALT-S':U OF FRAME {&FRAME-NAME} ANYWHERE
  506. DO:
  507. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ).
  508. END.
  509. ON 'ALT-K':U OF FRAME {&FRAME-NAME} ANYWHERE
  510. DO:
  511. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'COPY':U ).
  512. END.
  513. ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE
  514. DO:
  515. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  516. IF FMutFlag = FALSE THEN DO:
  517. RUN ENDE.
  518. RETURN NO-APPLY.
  519. END.
  520. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'CANCEL':U ).
  521. RETURN NO-APPLY.
  522. END.
  523. */
  524. /* ------------------------------------------------------------------ */
  525. {src/adm2/dialogmn.i}
  526. /* _UIB-CODE-BLOCK-END */
  527. &ANALYZE-RESUME
  528. /* ********************** Internal Procedures *********************** */
  529. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gRueckverguetung _ADM-CREATE-OBJECTS
  530. PROCEDURE adm-create-objects :
  531. /*------------------------------------------------------------------------------
  532. Purpose: Create handles for all SmartObjects used in this procedure.
  533. After SmartObjects are initialized, then SmartLinks are added.
  534. Parameters: <none>
  535. ------------------------------------------------------------------------------*/
  536. END PROCEDURE.
  537. /* _UIB-CODE-BLOCK-END */
  538. &ANALYZE-RESUME
  539. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BEREINIGEN gRueckverguetung
  540. PROCEDURE BEREINIGEN :
  541. /*------------------------------------------------------------------------------
  542. Purpose:
  543. Parameters: <none>
  544. Notes:
  545. ------------------------------------------------------------------------------*/
  546. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  547. DEF VAR cString AS CHAR NO-UNDO.
  548. DEF VAR i AS INT NO-UNDO.
  549. cString = ipHandle:SCREEN-VALUE.
  550. DO i = 1 TO LENGTH(cString):
  551. IF SUBSTRING(cString,i,1) < '0' OR
  552. SUBSTRING(cString,i,1) > '9' THEN SUBSTRING(cString,i) = ','.
  553. END.
  554. ipHandle:SCREEN-VALUE = REPLACE(cString, ';', ',').
  555. cString = ''.
  556. DO i = 1 TO NUM-ENTRIES(ipHandle:SCREEN-VALUE, ','):
  557. IF cString <> '' THEN cString = cString + ','.
  558. cString = cString
  559. + STRING(INTEGER(ENTRY(i, ipHandle:SCREEN-VALUE, ',')),'999').
  560. END.
  561. ipHandle:SCREEN-VALUE = cString.
  562. RETURN.
  563. END PROCEDURE.
  564. /* _UIB-CODE-BLOCK-END */
  565. &ANALYZE-RESUME
  566. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage gRueckverguetung
  567. PROCEDURE changePage :
  568. /*------------------------------------------------------------------------------
  569. Purpose: Super Override
  570. Parameters:
  571. Notes:
  572. ------------------------------------------------------------------------------*/
  573. /* Code placed here will execute PRIOR to standard behavior. */
  574. RUN SUPER.
  575. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  576. CASE AktSeite:
  577. WHEN 1 THEN DO:
  578. /* RUN addLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */
  579. /* RUN addLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */
  580. /* RUN ToolbarInit ( INPUT h_d-auftr ). */
  581. RUN ENTRY_CURSOR.
  582. END.
  583. WHEN 2 THEN DO:
  584. RUN ENTRY_CURSOR.
  585. END.
  586. END CASE.
  587. END PROCEDURE.
  588. /* _UIB-CODE-BLOCK-END */
  589. &ANALYZE-RESUME
  590. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gRueckverguetung _DEFAULT-DISABLE
  591. PROCEDURE disable_UI :
  592. /*------------------------------------------------------------------------------
  593. Purpose: DISABLE the User Interface
  594. Parameters: <none>
  595. Notes: Here we clean-up the user-interface by deleting
  596. dynamic widgets we have created and/or hide
  597. frames. This procedure is usually called when
  598. we are ready to "clean-up" after running.
  599. ------------------------------------------------------------------------------*/
  600. /* Hide all frames. */
  601. HIDE FRAME gRueckverguetung.
  602. END PROCEDURE.
  603. /* _UIB-CODE-BLOCK-END */
  604. &ANALYZE-RESUME
  605. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gRueckverguetung
  606. PROCEDURE enableObject :
  607. /*------------------------------------------------------------------------------
  608. Purpose: Super Override
  609. Parameters:
  610. Notes:
  611. ------------------------------------------------------------------------------*/
  612. DEF VAR cString AS CHAR NO-UNDO.
  613. DEF VAR cText AS CHAR NO-UNDO.
  614. DEF VAR i AS INT NO-UNDO.
  615. DO WITH FRAME {&FRAME-NAME}:
  616. RUN COMBO_HERSTELLER ( INPUT CB_Hersteller:HANDLE ).
  617. cString = CB_Hersteller:LIST-ITEM-PAIRS + ';Alle;000999'.
  618. CB_Hersteller:LIST-ITEM-PAIRS = cString.
  619. CB_Hersteller:SCREEN-VALUE = ENTRY(2, CB_Hersteller:LIST-ITEM-PAIRS, ';') NO-ERROR.
  620. FIND Femeld WHERE Femeld.Sprcd = 1
  621. AND Femeld.Fenr = 999 NO-LOCK NO-ERROR.
  622. IF AVAILABLE Femeld THEN cText = Femeld.FeText.
  623. ELSE cText = ''.
  624. cString = 'Alle;00'.
  625. DO i = 1 TO NUM-ENTRIES(cText, ','):
  626. cString = cString + ';' + ENTRY(i, cText, ',') + ';' + STRING(i,'99').
  627. END.
  628. CB_AdrCode:DELIMITER = ';'.
  629. CB_AdrCode:LIST-ITEM-PAIRS = cString.
  630. CB_AdrCode:SCREEN-VALUE = ENTRY(2, CB_AdrCode:LIST-ITEM-PAIRS, ';') NO-ERROR.
  631. RUN COMBO_MWSTKUND ( INPUT CB_MWST:HANDLE ).
  632. END.
  633. RUN SUPER.
  634. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR.
  635. RUN LESENFWAUSWERTUNGEN ( INPUT ProgName,
  636. INPUT FRAME {&FRAME-NAME}:CURRENT-ITERATION ) NO-ERROR.
  637. END PROCEDURE.
  638. /* _UIB-CODE-BLOCK-END */
  639. &ANALYZE-RESUME
  640. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gRueckverguetung _DEFAULT-ENABLE
  641. PROCEDURE enable_UI :
  642. /*------------------------------------------------------------------------------
  643. Purpose: ENABLE the User Interface
  644. Parameters: <none>
  645. Notes: Here we display/view/enable the widgets in the
  646. user-interface. In addition, OPEN all queries
  647. associated with each FRAME and BROWSE.
  648. These statements here are based on the "Other
  649. Settings" section of the widget Property Sheets.
  650. ------------------------------------------------------------------------------*/
  651. DISPLAY CB_Hersteller F_Warengrp F_Knr F_Preisgrp CB_AdrCode F_Inhalt
  652. F_VonDatum F_BisDatum CB_MWST
  653. WITH FRAME gRueckverguetung.
  654. ENABLE CB_Hersteller F_Warengrp F_Knr F_Preisgrp CB_AdrCode F_Inhalt
  655. F_VonDatum F_BisDatum CB_MWST Btn_Start Btn_Abbrechen RECT-21 RECT-22
  656. RECT-23
  657. WITH FRAME gRueckverguetung.
  658. VIEW FRAME gRueckverguetung.
  659. {&OPEN-BROWSERS-IN-QUERY-gRueckverguetung}
  660. END PROCEDURE.
  661. /* _UIB-CODE-BLOCK-END */
  662. &ANALYZE-RESUME
  663. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gRueckverguetung
  664. PROCEDURE ENDE :
  665. /*------------------------------------------------------------------------------
  666. Purpose:
  667. Parameters: <none>
  668. Notes:
  669. ------------------------------------------------------------------------------*/
  670. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  671. IF AktSeite > 1 THEN DO:
  672. RUN selectPage ( INPUT 1 ).
  673. RETURN NO-APPLY.
  674. END.
  675. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  676. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  677. RETURN NO-APPLY.
  678. END PROCEDURE.
  679. /* _UIB-CODE-BLOCK-END */
  680. &ANALYZE-RESUME
  681. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR gRueckverguetung
  682. PROCEDURE ENTRY_CURSOR :
  683. /*------------------------------------------------------------------------------
  684. Purpose:
  685. Parameters: <none>
  686. Notes:
  687. ------------------------------------------------------------------------------*/
  688. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  689. CASE AktSeite:
  690. /* WHEN 1 THEN RUN applyEntry IN h_v-adresse ( INPUT ? ). */
  691. /* WHEN 2 THEN RUN applyEntry IN h_f-adrkomm ( INPUT ? ). */
  692. /* WHEN 3 THEN RUN applyEntry IN h_b-auftbb ( INPUT ? ). */
  693. /* WHEN 4 THEN RUN applyEntry IN h_b-aufdet ( INPUT ? ). */
  694. /* WHEN 5 THEN RUN applyEntry IN h_b-aufstreu ( INPUT ? ). */
  695. /* WHEN 6 THEN RUN applyEntry IN h_b-auffak ( INPUT ? ). */
  696. /* WHEN 7 THEN RUN applyEntry IN h_b-position ( INPUT ? ). */
  697. END CASE.
  698. RETURN NO-APPLY.
  699. END PROCEDURE.
  700. /* _UIB-CODE-BLOCK-END */
  701. &ANALYZE-RESUME
  702. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gRueckverguetung
  703. PROCEDURE exitObject :
  704. /*------------------------------------------------------------------------------
  705. Purpose: Super Override
  706. Parameters:
  707. Notes:
  708. ------------------------------------------------------------------------------*/
  709. RUN ENDE.
  710. RETURN NO-APPLY.
  711. END PROCEDURE.
  712. /* _UIB-CODE-BLOCK-END */
  713. &ANALYZE-RESUME
  714. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF gRueckverguetung
  715. PROCEDURE KOPF :
  716. /*------------------------------------------------------------------------------
  717. Purpose:
  718. Parameters: <none>
  719. Notes:
  720. ------------------------------------------------------------------------------*/
  721. DEF INPUT PARAMETER excelAppl AS COM-HANDLE NO-UNDO.
  722. DEF VAR cString AS CHAR NO-UNDO.
  723. DEF VAR VZelle AS CHAR NO-UNDO.
  724. DEF VAR xHerst AS CHAR NO-UNDO.
  725. FIND Steuer USE-INDEX Steuer-k1
  726. WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
  727. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'F', INPUT 2,
  728. INPUT Steuer.Firma1 ).
  729. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'F', INPUT 3,
  730. INPUT Steuer.Strasse).
  731. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'F', INPUT 4,
  732. INPUT Steuer.Ort ).
  733. IF iHerst = 999 THEN xHerst = 'alle Hersteller'.
  734. IF iHerst <> 999 THEN DO:
  735. FIND Tabel USE-INDEX Tabel-k2
  736. WHERE Tabel.Firma = Firma
  737. AND Tabel.RecArt = 'HERST'
  738. AND Tabel.CodeI = iHerst
  739. AND Tabel.CodeC = ''
  740. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  741. IF AVAILABLE Tabel THEN xHerst = Tabel.Bez1.
  742. ELSE xHerst = '??????????'.
  743. END.
  744. VZelle = 'B1'.
  745. excelAppl:Range(VZelle):Select.
  746. cString = excelAppl:ActiveCell:Value.
  747. cString = cString + ' ' + xHerst.
  748. excelAppl:ActiveCell:FormulaR1C1 = cString.
  749. VZelle = 'B3'.
  750. excelAppl:Range(VZelle):Select.
  751. cString = excelAppl:ActiveCell:Value.
  752. cString = cString + ' ' + STRING(F_VonDatum,"99.99.9999")
  753. + ' - ' + STRING(F_BisDatum,"99.99.9999").
  754. excelAppl:ActiveCell:FormulaR1C1 = cString.
  755. END PROCEDURE.
  756. /* _UIB-CODE-BLOCK-END */
  757. &ANALYZE-RESUME
  758. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXTPAGE gRueckverguetung
  759. PROCEDURE NEXTPAGE :
  760. /*------------------------------------------------------------------------------
  761. Purpose:
  762. Parameters: <none>
  763. Notes:
  764. ------------------------------------------------------------------------------*/
  765. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  766. IF AktSeite = MaxPage THEN AktSeite = 1.
  767. ELSE AktSeite = AktSeite + 1.
  768. RUN selectPage ( INPUT AktSeite ).
  769. END PROCEDURE.
  770. /* _UIB-CODE-BLOCK-END */
  771. &ANALYZE-RESUME
  772. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PREVPAGE gRueckverguetung
  773. PROCEDURE PREVPAGE :
  774. /*------------------------------------------------------------------------------
  775. Purpose:
  776. Parameters: <none>
  777. Notes:
  778. ------------------------------------------------------------------------------*/
  779. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  780. IF AktSeite = 1 THEN AktSeite = MaxPage.
  781. ELSE AktSeite = AktSeite - 1.
  782. RUN selectPage ( INPUT AktSeite ).
  783. END PROCEDURE.
  784. /* _UIB-CODE-BLOCK-END */
  785. &ANALYZE-RESUME
  786. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT gRueckverguetung
  787. PROCEDURE REPORT :
  788. /*------------------------------------------------------------------------------
  789. Purpose:
  790. Parameters: <none>
  791. Notes:
  792. ------------------------------------------------------------------------------*/
  793. DEF VAR xKnr AS CHAR NO-UNDO.
  794. def var xAdresse AS CHAR NO-UNDO.
  795. def var xAdrCd AS CHAR NO-UNDO.
  796. DEF VAR VBetr AS DEC DECIMALS 4 NO-UNDO.
  797. DEF VAR VBetrag AS DEC DECIMALS 4 NO-UNDO.
  798. DEF VAR VProz AS DEC DECIMALS 4 NO-UNDO.
  799. DEF VAR i1 AS INT NO-UNDO.
  800. DEF VAR Rundbetr AS DEC DECIMALS 4.
  801. DEF VAR cVorlage AS CHAR NO-UNDO.
  802. DEF VAR cDaten AS CHAR NO-UNDO.
  803. DEF VAR cDokument AS CHAR NO-UNDO.
  804. DEF VAR cDateiName AS CHAR NO-UNDO.
  805. DEF VAR Zelle AS CHAR NO-UNDO.
  806. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  807. DEF VAR ja AS LOG NO-UNDO.
  808. EMPTY TEMP-TABLE TWork .
  809. EMPTY TEMP-TABLE TKunden.
  810. EMPTY TEMP-TABLE TMWST .
  811. i1 = 0.
  812. FOR EACH Artst USE-INDEX Artst-k1
  813. WHERE Artst.Firma = Firma NO-LOCK:
  814. IF iHerst <> 999 AND
  815. Artst.Herst <> iHerst THEN NEXT.
  816. IF F_Warengrp <> '' AND
  817. LOOKUP(STRING(Artst.Wg_Grp,'999'), F_Warengrp, ',') = 0 THEN NEXT.
  818. FOR EACH ArtKanal USE-INDEX ArtKanal-k1
  819. WHERE ArtKanal.Firma = Artst.Firma
  820. AND ArtKanal.Artnr = Artst.Artnr
  821. AND ArtKanal.Inhalt = Artst.Inhalt
  822. AND ArtKanal.Jahr = Artst.Jahr
  823. AND ((F_Preisgrp = '') OR
  824. (LOOKUP(STRING(ArtKanal.Preis_Grp,'999'), F_Preisgrp, ',') > 0))
  825. AND ArtKanal.Ab_Datum <= F_BisDatum NO-LOCK
  826. BREAK BY ArtKanal.Preis_Grp
  827. BY ArtKanal.Ab_Datum DESCENDING :
  828. IF NOT FIRST-OF ( ArtKanal.Preis_Grp ) THEN NEXT.
  829. CREATE TWork.
  830. ASSIGN TWork.Artnr = Artst.Artnr
  831. TWork.Inhalt = Artst.Inhalt
  832. TWork.Jahr = Artst.Jahr
  833. TWork.EP = Artst.Listen_EP
  834. TWork.RID = RECID(Artst)
  835. TWork.Art = ArtKanal.Art
  836. TWork.Wert = ArtKanal.Wert
  837. TWork.MWST_Cd = Artst.MWST
  838. TWork.Preis_Grp = ArtKanal.Preis_Grp.
  839. i1 = i1 + 1.
  840. END.
  841. END.
  842. IF i1 = 0 THEN RETURN ''.
  843. FOR EACH TWork:
  844. FOR EACH Artbw USE-INDEX Artbw-k2
  845. WHERE Artbw.Firma = Firma
  846. AND Artbw.Artnr = TWork.Artnr
  847. AND Artbw.Inhalt = TWork.Inhalt
  848. AND Artbw.Jahr = TWork.Jahr
  849. AND Artbw.Datum >= F_VonDatum
  850. AND Artbw.Datum <= F_BisDatum
  851. AND Artbw.Tr_Art < 9 NO-LOCK:
  852. xKnr = TRIM(STRING(Artbw.Knr,'zzzzzz')).
  853. IF LOOKUP(xKnr, F_Knr, ',' ) = 0 THEN NEXT.
  854. IF Artbw.Tr_Art = 01 THEN DO:
  855. FIND Debst USE-INDEX Debst-k1
  856. WHERE Debst.Firma = Artbw.Firma
  857. AND Debst.Knr = Artbw.Knr
  858. AND Debst.Preis_Grp = TWork.Preis_Grp
  859. NO-LOCK NO-ERROR.
  860. IF NOT AVAILABLE Debst THEN NEXT.
  861. IF iAdrCd <> 0 THEN DO:
  862. FIND Adresse USE-INDEX Adresse-k1
  863. WHERE Adresse.Firma = AdFirma
  864. AND Adresse.Knr = Debst.Knr NO-LOCK NO-ERROR.
  865. IF NOT AVAILABLE Adresse THEN NEXT.
  866. xAdrCd = ''.
  867. CASE iAdrCd:
  868. WHEN 1 THEN xAdrCd = Adresse.Cd01.
  869. WHEN 2 THEN xAdrCd = Adresse.Cd02.
  870. WHEN 3 THEN xAdrCd = Adresse.Cd03.
  871. WHEN 4 THEN xAdrCd = Adresse.Cd04.
  872. WHEN 5 THEN xAdrCd = Adresse.Cd05.
  873. WHEN 6 THEN xAdrCd = Adresse.Cd06.
  874. WHEN 7 THEN xAdrCd = Adresse.Cd07.
  875. WHEN 8 THEN xAdrCd = Adresse.Cd08.
  876. WHEN 9 THEN xAdrCd = Adresse.Cd09.
  877. WHEN 10 THEN xAdrCd = Adresse.Cd10.
  878. WHEN 11 THEN xAdrCd = Adresse.Cd11.
  879. WHEN 12 THEN xAdrCd = Adresse.Cd12.
  880. WHEN 13 THEN xAdrCd = Adresse.Cd13.
  881. WHEN 14 THEN xAdrCd = Adresse.Cd14.
  882. WHEN 15 THEN xAdrCd = Adresse.Cd15.
  883. END CASE.
  884. IF LOOKUP(xAdrCd, F_Inhalt, ',') = 0 THEN NEXT.
  885. END.
  886. TWork.Ausgang = TWork.Ausgang + Artbw.Menge.
  887. TWork.VP = TWork.VP + (Artbw.Menge * Artbw.Preis).
  888. FIND FIRST TKunden USE-INDEX TKunden-k1
  889. WHERE TKunden.Knr = Artbw.Knr
  890. AND TKunden.Artnr = Artbw.Artnr
  891. AND TKunden.Inhalt = Artbw.Inhalt
  892. AND TKunden.Jahr = Artbw.Jahr NO-ERROR.
  893. IF NOT AVAILABLE TKunden THEN DO:
  894. CREATE TKunden.
  895. ASSIGN TKunden.Knr = Artbw.Knr
  896. TKunden.Artnr = Artbw.Artnr
  897. TKunden.Inhalt = Artbw.Inhalt
  898. TKunden.Jahr = Artbw.Jahr
  899. TKunden.EP = TWork.EP
  900. TKunden.RID = TWork.RID
  901. TKunden.Art = TWork.Art
  902. TKunden.Wert = TWork.Wert
  903. TKunden.MWST_Cd = TWork.MWST_Cd.
  904. END.
  905. TKunden.Ausgang = TKunden.Ausgang + Artbw.Menge.
  906. TKunden.VP = TKunden.VP + (Artbw.Menge * Artbw.Preis).
  907. NEXT.
  908. END.
  909. END.
  910. END.
  911. FIND Steuer USE-INDEX Steuer-k1
  912. WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
  913. cVorlage = 'Rueckverg' + '.xls'.
  914. cDokument = 'Rueckverg' + '.xls'.
  915. cDaten = 'Rueckverg' + '.txt'.
  916. cDateiName = cDokument + CHR(01) + cVorlage.
  917. RUN CREATEDATEI ( INPUT cDateiName ).
  918. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  919. cDokument = RETURN-VALUE.
  920. RUN CREATEDATEI ( INPUT cDaten ).
  921. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  922. cDaten = RETURN-VALUE.
  923. OUTPUT TO VALUE(cDaten).
  924. FOR EACH TKunden WHERE TKunden.Ausgang <> 0 NO-LOCK
  925. BREAK BY TKunden.Knr
  926. BY TKunden.Artnr
  927. BY TKunden.Inhalt
  928. BY TKunden.Jahr:
  929. IF FIRST-OF (TKunden.Knr) THEN DO:
  930. FIND Adresse USE-INDEX Adresse-k1
  931. WHERE Adresse.Firma = ADFirma
  932. AND Adresse.Knr = TKunden.Knr NO-LOCK NO-ERROR.
  933. XAdresse = ''.
  934. XAdresse = XAdresse + STRING(Adresse.Knr,"999999 ").
  935. IF Adresse.Firma1 <> '' THEN XAdresse = XAdresse + Adresse.Firma1 + ', '.
  936. IF Adresse.Firma2 <> '' THEN XAdresse = XAdresse + Adresse.Firma2 + ', '.
  937. IF Adresse.Name <> '' THEN DO:
  938. IF Adresse.Vorname <> '' THEN XAdresse = XAdresse + Adresse.Vorname + ' '.
  939. XAdresse = XAdresse + Adresse.Name + ', '.
  940. END.
  941. IF Adresse.Strasse <> '' THEN XAdresse = XAdresse + Adresse.Strasse + ', '.
  942. XAdresse = XAdresse + Adresse.Plz + ' ' + Adresse.Ort.
  943. PUT CONTROL XAdresse CHR(10).
  944. END.
  945. FIND Artst WHERE RECID(Artst) = TKunden.RID NO-LOCK.
  946. FIND KGebinde WHERE KGebinde.Firma = Firma
  947. AND KGebinde.Geb_Cd = Artst.KGeb_Cd.
  948. IF TKunden.Art = TRUE THEN DO:
  949. VProz = TKunden.Wert.
  950. VBetr = TKunden.VP.
  951. Rundbetr = TKunden.VP * VProz / 100.
  952. END.
  953. ELSE DO:
  954. VBetr = TKunden.Wert.
  955. Rundbetr = TKunden.Wert * TKunden.Ausgang.
  956. VProz = Rundbetr * 100 / TKunden.VP.
  957. END.
  958. PUT CONTROL '£'
  959. Artst.Bez '£'
  960. KGebinde.KBez '£'
  961. TRIM(STRING(TKunden.Ausgang,'->>>,>>>,>>9' )) '£'
  962. TRIM(STRING(TKunden.VP ,'->>>,>>>,>>9.99')) '£'
  963. TRIM(STRING(TKunden.Wert ,'->>>,>>>,>>9.99')) '£'
  964. TRIM(STRING(Rundbetr ,'->>>,>>>,>>9.99')) '£'
  965. TRIM(STRING(TKunden.MWST_Cd,'z9' )) CHR(10).
  966. IF NOT LAST-OF (TKunden.Knr) THEN NEXT.
  967. PUT CONTROL '£' CHR(10).
  968. END.
  969. PUT CONTROL 'Produktetotale' CHR(10).
  970. VBetrag = 0.
  971. FOR EACH TWork WHERE TWork.Ausgang <> 0:
  972. FIND Artst WHERE RECID(Artst) = TWork.RID NO-LOCK.
  973. FIND KGebinde WHERE KGebinde.Firma = Firma
  974. AND KGebinde.Geb_Cd = Artst.KGeb_Cd.
  975. IF TWork.Art = TRUE THEN DO:
  976. VProz = TWork.Wert.
  977. VBetr = TWork.VP.
  978. Rundbetr = TWork.VP * VProz / 100.
  979. END.
  980. ELSE DO:
  981. VBetr = TWork.Wert.
  982. Rundbetr = TWork.Wert * TWork.Ausgang.
  983. VProz = Rundbetr * 100 / TWork.VP.
  984. END.
  985. PUT CONTROL '£'
  986. STRING(TWork.Preis_Grp,'99 ') Artst.Bez '£'
  987. KGebinde.KBez '£'
  988. TRIM(STRING(TWork.Ausgang ,'->>>,>>>,>>9' )) '£'
  989. TRIM(STRING(TWork.VP ,'->>>,>>>,>>9.99')) '£'
  990. TRIM(STRING(TWork.Wert ,'->>>,>>>,>>9.99')) '£'
  991. TRIM(STRING(Rundbetr ,'->>>,>>>,>>9.99')) '£'
  992. TRIM(STRING(TWork.MWST_Cd ,'z9' )) CHR(10).
  993. VBetrag = VBetrag + Rundbetr.
  994. FIND FIRST TMWST WHERE TMWST.MWST_Cd = TWork.MWST_Cd NO-ERROR.
  995. IF NOT AVAILABLE TMWST THEN DO:
  996. CREATE TMWST.
  997. ASSIGN TMWST.MWST_Cd = TWork.MWST_Cd.
  998. FIND Wust USE-INDEX Wust-k1
  999. WHERE Wust.CodeK = iMWSTCd
  1000. AND Wust.CodeA = TWork.MWST_Cd NO-LOCK.
  1001. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  1002. WHERE MWSTAns.MWST_Cd = Wust.WuCd
  1003. AND MWSTAns.Datum <= F_BisDatum NO-LOCK NO-ERROR.
  1004. TMWST.MWST_Ansatz = MWSTAns.Ans.
  1005. END.
  1006. TMWST.Netto = TMWST.Netto + Rundbetr.
  1007. END.
  1008. PUT CONTROL '£££££'
  1009. 'Fr.' '£'
  1010. TRIM(STRING(VBetrag,'->>>,>>>,>>9.99')) CHR(10)
  1011. '£' CHR(10).
  1012. PUT CONTROL '££'
  1013. 'Mehrwertsteuer' CHR(10).
  1014. VBetrag = 0.
  1015. FOR EACH TMWST BY TMWST.MWST_Cd:
  1016. Rundbetr = TMWST.Netto * TMWST.MWST_Ansatz / 100.
  1017. VBetrag = VBetrag + TMWST.Netto + Rundbetr.
  1018. PUT CONTROL '££££'
  1019. TRIM(STRING(TMWST.Netto ,'->>>,>>>,>>9.99')) '£'
  1020. TRIM(STRING(TMWST.MWST_Ansatz,'z9.99%')) '£'
  1021. TRIM(STRING(Rundbetr ,'->>>,>>>,>>9.99')) '£'
  1022. TRIM(STRING(TMWST.MWST_Cd ,'z9')) CHR(10).
  1023. END.
  1024. Rundbetr = VBetrag.
  1025. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
  1026. PUT CONTROL '£' CHR(10)
  1027. '£MWSt-Nummer : ' + Steuer.MWST_Nr '£'
  1028. 'Gesamttotal inkl. Mehrwertsteuer' '£££'
  1029. 'Fr.' '£'
  1030. TRIM(STRING(Rundbetr,"->>>,>>>,>>9.99")) CHR(10).
  1031. OUTPUT CLOSE.
  1032. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  1033. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  1034. RUN FEHLER ( INPUT 1035 ).
  1035. RETURN.
  1036. END.
  1037. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ).
  1038. IF NOT ja THEN DO:
  1039. RUN FEHLER ( INPUT 1040 ).
  1040. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1041. RETURN NO-APPLY.
  1042. END.
  1043. Zelle = 'A8'.
  1044. excelAppl:Range(Zelle):SELECT.
  1045. excelAppl:SELECTION:FormulaR1C1 = 'TEXT;' + cDaten.
  1046. excelAppl:APPLICATION:RUN ( 'DateiEinfügen' ).
  1047. RUN KOPF ( INPUT excelAppl ).
  1048. Zelle = 'A1'.
  1049. excelAppl:Range(Zelle):SELECT.
  1050. excelAppl:SELECTION:ColumnWidth = 0.3.
  1051. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1052. END PROCEDURE.
  1053. /* _UIB-CODE-BLOCK-END */
  1054. &ANALYZE-RESUME
  1055. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage gRueckverguetung
  1056. PROCEDURE selectPage :
  1057. /*------------------------------------------------------------------------------
  1058. Purpose: Super Override
  1059. Parameters:
  1060. Notes:
  1061. ------------------------------------------------------------------------------*/
  1062. DEF INPUT PARAMETER piPageNum AS INT NO-UNDO.
  1063. DEF VAR FMutFlag AS LOG NO-UNDO.
  1064. DEF VAR MutProg AS CHAR NO-UNDO.
  1065. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  1066. DO WHILE TRUE:
  1067. IF NOT FMutFlag THEN LEAVE.
  1068. MutProg = DYNAMIC-FUNCTION('GETMUTPROG':U).
  1069. IF MutProg <> THIS-PROCEDURE:FILE-NAME THEN LEAVE.
  1070. RETURN NO-APPLY.
  1071. END.
  1072. CASE piPageNum:
  1073. END CASE.
  1074. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  1075. CASE AktSeite:
  1076. WHEN 1 THEN DO:
  1077. /* RUN removeLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */
  1078. /* RUN removeLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */
  1079. END.
  1080. END CASE.
  1081. RUN SUPER( INPUT piPageNum).
  1082. END PROCEDURE.
  1083. /* _UIB-CODE-BLOCK-END */
  1084. &ANALYZE-RESUME
  1085. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR gRueckverguetung
  1086. PROCEDURE TOOLBAR :
  1087. /*------------------------------------------------------------------------------
  1088. Purpose:
  1089. Parameters: <none>
  1090. Notes:
  1091. ------------------------------------------------------------------------------*/
  1092. DEF INPUT PARAMETER pcAction AS CHAR NO-UNDO.
  1093. /*
  1094. RUN TOOLBAR IN h_dyntoolbar ( INPUT pcAction ).
  1095. */
  1096. END PROCEDURE.
  1097. /* _UIB-CODE-BLOCK-END */
  1098. &ANALYZE-RESUME