Offerte.p 45 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12
  2. &ANALYZE-RESUME
  3. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Procedure
  4. /*------------------------------------------------------------------------
  5. File :
  6. Purpose :
  7. Syntax :
  8. Description :
  9. Author(s) :
  10. Created :
  11. Notes :
  12. ----------------------------------------------------------------------*/
  13. /* This .W file was created with the Progress AppBuilder. */
  14. /*----------------------------------------------------------------------*/
  15. /* *************************** Definitions ************************** */
  16. DEF INPUT PARAMETER iphParam AS HANDLE NO-UNDO.
  17. DEF OUTPUT PARAMETER opcResult AS CHAR NO-UNDO.
  18. DEF VAR iSeite AS INT NO-UNDO.
  19. DEF VAR iAnzDok AS INT NO-UNDO.
  20. DEF VAR iLauf AS INT NO-UNDO.
  21. DEF VAR lFirst AS LOG INIT FALSE NO-UNDO.
  22. DEF VAR lLast AS LOG INIT FALSE NO-UNDO.
  23. DEF VAR lPreis AS LOG NO-UNDO.
  24. DEF VAR cFirma AS CHAR NO-UNDO.
  25. DEF VAR AdFirma AS CHAR NO-UNDO.
  26. DEF VAR nFakBetr AS DEC NO-UNDO.
  27. DEF VAR dFakDatum AS DATE NO-UNDO.
  28. DEF VAR iFaknr AS INT NO-UNDO.
  29. DEF VAR iSprcd AS INT NO-UNDO.
  30. DEF VAR nTotale AS DEC EXTENT 15 NO-UNDO.
  31. DEF VAR cFormtext AS CHAR EXTENT 30 NO-UNDO.
  32. DEF VAR cRabText AS CHAR NO-UNDO.
  33. DEF VAR cZusText AS CHAR NO-UNDO.
  34. DEF VAR cEpzText AS CHAR NO-UNDO.
  35. DEF VAR cBesrKopf AS CHAR EXTENT 12 NO-UNDO.
  36. DEF VAR lDebIncl AS LOG NO-UNDO.
  37. DEF VAR Rundbetr AS DEC DECIMALS 4 NO-UNDO.
  38. DEF VAR RundCode AS INT INIT 1 NO-UNDO.
  39. DEF VAR htTabTexte AS HANDLE NO-UNDO.
  40. DEF VAR hAufko AS HANDLE NO-UNDO.
  41. DEF BUFFER bAufko FOR Aufko .
  42. DEF BUFFER bAufze FOR Aufze .
  43. DEF BUFFER FDebst FOR Debst . /* Fakturaadresse */
  44. DEF BUFFER LDebst FOR Debst . /* Lieferadresse */
  45. DEF BUFFER LAdresse FOR Adresse .
  46. DEF BUFFER bAdresse FOR Adresse .
  47. DEF BUFFER bWust FOR Wust .
  48. DEF BUFFER bSteuer FOR Steuer .
  49. DEF VAR hExcel AS COM-HANDLE NO-UNDO.
  50. DEF VAR cZelle AS CHAR NO-UNDO.
  51. DEF VAR iZeile AS INT NO-UNDO.
  52. { incl/ttdruckparam.i }
  53. DEF TEMP-TABLE tTotale
  54. FIELD nMwstPfl AS DEC EXTENT 12
  55. FIELD nMwstBet AS DEC EXTENT 12
  56. FIELD nSammTot AS DEC
  57. FIELD nSkBer AS DEC
  58. FIELD nWW AS DEC
  59. .
  60. DEF TEMP-TABLE sAufko
  61. FIELD cFirma AS CHAR
  62. FIELD iAufnr AS INT
  63. FIELD iFak_Knr AS INT
  64. FIELD iSamm_Nr AS INT
  65. FIELD iRecid AS RECID
  66. FIELD iFaknr AS INT
  67. .
  68. DEF TEMP-TABLE tAufko LIKE Aufko
  69. FIELD iRecid AS RECID
  70. .
  71. DEF TEMP-TABLE tAufze
  72. FIELD Aufnr AS INT
  73. FIELD Sort1 AS CHAR
  74. FIELD Sort2 AS CHAR
  75. FIELD Sort3 AS CHAR
  76. FIELD Artnr AS INT
  77. FIELD Inhalt AS INT
  78. FIELD Jahr AS INT
  79. FIELD Pos AS INT
  80. FIELD Zeile AS RECID
  81. FIELD Preis AS DEC DECIMALS 4
  82. FIELD Aktion AS LOG
  83. FIELD LagOrt AS CHAR
  84. FIELD MGeli AS DEC
  85. FIELD MRuek AS DEC
  86. INDEX tAufze-k1 IS PRIMARY
  87. Aufnr
  88. Sort1
  89. Sort2
  90. Sort3
  91. .
  92. DEF TEMP-TABLE tSpeRab
  93. FIELD Rab_Grp AS INT
  94. FIELD Auf_Betr AS DEC DECIMALS 4
  95. .
  96. DEF TEMP-TABLE tGebKto
  97. FIELD Sort_Cd AS CHAR
  98. FIELD Geb_Cd AS CHAR
  99. FIELD Bez AS CHAR
  100. FIELD Preis AS DEC
  101. FIELD A_Anz AS DEC
  102. FIELD A_Betrag AS DEC
  103. FIELD E_Anz AS DEC
  104. FIELD E_Betrag AS DEC
  105. FIELD MWST_Art AS INT
  106. FIELD MWST_Cd AS INT
  107. .
  108. DEF TEMP-TABLE tRabSumm
  109. FIELD Rab_Summ AS INT
  110. FIELD Bez AS CHAR
  111. FIELD F_Rab_Art AS INT
  112. FIELD F_Wert AS DEC DECIMALS 4
  113. FIELD A_Rab_Art AS INT
  114. FIELD A_Wert AS DEC DECIMALS 4
  115. FIELD Auf_Rab AS DEC DECIMALS 4
  116. FIELD Abh_Rab AS DEC DECIMALS 4
  117. .
  118. DEF TEMP-TABLE tTabTexte
  119. FIELD cRecArt AS CHAR
  120. FIELD iZeile AS INT
  121. FIELD cFeld1 AS CHAR
  122. FIELD cFeld2 AS CHAR
  123. FIELD cFeld3 AS CHAR
  124. FIELD iFeld1 AS INT
  125. FIELD iFeld2 AS INT
  126. FIELD iFeld3 AS INT
  127. INDEX tTabTexte-k1 IS PRIMARY
  128. cRecArt
  129. iZeile.
  130. /* _UIB-CODE-BLOCK-END */
  131. &ANALYZE-RESUME
  132. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  133. /* ******************** Preprocessor Definitions ******************** */
  134. &Scoped-define PROCEDURE-TYPE Procedure
  135. &Scoped-define DB-AWARE no
  136. /* _UIB-PREPROCESSOR-BLOCK-END */
  137. &ANALYZE-RESUME
  138. /* *********************** Procedure Settings ************************ */
  139. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  140. /* Settings for THIS-PROCEDURE
  141. Type: Procedure
  142. Allow:
  143. Frames: 0
  144. Add Fields to: Neither
  145. Other Settings: CODE-ONLY COMPILE
  146. */
  147. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  148. /* ************************* Create Window ************************** */
  149. &ANALYZE-SUSPEND _CREATE-WINDOW
  150. /* DESIGN Window definition (used by the UIB)
  151. CREATE WINDOW Procedure ASSIGN
  152. HEIGHT = 15
  153. WIDTH = 60.
  154. /* END WINDOW DEFINITION */
  155. */
  156. &ANALYZE-RESUME
  157. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure
  158. /* *************************** Main Block *************************** */
  159. opcResult = ''.
  160. CREATE tParam.
  161. htParam:BUFFER-COPY(iphParam).
  162. ASSIGN
  163. cFirma = tParam.cFirma
  164. iAnzDok = 1.
  165. FIND bSteuer NO-LOCK WHERE bSteuer.Firma = cFirma.
  166. AdFirma = bSteuer.AdFirma.
  167. RUN AUFTRAG_ERMITTELN.
  168. IF opcResult <> '' THEN RETURN.
  169. FOR EACH sAufko
  170. BY sAufko.iFak_Knr:
  171. FIND bAdresse NO-LOCK
  172. WHERE bAdresse.Firma = AdFirma
  173. AND bAdresse.Knr = sAufko.iFak_Knr.
  174. iSprcd = bAdresse.Sprcd.
  175. RUN GET_FORMTEXT ( tParam.cInstall, tParam.cDokument, iSprcd,
  176. OUTPUT cFormText ) NO-ERROR.
  177. cRabText = TRIM(SUBSTRING(cFormText[21],01,20)).
  178. cZusText = TRIM(SUBSTRING(cFormText[21],21,20)).
  179. cEpzText = TRIM(SUBSTRING(cFormText[21],41,20)).
  180. RELEASE bAdresse.
  181. DO iLauf = 1 TO iAnzDok:
  182. dFakDatum = TODAY.
  183. iSeite = 0.
  184. iFaknr = sAufko.iAufnr.
  185. lFirst = TRUE.
  186. lPreis = TRUE.
  187. lLast = FALSE.
  188. EMPTY TEMP-TABLE tTotale .
  189. CREATE tTotale.
  190. FOR EACH bAufko NO-LOCK
  191. WHERE bAufko.Firma = sAufko.cFirma
  192. AND bAufko.Aufnr = sAufko.iAufnr:
  193. EMPTY TEMP-TABLE tAufze .
  194. EMPTY TEMP-TABLE tGebKto .
  195. EMPTY TEMP-TABLE tRabSumm .
  196. EMPTY TEMP-TABLE tSpeRab .
  197. EMPTY TEMP-TABLE tTabTexte .
  198. FIND bAdresse NO-LOCK USE-INDEX Adresse-k1
  199. WHERE bAdresse.Firma = AdFirma
  200. AND bAdresse.Knr = bAufko.Fak_Knr NO-ERROR.
  201. FIND LDebst NO-LOCK USE-INDEX Debst-k1
  202. WHERE LDebst.Firma = cFirma
  203. AND LDebst.Knr = bAufko.Knr NO-ERROR.
  204. FIND FDebst NO-LOCK USE-INDEX Debst-k1
  205. WHERE FDebst.Firma = cFirma
  206. AND FDebst.Knr = bAufko.Fak_Knr NO-ERROR.
  207. FIND bWust NO-LOCK USE-INDEX Wust-k1
  208. WHERE bWust.CodeK = LDebst.MWST
  209. AND bWust.CodeA = 99 NO-ERROR.
  210. lDebIncl = FALSE.
  211. IF AVAILABLE bWust THEN lDebIncl = bWust.Incl.
  212. /* Texte und Werte aus Tabelle 'Tabel' laden für RecArt */
  213. /* FAKART, AUFSTATUS, LIEFART, FAHRER, WISO, ABLAD */
  214. hAufko = BUFFER bAufko:HANDLE.
  215. htTabTexte = TEMP-TABLE tTabTexte:DEFAULT-BUFFER-HANDLE.
  216. RUN CREATE_TABTEXTE ( hAufko, INPUT-OUTPUT htTabTexte ) NO-ERROR.
  217. RUN FUELLEN_tAufze ( bAufko.Aufnr ) NO-ERROR.
  218. FOR EACH tAufze
  219. WHERE tAufze.Artnr > 0:
  220. FIND bAufze NO-LOCK WHERE RECID(bAufze) = tAufze.Zeile.
  221. /* Spezial-Auftragsrabatt pro Lieferschein bilden */
  222. IF bAufze.Auf_Sp_Grp > 0 THEN
  223. DO:
  224. FIND FIRST tSpeRab
  225. WHERE tSpeRab.Rab_Grp = bAufze.Auf_Sp_Grp NO-ERROR.
  226. IF NOT AVAILABLE tSpeRab THEN
  227. DO:
  228. CREATE tSpeRab.
  229. ASSIGN
  230. tSpeRab.Rab_Grp = bAufze.Auf_Sp_Grp.
  231. END.
  232. tSpeRab.Auf_Betr = tSpeRab.Auf_Betr + bAufze.Auf_Sp_Rab.
  233. END.
  234. /* Summengruppen-Totale pro Lieferschein bilden */
  235. DO WHILE bAufze.Rab_Su_Grp > 0:
  236. FIND FIRST tRabSumm
  237. WHERE tRabSumm.Rab_Summ = bAufze.Rab_Su_Grp NO-ERROR.
  238. IF NOT AVAILABLE tRabSumm THEN
  239. DO:
  240. FIND FIRST RabSumm NO-LOCK
  241. WHERE RabSumm.Firma = bAufze.Firma
  242. AND RabSumm.Rab_Summ = bAufze.Rab_Su_Grp NO-ERROR.
  243. IF NOT AVAILABLE RabSumm THEN LEAVE.
  244. CREATE tRabSumm.
  245. ASSIGN
  246. tRabSumm.Rab_Summ = bAufze.Rab_Su_Grp
  247. tRabSumm.Bez = RabSumm.Bez
  248. tRabSumm.Auf_Rab = 0
  249. tRabSumm.Abh_Rab = 0.
  250. END.
  251. LEAVE.
  252. END.
  253. END.
  254. RUN DRUCKEN.
  255. END.
  256. END.
  257. END.
  258. /* _UIB-CODE-BLOCK-END */
  259. &ANALYZE-RESUME
  260. /* ********************** Internal Procedures *********************** */
  261. &IF DEFINED(EXCLUDE-ARTIKELZEILE) = 0 &THEN
  262. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE Procedure
  263. PROCEDURE ARTIKELZEILE :
  264. /*------------------------------------------------------------------------------
  265. Purpose:
  266. Parameters: <none>
  267. Notes:
  268. ------------------------------------------------------------------------------*/
  269. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  270. DEF VAR cString AS CHAR NO-UNDO.
  271. DEF VAR nRabWert AS DEC NO-UNDO.
  272. DEF VAR xRabText AS CHAR NO-UNDO.
  273. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
  274. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  275. DO WHILE Aufze.Artnr = 0:
  276. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  277. INPUT iZeile, INPUT Aufze.Bez1 ).
  278. IF Aufze.Bez2 = '' THEN RETURN.
  279. iZeile = iZeile + 1.
  280. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  281. INPUT iZeile, INPUT Aufze.Bez2 ).
  282. RETURN.
  283. END.
  284. FIND Artst OF Aufze NO-LOCK.
  285. FIND GGebinde NO-LOCK
  286. WHERE GGebinde.Firma = cFirma
  287. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-ERROR.
  288. FIND VGebinde NO-LOCK
  289. WHERE VGebinde.Firma = cFirma
  290. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-ERROR.
  291. FIND KGebinde NO-LOCK
  292. WHERE KGebinde.Firma = cFirma
  293. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-ERROR.
  294. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'A',
  295. INPUT iZeile, INPUT KGebinde.KBez ).
  296. IF Aufze.VGeb_Me <> 0 THEN
  297. DO:
  298. cString = STRING(Aufze.VGeb_Me,'->>>')
  299. + 'x '
  300. + STRING(VGebinde.KBez,'x(10)').
  301. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'B',
  302. INPUT iZeile, INPUT cString ).
  303. END.
  304. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  305. INPUT iZeile, INPUT STRING(Aufze.MGeli,'->>>>>9') ).
  306. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  307. INPUT iZeile, INPUT Aufze.Bez1 ).
  308. IF Aufze.Jahr > 9 THEN
  309. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'E',
  310. INPUT iZeile, INPUT STRING(Aufze.Jahr,'9999') ).
  311. IF Aufze.Alk_Gehalt <> 0 THEN
  312. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'F',
  313. INPUT iZeile, INPUT STRING(Aufze.Alk_Gehalt,'zz9.9%') ).
  314. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'G',
  315. INPUT iZeile, INPUT STRING(Aufze.Artnr,'999999') ).
  316. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'H',
  317. INPUT iZeile, INPUT STRING(Aufze.Preis,'>>>>>9.99') ).
  318. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  319. INPUT iZeile, INPUT STRING(Aufze.Bru_Betr,'->>>>>9.99') ).
  320. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'J',
  321. INPUT iZeile, INPUT STRING(Aufze.WuCd,'z9') ).
  322. IF Aufze.Bez2 <> '' THEN
  323. DO:
  324. iZeile = iZeile + 1.
  325. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  326. INPUT iZeile, INPUT Aufze.Bez2 ).
  327. END.
  328. IF Aufze.Aktion THEN
  329. DO:
  330. iZeile = iZeile + 1.
  331. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  332. INPUT iZeile, INPUT Aufze.Aktion_Text ).
  333. END.
  334. DO WHILE TRUE:
  335. IF Aufze.Rab_Betr = 0 THEN LEAVE.
  336. nRabWert = ABSOLUTE(Aufze.Rab_Wert).
  337. IF Aufze.Rab_Art = 3 THEN xRabText = cEpzText.
  338. ELSE
  339. DO:
  340. IF Aufze.Rab_Betr < 0 THEN xRabText = cZusText.
  341. IF Aufze.Rab_Betr > 0 THEN xRabText = cRabText.
  342. END.
  343. iZeile = iZeile + 1.
  344. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  345. INPUT iZeile, INPUT TRIM(xRabText) ).
  346. IF Aufze.Rab_Art = 1
  347. THEN RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'H',
  348. INPUT iZeile, INPUT TRIM(STRING(nRabWert,"->9.9 %")) ).
  349. IF Aufze.Rab_Art = 2 OR
  350. Aufze.Rab_Art = 3
  351. THEN RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'H',
  352. INPUT iZeile, INPUT TRIM(STRING(nRabWert,"->9.99 CHF")) ).
  353. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  354. INPUT iZeile, INPUT TRIM(STRING(- Aufze.Rab_Betr ,"->>>9.99")) ).
  355. LEAVE.
  356. END.
  357. DO WHILE TRUE:
  358. IF Aufze.Zus_Betr = 0 THEN LEAVE.
  359. nRabWert = ABSOLUTE(Aufze.Zus_Wert).
  360. IF Aufze.Zus_Art = 3 THEN xRabText = cEpzText.
  361. ELSE
  362. DO:
  363. IF Aufze.Zus_Betr < 0 THEN xRabText = cRabText.
  364. IF Aufze.Zus_Betr > 0 THEN xRabText = cZusText.
  365. END.
  366. iZeile = iZeile + 1.
  367. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  368. INPUT iZeile, INPUT TRIM(xRabText) ).
  369. IF Aufze.Zus_Art = 1
  370. THEN RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'H',
  371. INPUT iZeile, INPUT TRIM(STRING(nRabWert,"->9.9 %")) ).
  372. IF Aufze.Zus_Art = 2 OR
  373. Aufze.Zus_Art = 3
  374. THEN RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'H',
  375. INPUT iZeile, INPUT TRIM(STRING(nRabWert,"->9.99 CHF")) ).
  376. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  377. INPUT iZeile, INPUT TRIM(STRING(- Aufze.Zus_Betr ,"->>>9.99")) ).
  378. LEAVE.
  379. END.
  380. END PROCEDURE.
  381. /* _UIB-CODE-BLOCK-END */
  382. &ANALYZE-RESUME
  383. &ENDIF
  384. &IF DEFINED(EXCLUDE-AUFTRAG_ERMITTELN) = 0 &THEN
  385. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAG_ERMITTELN Procedure
  386. PROCEDURE AUFTRAG_ERMITTELN :
  387. /*------------------------------------------------------------------------------
  388. Purpose:
  389. Parameters: <none>
  390. Notes:
  391. ------------------------------------------------------------------------------*/
  392. DEF VAR iAufnr AS INT NO-UNDO.
  393. FIND FIRST tParam.
  394. EMPTY TEMP-TABLE sAufko.
  395. /* Sammeln aller Aufträge pro Sammelnummer */
  396. FOR EACH Aufko NO-LOCK USE-INDEX Aufko-k5
  397. WHERE Aufko.Firma = tParam.cFirma
  398. AND Aufko.Aufnr = tParam.iAufnr :
  399. /* IF tParam.iVerband <> 999999 THEN DO: */
  400. /* FIND bDebst NO-LOCK */
  401. /* WHERE bDebst.Firma = Aufko.Firma */
  402. /* AND bDebst.Knr = Aufko.Fak_Knr NO-ERROR. */
  403. /* IF NOT AVAILABLE bDebst THEN NEXT. */
  404. /* IF bDebst.Verband_Grp <> tParam.iVerband THEN NEXT. */
  405. /* END. */
  406. CREATE sAufko.
  407. ASSIGN
  408. sAufko.cFirma = Aufko.Firma
  409. sAufko.iAufnr = Aufko.Aufnr
  410. sAufko.iFak_Knr = Aufko.Fak_Knr
  411. sAufko.iSamm_Nr = 0
  412. sAufko.iRecid = RECID(Aufko)
  413. sAufko.iFaknr = 0.
  414. END.
  415. /* Alle Auftragstotale aller Lieferscheine neu rechnen */
  416. FOR EACH sAufko:
  417. FOR EACH bAufko NO-LOCK
  418. WHERE bAufko.Firma = sAufko.cFirma
  419. AND bAufko.Samm_Nr = sAufko.iSamm_Nr
  420. AND bAufko.Fak_Knr = sAufko.iFak_Knr
  421. AND bAufko.Lief_Datum >= tParam.dvonDatum
  422. AND bAufko.Lief_Datum <= tParam.dbisDatum:
  423. DYNAMIC-FUNCTION('calculateAuftragsTotal':U, bAufko.Firma,
  424. bAufko.Aufnr,
  425. OUTPUT nTotale ) NO-ERROR.
  426. RELEASE bAufko.
  427. END.
  428. END.
  429. END PROCEDURE.
  430. /* _UIB-CODE-BLOCK-END */
  431. &ANALYZE-RESUME
  432. &ENDIF
  433. &IF DEFINED(EXCLUDE-DRUCKEN) = 0 &THEN
  434. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN Procedure
  435. PROCEDURE DRUCKEN :
  436. /*------------------------------------------------------------------------------
  437. Purpose:
  438. Parameters: <none>
  439. Notes:
  440. ------------------------------------------------------------------------------*/
  441. DEF VAR cLAdresse AS CHAR NO-UNDO.
  442. DEF VAR RText AS CHAR NO-UNDO.
  443. DEF VAR WText AS CHAR NO-UNDO.
  444. DEF VAR ii AS INT NO-UNDO.
  445. DEF VAR i1 AS INT NO-UNDO.
  446. DEF VAR nRabWert AS DEC NO-UNDO.
  447. DEF VAR iMwstCd AS INT NO-UNDO.
  448. DEF VAR nZeiTot AS DEC DECIMALS 4 NO-UNDO.
  449. DEF VAR cDaten AS CHAR NO-UNDO.
  450. FIND FIRST tParam.
  451. nFakBetr = 0.
  452. iZeile = 5.
  453. IF iSeite = 0 THEN RUN EXCEL_INIT.
  454. IF RETURN-VALUE <> '' THEN
  455. DO:
  456. MESSAGE 'Problem beim Öffnen von Excel und/oder Vorlage'
  457. VIEW-AS ALERT-BOX.
  458. RETURN 'ERROR'.
  459. END.
  460. FIND bAdresse NO-LOCK
  461. WHERE bAdresse.Firma = AdFirma
  462. AND bAdresse.Knr = bAufko.Knr NO-ERROR.
  463. FIND LDebst NO-LOCK
  464. WHERE LDebst.Firma = cFirma
  465. AND LDebst.Knr = bAufko.Knr NO-ERROR.
  466. FIND FDebst NO-LOCK
  467. WHERE FDebst.Firma = cFirma
  468. AND FDebst.Knr = bAufko.Fak_Knr NO-ERROR.
  469. FIND Wust NO-LOCK
  470. WHERE Wust.CodeK = LDebst.MWST
  471. AND Wust.CodeA = 99 NO-ERROR.
  472. iSprcd = bAdresse.Sprcd.
  473. IF bAufko.Adresse[05] <> '' THEN
  474. DO:
  475. DO ii = 1 TO 5:
  476. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'E',
  477. INPUT iZeile, INPUT bAufko.Adresse[ii] ).
  478. iZeile = iZeile + 1.
  479. END.
  480. END.
  481. ELSE
  482. DO:
  483. DO ii = 7 TO 11:
  484. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'E',
  485. INPUT iZeile, INPUT bAdresse.Anschrift[ii] ).
  486. iZeile = iZeile + 1.
  487. END.
  488. END.
  489. cDaten = STRING(dFakDatum,'99.99.9999').
  490. iZeile = iZeile + 2.
  491. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  492. INPUT iZeile, INPUT cDaten ).
  493. iZeile = iZeile + 3.
  494. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  495. INPUT iZeile, INPUT STRING(iFaknr,'>999999') ).
  496. iZeile = iZeile + 2.
  497. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  498. INPUT iZeile, INPUT bAufko.U_Ref ).
  499. iZeile = 21.
  500. FOR EACH tAufze NO-LOCK
  501. BY tAufze.Aufnr
  502. BY tAufze.Sort1
  503. BY tAufze.LagOrt
  504. BY tAufze.Sort2
  505. BY tAufze.Pos :
  506. FIND Aufze NO-LOCK WHERE RECID(Aufze) = tAufze.Zeile.
  507. RUN ARTIKELZEILE ( RECID(tAufze) ).
  508. iZeile = iZeile + 1.
  509. nFakBetr = nFakBetr + Aufze.Net_Betr.
  510. RELEASE Aufze.
  511. END.
  512. iZeile = iZeile + 1.
  513. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  514. INPUT iZeile, INPUT cFormText[13] ).
  515. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  516. INPUT iZeile, TRIM(STRING(nFakBetr,"->>>>9.99")) ).
  517. RUN SUMMENRABATTE.
  518. RUN GEBINDE_SALDO.
  519. RUN GEBINDE_ABRECHNUNG.
  520. RUN MEHRWERTSTEUER.
  521. iZeile = iZeile + 1.
  522. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  523. INPUT iZeile, TRIM(SUBSTRING(cFormText[15],21,20)) ).
  524. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  525. INPUT iZeile, TRIM(STRING(nFakBetr,'->>>>>9.99')) ).
  526. iZeile = iZeile + 2.
  527. FIND Kondi USE-INDEX Kondi-k1
  528. WHERE Kondi.Kond = bAufko.Kond
  529. AND Kondi.Sprcd = iSprcd NO-LOCK NO-ERROR.
  530. IF AVAILABLE Kondi THEN
  531. DO:
  532. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  533. INPUT iZeile, Kondi.Kotext ).
  534. END.
  535. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT hExcel ).
  536. END PROCEDURE.
  537. /* _UIB-CODE-BLOCK-END */
  538. &ANALYZE-RESUME
  539. &ENDIF
  540. &IF DEFINED(EXCLUDE-EXCEL_INIT) = 0 &THEN
  541. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_INIT Procedure
  542. PROCEDURE EXCEL_INIT :
  543. /*------------------------------------------------------------------------------
  544. Purpose:
  545. Parameters: <none>
  546. Notes:
  547. ------------------------------------------------------------------------------*/
  548. DEF VAR cVorlage AS CHAR NO-UNDO.
  549. DEF VAR lRetVal AS LOG NO-UNDO.
  550. FIND FIRST tParam.
  551. hExcel = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  552. IF NOT VALID-HANDLE(hExcel) THEN RETURN 'ERROR'.
  553. cVorlage = tParam.Template + CHR(01) + tParam.Template.
  554. RUN CREATEDATEI ( INPUT cVorlage ).
  555. cVorlage = SESSION:TEMP-DIR + tParam.Template.
  556. RUN OPENEXCEL ( INPUT hExcel,
  557. INPUT cVorlage,
  558. INPUT '',
  559. OUTPUT lRetVal ).
  560. IF NOT lRetVal THEN
  561. DO:
  562. RUN RELEASEEXCEL ( INPUT hExcel ).
  563. RETURN 'ERROR'.
  564. END.
  565. RETURN ''.
  566. END PROCEDURE.
  567. /* _UIB-CODE-BLOCK-END */
  568. &ANALYZE-RESUME
  569. &ENDIF
  570. &IF DEFINED(EXCLUDE-FUELLEN_tAufze) = 0 &THEN
  571. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_tAufze Procedure
  572. PROCEDURE FUELLEN_tAufze :
  573. /*------------------------------------------------------------------------------
  574. Purpose:
  575. Parameters: <none>
  576. Notes:
  577. ------------------------------------------------------------------------------*/
  578. DEF INPUT PARAMETER ipAufnr AS INT NO-UNDO.
  579. DEF VAR minPos AS INT NO-UNDO.
  580. DEF VAR maxPos AS INT NO-UNDO.
  581. DEF VAR jPlatz AS INT NO-UNDO.
  582. DEF VAR cLagOrt AS CHAR NO-UNDO.
  583. DEF VAR iRuestArt AS INT NO-UNDO.
  584. DEF VAR iPlusMinus AS INT NO-UNDO.
  585. DEF VAR lArtikel AS LOG NO-UNDO.
  586. EMPTY TEMP-TABLE tAufze.
  587. FIND Steuer NO-LOCK
  588. WHERE Steuer.Firma = cFirma NO-ERROR.
  589. IF AVAILABLE Steuer THEN iRuestArt = Steuer.RuestArt.
  590. ASSIGN
  591. minPos = 0
  592. maxPos = 9999
  593. iPlusMinus = 0.
  594. /* Kommentar zu Beginn eines Auftrages */
  595. lArtikel = FALSE.
  596. FOR EACH Aufze NO-LOCK
  597. WHERE Aufze.Firma = cFirma
  598. AND Aufze.Aufnr = ipAufnr
  599. AND Aufze.Pos > minPos:
  600. IF Aufze.Artnr > 0 THEN
  601. DO:
  602. lArtikel = TRUE.
  603. LEAVE.
  604. END.
  605. minPos = Aufze.Pos.
  606. CREATE tAufze.
  607. ASSIGN
  608. tAufze.Aufnr = Aufze.Aufnr
  609. tAufze.Artnr = Aufze.Artnr
  610. tAufze.Inhalt = Aufze.Inhalt
  611. tAufze.Jahr = Aufze.Jahr
  612. tAufze.Pos = Aufze.Pos
  613. tAufze.Zeile = RECID(Aufze)
  614. tAufze.Aktion = Aufze.Aktion
  615. tAufze.Preis = Aufze.Preis
  616. tAufze.MGeli = Aufze.MGeli
  617. tAufze.MRuek = Aufze.MRuek.
  618. ASSIGN
  619. tAufze.Sort1 = STRING(0,'99')
  620. tAufze.Sort2 = ''
  621. tAufze.Sort3 = STRING(tAufze.Artnr ,'999999')
  622. + STRING(tAufze.Inhalt,'9999')
  623. + STRING(tAufze.Jahr ,'9999')
  624. + STRING(iPlusMinus ,'9')
  625. + STRING(tAufze.Pos ,'99999').
  626. tAufze.LagOrt = ''.
  627. END.
  628. /* Kommentar am Ende eines Auftrages */
  629. IF lArtikel THEN
  630. DO:
  631. FOR EACH Aufze NO-LOCK
  632. WHERE Aufze.Firma = cFirma
  633. AND Aufze.Aufnr = ipAufnr
  634. BY Aufze.Pos DESCENDING:
  635. IF Aufze.Artnr > 0 THEN LEAVE.
  636. maxPos = Aufze.Pos.
  637. CREATE tAufze.
  638. ASSIGN
  639. tAufze.Aufnr = Aufze.Aufnr
  640. tAufze.Artnr = Aufze.Artnr
  641. tAufze.Inhalt = Aufze.Inhalt
  642. tAufze.Jahr = Aufze.Jahr
  643. tAufze.Pos = Aufze.Pos
  644. tAufze.Zeile = RECID(Aufze)
  645. tAufze.Aktion = Aufze.Aktion
  646. tAufze.Preis = Aufze.Preis
  647. tAufze.MGeli = Aufze.MGeli
  648. tAufze.MRuek = Aufze.MRuek.
  649. ASSIGN
  650. tAufze.Sort1 = STRING(0,'99')
  651. tAufze.Sort2 = ''
  652. tAufze.Sort3 = STRING(tAufze.Artnr ,'999999')
  653. + STRING(tAufze.Inhalt,'9999')
  654. + STRING(tAufze.Jahr ,'9999')
  655. + STRING(iPlusMinus ,'9')
  656. + STRING(tAufze.Pos ,'99999').
  657. tAufze.LagOrt = ''.
  658. END.
  659. END.
  660. /* Artikelzeilen nach Ruestplatz und Ort */
  661. cLagOrt = ''.
  662. FOR EACH Aufze NO-LOCK
  663. WHERE Aufze.Firma = cFirma
  664. AND Aufze.Aufnr = ipAufnr
  665. AND Aufze.Pos > minPos
  666. AND Aufze.Pos < MaxPos
  667. BY Aufze.Pos DESCENDING:
  668. IF Aufze.Artnr > 0 THEN
  669. DO:
  670. FIND ArtLager NO-LOCK
  671. WHERE ArtLager.Firma = Aufze.Firma
  672. AND ArtLager.Artnr = Aufze.Artnr
  673. AND ArtLager.Inhalt = Aufze.Inhalt
  674. AND ArtLager.Jahr = Aufze.Jahr
  675. AND ArtLager.Lager = Aufze.Lager.
  676. cLagOrt = ArtLager.Ort.
  677. END.
  678. iPlusMinus = (IF Aufze.MGeli < 0 THEN 1 ELSE 0).
  679. FIND LAST RuestPlatz USE-INDEX RuestPlatz-k2
  680. WHERE RuestPlatz.Firma = Aufze.Firma
  681. AND RuestPlatz.RuestArt = iRuestArt
  682. AND RuestPlatz.abLagOrt <= cLagOrt NO-ERROR.
  683. IF NOT AVAILABLE RuestPlatz THEN jPlatz = 90.
  684. ELSE jPlatz = RuestPlatz.Platz.
  685. CREATE tAufze.
  686. ASSIGN
  687. tAufze.Aufnr = Aufze.Aufnr
  688. tAufze.Artnr = Aufze.Artnr
  689. tAufze.Inhalt = Aufze.Inhalt
  690. tAufze.Jahr = Aufze.Jahr
  691. tAufze.Pos = Aufze.Pos
  692. tAufze.Zeile = RECID(Aufze)
  693. tAufze.Aktion = Aufze.Aktion
  694. tAufze.Preis = Aufze.Preis
  695. tAufze.MGeli = Aufze.MGeli
  696. tAufze.MRuek = Aufze.MRuek.
  697. ASSIGN
  698. tAufze.Sort1 = STRING(jPlatz,'99')
  699. tAufze.Sort2 = cLagOrt
  700. tAufze.Sort3 = STRING(tAufze.Artnr ,'999999')
  701. + STRING(tAufze.Inhalt,'9999')
  702. + STRING(tAufze.Jahr ,'9999')
  703. + STRING(iPlusMinus ,'9')
  704. + STRING(tAufze.Pos ,'99999').
  705. tAufze.LagOrt = cLagort.
  706. IF tAufze.Artnr > 0 AND
  707. tAufze.MGeli = 0 THEN DELETE tAufze.
  708. END.
  709. END PROCEDURE.
  710. /* _UIB-CODE-BLOCK-END */
  711. &ANALYZE-RESUME
  712. &ENDIF
  713. &IF DEFINED(EXCLUDE-GEBINDE_ABRECHNUNG) = 0 &THEN
  714. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_ABRECHNUNG Procedure
  715. PROCEDURE GEBINDE_ABRECHNUNG :
  716. /*------------------------------------------------------------------------------
  717. Purpose:
  718. Parameters: <none>
  719. Notes:
  720. ------------------------------------------------------------------------------*/
  721. DEF VAR cDaten AS CHAR NO-UNDO.
  722. DEF VAR lTotal AS LOG NO-UNDO.
  723. DEF VAR nBetrag AS DEC NO-UNDO.
  724. DEF VAR i1 AS INT NO-UNDO.
  725. DEF VAR i2 AS INT NO-UNDO.
  726. DEF VAR iMwstCd AS INT NO-UNDO.
  727. DEF VAR nZTot AS DEC NO-UNDO.
  728. lTotal = FALSE.
  729. i2 = 0.
  730. nZTot = 0.
  731. FOR EACH AufGKon NO-LOCK
  732. WHERE AufGKon.Firma = BAufko.Firma
  733. AND AufGKon.Aufnr = BAufko.Aufnr
  734. AND AufGKon.Gebuehr <> 0
  735. AND AufGKon.Betrag <> 0 :
  736. iMwstCd = AufGKon.MWST_Cd.
  737. IF i2 = 0 THEN iZeile = iZeile + 2.
  738. ELSE iZeile = iZeile + 1.
  739. FIND GebKonto NO-LOCK
  740. WHERE GebKonto.Firma = cFirma
  741. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd.
  742. i1 = AufGKon.Ausgang.
  743. IF AufGKon.Depot = 0 AND
  744. AufGKon.Gebuehr = 0 THEN nBetrag = GebKonto.Gebuehr.
  745. ELSE nBetrag = AufGKon.Gebuehr.
  746. Rundbetr = i1 * nBetrag.
  747. iMwstCd = AufGKon.MWSt_Cd.
  748. nZTot = nZTot + Rundbetr.
  749. cDaten = GebKonto.Bez.
  750. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  751. INPUT iZeile, INPUT cDaten ).
  752. cDaten = TRIM(STRING(AufGKon.Ausgang,"->>>>9")).
  753. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  754. INPUT iZeile, INPUT cDaten ).
  755. cDaten = TRIM(STRING(nBetrag,"->>>>9.999")).
  756. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'H',
  757. INPUT iZeile, INPUT cDaten ).
  758. cDaten = TRIM(STRING(Rundbetr,"->>>>9.999")).
  759. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  760. INPUT iZeile, INPUT cDaten ).
  761. cDaten = TRIM(STRING(iMwstCd,"z9")).
  762. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'J',
  763. INPUT iZeile, INPUT cDaten ).
  764. i2 = i2 + 1.
  765. END.
  766. IF i2 > 0 THEN lTotal = TRUE.
  767. IF lTotal THEN
  768. DO:
  769. iZeile = iZeile + 2.
  770. cDaten = TRIM(SUBSTRING(cFormText[11],41,20)).
  771. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  772. INPUT iZeile, INPUT cDaten ).
  773. cdaten = TRIM(STRING(nZTot,"->>>>9.99")).
  774. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  775. INPUT iZeile, INPUT cDaten ).
  776. nFakBetr = nFakBetr + nZTot.
  777. END.
  778. RELEASE AufGKon.
  779. lTotal = FALSE.
  780. i2 = 0.
  781. nZTot = 0.
  782. IF FDebst.Geb_Rg THEN
  783. DO:
  784. FOR EACH AufGKon NO-LOCK
  785. WHERE AufGKon.Firma = BAufko.Firma
  786. AND AufGKon.Aufnr = BAufko.Aufnr
  787. AND AufGKon.Depot <> 0
  788. AND AufGKon.Betrag <> 0 :
  789. IF AufGKon.Eingang = 0 AND
  790. AufGKon.Ausgang = 0 THEN NEXT.
  791. IF i2 = 0 THEN iZeile = iZeile + 2.
  792. ELSE iZeile = iZeile + 1.
  793. FIND GebKonto NO-LOCK
  794. WHERE GebKonto.Firma = cFirma
  795. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd.
  796. i1 = AufGKon.Ausgang.
  797. IF AufGKon.Depot = 0 AND
  798. AufGKon.Gebuehr = 0 THEN nBetrag = GebKonto.Depot.
  799. ELSE nBetrag = AufGKon.Depot.
  800. Rundbetr = i1 * nBetrag.
  801. iMwstCd = AufGKon.MWSt_Cd.
  802. nZTot = nZTot + Rundbetr.
  803. cDaten = GebKonto.Bez.
  804. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  805. INPUT iZeile, INPUT cDaten ).
  806. cDaten = TRIM(STRING(AufGKon.Ausgang,"->>>>9")).
  807. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  808. INPUT iZeile, INPUT cDaten ).
  809. cDaten = TRIM(STRING(nBetrag,"->>>>9.999")).
  810. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'H',
  811. INPUT iZeile, INPUT cDaten ).
  812. cDaten = TRIM(STRING(Rundbetr,"->>>>9.999")).
  813. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  814. INPUT iZeile, INPUT cDaten ).
  815. cDaten = TRIM(STRING(iMwstCd,"z9")).
  816. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'J',
  817. INPUT iZeile, INPUT cDaten ).
  818. i2 = i2 + 1.
  819. END.
  820. IF i2 > 0 THEN lTotal = TRUE.
  821. IF lTotal THEN
  822. DO:
  823. iZeile = iZeile + 2.
  824. cDaten = TRIM(SUBSTRING(cFormText[11],21,20)).
  825. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  826. INPUT iZeile, INPUT cDaten ).
  827. cDaten = TRIM(STRING(nZTot,"->>>>9.99")).
  828. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  829. INPUT iZeile, INPUT cDaten ).
  830. nFakBetr = nFakBetr + nZTot.
  831. END.
  832. END.
  833. iZeile = iZeile + 2.
  834. cDaten = TRIM(SUBSTRING(cFormText[15],21,20)).
  835. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  836. INPUT iZeile, INPUT cDaten ).
  837. cDaten = TRIM(STRING(nFakBetr,"->>>>9.99")).
  838. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  839. INPUT iZeile, INPUT cDaten ).
  840. END PROCEDURE.
  841. /* _UIB-CODE-BLOCK-END */
  842. &ANALYZE-RESUME
  843. &ENDIF
  844. &IF DEFINED(EXCLUDE-GEBINDE_SALDO) = 0 &THEN
  845. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_SALDO Procedure
  846. PROCEDURE GEBINDE_SALDO :
  847. /*------------------------------------------------------------------------------
  848. Purpose:
  849. Parameters: <none>
  850. Notes:
  851. ------------------------------------------------------------------------------*/
  852. FOR EACH AufGKon NO-LOCK
  853. WHERE AufGKon.Firma = BAufko.Firma
  854. AND AufGKon.Aufnr = BAufko.Aufnr
  855. AND AufGKon.Gebuehr = 0
  856. AND AufGKon.Depot <> 0
  857. AND AufGKon.Betrag <> 0 :
  858. FIND FIRST tGebKto
  859. WHERE tGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR.
  860. IF NOT AVAILABLE tGebKto THEN
  861. DO:
  862. FIND GebKonto NO-LOCK
  863. WHERE GebKonto.Firma = AufGKon.Firma
  864. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd .
  865. CREATE tGebKto.
  866. ASSIGN
  867. tGebKto.Sort_Cd = GebKonto.Sort_Cd
  868. tGebKto.Geb_Cd = GebKonto.Geb_Cd
  869. tGebKto.Bez = GebKonto.Bez
  870. tGebKto.Preis = AufGKon.Depot
  871. tGebKto.MWST_Cd = AufGKon.MWSt_Cd.
  872. END.
  873. tGebKto.A_Anz = tGebKto.A_Anz + AufGKon.Ausgang.
  874. tGebKto.A_Betrag = tGebKto.A_Anz * tGebKto.Preis.
  875. tGebKto.E_Anz = tGebKto.E_Anz + AufGKon.Eingang.
  876. tGebKto.E_Betrag = tGebKto.E_Anz * tGebKto.Preis.
  877. END.
  878. END PROCEDURE.
  879. /* _UIB-CODE-BLOCK-END */
  880. &ANALYZE-RESUME
  881. &ENDIF
  882. &IF DEFINED(EXCLUDE-MEHRWERTSTEUER) = 0 &THEN
  883. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MEHRWERTSTEUER Procedure
  884. PROCEDURE MEHRWERTSTEUER :
  885. /*------------------------------------------------------------------------------
  886. Purpose:
  887. Parameters: <none>
  888. Notes:
  889. ------------------------------------------------------------------------------*/
  890. DEF VAR cDaten AS CHAR NO-UNDO.
  891. DEF VAR ix AS INT NO-UNDO.
  892. iZeile = iZeile + 1.
  893. DO ix = 1 TO 11:
  894. IF bAufko.Wpfl[ix] = 0 THEN NEXT.
  895. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  896. WHERE MWSTAns.MWST_Cd = ix
  897. AND MWSTAns.Datum <= BAUfko.Kond_Datum NO-LOCK.
  898. iZeile = iZeile + 1.
  899. cDaten = MWSTAns.Bez.
  900. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  901. INPUT iZeile, INPUT cDaten ).
  902. cDaten = TRIM(STRING(bAufko.Wpfl[ix],"->>,>>9.99")).
  903. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'H',
  904. INPUT iZeile, INPUT cDaten ).
  905. cDaten = TRIM(STRING(bAufko.Wust[ix],"->>,>>9.99")).
  906. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  907. INPUT iZeile, INPUT cDaten ).
  908. cDaten = TRIM(STRING(ix,"z9")).
  909. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'J',
  910. INPUT iZeile, INPUT cDaten ).
  911. nFakBetr = nFakBetr + bAufko.Wust[ix].
  912. END.
  913. Rundbetr = nFakBetr.
  914. Rundcode = 1.
  915. RUN RUNDEN ( Rundcode, INPUT-OUTPUT Rundbetr ).
  916. nFakBetr = Rundbetr.
  917. iZeile = iZeile + 2.
  918. cDaten = TRIM(cFormText[16]).
  919. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  920. INPUT iZeile, INPUT cDaten ).
  921. cDaten = TRIM(STRING(nFakBetr,"->>,>>9.99")).
  922. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  923. INPUT iZeile, INPUT cDaten ).
  924. END PROCEDURE.
  925. /* _UIB-CODE-BLOCK-END */
  926. &ANALYZE-RESUME
  927. &ENDIF
  928. &IF DEFINED(EXCLUDE-SUMMENRABATTE) = 0 &THEN
  929. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUMMENRABATTE Procedure
  930. PROCEDURE SUMMENRABATTE :
  931. /*------------------------------------------------------------------------------
  932. Purpose:
  933. Parameters: <none>
  934. Notes:
  935. ------------------------------------------------------------------------------*/
  936. DEF VAR RText AS CHAR FORMAT "x(20)" NO-UNDO.
  937. DEF VAR WText AS CHAR NO-UNDO.
  938. DEF VAR cDaten AS CHAR NO-UNDO.
  939. DEF VAR lTotal AS LOG NO-UNDO.
  940. DEF VAR lRabatt AS LOG NO-UNDO.
  941. DEF VAR iPlus AS INT NO-UNDO.
  942. DEF VAR nRabWert AS DEC NO-UNDO.
  943. DEF VAR iMwstCd AS INT NO-UNDO.
  944. /* Auftragsrabatt ---------------------------------------------------- */
  945. lTotal = FALSE.
  946. iPlus = 0.
  947. FOR EACH tRabSumm
  948. WHERE tRabSumm.Auf_Rab <> 0
  949. BY tRabSumm.Rab_Summ:
  950. Rundbetr = tRabSumm.Auf_Rab.
  951. nFakBetr = nFakBetr - Rundbetr.
  952. IF NOT lRabatt THEN NEXT.
  953. IF iPlus = 0 THEN iZeile = iZeile + 2.
  954. ELSE iZeile = iZeile + 1.
  955. IF Rundbetr < 0 THEN RText = cZusText.
  956. ELSE RText = cRabText.
  957. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1
  958. WHERE AufRabSu.Firma = bAufko.Firma
  959. AND AufRabSu.Aufnr = bAufko.Aufnr
  960. AND AufRabSu.Rab_Summ = tRabSumm.Rab_Summ.
  961. IF AufRabSu.F_Proz_Betr THEN WText = "%".
  962. ELSE WText = "Fr.".
  963. nRabWert = ABSOLUT(AufRabSu.F_Wert).
  964. cDaten = RText
  965. + " "
  966. + tRabSumm.Bez
  967. + " "
  968. + STRING(nRabWert,"z9.99- ")
  969. + WText.
  970. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  971. INPUT iZeile, INPUT cDaten ).
  972. cDaten = STRING(- Rundbetr,"->>>>9.99").
  973. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  974. INPUT iZeile, INPUT cDaten ).
  975. iPlus = iPlus + 1.
  976. END.
  977. IF iPlus > 0 THEN lTotal = TRUE.
  978. /* Abholrabatt ------------------------------------------------------- */
  979. iPlus = 0.
  980. FOR EACH tRabSumm
  981. WHERE tRabSumm.Abh_Rab <> 0
  982. BY tRabSumm.Rab_Summ:
  983. Rundbetr = tRabSumm.Abh_Rab.
  984. nFakBetr = nFakBetr - Rundbetr.
  985. IF NOT lRabatt THEN NEXT.
  986. IF iPlus = 0 THEN iZeile = iZeile + 2.
  987. ELSE iZeile = iZeile + 1.
  988. IF Rundbetr < 0 THEN RText = cZusText.
  989. ELSE RText = cRabText.
  990. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1
  991. WHERE AufRabSu.Firma = bAufko.Firma
  992. AND AufRabSu.Aufnr = bAufko.Aufnr
  993. AND AufRabSu.Rab_Summ = tRabSumm.Rab_Summ.
  994. IF AufRabSu.A_Proz_Betr THEN WText = "%".
  995. ELSE WText = "Fr.".
  996. nRabWert = ABSOLUT(AufRabSu.A_Wert).
  997. cDaten = RText
  998. + " "
  999. + tRabSumm.Bez
  1000. + " "
  1001. + STRING(nRabWert,"z9.99- ")
  1002. + WText.
  1003. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  1004. INPUT iZeile, INPUT cDaten ).
  1005. cDaten = STRING(- Rundbetr,"->>>>9.99").
  1006. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  1007. INPUT iZeile, INPUT cDaten ).
  1008. iPlus = iPlus + 1.
  1009. END.
  1010. IF iPlus > 0 THEN lTotal = TRUE.
  1011. /* Spezialpreis-Auftragsrabatte ---------------------------------------- */
  1012. iPlus = 0.
  1013. FOR EACH tSpeRab
  1014. WHERE tSpeRab.Auf_Betr <> 0
  1015. BY tSpeRab.Rab_Grp:
  1016. Rundbetr = tSpeRab.Auf_Betr.
  1017. nFakBetr = nFakBetr - Rundbetr.
  1018. IF NOT lRabatt THEN NEXT.
  1019. IF iPlus = 0 THEN iZeile = iZeile + 2.
  1020. ELSE iZeile = iZeile + 1.
  1021. IF Rundbetr < 0 THEN RText = cZusText.
  1022. ELSE RText = cRabText.
  1023. FIND Tabel NO-LOCK
  1024. WHERE Tabel.Firma = cFirma
  1025. AND Tabel.RecArt = 'ARABGRP'
  1026. AND Tabel.CodeC = ''
  1027. AND Tabel.CodeI = tSpeRab.Rab_Grp
  1028. AND Tabel.Sprcd = 1 .
  1029. FIND FIRST AufSpRab NO-LOCK
  1030. WHERE AufSpRab.Firma = bAufko.Firma
  1031. AND AufSpRab.Aufnr = bAufko.Aufnr
  1032. AND AufSpRab.Rab_Grp = tSpeRab.Rab_Grp.
  1033. IF AufSpRab.Auf_Proz_Betr THEN WText = "%".
  1034. ELSE WText = "Fr.".
  1035. nRabWert = ABSOLUT(AufSpRab.Auf_Wert).
  1036. cDaten = RText
  1037. + " "
  1038. + tRabSumm.Bez
  1039. + " "
  1040. + STRING(nRabWert,"z9.99- ")
  1041. + WText.
  1042. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  1043. INPUT iZeile, INPUT cDaten ).
  1044. cDaten = STRING(- Rundbetr,"->>>>9.99").
  1045. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  1046. INPUT iZeile, INPUT cDaten ).
  1047. iPlus = iPlus + 1.
  1048. END.
  1049. IF iPlus > 0 THEN lTotal = TRUE.
  1050. IF lTotal THEN
  1051. DO:
  1052. iZeile = iZeile + 1.
  1053. cDaten = TRIM(SUBSTRING(cFormText[14],21,20)).
  1054. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  1055. INPUT iZeile, INPUT cDaten ).
  1056. cDaten = TRIM(STRING(nFakBetr,"->>>>9.99")).
  1057. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  1058. INPUT iZeile, INPUT cDaten ).
  1059. END.
  1060. /* Recycling-Gebühren ------------------------------------------------ */
  1061. /* lTotal = FALSE. */
  1062. /* iPlus = 0. */
  1063. /* FOR EACH AufGKon NO-LOCK */
  1064. /* WHERE AufGKon.Firma = bAufko.Firma */
  1065. /* AND AufGKon.Aufnr = bAufko.Aufnr */
  1066. /* AND AufGKon.Gebuehr <> 0 */
  1067. /* AND AufGKon.Betrag <> 0 : */
  1068. /* nFakBetr = nFakBetr + AufGKon.Betrag. */
  1069. /* IF NOT lRabatt THEN NEXT. */
  1070. /* */
  1071. /* IF iPlus = 0 THEN iZeile = iZeile + 2. */
  1072. /* ELSE iZeile = iZeile + 1. */
  1073. /* */
  1074. /* iMwstCd = AufGKon.MWSt_Cd. */
  1075. /* FIND GebKonto OF AufGKon NO-LOCK NO-ERROR. */
  1076. /* IF NOT AVAILABLE GebKonto THEN cDaten = TRIM(SUBSTRING(cFormText[11],41,20)).*/
  1077. /* ELSE cDaten = GebKonto.Bez. */
  1078. /* RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D', */
  1079. /* INPUT iZeile, INPUT cDaten ). */
  1080. /* */
  1081. /* cDaten = TRIM(STRING(AufGKon.Ausgang,"->>>>>9")). */
  1082. /* RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'H', */
  1083. /* INPUT iZeile, INPUT cDaten ). */
  1084. /* */
  1085. /* cDaten = TRIM(STRING(AufGKon.Betrag,"->>>>9.99")). */
  1086. /* RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I', */
  1087. /* INPUT iZeile, INPUT cDaten ). */
  1088. /* */
  1089. /* cDaten = TRIM(STRING(AufGKon.MWSt_Cd ,"z9")). */
  1090. /* RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'J', */
  1091. /* INPUT iZeile, INPUT cDaten ). */
  1092. /* iPlus = iPlus + 1. */
  1093. /* END. */
  1094. /* IF iPlus > 0 THEN lTotal = TRUE. */
  1095. /* */
  1096. /* IF lTotal THEN */
  1097. /* DO: */
  1098. /* iZeile = iZeile + 1. */
  1099. /* cDaten = TRIM(SUBSTRING(cFormText[14],21,20)). */
  1100. /* RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D', */
  1101. /* INPUT iZeile, INPUT cDaten ). */
  1102. /* cDaten = TRIM(STRING(nFakBetr,"->>>>9.99")). */
  1103. /* RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I', */
  1104. /* INPUT iZeile, INPUT cDaten ). */
  1105. /* END. */
  1106. END PROCEDURE.
  1107. /* _UIB-CODE-BLOCK-END */
  1108. &ANALYZE-RESUME
  1109. &ENDIF