Ruecknahme.p 56 KB

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