Faktura.p 53 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568
  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. DEFINE INPUT PARAMETER iphParam AS HANDLE NO-UNDO.
  17. DEFINE OUTPUT PARAMETER opcResult AS CHARACTER NO-UNDO.
  18. DEFINE VARIABLE iSeite AS INTEGER NO-UNDO.
  19. DEFINE VARIABLE iAnzDok AS INTEGER NO-UNDO.
  20. DEFINE VARIABLE iLauf AS INTEGER NO-UNDO.
  21. DEFINE VARIABLE lFirst AS LOG INIT FALSE NO-UNDO.
  22. DEFINE VARIABLE lLast AS LOG INIT FALSE NO-UNDO.
  23. DEFINE VARIABLE lPreis AS LOG NO-UNDO.
  24. DEFINE VARIABLE cFirma AS CHARACTER NO-UNDO.
  25. DEFINE VARIABLE AdFirma AS CHARACTER NO-UNDO.
  26. DEFINE VARIABLE nFakBetr AS DECIMAL NO-UNDO.
  27. DEFINE VARIABLE dFakDatum AS DATE NO-UNDO.
  28. DEFINE VARIABLE iFaknr AS INTEGER NO-UNDO.
  29. DEFINE VARIABLE iSprcd AS INTEGER NO-UNDO.
  30. DEFINE VARIABLE nTotale AS DECIMAL EXTENT 15 NO-UNDO.
  31. DEFINE VARIABLE cFormtext AS CHARACTER EXTENT 30 NO-UNDO.
  32. DEFINE VARIABLE cRabText AS CHARACTER NO-UNDO.
  33. DEFINE VARIABLE cZusText AS CHARACTER NO-UNDO.
  34. DEFINE VARIABLE cEpzText AS CHARACTER NO-UNDO.
  35. DEFINE VARIABLE cBesrKopf AS CHARACTER EXTENT 12 NO-UNDO.
  36. DEFINE VARIABLE lDebIncl AS LOG NO-UNDO.
  37. DEFINE VARIABLE Rundbetr AS DECIMAL DECIMALS 4 NO-UNDO.
  38. DEFINE VARIABLE RundCode AS INTEGER INIT 1 NO-UNDO.
  39. DEFINE VARIABLE htTabTexte AS HANDLE NO-UNDO.
  40. DEFINE VARIABLE hAufko AS HANDLE NO-UNDO.
  41. DEFINE VARIABLE cExcelDocument AS CHARACTER NO-UNDO.
  42. DEFINE VARIABLE cVPRDocument AS CHARACTER NO-UNDO.
  43. DEFINE VARIABLE cPDFDocument AS CHARACTER NO-UNDO.
  44. DEFINE VARIABLE cInstallation AS CHARACTER NO-UNDO.
  45. DEFINE VARIABLE cFileName AS CHARACTER NO-UNDO.
  46. DEFINE VARIABLE iBesrArt AS INTEGER NO-UNDO.
  47. DEFINE VARIABLE lJa AS LOGICAL NO-UNDO.
  48. DEFINE BUFFER bAufko FOR Aufko .
  49. DEFINE BUFFER bAufze FOR Aufze .
  50. DEFINE BUFFER FDebst FOR Debst . /* Fakturaadresse */
  51. DEFINE BUFFER LDebst FOR Debst . /* Lieferadresse */
  52. DEFINE BUFFER LAdresse FOR Adresse .
  53. DEFINE BUFFER bAdresse FOR Adresse .
  54. DEFINE BUFFER bWust FOR Wust .
  55. DEFINE BUFFER bSteuer FOR Steuer .
  56. DEFINE VARIABLE hExcel AS COMPONENT-HANDLE NO-UNDO.
  57. DEFINE VARIABLE cZelle AS CHARACTER NO-UNDO.
  58. DEFINE VARIABLE iZeile AS INTEGER NO-UNDO.
  59. { incl/properties.i }
  60. { incl/ttdruckparam.i }
  61. { swissqr/propertiesSwissQR.i }
  62. DEFINE TEMP-TABLE tTotale
  63. FIELD nMwstPfl AS DECIMAL EXTENT 12
  64. FIELD nMwstBet AS DECIMAL EXTENT 12
  65. FIELD nSammTot AS DECIMAL
  66. FIELD nSkBer AS DECIMAL
  67. FIELD nWW AS DECIMAL
  68. .
  69. DEFINE TEMP-TABLE sAufko
  70. FIELD cFirma AS CHARACTER
  71. FIELD iAufnr AS INTEGER
  72. FIELD iFak_Knr AS INTEGER
  73. FIELD iSamm_Nr AS INTEGER
  74. FIELD iRecid AS RECID
  75. FIELD iFaknr AS INTEGER
  76. FIELD dFakDat AS DATE
  77. .
  78. DEFINE TEMP-TABLE tAufko LIKE Aufko
  79. FIELD iRecid AS RECID
  80. FIELD lBetrag AS LOGICAL
  81. .
  82. DEFINE TEMP-TABLE tAufze
  83. FIELD Aufnr AS INTEGER
  84. FIELD Sort1 AS CHARACTER
  85. FIELD Sort2 AS CHARACTER
  86. FIELD Sort3 AS CHARACTER
  87. FIELD Artnr AS INTEGER
  88. FIELD Inhalt AS INTEGER
  89. FIELD Jahr AS INTEGER
  90. FIELD Pos AS INTEGER
  91. FIELD Zeile AS RECID
  92. FIELD Preis AS DECIMAL DECIMALS 4
  93. FIELD Aktion AS LOG
  94. FIELD LagOrt AS CHARACTER
  95. FIELD MGeli AS DECIMAL
  96. FIELD MRuek AS DECIMAL
  97. INDEX tAufze-k1 IS PRIMARY
  98. Aufnr
  99. Sort1
  100. Sort2
  101. Sort3
  102. .
  103. DEFINE TEMP-TABLE tSpeRab
  104. FIELD Rab_Grp AS INTEGER
  105. FIELD Auf_Betr AS DECIMAL DECIMALS 4
  106. .
  107. DEFINE TEMP-TABLE tGebKto
  108. FIELD Sort_Cd AS CHARACTER
  109. FIELD Geb_Cd AS CHARACTER
  110. FIELD Bez AS CHARACTER
  111. FIELD Preis AS DECIMAL
  112. FIELD A_Anz AS DECIMAL
  113. FIELD A_Betrag AS DECIMAL
  114. FIELD E_Anz AS DECIMAL
  115. FIELD E_Betrag AS DECIMAL
  116. FIELD MWST_Art AS INTEGER
  117. FIELD MWST_Cd AS INTEGER
  118. .
  119. DEFINE TEMP-TABLE tRabSumm
  120. FIELD Rab_Summ AS INTEGER
  121. FIELD Bez AS CHARACTER
  122. FIELD F_Rab_Art AS INTEGER
  123. FIELD F_Wert AS DECIMAL DECIMALS 4
  124. FIELD A_Rab_Art AS INTEGER
  125. FIELD A_Wert AS DECIMAL DECIMALS 4
  126. FIELD Auf_Rab AS DECIMAL DECIMALS 4
  127. FIELD Abh_Rab AS DECIMAL DECIMALS 4
  128. .
  129. DEFINE TEMP-TABLE tTabTexte
  130. FIELD cRecArt AS CHARACTER
  131. FIELD iZeile AS INTEGER
  132. FIELD cFeld1 AS CHARACTER
  133. FIELD cFeld2 AS CHARACTER
  134. FIELD cFeld3 AS CHARACTER
  135. FIELD iFeld1 AS INTEGER
  136. FIELD iFeld2 AS INTEGER
  137. FIELD iFeld3 AS INTEGER
  138. INDEX tTabTexte-k1 IS PRIMARY
  139. cRecArt
  140. iZeile.
  141. /* _UIB-CODE-BLOCK-END */
  142. &ANALYZE-RESUME
  143. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  144. /* ******************** Preprocessor Definitions ******************** */
  145. &Scoped-define PROCEDURE-TYPE Procedure
  146. &Scoped-define DB-AWARE no
  147. /* _UIB-PREPROCESSOR-BLOCK-END */
  148. &ANALYZE-RESUME
  149. /* *********************** Procedure Settings ************************ */
  150. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  151. /* Settings for THIS-PROCEDURE
  152. Type: Procedure
  153. Allow:
  154. Frames: 0
  155. Add Fields to: Neither
  156. Other Settings: CODE-ONLY COMPILE
  157. */
  158. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  159. /* ************************* Create Window ************************** */
  160. &ANALYZE-SUSPEND _CREATE-WINDOW
  161. /* DESIGN Window definition (used by the UIB)
  162. CREATE WINDOW Procedure ASSIGN
  163. HEIGHT = 15
  164. WIDTH = 60.
  165. /* END WINDOW DEFINITION */
  166. */
  167. &ANALYZE-RESUME
  168. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure
  169. /* *************************** Main Block *************************** */
  170. opcResult = ''.
  171. cInstallation = DYNAMIC-FUNCTION ('getInstallation':U) NO-ERROR.
  172. CREATE tParam.
  173. htParam:BUFFER-COPY(iphParam).
  174. ASSIGN
  175. cFirma = tParam.cFirma
  176. iAnzDok = 1
  177. cERPDokumente = DYNAMIC-FUNCTION ('getFehlwert':U, cFirma, 'GEMIS_QRCODE' ) NO-ERROR.
  178. FIND bSteuer NO-LOCK WHERE bSteuer.Firma = cFirma.
  179. AdFirma = bSteuer.AdFirma.
  180. RUN AUFTRAG_ERMITTELN.
  181. IF opcResult <> '' THEN RETURN.
  182. FIND FIRST tParam.
  183. FOR EACH sAufko
  184. BY sAufko.iFak_Knr:
  185. FIND bAdresse NO-LOCK
  186. WHERE bAdresse.Firma = AdFirma
  187. AND bAdresse.Knr = sAufko.iFak_Knr.
  188. iSprcd = (IF bAdresse.Sprcd = 1 THEN 1 ELSE 4).
  189. RUN GET_FORMTEXT ( tParam.cInstall, tParam.cDokument, iSprcd,
  190. OUTPUT cFormText ) NO-ERROR.
  191. cRabText = TRIM(SUBSTRING(cFormText[21],01,20)).
  192. cZusText = TRIM(SUBSTRING(cFormText[21],21,20)).
  193. cEpzText = TRIM(SUBSTRING(cFormText[21],41,20)).
  194. RELEASE bAdresse.
  195. { vpr.i INIT }
  196. { vpr.i START }
  197. DO iLauf = 1 TO iAnzDok:
  198. dFakDatum = sAufko.dFakDat.
  199. iSeite = 0.
  200. iFaknr = sAufko.iFaknr.
  201. lFirst = TRUE.
  202. lPreis = TRUE.
  203. lLast = FALSE.
  204. EMPTY TEMP-TABLE tTotale .
  205. CREATE tTotale.
  206. FOR EACH bAufko NO-LOCK
  207. WHERE bAufko.Firma = sAufko.cFirma
  208. AND bAufko.Aufnr = sAufko.iAufnr:
  209. EMPTY TEMP-TABLE tAufze .
  210. EMPTY TEMP-TABLE tGebKto .
  211. EMPTY TEMP-TABLE tRabSumm .
  212. EMPTY TEMP-TABLE tSpeRab .
  213. EMPTY TEMP-TABLE tTabTexte .
  214. FIND bAdresse NO-LOCK USE-INDEX Adresse-k1
  215. WHERE bAdresse.Firma = AdFirma
  216. AND bAdresse.Knr = bAufko.Fak_Knr NO-ERROR.
  217. FIND LDebst NO-LOCK USE-INDEX Debst-k1
  218. WHERE LDebst.Firma = cFirma
  219. AND LDebst.Knr = bAufko.Knr NO-ERROR.
  220. FIND FDebst NO-LOCK USE-INDEX Debst-k1
  221. WHERE FDebst.Firma = cFirma
  222. AND FDebst.Knr = bAufko.Fak_Knr NO-ERROR.
  223. FIND bWust NO-LOCK USE-INDEX Wust-k1
  224. WHERE bWust.CodeK = FDebst.MWST
  225. AND bWust.CodeA = 99 NO-ERROR.
  226. lDebIncl = FALSE.
  227. IF AVAILABLE bWust THEN lDebIncl = bWust.Incl.
  228. /* Texte und Werte aus Tabelle 'Tabel' laden für RecArt */
  229. /* FAKART, AUFSTATUS, LIEFART, FAHRER, WISO, ABLAD */
  230. hAufko = BUFFER bAufko:HANDLE.
  231. htTabTexte = TEMP-TABLE tTabTexte:DEFAULT-BUFFER-HANDLE.
  232. RUN CREATE_TABTEXTE ( hAufko, INPUT-OUTPUT htTabTexte ) NO-ERROR.
  233. RUN FUELLEN_tAufze ( bAufko.Aufnr ) NO-ERROR.
  234. FOR EACH tAufze
  235. WHERE tAufze.Artnr > 0:
  236. FIND bAufze NO-LOCK WHERE RECID(bAufze) = tAufze.Zeile.
  237. /* Spezial-Auftragsrabatt pro Lieferschein bilden */
  238. IF bAufze.Auf_Sp_Grp > 0 THEN
  239. DO:
  240. FIND FIRST tSpeRab
  241. WHERE tSpeRab.Rab_Grp = bAufze.Auf_Sp_Grp NO-ERROR.
  242. IF NOT AVAILABLE tSpeRab THEN
  243. DO:
  244. CREATE tSpeRab.
  245. ASSIGN
  246. tSpeRab.Rab_Grp = bAufze.Auf_Sp_Grp.
  247. END.
  248. tSpeRab.Auf_Betr = tSpeRab.Auf_Betr + bAufze.Auf_Sp_Rab.
  249. END.
  250. /* Summengruppen-Totale pro Lieferschein bilden */
  251. DO WHILE bAufze.Rab_Su_Grp > 0:
  252. FIND FIRST tRabSumm
  253. WHERE tRabSumm.Rab_Summ = bAufze.Rab_Su_Grp NO-ERROR.
  254. IF NOT AVAILABLE tRabSumm THEN
  255. DO:
  256. FIND FIRST RabSumm NO-LOCK
  257. WHERE RabSumm.Firma = bAufze.Firma
  258. AND RabSumm.Rab_Summ = bAufze.Rab_Su_Grp NO-ERROR.
  259. IF NOT AVAILABLE RabSumm THEN LEAVE.
  260. CREATE tRabSumm.
  261. ASSIGN
  262. tRabSumm.Rab_Summ = bAufze.Rab_Su_Grp
  263. tRabSumm.Bez = RabSumm.Bez
  264. tRabSumm.Auf_Rab = 0
  265. tRabSumm.Abh_Rab = 0.
  266. END.
  267. LEAVE.
  268. END.
  269. END.
  270. RUN DRUCKEN.
  271. REPEAT TRANSACTION:
  272. RUN AUFTRAG_GEDRUCKT ( bAufko.Aufnr ).
  273. LEAVE.
  274. END.
  275. END.
  276. END.
  277. { vpr.i STOP }
  278. END.
  279. PROCEDURE ShellExecuteA EXTERNAL "shell32.dll" :
  280. DEFINE INPUT PARAMETER lphwnd AS LONG.
  281. DEFINE INPUT PARAMETER lpOperation AS CHARACTER.
  282. DEFINE INPUT PARAMETER lpFile AS CHARACTER.
  283. DEFINE INPUT PARAMETER lpParameters AS CHARACTER.
  284. DEFINE INPUT PARAMETER lpDirectory AS CHARACTER.
  285. DEFINE INPUT PARAMETER nShowCmd AS LONG.
  286. DEFINE RETURN PARAMETER hInstance AS LONG.
  287. END PROCEDURE.
  288. /* _UIB-CODE-BLOCK-END */
  289. &ANALYZE-RESUME
  290. /* ********************** Internal Procedures *********************** */
  291. &IF DEFINED(EXCLUDE-ARTIKELZEILE) = 0 &THEN
  292. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE Procedure
  293. PROCEDURE ARTIKELZEILE :
  294. /*------------------------------------------------------------------------------
  295. Purpose:
  296. Parameters: <none>
  297. Notes:
  298. ------------------------------------------------------------------------------*/
  299. DEFINE INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  300. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  301. DEFINE VARIABLE nRabWert AS DECIMAL NO-UNDO.
  302. DEFINE VARIABLE xRabText AS CHARACTER NO-UNDO.
  303. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
  304. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  305. DO WHILE Aufze.Artnr = 0:
  306. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  307. INPUT iZeile, INPUT Aufze.Bez1 ).
  308. IF Aufze.Bez2 = '' THEN RETURN.
  309. iZeile = iZeile + 1.
  310. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  311. INPUT iZeile, INPUT Aufze.Bez2 ).
  312. RETURN.
  313. END.
  314. FIND Artst OF Aufze NO-LOCK.
  315. FIND GGebinde NO-LOCK
  316. WHERE GGebinde.Firma = cFirma
  317. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-ERROR.
  318. FIND VGebinde NO-LOCK
  319. WHERE VGebinde.Firma = cFirma
  320. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-ERROR.
  321. FIND KGebinde NO-LOCK
  322. WHERE KGebinde.Firma = cFirma
  323. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-ERROR.
  324. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'B',
  325. INPUT iZeile, INPUT STRING(tAufze.Artnr,'999999') ).
  326. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  327. INPUT iZeile, INPUT Aufze.Bez1 ).
  328. IF Aufze.Jahr > 9 THEN
  329. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'G',
  330. INPUT iZeile, INPUT STRING(Aufze.Jahr,'9999') ).
  331. IF Aufze.Alk_Gehalt <> 0 THEN
  332. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'H',
  333. INPUT iZeile, INPUT STRING(Aufze.Alk_Gehalt,'zz9.9%') ).
  334. IF Aufze.VGeb_Me <> 0 THEN
  335. DO:
  336. cString = STRING(Aufze.VGeb_Me,'->>>')
  337. + 'x '
  338. + STRING(VGebinde.KBez,'x(10)').
  339. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  340. INPUT iZeile, INPUT cString ).
  341. END.
  342. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'J',
  343. INPUT iZeile, INPUT STRING(Aufze.MBest,'->>>>>9') ).
  344. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'K',
  345. INPUT iZeile, INPUT KGebinde.KBez ).
  346. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'L',
  347. INPUT iZeile, INPUT TRIM(STRING(Aufze.Preis,'>>>>>9.99')) ).
  348. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'M',
  349. INPUT iZeile, INPUT STRING(Aufze.Bru_Betr,'->>>>>9.99') ).
  350. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'N',
  351. INPUT iZeile, INPUT STRING(Aufze.WuCd,'z9') ).
  352. IF Aufze.Bez2 <> '' THEN
  353. DO:
  354. iZeile = iZeile + 1.
  355. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  356. INPUT iZeile, INPUT Aufze.Bez2 ).
  357. END.
  358. IF Aufze.Aktion THEN
  359. DO:
  360. iZeile = iZeile + 1.
  361. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  362. INPUT iZeile, INPUT Aufze.Aktion_Text ).
  363. END.
  364. DO WHILE TRUE:
  365. IF Aufze.Rab_Betr = 0 THEN LEAVE.
  366. nRabWert = ABSOLUTE(Aufze.Rab_Wert).
  367. IF Aufze.Rab_Art = 3 THEN xRabText = cEpzText.
  368. ELSE
  369. DO:
  370. IF Aufze.Rab_Betr < 0 THEN xRabText = cZusText.
  371. IF Aufze.Rab_Betr > 0 THEN xRabText = cRabText.
  372. END.
  373. iZeile = iZeile + 1.
  374. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  375. INPUT iZeile, INPUT TRIM(xRabText) ).
  376. IF Aufze.Rab_Art = 1
  377. THEN RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'L',
  378. INPUT iZeile, INPUT TRIM(STRING(nRabWert,"->9.9 %")) ).
  379. IF Aufze.Rab_Art = 2 OR
  380. Aufze.Rab_Art = 3
  381. THEN RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'L',
  382. INPUT iZeile, INPUT TRIM(STRING(nRabWert,"->9.99 CHF")) ).
  383. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'M',
  384. INPUT iZeile, INPUT TRIM(STRING(- Aufze.Rab_Betr ,"->>>9.99")) ).
  385. LEAVE.
  386. END.
  387. DO WHILE TRUE:
  388. IF Aufze.Zus_Betr = 0 THEN LEAVE.
  389. nRabWert = ABSOLUTE(Aufze.Zus_Wert).
  390. IF Aufze.Zus_Art = 3 THEN xRabText = cEpzText.
  391. ELSE
  392. DO:
  393. IF Aufze.Zus_Betr < 0 THEN xRabText = cRabText.
  394. IF Aufze.Zus_Betr > 0 THEN xRabText = cZusText.
  395. END.
  396. iZeile = iZeile + 1.
  397. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  398. INPUT iZeile, INPUT TRIM(xRabText) ).
  399. IF Aufze.Zus_Art = 1
  400. THEN RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'L',
  401. INPUT iZeile, INPUT TRIM(STRING(nRabWert,"->9.9 %")) ).
  402. IF Aufze.Zus_Art = 2 OR
  403. Aufze.Zus_Art = 3
  404. THEN RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'L',
  405. INPUT iZeile, INPUT TRIM(STRING(nRabWert,"->9.99 CHF")) ).
  406. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'M',
  407. INPUT iZeile, INPUT TRIM(STRING(- Aufze.Zus_Betr ,"->>>9.99")) ).
  408. LEAVE.
  409. END.
  410. END PROCEDURE.
  411. /* _UIB-CODE-BLOCK-END */
  412. &ANALYZE-RESUME
  413. &ENDIF
  414. &IF DEFINED(EXCLUDE-AUFTRAG_ERMITTELN) = 0 &THEN
  415. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAG_ERMITTELN Procedure
  416. PROCEDURE AUFTRAG_ERMITTELN :
  417. /*------------------------------------------------------------------------------
  418. Purpose:
  419. Parameters: <none>
  420. Notes:
  421. ------------------------------------------------------------------------------*/
  422. DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO.
  423. FIND FIRST tParam.
  424. EMPTY TEMP-TABLE sAufko.
  425. /* Sammeln aller Aufträge pro Sammelnummer */
  426. FOR EACH Aufko NO-LOCK USE-INDEX Aufko-k5
  427. WHERE Aufko.Firma = tParam.cFirma
  428. AND Aufko.Aufnr = tParam.iAufnr :
  429. iFaknr = Aufko.Faknr.
  430. IF iFaknr = 0 THEN
  431. DO:
  432. REPEAT TRANSACTION:
  433. iFaknr = DYNAMIC-FUNCTION('createFaknr':U, Aufko.Firma ) NO-ERROR.
  434. IF iFaknr = ? OR
  435. iFaknr = 0 THEN
  436. DO:
  437. MESSAGE 'Es konnten keine Rechnungsnummern gelöst werden' SKIP
  438. 'Ein Benutzer blockiert die Steuerdatei'
  439. VIEW-AS ALERT-BOX ERROR.
  440. NEXT.
  441. END.
  442. FIND bAufko WHERE RECID(bAufko) = RECID(Aufko).
  443. bAufko.Faknr = iFaknr.
  444. RELEASE bAufko.
  445. LEAVE.
  446. END.
  447. END.
  448. CREATE sAufko.
  449. ASSIGN
  450. sAufko.cFirma = Aufko.Firma
  451. sAufko.iAufnr = Aufko.Aufnr
  452. sAufko.iFak_Knr = Aufko.Fak_Knr
  453. sAufko.iSamm_Nr = 0
  454. sAufko.iRecid = RECID(Aufko)
  455. sAufko.iFaknr = iFaknr.
  456. IF Aufko.Fak_Datum = ? THEN
  457. DO:
  458. sAufko.dFakDat = TODAY.
  459. REPEAT TRANSACTION:
  460. FIND bAufko WHERE RECID(bAufko) = RECID(Aufko).
  461. bAufko.Fak_Datum = sAufko.dFakDat.
  462. RELEASE bAufko.
  463. LEAVE.
  464. END.
  465. END.
  466. ELSE sAufko.dFakDat = Aufko.Fak_Datum.
  467. END.
  468. /* Alle Auftragstotale aller Lieferscheine neu rechnen */
  469. FOR EACH sAufko:
  470. FOR EACH bAufko NO-LOCK
  471. WHERE bAufko.Firma = sAufko.cFirma
  472. AND bAufko.Faknr = sAufko.iFaknr
  473. AND bAufko.Fak_Knr = sAufko.iFak_Knr:
  474. DYNAMIC-FUNCTION('calculateAuftragsTotal':U, bAufko.Firma,
  475. bAufko.Aufnr,
  476. OUTPUT nTotale ) NO-ERROR.
  477. RELEASE bAufko.
  478. END.
  479. END.
  480. END PROCEDURE.
  481. /* _UIB-CODE-BLOCK-END */
  482. &ANALYZE-RESUME
  483. &ENDIF
  484. &IF DEFINED(EXCLUDE-DRUCKEN) = 0 &THEN
  485. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN Procedure
  486. PROCEDURE DRUCKEN :
  487. /*------------------------------------------------------------------------------
  488. Purpose:
  489. Parameters: <none>
  490. Notes:
  491. ------------------------------------------------------------------------------*/
  492. DEFINE VARIABLE cLAdresse AS CHARACTER NO-UNDO.
  493. DEFINE VARIABLE RText AS CHARACTER NO-UNDO.
  494. DEFINE VARIABLE WText AS CHARACTER NO-UNDO.
  495. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  496. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  497. DEFINE VARIABLE nRabWert AS DECIMAL NO-UNDO.
  498. DEFINE VARIABLE iMwstCd AS INTEGER NO-UNDO.
  499. DEFINE VARIABLE nZeiTot AS DECIMAL DECIMALS 4 NO-UNDO.
  500. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO.
  501. DEFINE VARIABLE lInkl AS LOGICAL NO-UNDO.
  502. DEFINE VARIABLE cTel AS CHARACTER NO-UNDO.
  503. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
  504. DEFINE VARIABLE cRetValue AS CHARACTER NO-UNDO.
  505. DEFINE VARIABLE cDrucker AS CHARACTER NO-UNDO.
  506. DEFINE VARIABLE cDevices AS CHARACTER NO-UNDO.
  507. FIND FIRST tParam.
  508. nFakBetr = 0.
  509. iZeile = 10.
  510. FIND bAdresse NO-LOCK
  511. WHERE bAdresse.Firma = AdFirma
  512. AND bAdresse.Knr = bAufko.Fak_Knr NO-ERROR.
  513. FIND LDebst NO-LOCK
  514. WHERE LDebst.Firma = cFirma
  515. AND LDebst.Knr = bAufko.Knr NO-ERROR.
  516. FIND FDebst NO-LOCK
  517. WHERE FDebst.Firma = cFirma
  518. AND FDebst.Knr = bAufko.Fak_Knr NO-ERROR.
  519. FIND Wust NO-LOCK
  520. WHERE Wust.CodeK = LDebst.MWST
  521. AND Wust.CodeA = 99 NO-ERROR.
  522. iSprcd = (IF bAdresse.Sprcd = 1 THEN 1 ELSE 4).
  523. IF iSeite = 0 THEN RUN EXCEL_INIT.
  524. IF RETURN-VALUE <> '' THEN
  525. DO:
  526. MESSAGE 'Problem beim Öffnen von Excel und/oder Vorlage'
  527. VIEW-AS ALERT-BOX.
  528. RETURN 'ERROR'.
  529. END.
  530. IF bAufko.Adresse[05] <> '' THEN
  531. DO:
  532. DO ii = 1 TO 5:
  533. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  534. INPUT iZeile, INPUT bAufko.Adresse[ii] ).
  535. iZeile = iZeile + 1.
  536. END.
  537. END.
  538. ELSE
  539. DO:
  540. DO ii = 7 TO 11:
  541. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'I',
  542. INPUT iZeile, INPUT bAdresse.Anschrift[ii] ).
  543. iZeile = iZeile + 1.
  544. END.
  545. END.
  546. iZeile = 22.
  547. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  548. INPUT iZeile, INPUT STRING(dFakDatum,'99.99.9999') ).
  549. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'N',
  550. INPUT iZeile, INPUT STRING(TODAY,'99.99.9999') ).
  551. iZeile = 18.
  552. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  553. INPUT iZeile, INPUT STRING(iFaknr,'>999999') ).
  554. iZeile = 20.
  555. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  556. INPUT iZeile, INPUT TRIM(STRING(bAufko.Aufnr,'>>>>>>>9')) ).
  557. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'J',
  558. INPUT iZeile, INPUT bAufko.I_Best ).
  559. iZeile = 21.
  560. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'D',
  561. INPUT iZeile, INPUT TRIM(STRING(bAufko.Fak_Knr,'>>>>>>9')) ).
  562. iZeile = 25.
  563. FOR EACH tAufze NO-LOCK
  564. BY tAufze.Aufnr
  565. BY tAufze.Sort1
  566. BY tAufze.LagOrt
  567. BY tAufze.Sort2
  568. BY tAufze.Pos :
  569. FIND Aufze NO-LOCK WHERE RECID(Aufze) = tAufze.Zeile.
  570. RUN ARTIKELZEILE ( RECID(tAufze) ).
  571. iZeile = iZeile + 1.
  572. nFakBetr = nFakBetr + Aufze.Net_Betr.
  573. RELEASE Aufze.
  574. END.
  575. iZeile = iZeile + 1.
  576. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  577. INPUT iZeile, INPUT cFormText[13] ).
  578. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'M',
  579. INPUT iZeile, TRIM(STRING(nFakBetr,"->>>>9.99")) ).
  580. RUN SUMMENRABATTE.
  581. RUN GEBINDE_SALDO.
  582. RUN GEBINDE_ABRECHNUNG.
  583. RUN MEHRWERTSTEUER.
  584. iZeile = iZeile + 2.
  585. FIND Kondi USE-INDEX Kondi-k1
  586. WHERE Kondi.Kond = bAufko.Kond
  587. AND Kondi.Sprcd = bAdresse.Sprcd NO-LOCK NO-ERROR.
  588. IF NOT AVAILABLE KOndi THEN
  589. DO:
  590. FIND Kondi USE-INDEX Kondi-k1
  591. WHERE Kondi.Kond = bAufko.Kond
  592. AND Kondi.Sprcd = iSprcd NO-LOCK NO-ERROR.
  593. END.
  594. IF AVAILABLE Kondi THEN
  595. DO:
  596. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  597. INPUT iZeile, Kondi.Kotext ).
  598. END.
  599. hExcel:ActiveWorkbook:SAVE( ).
  600. /* hExcel:ActiveWorkbook:CLOSE( TRUE ). */
  601. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT hExcel ).
  602. cDevices = SESSION:GET-PRINTERS().
  603. cDevices = REPLACE(cDevices, ',', CHR(10)).
  604. IF tParam.lDokDruck THEN
  605. DO:
  606. DO ii = 1 TO NUM-ENTRIES(cDevices, CHR(10)):
  607. cDrucker = ENTRY(ii, cDevices, CHR(10)).
  608. IF cDrucker <> tParam.Drucker THEN NEXT.
  609. RUN CHECKPRINTER ( cDrucker , OUTPUT lRetVal ) NO-ERROR.
  610. LEAVE.
  611. END.
  612. IF lRetVal THEN
  613. DO:
  614. MESSAGE 'gewählter Drucker kann nicht angesprochen werden'
  615. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  616. END.
  617. END.
  618. FIND FIRST tAufko NO-ERROR.
  619. IF NOT AVAILABLE tAufko THEN CREATE tAufko.
  620. BUFFER-COPY bAufko TO tAufko.
  621. tAufko.lBetrag = (IF tAufko.Auf_Tot > 0 THEN TRUE ELSE FALSE).
  622. RUN DRUCKEN_QRCODE.
  623. cRetValue = RETURN-VALUE.
  624. RUN vpr_EndDoc.
  625. IF cRetValue <> '' THEN RETURN.
  626. cFileName = SUBSTITUTE('&1-&2_&3.vpr',
  627. STRING(bAufko.Knr ,'999999'),
  628. STRING(bAufko.Faknr,'9999999'),
  629. tParam.cDokument ).
  630. cVPRDocument = SUBSTITUTE(cERPDokumente,
  631. cFileName ) .
  632. RUN vpr_saveDoc ( cVPRDocument ).
  633. DO WHILE tParam.lDokDruck:
  634. SESSION:PRINTER-NAME = tParam.Drucker NO-ERROR.
  635. IF SESSION:PRINTER-NAME <> tParam.Drucker THEN
  636. DO:
  637. RUN vpr_printerDialog ( OUTPUT lJa ).
  638. IF NOT lJa THEN LEAVE.
  639. END.
  640. RUN vpr_printDoc (0, 0).
  641. RUN vpr_resetDoc.
  642. LEAVE.
  643. END.
  644. IF tParam.lCreatePDF THEN
  645. DO:
  646. cPDFDocument = REPLACE(cVPRDocument, '.vpr', '.pdf').
  647. RUN vpr_openDoc ( cVPRDocument ).
  648. RUN vpr_printPDF ( 0, 0, INPUT-OUTPUT cPDFDocument ).
  649. END.
  650. IF tParam.lOpenPDF THEN
  651. DO:
  652. DEFINE VARIABLE o-i AS i NO-UNDO.
  653. FILE-INFO:FILE-NAME = cPDFDocument.
  654. cPDFDocument = FILE-INFO:FULL-PATHNAME.
  655. RUN ShellExecuteA (0,
  656. "open",
  657. cPDFDocument,
  658. "",
  659. "",
  660. 0,
  661. OUTPUT o-i).
  662. END.
  663. END PROCEDURE.
  664. /* _UIB-CODE-BLOCK-END */
  665. &ANALYZE-RESUME
  666. &ENDIF
  667. &IF DEFINED(EXCLUDE-DRUCKEN_QRCODE) = 0 &THEN
  668. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN_QRCODE Procedure
  669. PROCEDURE DRUCKEN_QRCODE:
  670. /*------------------------------------------------------------------------------*/
  671. /* Purpose: */
  672. /* Parameters: <none> */
  673. /* Notes: */
  674. /*------------------------------------------------------------------------------*/
  675. DEFINE VARIABLE cFileName AS CHARACTER NO-UNDO.
  676. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  677. DEFINE VARIABLE hAufko AS HANDLE NO-UNDO.
  678. DEFINE VARIABLE cBesrTemplate AS CHARACTER NO-UNDO INIT 'viper/realwines/BESR_QR.vfr'.
  679. DEFINE VARIABLE cWerbung AS CHARACTER NO-UNDO.
  680. DEFINE VARIABLE cConString AS CHARACTER NO-UNDO.
  681. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  682. FIND FIRST tAufko.
  683. hAufko = TEMP-TABLE tAufko:DEFAULT-BUFFER-HANDLE.
  684. IF tAufko.Auf_Tot <= 0 THEN RETURN 'NULL'.
  685. FIND FIRST tParam.
  686. cPathQRCodes = DYNAMIC-FUNCTION ('getFehlwert':U, tParam.Firma, 'GEMIS_QRCODE') NO-ERROR.
  687. cWerbung = DYNAMIC-FUNCTION ('getFehlwert':U, tParam.Firma, 'WERBUNG_QRCODE') NO-ERROR.
  688. FIND FIRST ViperDoc NO-LOCK
  689. WHERE ViperDoc.Firma = tAufko.Firma
  690. AND ViperDoc.Benutzer = ''
  691. AND ViperDoc.Formular = 'BESR_QR'
  692. AND ViperDoc.DokArt = 0 NO-ERROR.
  693. IF NOT AVAILABLE ViperDoc THEN RETURN 'NULL'.
  694. RUN vpr_ResetDoc.
  695. RUN vpr_LoadVFR (cBesrTemplate).
  696. RUN vpr_ActivateReport ('BESR_QR').
  697. RUN vpr_SelectPrinter (tParam.Drucker).
  698. RUN vpr_setPrinterAttrib('duplex=1').
  699. RUN vpr_SetPrinterAttrib('copies=1').
  700. RUN vpr_SetDocAttrib ('PAPERSIZE=A4').
  701. RUN vpr_SetPreviewMode ('Direct').
  702. RUN vpr_InitGroups ("").
  703. RUN vpr_initGraphObj.
  704. RUN vpr_setDocTitle ( SUBSTITUTE('QRCODE_Knr-&1_Faknr-&2.pdf':U, STRING(tAufko.Knr,'999999'), STRING(tAufko.Faknr,'9999999')) ).
  705. RUN vpr_SetDelimiter (CHR(01)).
  706. RUN vpr_SetCurrentPageProperties("Papertray", ViperDoc.Schacht_BESR).
  707. cFileName = SUBSTITUTE('&1&2_&3', cPathQRCodes, 'QR_CODE', STRING(bAufko.Aufnr,'9999999')).
  708. RUN 'SwissQR/SwissQRCode.p' ( hAufko, cFileName ).
  709. cFilename = cFileName + '.jpg'.
  710. IF SEARCH(cFileName) <> ? THEN
  711. DO:
  712. cFileName = 'FILENAME=' + cFileName.
  713. RUN vpr_setGraphObjAttrib ( 'QRCode', 'QRCODE', cFileName ).
  714. END.
  715. cWerbung = SUBSTITUTE(cPathWerbung, tParam.cInstall).
  716. cWerbung = SUBSTITUTE('&1Werbung_&2.jpg', cWerbung, tAufko.Firma).
  717. IF SEARCH(cWerbung) <> ? THEN
  718. DO:
  719. cWerbung = SUBSTITUTE('FILENAME=&1', cWerbung).
  720. RUN vpr_setGraphObjAttrib ( 'Werbung', 'QRCODE', cWerbung ).
  721. END.
  722. RUN vpr_InitGraphObj.
  723. RUN vpr_flushGroup('QRCODE').
  724. RETURN ''.
  725. END PROCEDURE.
  726. /* _UIB-CODE-BLOCK-END */
  727. &ANALYZE-RESUME
  728. &ENDIF
  729. &IF DEFINED(EXCLUDE-EXCEL_INIT) = 0 &THEN
  730. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_INIT Procedure
  731. PROCEDURE EXCEL_INIT :
  732. /*------------------------------------------------------------------------------
  733. Purpose:
  734. Parameters: <none>
  735. Notes:
  736. ------------------------------------------------------------------------------*/
  737. DEFINE VARIABLE cVorlage AS CHARACTER NO-UNDO.
  738. DEFINE VARIABLE cPfad AS CHARACTER NO-UNDO.
  739. DEFINE VARIABLE lRetVal AS LOG NO-UNDO.
  740. DEFINE VARIABLE xTemplate AS CHARACTER NO-UNDO.
  741. DEFINE VARIABLE xDokument AS CHARACTER NO-UNDO.
  742. DEFINE VARIABLE xSprcd AS INTEGER NO-UNDO.
  743. FIND FIRST tParam.
  744. hExcel = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  745. IF NOT VALID-HANDLE(hExcel) THEN RETURN 'ERROR'.
  746. xSprcd = (IF iSprcd <> 1 THEN 2 ELSE 1).
  747. cPfad = DYNAMIC-FUNCTION ('getFehlwert':U, tParam.Firma, 'EXCEL_FORMULARE') NO-ERROR.
  748. IF cPfad = ? THEN cPfad = ''.
  749. IF cPfad = '' THEN cPfad = SESSION:TEMP-DIR.
  750. ELSE
  751. DO:
  752. FILE-INFO:FILE-NAME = cPfad.
  753. cPfad = FILE-INFO:FULL-PATHNAME.
  754. cPfad = REPLACE(cPfad, '\', '/').
  755. END.
  756. xTemplate = SUBSTITUTE(tParam.Template, STRING(bAufko.Ku_Grp,'99'), STRING(xSprcd,'99'), bAufko.Frw ).
  757. xDokument = SUBSTITUTE(tParam.Template, STRING(bAufko.Faknr ,'999999'), STRING(bAufko.Knr,'999999'), bAufko.Frw ).
  758. cVorlage = xDokument + CHR(01) + 'viper\realwines\' + xTemplate + CHR(01) + cPfad.
  759. RUN CREATEDATEI ( INPUT cVorlage ).
  760. cExcelDocument = RETURN-VALUE.
  761. IF cExcelDocument BEGINS 'ERROR' THEN
  762. DO:
  763. MESSAGE 'Keine gültige Vorlage gefunden ' cVorlage
  764. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  765. RETURN 'ERROR'.
  766. END.
  767. cExcelDocument = REPLACE(cExcelDocument, '.\' , '').
  768. cExcelDocument = REPLACE(cExcelDocument, '..\', '').
  769. FILE-INFO:FILE-NAME = cExcelDocument NO-ERROR.
  770. cExcelDocument = FILE-INFO:FULL-PATHNAME.
  771. RUN OPENEXCEL ( INPUT hExcel,
  772. INPUT cExcelDocument,
  773. INPUT '',
  774. OUTPUT lRetVal ).
  775. IF NOT lRetVal THEN
  776. DO:
  777. IF VALID-HANDLE(hExcel) THEN RUN RELEASEEXCEL ( INPUT hExcel ).
  778. RETURN 'ERROR'.
  779. END.
  780. RETURN ''.
  781. END PROCEDURE.
  782. /* _UIB-CODE-BLOCK-END */
  783. &ANALYZE-RESUME
  784. &ENDIF
  785. &IF DEFINED(EXCLUDE-FUELLEN_tAufze) = 0 &THEN
  786. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_tAufze Procedure
  787. PROCEDURE FUELLEN_tAufze :
  788. /*------------------------------------------------------------------------------
  789. Purpose:
  790. Parameters: <none>
  791. Notes:
  792. ------------------------------------------------------------------------------*/
  793. DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO.
  794. DEFINE VARIABLE minPos AS INTEGER NO-UNDO.
  795. DEFINE VARIABLE maxPos AS INTEGER NO-UNDO.
  796. DEFINE VARIABLE jPlatz AS INTEGER NO-UNDO.
  797. DEFINE VARIABLE cLagOrt AS CHARACTER NO-UNDO.
  798. DEFINE VARIABLE iRuestArt AS INTEGER NO-UNDO.
  799. DEFINE VARIABLE iPlusMinus AS INTEGER NO-UNDO.
  800. DEFINE VARIABLE lArtikel AS LOG NO-UNDO.
  801. EMPTY TEMP-TABLE tAufze.
  802. FIND Steuer NO-LOCK
  803. WHERE Steuer.Firma = cFirma NO-ERROR.
  804. IF AVAILABLE Steuer THEN iRuestArt = Steuer.RuestArt.
  805. ASSIGN
  806. minPos = 0
  807. maxPos = 9999
  808. iPlusMinus = 0.
  809. /* Kommentar zu Beginn eines Auftrages */
  810. lArtikel = FALSE.
  811. FOR EACH Aufze NO-LOCK
  812. WHERE Aufze.Firma = cFirma
  813. AND Aufze.Aufnr = ipAufnr
  814. AND Aufze.Pos > minPos:
  815. IF Aufze.Artnr > 0 THEN
  816. DO:
  817. lArtikel = TRUE.
  818. LEAVE.
  819. END.
  820. minPos = Aufze.Pos.
  821. CREATE tAufze.
  822. ASSIGN
  823. tAufze.Aufnr = Aufze.Aufnr
  824. tAufze.Artnr = Aufze.Artnr
  825. tAufze.Inhalt = Aufze.Inhalt
  826. tAufze.Jahr = Aufze.Jahr
  827. tAufze.Pos = Aufze.Pos
  828. tAufze.Zeile = RECID(Aufze)
  829. tAufze.Aktion = Aufze.Aktion
  830. tAufze.Preis = Aufze.Preis
  831. tAufze.MGeli = Aufze.MGeli
  832. tAufze.MRuek = Aufze.MRuek.
  833. ASSIGN
  834. tAufze.Sort1 = STRING(0,'99')
  835. tAufze.Sort2 = ''
  836. tAufze.Sort3 = STRING(tAufze.Artnr ,'999999')
  837. + STRING(tAufze.Inhalt,'9999')
  838. + STRING(tAufze.Jahr ,'9999')
  839. + STRING(iPlusMinus ,'9')
  840. + STRING(tAufze.Pos ,'99999').
  841. tAufze.LagOrt = ''.
  842. END.
  843. /* Kommentar am Ende eines Auftrages */
  844. IF lArtikel THEN
  845. DO:
  846. FOR EACH Aufze NO-LOCK
  847. WHERE Aufze.Firma = cFirma
  848. AND Aufze.Aufnr = ipAufnr
  849. BY Aufze.Pos DESCENDING:
  850. IF Aufze.Artnr > 0 THEN LEAVE.
  851. maxPos = Aufze.Pos.
  852. CREATE tAufze.
  853. ASSIGN
  854. tAufze.Aufnr = Aufze.Aufnr
  855. tAufze.Artnr = Aufze.Artnr
  856. tAufze.Inhalt = Aufze.Inhalt
  857. tAufze.Jahr = Aufze.Jahr
  858. tAufze.Pos = Aufze.Pos
  859. tAufze.Zeile = RECID(Aufze)
  860. tAufze.Aktion = Aufze.Aktion
  861. tAufze.Preis = Aufze.Preis
  862. tAufze.MGeli = Aufze.MGeli
  863. tAufze.MRuek = Aufze.MRuek.
  864. ASSIGN
  865. tAufze.Sort1 = STRING(0,'99')
  866. tAufze.Sort2 = ''
  867. tAufze.Sort3 = STRING(tAufze.Artnr ,'999999')
  868. + STRING(tAufze.Inhalt,'9999')
  869. + STRING(tAufze.Jahr ,'9999')
  870. + STRING(iPlusMinus ,'9')
  871. + STRING(tAufze.Pos ,'99999').
  872. tAufze.LagOrt = ''.
  873. END.
  874. END.
  875. /* Artikelzeilen nach Ruestplatz und Ort */
  876. cLagOrt = ''.
  877. FOR EACH Aufze NO-LOCK
  878. WHERE Aufze.Firma = cFirma
  879. AND Aufze.Aufnr = ipAufnr
  880. AND Aufze.Pos > minPos
  881. AND Aufze.Pos < MaxPos
  882. BY Aufze.Pos DESCENDING:
  883. IF Aufze.Artnr > 0 THEN
  884. DO:
  885. FIND ArtLager NO-LOCK
  886. WHERE ArtLager.Firma = Aufze.Firma
  887. AND ArtLager.Artnr = Aufze.Artnr
  888. AND ArtLager.Inhalt = Aufze.Inhalt
  889. AND ArtLager.Jahr = Aufze.Jahr
  890. AND ArtLager.Lager = Aufze.Lager.
  891. cLagOrt = ArtLager.Ort.
  892. END.
  893. iPlusMinus = (IF Aufze.MGeli < 0 THEN 1 ELSE 0).
  894. FIND LAST RuestPlatz USE-INDEX RuestPlatz-k2
  895. WHERE RuestPlatz.Firma = Aufze.Firma
  896. AND RuestPlatz.RuestArt = iRuestArt
  897. AND RuestPlatz.abLagOrt <= cLagOrt NO-ERROR.
  898. IF NOT AVAILABLE RuestPlatz THEN jPlatz = 90.
  899. ELSE jPlatz = RuestPlatz.Platz.
  900. CREATE tAufze.
  901. ASSIGN
  902. tAufze.Aufnr = Aufze.Aufnr
  903. tAufze.Artnr = Aufze.Artnr
  904. tAufze.Inhalt = Aufze.Inhalt
  905. tAufze.Jahr = Aufze.Jahr
  906. tAufze.Pos = Aufze.Pos
  907. tAufze.Zeile = RECID(Aufze)
  908. tAufze.Aktion = Aufze.Aktion
  909. tAufze.Preis = Aufze.Preis
  910. tAufze.MGeli = Aufze.MGeli
  911. tAufze.MRuek = Aufze.MRuek.
  912. ASSIGN
  913. tAufze.Sort1 = STRING(jPlatz,'99')
  914. tAufze.Sort2 = cLagOrt
  915. tAufze.Sort3 = STRING(tAufze.Artnr ,'999999')
  916. + STRING(tAufze.Inhalt,'9999')
  917. + STRING(tAufze.Jahr ,'9999')
  918. + STRING(iPlusMinus ,'9')
  919. + STRING(tAufze.Pos ,'99999').
  920. tAufze.LagOrt = cLagort.
  921. IF tAufze.Artnr > 0 AND
  922. tAufze.MGeli = 0 THEN DELETE tAufze.
  923. END.
  924. END PROCEDURE.
  925. /* _UIB-CODE-BLOCK-END */
  926. &ANALYZE-RESUME
  927. &ENDIF
  928. &IF DEFINED(EXCLUDE-GEBINDE_ABRECHNUNG) = 0 &THEN
  929. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_ABRECHNUNG Procedure
  930. PROCEDURE GEBINDE_ABRECHNUNG :
  931. /*------------------------------------------------------------------------------
  932. Purpose:
  933. Parameters: <none>
  934. Notes:
  935. ------------------------------------------------------------------------------*/
  936. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO.
  937. DEFINE VARIABLE lTotal AS LOG NO-UNDO.
  938. DEFINE VARIABLE nBetrag AS DECIMAL NO-UNDO.
  939. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  940. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  941. DEFINE VARIABLE iMwstCd AS INTEGER NO-UNDO.
  942. DEFINE VARIABLE nZTot AS DECIMAL NO-UNDO.
  943. lTotal = FALSE.
  944. i2 = 0.
  945. nZTot = 0.
  946. FOR EACH AufGKon NO-LOCK
  947. WHERE AufGKon.Firma = BAufko.Firma
  948. AND AufGKon.Aufnr = BAufko.Aufnr
  949. AND AufGKon.Gebuehr <> 0
  950. AND AufGKon.Betrag <> 0 :
  951. iMwstCd = AufGKon.MWST_Cd.
  952. IF i2 = 0 THEN iZeile = iZeile + 2.
  953. ELSE iZeile = iZeile + 1.
  954. FIND GebKonto NO-LOCK
  955. WHERE GebKonto.Firma = cFirma
  956. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd.
  957. i1 = AufGKon.Ausgang.
  958. IF AufGKon.Depot = 0 AND
  959. AufGKon.Gebuehr = 0 THEN nBetrag = GebKonto.Depot + GebKonto.Gebuehr.
  960. ELSE nBetrag = AufGKon.Depot + AufGKon.Gebuehr.
  961. Rundbetr = i1 * nBetrag.
  962. iMwstCd = AufGKon.MWSt_Cd.
  963. nZTot = nZTot + Rundbetr.
  964. cDaten = GebKonto.Bez.
  965. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  966. INPUT iZeile, INPUT cDaten ).
  967. cDaten = TRIM(STRING(AufGKon.Ausgang,"->>>>9")).
  968. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'K',
  969. INPUT iZeile, INPUT cDaten ).
  970. cDaten = TRIM(STRING(nBetrag,"->>>>9.999")).
  971. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'L',
  972. INPUT iZeile, INPUT cDaten ).
  973. cDaten = TRIM(STRING(Rundbetr,"->>>>9.999")).
  974. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'M',
  975. INPUT iZeile, INPUT cDaten ).
  976. cDaten = TRIM(STRING(iMwstCd,"z9")).
  977. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'N',
  978. INPUT iZeile, INPUT cDaten ).
  979. i2 = i2 + 1.
  980. END.
  981. IF i2 > 0 THEN lTotal = TRUE.
  982. IF lTotal THEN
  983. DO:
  984. iZeile = iZeile + 2.
  985. cDaten = TRIM(SUBSTRING(cFormText[11],41,20)).
  986. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  987. INPUT iZeile, INPUT cDaten ).
  988. cdaten = TRIM(STRING(nZTot,"->>>>9.99")).
  989. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'M',
  990. INPUT iZeile, INPUT cDaten ).
  991. nFakBetr = nFakBetr + nZTot.
  992. END.
  993. RELEASE AufGKon.
  994. lTotal = FALSE.
  995. i2 = 0.
  996. nZTot = 0.
  997. FOR EACH AufGKon NO-LOCK
  998. WHERE AufGKon.Firma = BAufko.Firma
  999. AND AufGKon.Aufnr = BAufko.Aufnr
  1000. AND AufGKon.Depot <> 0 :
  1001. IF AufGKon.Eingang = 0 AND
  1002. AufGKon.Ausgang = 0 THEN NEXT.
  1003. IF i2 = 0 THEN iZeile = iZeile + 2.
  1004. ELSE iZeile = iZeile + 1.
  1005. FIND GebKonto NO-LOCK
  1006. WHERE GebKonto.Firma = cFirma
  1007. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd.
  1008. i1 = AufGKon.Ausgang.
  1009. IF AufGKon.Depot = 0 AND
  1010. AufGKon.Gebuehr = 0 THEN nBetrag = GebKonto.Depot + GebKonto.Gebuehr.
  1011. ELSE nBetrag = AufGKon.Depot + AufGKon.Gebuehr.
  1012. Rundbetr = i1 * nBetrag.
  1013. iMwstCd = AufGKon.MWSt_Cd.
  1014. nZTot = nZTot + Rundbetr.
  1015. cDaten = GebKonto.Bez.
  1016. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  1017. INPUT iZeile, INPUT cDaten ).
  1018. cDaten = TRIM(STRING(AufGKon.Ausgang,"->>>>9")).
  1019. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'K',
  1020. INPUT iZeile, INPUT cDaten ).
  1021. cDaten = TRIM(STRING(nBetrag,"->>>>9.999")).
  1022. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'L',
  1023. INPUT iZeile, INPUT cDaten ).
  1024. cDaten = TRIM(STRING(Rundbetr,"->>>>9.999")).
  1025. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'M',
  1026. INPUT iZeile, INPUT cDaten ).
  1027. cDaten = TRIM(STRING(iMwstCd,"z9")).
  1028. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'N',
  1029. INPUT iZeile, INPUT cDaten ).
  1030. i2 = i2 + 1.
  1031. END.
  1032. IF i2 > 0 THEN lTotal = TRUE.
  1033. IF lTotal THEN
  1034. DO:
  1035. iZeile = iZeile + 2.
  1036. cDaten = TRIM(SUBSTRING(cFormText[11],21,20)).
  1037. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  1038. INPUT iZeile, INPUT cDaten ).
  1039. cdaten = TRIM(STRING(nZTot,"->>>>9.99")).
  1040. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'M',
  1041. INPUT iZeile, INPUT cDaten ).
  1042. nFakBetr = nFakBetr + nZTot.
  1043. END.
  1044. IF lTotal THEN
  1045. DO:
  1046. iZeile = iZeile + 2.
  1047. cDaten = TRIM(SUBSTRING(cFormText[15],21,20)).
  1048. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  1049. INPUT iZeile, INPUT cDaten ).
  1050. cDaten = TRIM(STRING(nFakBetr,"->>>>9.99")).
  1051. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'M',
  1052. INPUT iZeile, INPUT cDaten ).
  1053. END.
  1054. END PROCEDURE.
  1055. /* _UIB-CODE-BLOCK-END */
  1056. &ANALYZE-RESUME
  1057. &ENDIF
  1058. &IF DEFINED(EXCLUDE-GEBINDE_SALDO) = 0 &THEN
  1059. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_SALDO Procedure
  1060. PROCEDURE GEBINDE_SALDO :
  1061. /*------------------------------------------------------------------------------
  1062. Purpose:
  1063. Parameters: <none>
  1064. Notes:
  1065. ------------------------------------------------------------------------------*/
  1066. FOR EACH AufGKon NO-LOCK
  1067. WHERE AufGKon.Firma = BAufko.Firma
  1068. AND AufGKon.Aufnr = BAufko.Aufnr
  1069. AND AufGKon.Depot <> 0
  1070. AND AufGKon.Betrag <> 0 :
  1071. FIND FIRST tGebKto
  1072. WHERE tGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR.
  1073. IF NOT AVAILABLE tGebKto THEN
  1074. DO:
  1075. FIND GebKonto NO-LOCK
  1076. WHERE GebKonto.Firma = AufGKon.Firma
  1077. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd .
  1078. CREATE tGebKto.
  1079. ASSIGN
  1080. tGebKto.Sort_Cd = GebKonto.Sort_Cd
  1081. tGebKto.Geb_Cd = GebKonto.Geb_Cd
  1082. tGebKto.Bez = GebKonto.Bez
  1083. tGebKto.Preis = AufGKon.Depot
  1084. tGebKto.MWST_Cd = AufGKon.MWSt_Cd.
  1085. END.
  1086. tGebKto.A_Anz = tGebKto.A_Anz + AufGKon.Ausgang.
  1087. tGebKto.A_Betrag = tGebKto.A_Anz * tGebKto.Preis.
  1088. tGebKto.E_Anz = tGebKto.E_Anz + AufGKon.Eingang.
  1089. tGebKto.E_Betrag = tGebKto.E_Anz * tGebKto.Preis.
  1090. END.
  1091. END PROCEDURE.
  1092. /* _UIB-CODE-BLOCK-END */
  1093. &ANALYZE-RESUME
  1094. &ENDIF
  1095. &IF DEFINED(EXCLUDE-MEHRWERTSTEUER) = 0 &THEN
  1096. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MEHRWERTSTEUER Procedure
  1097. PROCEDURE MEHRWERTSTEUER :
  1098. /*------------------------------------------------------------------------------
  1099. Purpose:
  1100. Parameters: <none>
  1101. Notes:
  1102. ------------------------------------------------------------------------------*/
  1103. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO.
  1104. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  1105. DEFINE VARIABLE nMwst AS DECIMAL NO-UNDO.
  1106. DEFINE VARIABLE cMwst AS CHARACTER NO-UNDO.
  1107. DEFINE VARIABLE nTotMwst AS DECIMAL NO-UNDO.
  1108. iZeile = iZeile + 1.
  1109. nTotMwst = 0.
  1110. DO ix = 1 TO 11:
  1111. IF bAufko.Wpfl[ix] = 0 THEN NEXT.
  1112. FIND LAST MWSTAns NO-LOCK USE-INDEX MWSTAns-k1
  1113. WHERE MWSTAns.MWST_Cd = ix
  1114. AND MWSTAns.Datum <= BAUfko.Kond_Datum .
  1115. iZeile = iZeile + 1.
  1116. cDaten = (IF bAufko.Wust[ix] = 0 THEN cFormText[19] ELSE cFormText[20]).
  1117. cDaten = SUBSTITUTE(cDaten, TRIM(STRING(MWSTAns.Ansatz,'>>9.99%'))).
  1118. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  1119. INPUT iZeile, INPUT cDaten ).
  1120. cDaten = TRIM(STRING(bAufko.Wpfl[ix],"->>,>>9.99")).
  1121. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'L',
  1122. INPUT iZeile, INPUT cDaten ).
  1123. nMwst = (IF bAufko.Wust[ix] <> 0 THEN bAufko.Wust[ix]
  1124. ELSE bAufko.Wpfl[ix] / (100 + MWSTAns.Ansatz) * MWSTAns.Ansatz).
  1125. cDaten = TRIM(STRING(nMwst,"->>,>>9.99")).
  1126. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'M',
  1127. INPUT iZeile, INPUT cDaten ).
  1128. cDaten = TRIM(STRING(ix,"z9")).
  1129. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'N',
  1130. INPUT iZeile, INPUT cDaten ).
  1131. nFakBetr = nFakBetr + bAufko.Wust[ix].
  1132. nTotMwst = nTotMwst + bAufko.Wust[ix].
  1133. IF ix < 8 THEN nTotMwst = nTotMwst + 1.
  1134. END.
  1135. Rundbetr = nFakBetr.
  1136. Rundcode = 1.
  1137. RUN RUNDEN ( Rundcode, INPUT-OUTPUT Rundbetr ).
  1138. nFakBetr = Rundbetr.
  1139. iZeile = iZeile + 2.
  1140. cDaten = (IF nTotMwst = 0 THEN TRIM(SUBSTRING(cFormText[16],41)) ELSE TRIM(SUBSTRING(cFormText[16],01,40)) ).
  1141. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  1142. INPUT iZeile, INPUT cDaten ).
  1143. cDaten = TRIM(STRING(nFakBetr,"->>,>>9.99")).
  1144. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'M',
  1145. INPUT iZeile, INPUT cDaten ).
  1146. END PROCEDURE.
  1147. /* _UIB-CODE-BLOCK-END */
  1148. &ANALYZE-RESUME
  1149. &ENDIF
  1150. &IF DEFINED(EXCLUDE-SUMMENRABATTE) = 0 &THEN
  1151. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUMMENRABATTE Procedure
  1152. PROCEDURE SUMMENRABATTE :
  1153. /*------------------------------------------------------------------------------
  1154. Purpose:
  1155. Parameters: <none>
  1156. Notes:
  1157. ------------------------------------------------------------------------------*/
  1158. DEFINE VARIABLE RText AS CHARACTER FORMAT "x(20)" NO-UNDO.
  1159. DEFINE VARIABLE WText AS CHARACTER NO-UNDO.
  1160. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO.
  1161. DEFINE VARIABLE lTotal AS LOG NO-UNDO.
  1162. DEFINE VARIABLE lRabatt AS LOG NO-UNDO.
  1163. DEFINE VARIABLE iPlus AS INTEGER NO-UNDO.
  1164. DEFINE VARIABLE nRabWert AS DECIMAL NO-UNDO.
  1165. DEFINE VARIABLE iMwstCd AS INTEGER NO-UNDO.
  1166. /* Auftragsrabatt ---------------------------------------------------- */
  1167. lTotal = FALSE.
  1168. iPlus = 0.
  1169. FOR EACH tRabSumm
  1170. WHERE tRabSumm.Auf_Rab <> 0
  1171. BY tRabSumm.Rab_Summ:
  1172. Rundbetr = tRabSumm.Auf_Rab.
  1173. nFakBetr = nFakBetr - Rundbetr.
  1174. IF NOT lRabatt THEN NEXT.
  1175. IF iPlus = 0 THEN iZeile = iZeile + 2.
  1176. ELSE iZeile = iZeile + 1.
  1177. IF Rundbetr < 0 THEN RText = cZusText.
  1178. ELSE RText = cRabText.
  1179. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1
  1180. WHERE AufRabSu.Firma = bAufko.Firma
  1181. AND AufRabSu.Aufnr = bAufko.Aufnr
  1182. AND AufRabSu.Rab_Summ = tRabSumm.Rab_Summ.
  1183. IF AufRabSu.F_Proz_Betr THEN WText = "%".
  1184. ELSE WText = "Fr.".
  1185. nRabWert = ABSOLUT(AufRabSu.F_Wert).
  1186. cDaten = RText
  1187. + " "
  1188. + tRabSumm.Bez
  1189. + " "
  1190. + STRING(nRabWert,"z9.99- ")
  1191. + WText.
  1192. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  1193. INPUT iZeile, INPUT cDaten ).
  1194. cDaten = STRING(- Rundbetr,"->>>>9.99").
  1195. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'M',
  1196. INPUT iZeile, INPUT cDaten ).
  1197. iPlus = iPlus + 1.
  1198. END.
  1199. IF iPlus > 0 THEN lTotal = TRUE.
  1200. /* Abholrabatt ------------------------------------------------------- */
  1201. iPlus = 0.
  1202. FOR EACH tRabSumm
  1203. WHERE tRabSumm.Abh_Rab <> 0
  1204. BY tRabSumm.Rab_Summ:
  1205. Rundbetr = tRabSumm.Abh_Rab.
  1206. nFakBetr = nFakBetr - Rundbetr.
  1207. IF NOT lRabatt THEN NEXT.
  1208. IF iPlus = 0 THEN iZeile = iZeile + 2.
  1209. ELSE iZeile = iZeile + 1.
  1210. IF Rundbetr < 0 THEN RText = cZusText.
  1211. ELSE RText = cRabText.
  1212. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1
  1213. WHERE AufRabSu.Firma = bAufko.Firma
  1214. AND AufRabSu.Aufnr = bAufko.Aufnr
  1215. AND AufRabSu.Rab_Summ = tRabSumm.Rab_Summ.
  1216. IF AufRabSu.A_Proz_Betr THEN WText = "%".
  1217. ELSE WText = "Fr.".
  1218. nRabWert = ABSOLUT(AufRabSu.A_Wert).
  1219. cDaten = RText
  1220. + " "
  1221. + tRabSumm.Bez
  1222. + " "
  1223. + STRING(nRabWert,"z9.99- ")
  1224. + WText.
  1225. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  1226. INPUT iZeile, INPUT cDaten ).
  1227. cDaten = STRING(- Rundbetr,"->>>>9.99").
  1228. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'M',
  1229. INPUT iZeile, INPUT cDaten ).
  1230. iPlus = iPlus + 1.
  1231. END.
  1232. IF iPlus > 0 THEN lTotal = TRUE.
  1233. /* Spezialpreis-Auftragsrabatte ---------------------------------------- */
  1234. iPlus = 0.
  1235. FOR EACH tSpeRab
  1236. WHERE tSpeRab.Auf_Betr <> 0
  1237. BY tSpeRab.Rab_Grp:
  1238. Rundbetr = tSpeRab.Auf_Betr.
  1239. nFakBetr = nFakBetr - Rundbetr.
  1240. IF NOT lRabatt THEN NEXT.
  1241. IF iPlus = 0 THEN iZeile = iZeile + 2.
  1242. ELSE iZeile = iZeile + 1.
  1243. IF Rundbetr < 0 THEN RText = cZusText.
  1244. ELSE RText = cRabText.
  1245. FIND Tabel NO-LOCK
  1246. WHERE Tabel.Firma = cFirma
  1247. AND Tabel.RecArt = 'ARABGRP'
  1248. AND Tabel.CodeC = ''
  1249. AND Tabel.CodeI = tSpeRab.Rab_Grp
  1250. AND Tabel.Sprcd = 1 .
  1251. FIND FIRST AufSpRab NO-LOCK
  1252. WHERE AufSpRab.Firma = bAufko.Firma
  1253. AND AufSpRab.Aufnr = bAufko.Aufnr
  1254. AND AufSpRab.Rab_Grp = tSpeRab.Rab_Grp.
  1255. IF AufSpRab.Auf_Proz_Betr THEN WText = "%".
  1256. ELSE WText = "Fr.".
  1257. nRabWert = ABSOLUT(AufSpRab.Auf_Wert).
  1258. cDaten = RText
  1259. + " "
  1260. + tRabSumm.Bez
  1261. + " "
  1262. + STRING(nRabWert,"z9.99- ")
  1263. + WText.
  1264. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  1265. INPUT iZeile, INPUT cDaten ).
  1266. cDaten = STRING(- Rundbetr,"->>>>9.99").
  1267. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'M',
  1268. INPUT iZeile, INPUT cDaten ).
  1269. iPlus = iPlus + 1.
  1270. END.
  1271. IF iPlus > 0 THEN lTotal = TRUE.
  1272. IF lTotal THEN
  1273. DO:
  1274. iZeile = iZeile + 1.
  1275. cDaten = TRIM(SUBSTRING(cFormText[14],21,20)).
  1276. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  1277. INPUT iZeile, INPUT cDaten ).
  1278. cDaten = TRIM(STRING(nFakBetr,"->>>>9.99")).
  1279. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'M',
  1280. INPUT iZeile, INPUT cDaten ).
  1281. END.
  1282. /* Recycling-Gebühren ------------------------------------------------ */
  1283. lTotal = FALSE.
  1284. iPlus = 0.
  1285. FOR EACH AufGKon NO-LOCK
  1286. WHERE AufGKon.Firma = bAufko.Firma
  1287. AND AufGKon.Aufnr = bAufko.Aufnr
  1288. AND AufGKon.Gebuehr <> 0
  1289. AND AufGKon.Betrag <> 0 :
  1290. nFakBetr = nFakBetr + AufGKon.Betrag.
  1291. IF NOT lRabatt THEN NEXT.
  1292. IF iPlus = 0 THEN iZeile = iZeile + 2.
  1293. ELSE iZeile = iZeile + 1.
  1294. iMwstCd = AufGKon.MWSt_Cd.
  1295. FIND GebKonto OF AufGKon NO-LOCK NO-ERROR.
  1296. IF NOT AVAILABLE GebKonto THEN cDaten = TRIM(SUBSTRING(cFormText[11],41,20)).
  1297. ELSE cDaten = GebKonto.Bez.
  1298. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  1299. INPUT iZeile, INPUT cDaten ).
  1300. cDaten = TRIM(STRING(AufGKon.Ausgang,"->>>>>9")).
  1301. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'L',
  1302. INPUT iZeile, INPUT cDaten ).
  1303. cDaten = TRIM(STRING(AufGKon.Betrag,"->>>>9.99")).
  1304. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'M',
  1305. INPUT iZeile, INPUT cDaten ).
  1306. cDaten = TRIM(STRING(AufGKon.MWSt_Cd ,"z9")).
  1307. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'N',
  1308. INPUT iZeile, INPUT cDaten ).
  1309. iPlus = iPlus + 1.
  1310. END.
  1311. IF iPlus > 0 THEN lTotal = TRUE.
  1312. IF lTotal THEN
  1313. DO:
  1314. iZeile = iZeile + 1.
  1315. cDaten = TRIM(SUBSTRING(cFormText[14],21,20)).
  1316. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'C',
  1317. INPUT iZeile, INPUT cDaten ).
  1318. cDaten = TRIM(STRING(nFakBetr,"->>>>9.99")).
  1319. RUN ZELLEFUELLEN ( INPUT hExcel, INPUT 'M',
  1320. INPUT iZeile, INPUT cDaten ).
  1321. END.
  1322. END PROCEDURE.
  1323. /* _UIB-CODE-BLOCK-END */
  1324. &ANALYZE-RESUME
  1325. &ENDIF