Ruecknahme.p 53 KB

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