Lieferschein.p 65 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041
  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 cInstallation AS CHARACTER NO-UNDO.
  43. DEFINE VARIABLE iWgr AS INTEGER NO-UNDO.
  44. DEFINE VARIABLE iPgr AS INTEGER NO-UNDO.
  45. DEFINE VARIABLE iAgr AS INTEGER NO-UNDO.
  46. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO.
  47. DEFINE VARIABLE iInhalt AS INTEGER NO-UNDO.
  48. DEFINE VARIABLE iJahr AS INTEGER NO-UNDO.
  49. DEFINE VARIABLE iMaxPos AS INTEGER INIT 2650 NO-UNDO.
  50. DEFINE VARIABLE cvpr_Dokument AS CHARACTER NO-UNDO.
  51. DEFINE VARIABLE iArtZeile AS INTEGER NO-UNDO.
  52. DEFINE VARIABLE iVPagePos AS INTEGER NO-UNDO.
  53. DEFINE VARIABLE iVGroupPos AS INTEGER NO-UNDO.
  54. DEFINE VARIABLE VWg_Grp AS INTEGER INIT 0 NO-UNDO.
  55. DEFINE VARIABLE VProd_Grp AS INTEGER INIT 0 NO-UNDO.
  56. DEFINE VARIABLE VArt_Grp AS INTEGER INIT 0 NO-UNDO.
  57. DEFINE VARIABLE AArtnr AS INTEGER INIT 0 NO-UNDO.
  58. DEFINE VARIABLE AInhalt AS INTEGER INIT 0 NO-UNDO.
  59. DEFINE VARIABLE AJahr AS INTEGER INIT 0 NO-UNDO.
  60. DEFINE BUFFER bAufko FOR Aufko .
  61. DEFINE BUFFER bAufze FOR Aufze .
  62. DEFINE BUFFER FDebst FOR Debst . /* Fakturaadresse */
  63. DEFINE BUFFER LDebst FOR Debst . /* Lieferadresse */
  64. DEFINE BUFFER LAdresse FOR Adresse .
  65. DEFINE BUFFER bAdresse FOR Adresse .
  66. DEFINE BUFFER bWust FOR Wust .
  67. DEFINE BUFFER bSteuer FOR Steuer .
  68. { incl/ttdruckparam.i }
  69. { swissQR/propertiesSwissQR.i }
  70. { properties.i }
  71. DEFINE TEMP-TABLE tDokument
  72. FIELD cGruppe AS CHARACTER
  73. FIELD iZeile AS INTEGER
  74. FIELD cFeld AS CHARACTER
  75. FIELD cInhalt AS CHARACTER
  76. INDEX tDokument-k1 IS PRIMARY
  77. cGruppe
  78. iZeile
  79. cFeld
  80. .
  81. DEFINE TEMP-TABLE tTotale
  82. FIELD nMwstPfl AS DECIMAL EXTENT 12
  83. FIELD nMwstBet AS DECIMAL EXTENT 12
  84. FIELD nSammTot AS DECIMAL
  85. FIELD nSkBer AS DECIMAL
  86. FIELD nWW AS DECIMAL
  87. .
  88. DEFINE TEMP-TABLE sAufko
  89. FIELD cFirma AS CHARACTER
  90. FIELD iAufnr AS INTEGER
  91. FIELD iFak_Knr AS INTEGER
  92. FIELD iKnr AS INTEGER
  93. FIELD iSamm_Nr AS INTEGER
  94. FIELD iRecid AS RECID
  95. FIELD iFaknr AS INTEGER
  96. .
  97. DEFINE TEMP-TABLE tAufko LIKE Aufko
  98. FIELD iRecid AS RECID
  99. FIELD lBetrag AS LOGICAL
  100. .
  101. DEFINE TEMP-TABLE tAufze
  102. FIELD Aufnr AS INTEGER
  103. FIELD Sort1 AS CHARACTER
  104. FIELD Sort2 AS CHARACTER
  105. FIELD Sort3 AS CHARACTER
  106. FIELD Artnr AS INTEGER
  107. FIELD Inhalt AS INTEGER
  108. FIELD Jahr AS INTEGER
  109. FIELD Pos AS INTEGER
  110. FIELD Zeile AS RECID
  111. FIELD Preis AS DECIMAL DECIMALS 4
  112. FIELD Aktion AS LOG
  113. FIELD LagOrt AS CHARACTER
  114. FIELD MGeli AS DECIMAL
  115. FIELD MRuek AS DECIMAL
  116. INDEX tAufze-k1 IS PRIMARY
  117. Aufnr
  118. Sort1
  119. Sort2
  120. Sort3
  121. .
  122. DEFINE TEMP-TABLE tRueckst LIKE tAufze
  123. .
  124. DEFINE TEMP-TABLE tSpeRab
  125. FIELD Rab_Grp AS INTEGER
  126. FIELD Auf_Betr AS DECIMAL DECIMALS 4
  127. .
  128. DEFINE TEMP-TABLE tGebKto
  129. FIELD Sort_Cd AS CHARACTER
  130. FIELD Geb_Cd AS CHARACTER
  131. FIELD Bez AS CHARACTER
  132. FIELD Preis AS DECIMAL
  133. FIELD A_Anz AS DECIMAL
  134. FIELD A_Betrag AS DECIMAL
  135. FIELD E_Anz AS DECIMAL
  136. FIELD E_Betrag AS DECIMAL
  137. FIELD MWST_Art AS INTEGER
  138. FIELD MWST_Cd AS INTEGER
  139. .
  140. DEFINE TEMP-TABLE tRabSumm
  141. FIELD Rab_Summ AS INTEGER
  142. FIELD Bez AS CHARACTER
  143. FIELD F_Rab_Art AS INTEGER
  144. FIELD F_Wert AS DECIMAL DECIMALS 4
  145. FIELD A_Rab_Art AS INTEGER
  146. FIELD A_Wert AS DECIMAL DECIMALS 4
  147. FIELD Auf_Rab AS DECIMAL DECIMALS 4
  148. FIELD Abh_Rab AS DECIMAL DECIMALS 4
  149. .
  150. DEFINE TEMP-TABLE tUmsGrp
  151. FIELD Ums_Grp AS INTEGER
  152. FIELD Mwst AS INTEGER
  153. FIELD Ansatz AS DECIMAL
  154. FIELD Bez AS CHARACTER
  155. FIELD Ums_Betr AS DECIMAL DECIMALS 4
  156. .
  157. DEFINE TEMP-TABLE tTabTexte
  158. FIELD cRecArt AS CHARACTER
  159. FIELD iZeile AS INTEGER
  160. FIELD cFeld1 AS CHARACTER
  161. FIELD cFeld2 AS CHARACTER
  162. FIELD cFeld3 AS CHARACTER
  163. FIELD iFeld1 AS INTEGER
  164. FIELD iFeld2 AS INTEGER
  165. FIELD iFeld3 AS INTEGER
  166. INDEX tTabTexte-k1 IS PRIMARY
  167. cRecArt
  168. iZeile.
  169. /* _UIB-CODE-BLOCK-END */
  170. &ANALYZE-RESUME
  171. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  172. /* ******************** Preprocessor Definitions ******************** */
  173. &Scoped-define PROCEDURE-TYPE Procedure
  174. &Scoped-define DB-AWARE no
  175. /* _UIB-PREPROCESSOR-BLOCK-END */
  176. &ANALYZE-RESUME
  177. /* ************************ Function Prototypes ********************** */
  178. &IF DEFINED(EXCLUDE-calculateBlock) = 0 &THEN
  179. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD calculateBlock Procedure
  180. FUNCTION calculateBlock RETURNS INTEGER
  181. (ipGruppe AS CHARACTER) FORWARD.
  182. /* _UIB-CODE-BLOCK-END */
  183. &ANALYZE-RESUME
  184. &ENDIF
  185. /* *********************** Procedure Settings ************************ */
  186. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  187. /* Settings for THIS-PROCEDURE
  188. Type: Procedure
  189. Allow:
  190. Frames: 0
  191. Add Fields to: Neither
  192. Other Settings: CODE-ONLY COMPILE
  193. */
  194. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  195. /* ************************* Create Window ************************** */
  196. &ANALYZE-SUSPEND _CREATE-WINDOW
  197. /* DESIGN Window definition (used by the UIB)
  198. CREATE WINDOW Procedure ASSIGN
  199. HEIGHT = 15
  200. WIDTH = 60.
  201. /* END WINDOW DEFINITION */
  202. */
  203. &ANALYZE-RESUME
  204. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure
  205. /* *************************** Main Block *************************** */
  206. opcResult = ''.
  207. CREATE tParam.
  208. htParam:BUFFER-COPY(iphParam).
  209. ASSIGN
  210. cFirma = tParam.cFirma
  211. iAnzDok = tParam.Anzahl
  212. lPreis = tParam.lPreis.
  213. FIND bSteuer NO-LOCK WHERE bSteuer.Firma = cFirma.
  214. AdFirma = bSteuer.AdFirma.
  215. RUN AUFTRAG_ERMITTELN.
  216. IF opcResult <> '' THEN RETURN.
  217. FOR EACH sAufko
  218. BY sAufko.iKnr:
  219. FIND bAdresse NO-LOCK
  220. WHERE bAdresse.Firma = AdFirma
  221. AND bAdresse.Knr = sAufko.iKnr.
  222. iSprcd = bAdresse.Sprcd.
  223. RUN GET_FORMTEXT ( tParam.cInstall, tParam.cDokument, iSprcd,
  224. OUTPUT cFormText ) NO-ERROR.
  225. cRabText = TRIM(SUBSTRING(cFormText[21],01,20)).
  226. cZusText = TRIM(SUBSTRING(cFormText[21],21,20)).
  227. cEpzText = TRIM(SUBSTRING(cFormText[21],41,20)).
  228. RELEASE bAdresse.
  229. { vpr.i INIT }
  230. { vpr.i START }
  231. DO iLauf = 1 TO iAnzDok:
  232. dFakDatum = TODAY.
  233. iSeite = 0.
  234. iFaknr = sAufko.iFaknr.
  235. lFirst = TRUE.
  236. lLast = FALSE.
  237. EMPTY TEMP-TABLE tUmsGrp .
  238. EMPTY TEMP-TABLE tTotale .
  239. CREATE tTotale.
  240. FOR EACH bAufko NO-LOCK
  241. WHERE bAufko.Firma = sAufko.cFirma
  242. AND bAufko.Aufnr = sAufko.iAufnr
  243. BREAK BY bAufko.Firma
  244. BY bAufko.Aufnr :
  245. EMPTY TEMP-TABLE tAufze .
  246. EMPTY TEMP-TABLE tGebKto .
  247. EMPTY TEMP-TABLE tRabSumm .
  248. EMPTY TEMP-TABLE tSpeRab .
  249. EMPTY TEMP-TABLE tTabTexte .
  250. EMPTY TEMP-TABLE tRueckst .
  251. FIND bAdresse NO-LOCK USE-INDEX Adresse-k1
  252. WHERE bAdresse.Firma = AdFirma
  253. AND bAdresse.Knr = bAufko.Knr NO-ERROR.
  254. FIND LDebst NO-LOCK USE-INDEX Debst-k1
  255. WHERE LDebst.Firma = cFirma
  256. AND LDebst.Knr = bAufko.Knr NO-ERROR.
  257. FIND FDebst NO-LOCK USE-INDEX Debst-k1
  258. WHERE FDebst.Firma = cFirma
  259. AND FDebst.Knr = bAufko.Fak_Knr NO-ERROR.
  260. FIND bWust NO-LOCK USE-INDEX Wust-k1
  261. WHERE bWust.CodeK = LDebst.MWST
  262. AND bWust.CodeA = 99 NO-ERROR.
  263. lDebIncl = FALSE.
  264. IF AVAILABLE bWust THEN lDebIncl = bWust.Incl.
  265. dFakDatum = (IF bAufko.Lief_Datum < TODAY THEN TODAY ELSE bAufko.Lief_Datum).
  266. hAufko = BUFFER bAufko:HANDLE.
  267. htTabTexte = TEMP-TABLE tTabTexte:DEFAULT-BUFFER-HANDLE.
  268. /* Texte und Werte aus Tabelle 'Tabel' laden für RecArt */
  269. /* FAKART, AUFSTATUS, LIEFART, FAHRER, WISO, ABLAD */
  270. RUN CREATE_TABTEXTE ( hAufko, INPUT-OUTPUT htTabTexte ) NO-ERROR.
  271. RUN FUELLEN_tAufze ( bAufko.Aufnr ) NO-ERROR.
  272. FOR EACH tAufze
  273. WHERE tAufze.Artnr > 0:
  274. FIND bAufze NO-LOCK WHERE RECID(bAufze) = tAufze.Zeile.
  275. /* Spezial-Auftragsrabatt pro Lieferschein bilden */
  276. IF bAufze.Auf_Sp_Grp > 0 THEN
  277. DO:
  278. FIND FIRST tSpeRab
  279. WHERE tSpeRab.Rab_Grp = bAufze.Auf_Sp_Grp NO-ERROR.
  280. IF NOT AVAILABLE tSpeRab THEN
  281. DO:
  282. CREATE tSpeRab.
  283. ASSIGN
  284. tSpeRab.Rab_Grp = bAufze.Auf_Sp_Grp.
  285. END.
  286. tSpeRab.Auf_Betr = tSpeRab.Auf_Betr + bAufze.Auf_Sp_Rab.
  287. END.
  288. /* Summengruppen-Totale pro Lieferschein bilden */
  289. DO WHILE bAufze.Rab_Su_Grp > 0:
  290. FIND FIRST tRabSumm
  291. WHERE tRabSumm.Rab_Summ = bAufze.Rab_Su_Grp NO-ERROR.
  292. IF NOT AVAILABLE tRabSumm THEN
  293. DO:
  294. FIND FIRST RabSumm NO-LOCK
  295. WHERE RabSumm.Firma = bAufze.Firma
  296. AND RabSumm.Rab_Summ = bAufze.Rab_Su_Grp NO-ERROR.
  297. IF NOT AVAILABLE RabSumm THEN LEAVE.
  298. CREATE tRabSumm.
  299. ASSIGN
  300. tRabSumm.Rab_Summ = bAufze.Rab_Su_Grp
  301. tRabSumm.Bez = RabSumm.Bez
  302. tRabSumm.Auf_Rab = 0
  303. tRabSumm.Abh_Rab = 0.
  304. END.
  305. LEAVE.
  306. END.
  307. END.
  308. IF LAST-OF ( bAufko.Aufnr ) THEN lLast = TRUE.
  309. RUN DRUCKEN.
  310. /* Auftragskopf mutieren */
  311. REPEAT TRANSACTION:
  312. IF iLauf < iAnzDok THEN LEAVE.
  313. RUN AUFTRAG_GEDRUCKT ( bAufko.Aufnr ).
  314. LEAVE.
  315. END.
  316. END.
  317. END.
  318. { vpr.i STOP }
  319. END.
  320. PROCEDURE ShellExecuteA EXTERNAL "shell32.dll" :
  321. DEFINE INPUT PARAMETER lphwnd AS LONG.
  322. DEFINE INPUT PARAMETER lpOperation AS CHARACTER.
  323. DEFINE INPUT PARAMETER lpFile AS CHARACTER.
  324. DEFINE INPUT PARAMETER lpParameters AS CHARACTER.
  325. DEFINE INPUT PARAMETER lpDirectory AS CHARACTER.
  326. DEFINE INPUT PARAMETER nShowCmd AS LONG.
  327. DEFINE RETURN PARAMETER hInstance AS LONG.
  328. END PROCEDURE.
  329. /* _UIB-CODE-BLOCK-END */
  330. &ANALYZE-RESUME
  331. &IF DEFINED(EXCLUDE-PRUEFZIFFER) = 0 &THEN
  332. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PRUEFZIFFER Procedure
  333. PROCEDURE PRUEFZIFFER:
  334. /* ------------------------------------------------------------------------- */
  335. /* Prufziffer MODULO 10, Rekursiv (27 Stellig Ref.-Nr.) */
  336. /* ------------------------------------------------------------------------- */
  337. /* */
  338. /* Uebergabe Variable: 1. String Betrag (12-stellig) */
  339. /* 2. String Referenz (27-stellig) */
  340. /* 3. String Teilnehmernummer ( 9-stellig) */
  341. /* */
  342. /* Erstellung der VESR-Codierzeile */
  343. /* */
  344. /*---------------------------------------------------------------------------*/
  345. DEFINE INPUT-OUTPUT PARAMETER PZBetrag AS CHARACTER FORMAT "x(13)".
  346. DEFINE INPUT-OUTPUT PARAMETER PZReferenz AS CHARACTER FORMAT "x(27)".
  347. DEFINE INPUT-OUTPUT PARAMETER PZTNummer AS CHARACTER FORMAT "x(09)".
  348. DEFINE OUTPUT PARAMETER VSZeile AS CHARACTER FORMAT "x(58)".
  349. DEFINE VARIABLE l1 AS INTEGER.
  350. DEFINE VARIABLE l2 AS INTEGER.
  351. DEFINE VARIABLE l3 AS INTEGER.
  352. DEFINE VARIABLE PZ AS INTEGER.
  353. DEFINE VARIABLE x1 AS INTEGER.
  354. DEFINE VARIABLE x2 AS INTEGER.
  355. DEFINE VARIABLE x3 AS INTEGER.
  356. DEFINE VARIABLE VMOD10 AS CHARACTER FORMAT "x(11)" EXTENT 11.
  357. VMOD10[01] = "09468271350".
  358. VMOD10[02] = "94682713509".
  359. VMOD10[03] = "46827135098".
  360. VMOD10[04] = "68271350947".
  361. VMOD10[05] = "82713509466".
  362. VMOD10[06] = "27135094685".
  363. VMOD10[07] = "71350946824".
  364. VMOD10[08] = "13509468273".
  365. VMOD10[09] = "35094682712".
  366. VMOD10[10] = "50946827131".
  367. l1 = 12.
  368. l2 = 26.
  369. l3 = 08.
  370. DO WHILE SUBSTRING(PZBetrag,01,01) <> " ": /* Mit Betrag */
  371. x2 = 1.
  372. x1 = INT(SUBSTRING(PZBetrag ,01 ,01)).
  373. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  374. DO x3 = 2 TO 12:
  375. x1 = INT(SUBSTRING(PZBetrag ,x3 ,01)).
  376. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  377. END.
  378. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  379. SUBSTRING(PZBetrag,13) = STRING(PZ,"9").
  380. LEAVE.
  381. END.
  382. DO WHILE SUBSTRING(PZBetrag,01,01) = " ": /* Ohne Betrag */
  383. x2 = 11.
  384. x1 = INT(SUBSTRING(PZBetrag ,01 ,01)).
  385. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  386. DO x3 = 12 TO 12:
  387. x1 = INT(SUBSTRING(PZBetrag ,x3 ,01)).
  388. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  389. END.
  390. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  391. SUBSTRING(PZBetrag,13) = STRING(PZ,"9").
  392. LEAVE.
  393. END.
  394. DO WHILE l2 = 26:
  395. x2 = 1.
  396. x1 = INT(SUBSTRING(PZReferenz,01 ,01)).
  397. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  398. DO x3 = 2 TO 26:
  399. x1 = INT(SUBSTRING(PZReferenz ,x3 ,01)).
  400. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  401. END.
  402. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  403. SUBSTRING(PZReferenz,27) = STRING(PZ,"9").
  404. LEAVE.
  405. END.
  406. DO WHILE l3 = 08:
  407. x2 = 1.
  408. x1 = INT(SUBSTRING(PZTNummer ,01 ,01)).
  409. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  410. DO x3 = 2 TO 08:
  411. x1 = INT(SUBSTRING(PZTNummer ,x3 ,01)).
  412. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  413. END.
  414. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  415. SUBSTRING(PZTNummer,09) = STRING(PZ,"9").
  416. LEAVE.
  417. END.
  418. VSZeile = "".
  419. SUBSTRING(VSZeile,01) = PZBetrag.
  420. SUBSTRING(VSZeile,14) = ">".
  421. SUBSTRING(VSZeile,15) = PZReferenz.
  422. SUBSTRING(VSZeile,42) = "+ ".
  423. SUBSTRING(VSZeile,44) = PZTNummer.
  424. SUBSTRING(VSZeile,53) = ">".
  425. END PROCEDURE.
  426. /* _UIB-CODE-BLOCK-END */
  427. &ANALYZE-RESUME
  428. &ENDIF
  429. &IF DEFINED(EXCLUDE-QRCODE) = 0 &THEN
  430. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE QRCODE Procedure
  431. PROCEDURE DRUCKEN_QRCODE:
  432. /*------------------------------------------------------------------------------*/
  433. /* Purpose: */
  434. /* Parameters: <none> */
  435. /* Notes: */
  436. /*------------------------------------------------------------------------------*/
  437. DEFINE VARIABLE cFileName AS CHARACTER NO-UNDO.
  438. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  439. DEFINE VARIABLE hAufko AS HANDLE NO-UNDO.
  440. DEFINE VARIABLE cBesrTemplate AS CHARACTER NO-UNDO INIT 'viper/wiederkehr/BESR_QR.vfr'.
  441. DEFINE VARIABLE cWerbung AS CHARACTER NO-UNDO.
  442. DEFINE VARIABLE cConString AS CHARACTER NO-UNDO.
  443. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  444. FIND FIRST tAufko.
  445. hAufko = TEMP-TABLE tAufko:DEFAULT-BUFFER-HANDLE.
  446. FIND FIRST tParam.
  447. FIND FIRST ViperDoc NO-LOCK
  448. WHERE ViperDoc.Firma = tAufko.Firma
  449. AND ViperDoc.Benutzer = ''
  450. AND ViperDoc.Formular = 'BESR_QR'
  451. AND ViperDoc.DokArt = 0 NO-ERROR.
  452. IF NOT AVAILABLE ViperDoc THEN RETURN.
  453. RUN vpr_LoadVFR (cBesrTemplate).
  454. RUN vpr_ActivateReport ('BESR_QR').
  455. RUN vpr_SelectPrinter (ViperDoc.Drucker).
  456. RUN vpr_SetDocAttrib ('PAPERSIZE=A4').
  457. RUN vpr_SetPreviewMode ('Direct').
  458. RUN vpr_InitGroups ("").
  459. RUN vpr_initGraphObj.
  460. RUN vpr_SetCurrentPageProperties("Papertray", ViperDoc.Schacht_BESR).
  461. cFileName = SUBSTITUTE('&1&2_&3', cPathQRCodes, 'QR_CODE', STRING(bAufko.Aufnr,'9999999')).
  462. RUN 'SwissQR/SwissQRCode.p' ( hAufko, cFileName ).
  463. cFilename = cFileName + '.jpg'.
  464. IF SEARCH(cFileName) <> ? THEN
  465. DO:
  466. cFileName = 'FILENAME=' + cFileName.
  467. RUN vpr_setGraphObjAttrib ( 'QRCode', 'QRCODE', cFileName ).
  468. END.
  469. /* FILE-INFO:FILE-NAME = cFileName. */
  470. /* cFileName = FILE-INFO:FULL-PATHNAME.*/
  471. cWerbung = SUBSTITUTE(cPathWerbung, tParam.cInstall).
  472. cWerbung = SUBSTITUTE('&1Werbung_&2.jpg', cWerbung, tAufko.Firma).
  473. IF SEARCH(cWerbung) <> ? THEN
  474. DO:
  475. cWerbung = SUBSTITUTE('FILENAME=&1', cWerbung).
  476. RUN vpr_setGraphObjAttrib ( 'Werbung', 'QRCODE', cWerbung ).
  477. END.
  478. RUN vpr_InitGraphObj.
  479. RUN vpr_flushGroup('QRCODE').
  480. RUN vpr_printdoc ( vpr_getPageNo(), vpr_getPageNo() ).
  481. RUN vpr_ActivateReport (tParam.cDokument).
  482. END PROCEDURE.
  483. /* _UIB-CODE-BLOCK-END */
  484. &ANALYZE-RESUME
  485. &ENDIF
  486. &IF DEFINED(EXCLUDE-FUELLEN_UEBERSCHRIFT) = 0 &THEN
  487. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_UEBERSCHRIFT Procedure
  488. PROCEDURE FUELLEN_UEBERSCHRIFT:
  489. /*------------------------------------------------------------------------------
  490. Purpose:
  491. Notes:
  492. ------------------------------------------------------------------------------*/
  493. DEFINE VARIABLE cZellen AS CHARACTER NO-UNDO.
  494. DEFINE VARIABLE cWerte AS CHARACTER NO-UNDO.
  495. CREATE tDokument.
  496. ASSIGN
  497. tDokument.cGruppe = 'UEBERSCHRIFT'
  498. tDokument.iZeile = 1
  499. tDokument.cFeld = 'Artnr_T'
  500. tDokument.cInhalt = ENTRY(1, cFormText[23], ';').
  501. CREATE tDokument.
  502. ASSIGN
  503. tDokument.cGruppe = 'UEBERSCHRIFT'
  504. tDokument.iZeile = 1
  505. tDokument.cFeld = 'VGeb_Menge_T'
  506. tDokument.cInhalt = ENTRY(2, cFormText[23], ';').
  507. CREATE tDokument.
  508. ASSIGN
  509. tDokument.cGruppe = 'UEBERSCHRIFT'
  510. tDokument.iZeile = 1
  511. tDokument.cFeld = 'VGeb_T'
  512. tDokument.cInhalt = ENTRY(3, cFormText[23], ';').
  513. CREATE tDokument.
  514. ASSIGN
  515. tDokument.cGruppe = 'UEBERSCHRIFT'
  516. tDokument.iZeile = 1
  517. tDokument.cFeld = 'KGeb_Menge_T'
  518. tDokument.cInhalt = ENTRY(4, cFormText[23], ';').
  519. CREATE tDokument.
  520. ASSIGN
  521. tDokument.cGruppe = 'UEBERSCHRIFT'
  522. tDokument.iZeile = 1
  523. tDokument.cFeld = 'KGeb_T'
  524. tDokument.cInhalt = ENTRY(5, cFormText[23], ';').
  525. CREATE tDokument.
  526. ASSIGN
  527. tDokument.cGruppe = 'UEBERSCHRIFT'
  528. tDokument.iZeile = 1
  529. tDokument.cFeld = 'Bez_T'
  530. tDokument.cInhalt = ENTRY(6, cFormText[23], ';').
  531. CREATE tDokument.
  532. ASSIGN
  533. tDokument.cGruppe = 'UEBERSCHRIFT'
  534. tDokument.iZeile = 1
  535. tDokument.cFeld = 'Alk%_T'
  536. tDokument.cInhalt = ENTRY(7, cFormText[23], ';').
  537. CREATE tDokument.
  538. ASSIGN
  539. tDokument.cGruppe = 'UEBERSCHRIFT'
  540. tDokument.iZeile = 1
  541. tDokument.cFeld = 'JG_T'
  542. tDokument.cInhalt = ENTRY(8, cFormText[23], ';').
  543. CREATE tDokument.
  544. ASSIGN
  545. tDokument.cGruppe = 'UEBERSCHRIFT'
  546. tDokument.iZeile = 1
  547. tDokument.cFeld = 'Preis_T'
  548. tDokument.cInhalt = ENTRY(9, cFormText[23], ';').
  549. CREATE tDokument.
  550. ASSIGN
  551. tDokument.cGruppe = 'UEBERSCHRIFT'
  552. tDokument.iZeile = 1
  553. tDokument.cFeld = 'Betrag_T'
  554. tDokument.cInhalt = ENTRY(10, cFormText[23], ';').
  555. CREATE tDokument.
  556. ASSIGN
  557. tDokument.cGruppe = 'UEBERSCHRIFT'
  558. tDokument.iZeile = 1
  559. tDokument.cFeld = 'MC_T'
  560. tDokument.cInhalt = ENTRY(11, cFormText[23], ';').
  561. cZellen = ''.
  562. cWerte = ''.
  563. FOR EACH tDokument
  564. WHERE tDokument.cGruppe = 'Ueberschrift'
  565. BREAK BY tDokument.cGruppe
  566. BY tDokument.cFeld:
  567. cWerte = cWerte
  568. + tDokument.cInhalt.
  569. cZellen = cZellen
  570. + tDokument.cFeld.
  571. IF NOT LAST-OF ( tDokument.cGruppe ) THEN ASSIGN cWerte = cWerte + CHR(01)
  572. cZellen = cZellen + ','.
  573. END.
  574. RUN vpr_SetDelimiter (CHR(01)).
  575. RUN vpr_setGroupText ('Ueberschrift', cZellen, cWerte).
  576. END PROCEDURE.
  577. /* _UIB-CODE-BLOCK-END */
  578. &ANALYZE-RESUME
  579. &ENDIF
  580. /* ********************** Internal Procedures *********************** */
  581. &IF DEFINED(EXCLUDE-ARTIKELZEILE) = 0 &THEN
  582. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE Procedure
  583. PROCEDURE ARTIKELZEILE :
  584. /*------------------------------------------------------------------------------
  585. Purpose:
  586. Parameters: <none>
  587. Notes:
  588. ------------------------------------------------------------------------------*/
  589. DEFINE INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  590. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  591. DEFINE VARIABLE nRabWert AS DECIMAL NO-UNDO.
  592. DEFINE VARIABLE xRabText AS CHARACTER NO-UNDO.
  593. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
  594. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  595. iArtZeile = iArtZeile + 1.
  596. DO WHILE Aufze.Artnr = 0:
  597. cString = Aufze.Bez1.
  598. IF Aufze.Bez2 <> '' THEN
  599. DO:
  600. cString = cString
  601. + (IF cString = '' THEN '' ELSE CHR(10))
  602. + Aufze.Bez2.
  603. END.
  604. CREATE tDokument.
  605. ASSIGN
  606. tDokument.cGruppe = 'ArtikelZeile1'
  607. tDokument.iZeile = iArtZeile
  608. tDokument.cFeld = 'Bez1'
  609. tDokument.cInhalt = cString.
  610. RETURN.
  611. END.
  612. FIND Artst OF Aufze NO-LOCK.
  613. FIND GGebinde NO-LOCK
  614. WHERE GGebinde.Firma = cFirma
  615. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-ERROR.
  616. FIND VGebinde NO-LOCK
  617. WHERE VGebinde.Firma = cFirma
  618. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-ERROR.
  619. FIND KGebinde NO-LOCK
  620. WHERE KGebinde.Firma = cFirma
  621. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-ERROR.
  622. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr' , STRING(Aufze.Artnr ,"999999") ).
  623. IF Aufze.VGeb_Me <> 0 THEN
  624. DO:
  625. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Menge_VGeb', STRING(Aufze.VGeb_Me,'->>,>>9') ).
  626. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'VGebinde' , VGebinde.KBez ).
  627. END.
  628. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Menge' , STRING(Aufze.MGeli,'->>,>>9') ).
  629. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'KGebinde', KGebinde.KBez ).
  630. cString = Aufze.Bez1.
  631. IF Aufze.Bez2 <> '' THEN
  632. DO:
  633. cString = cString
  634. + (IF cString = '' THEN '' ELSE CHR(10))
  635. + Aufze.Bez2.
  636. END.
  637. IF Aufze.Aktion THEN
  638. DO:
  639. cString = cString
  640. + (IF cString = '' THEN '' ELSE CHR(10))
  641. + Aufze.Aktion_Text.
  642. END.
  643. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', cString ).
  644. IF Aufze.Jahr > 9 THEN
  645. DO:
  646. cString = STRING(Aufze.Jahr,"9999").
  647. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'JG', cString ).
  648. END.
  649. IF Aufze.Alk_Gehalt <> 0 THEN
  650. DO:
  651. cString = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  652. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Alk%', cString ).
  653. END.
  654. DO WHILE lPreis :
  655. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis' , STRING(Aufze.Preis ,'>,>>9.99') ).
  656. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', STRING(Aufze.Bru_Betr,'->>>,>>9.99') ).
  657. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC' , STRING(Aufze.WuCd ,'z9') ).
  658. IF Aufze.Rab_Betr = 0 THEN LEAVE.
  659. iArtZeile = iArtZeile + 1.
  660. nRabWert = ABSOLUTE(Aufze.Rab_Wert).
  661. IF Aufze.Rab_Art = 3 THEN xRabText = cEpzText.
  662. ELSE
  663. DO:
  664. IF Aufze.Rab_Betr < 0 THEN xRabText = cZusText.
  665. IF Aufze.Rab_Betr > 0 THEN xRabText = cRabText.
  666. END.
  667. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(xRabText) ).
  668. IF Aufze.Rab_Art = 1 THEN cString = STRING(nRabWert,"->9.9%").
  669. IF Aufze.Rab_Art = 2 OR
  670. Aufze.Rab_Art = 3 THEN cString = STRING(nRabWert,"-9.99").
  671. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis', cString ).
  672. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Aufze.Rab_Betr,"->>>,>>9.99")) ).
  673. LEAVE.
  674. END.
  675. DO WHILE lPreis:
  676. IF Aufze.Zus_Betr = 0 THEN LEAVE.
  677. iArtZeile = iArtZeile + 1.
  678. nRabWert = ABSOLUTE(Aufze.Zus_Wert).
  679. IF Aufze.Zus_Art = 3 THEN xRabText = cEpzText.
  680. ELSE
  681. DO:
  682. IF Aufze.Zus_Betr < 0 THEN xRabText = cRabText.
  683. IF Aufze.Zus_Betr > 0 THEN xRabText = cZusText.
  684. END.
  685. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(xRabText) ).
  686. IF Aufze.Zus_Art = 1 THEN cString = STRING(nRabWert,"->9.9%").
  687. IF Aufze.Zus_Art = 2 OR
  688. Aufze.Zus_Art = 3 THEN cString = STRING(nRabWert,"-9.99").
  689. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis', cString ).
  690. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(+ Aufze.Zus_Betr,"->>>,>>9.99")) ).
  691. LEAVE.
  692. END.
  693. /* ---- Summengruppen-Total -------------------------------------------- */
  694. IF Aufze.Rab_Su_Grp <> 0 THEN
  695. DO:
  696. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR.
  697. IF AVAILABLE TRabSumm THEN
  698. DO:
  699. TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab.
  700. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab.
  701. END.
  702. END.
  703. /* ---- Warengruppen-Totale -------------------------------------------- */
  704. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp
  705. AND TUmsGrp.MWst = Aufze.WuCd
  706. AND TUmsGrp.Ansatz = Aufze.Mwst% NO-ERROR.
  707. IF NOT AVAILABLE TUmsGrp THEN
  708. DO:
  709. FIND WarenGrp NO-LOCK USE-INDEX WarenGrp-k1
  710. WHERE WarenGrp.Firma = cFirma
  711. AND WarenGrp.Wgr = Artst.Wg_Grp NO-ERROR.
  712. CREATE TUmsGrp.
  713. ASSIGN
  714. TUmsGrp.Ums_Grp = Artst.Wg_Grp
  715. TUmsGrp.Mwst = Aufze.WuCd
  716. TUmsGrp.Ansatz = Aufze.MWST%.
  717. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
  718. ELSE TUmsGrp.Bez = "??????????".
  719. END.
  720. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
  721. + Aufze.Net_Betr
  722. - Aufze.Auf_Rab
  723. - Aufze.Abh_Rab
  724. - Aufze.Auf_Sp_Rab.
  725. END PROCEDURE.
  726. /* _UIB-CODE-BLOCK-END */
  727. &ANALYZE-RESUME
  728. &ENDIF
  729. &IF DEFINED(EXCLUDE-AUFTRAG_ERMITTELN) = 0 &THEN
  730. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAG_ERMITTELN Procedure
  731. PROCEDURE AUFTRAG_ERMITTELN :
  732. /*------------------------------------------------------------------------------
  733. Purpose:
  734. Parameters: <none>
  735. Notes:
  736. ------------------------------------------------------------------------------*/
  737. DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO.
  738. FIND FIRST tParam.
  739. EMPTY TEMP-TABLE sAufko.
  740. /* Sammeln aller Aufträge pro Sammelnummer */
  741. FOR EACH Aufko NO-LOCK USE-INDEX Aufko-k5
  742. WHERE Aufko.Firma = tParam.cFirma
  743. AND Aufko.Aufnr = tParam.iAufnr :
  744. CREATE sAufko.
  745. ASSIGN
  746. sAufko.cFirma = Aufko.Firma
  747. sAufko.iAufnr = Aufko.Aufnr
  748. sAufko.iFak_Knr = Aufko.Fak_Knr
  749. sAufko.iKnr = Aufko.Knr
  750. sAufko.iSamm_Nr = 0
  751. sAufko.iRecid = RECID(Aufko)
  752. sAufko.iFaknr = 0.
  753. END.
  754. /* Alle Auftragstotale aller Lieferscheine neu rechnen */
  755. FOR EACH sAufko:
  756. FOR EACH bAufko NO-LOCK
  757. WHERE bAufko.Firma = sAufko.cFirma
  758. AND bAufko.Aufnr = sAufko.iAufnr :
  759. DYNAMIC-FUNCTION('calculateAuftragsTotal':U, bAufko.Firma,
  760. bAufko.Aufnr,
  761. OUTPUT nTotale ) NO-ERROR.
  762. RELEASE bAufko.
  763. END.
  764. END.
  765. END PROCEDURE.
  766. /* _UIB-CODE-BLOCK-END */
  767. &ANALYZE-RESUME
  768. &ENDIF
  769. &IF DEFINED(EXCLUDE-AUSGABE_ARTIKELZEILE) = 0 &THEN
  770. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_ARTIKELZEILE Procedure
  771. PROCEDURE AUSGABE_ARTIKELZEILE :
  772. /*------------------------------------------------------------------------------
  773. Purpose:
  774. Parameters: <none>
  775. Notes:
  776. ------------------------------------------------------------------------------*/
  777. DEFINE VARIABLE cZellen AS CHARACTER NO-UNDO.
  778. DEFINE VARIABLE cWerte AS CHARACTER NO-UNDO.
  779. DEFINE VARIABLE iPos AS INTEGER NO-UNDO.
  780. FOR EACH tDokument
  781. WHERE tDokument.cGruppe = 'ArtikelZeile1'
  782. BREAK BY tDokument.cGruppe
  783. BY tDokument.iZeile:
  784. IF FIRST-OF ( tDokument.cGruppe ) THEN
  785. DO:
  786. iVPagePos = vpr_getPageVPos() + 20.
  787. RUN vpr_setPageVPos ( iVPagePos ).
  788. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
  789. END.
  790. IF FIRST-OF ( tDokument.iZeile ) THEN
  791. DO:
  792. cZellen = ''.
  793. cWerte = ''.
  794. END.
  795. /* IF tDokument.cFeld = 'Bez1' THEN RUN vpr_Asc2RTF ( tDokument.cInhalt, '', OUTPUT tDokument.cInhalt).*/
  796. IF tDokument.cFeld = 'Bez1' THEN tDokument.cInhalt = REPLACE(tDokument.cInhalt, CHR(10), '\par ').
  797. cWerte = cWerte
  798. + tDokument.cInhalt.
  799. cZellen = cZellen
  800. + tDokument.cFeld.
  801. IF NOT LAST-OF ( tDokument.iZeile ) THEN
  802. DO:
  803. ASSIGN
  804. cWerte = cWerte + CHR(01)
  805. cZellen = cZellen + ','.
  806. NEXT.
  807. END.
  808. RUN vpr_SetDelimiter (CHR(01)).
  809. RUN vpr_setGroupText ('ArtikelZeile1', cZellen, cWerte).
  810. iVPagePos = vpr_getPageVPos().
  811. iPos = iVPagePos + vpr_getGroupHeight('ArtikelZeile1').
  812. IF iPos > iMaxPos THEN
  813. DO:
  814. RUN VIPER_NEUE_SEITE.
  815. iVPagePos = vpr_getPageVPos() + 20.
  816. RUN vpr_setPageVPos ( iVPagePos ).
  817. RUN vpr_setGroupText ('ArtikelZeile1', cZellen, cWerte).
  818. END.
  819. RUN vpr_FlushGroup ('ArtikelZeile1').
  820. iVPagePos = vpr_getPageVPos().
  821. IF LAST-OF ( tDokument.cGruppe ) THEN LEAVE.
  822. iVPagePos = vpr_getPageVPos().
  823. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
  824. END.
  825. FOR EACH tDokument
  826. WHERE tDokument.cGruppe = 'ArtikelZeile1':
  827. DELETE tDokument.
  828. END.
  829. END PROCEDURE.
  830. /* _UIB-CODE-BLOCK-END */
  831. &ANALYZE-RESUME
  832. &ENDIF
  833. &IF DEFINED(EXCLUDE-AUSGABE_GRUPPE) = 0 &THEN
  834. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_GRUPPE Procedure
  835. PROCEDURE AUSGABE_GRUPPE :
  836. /*------------------------------------------------------------------------------
  837. Purpose:
  838. Parameters: <none>
  839. Notes:
  840. ------------------------------------------------------------------------------*/
  841. DEFINE INPUT PARAMETER ipGruppe AS CHARACTER NO-UNDO.
  842. DEFINE VARIABLE cZellen AS CHARACTER NO-UNDO.
  843. DEFINE VARIABLE cWerte AS CHARACTER NO-UNDO.
  844. DEFINE VARIABLE iSpace AS INTEGER NO-UNDO.
  845. FIND FIRST tParam.
  846. iSpace = vpr_getPageVPos().
  847. FOR EACH tDokument NO-LOCK
  848. WHERE tDokument.cGruppe = ipGruppe
  849. BREAK BY tDokument.cGruppe
  850. BY tDokument.iZeile:
  851. IF FIRST-OF ( tDokument.iZeile ) THEN iSpace = iSpace + 40.
  852. END.
  853. IF iSpace > iMaxPos THEN
  854. DO:
  855. RUN VIPER_NEUE_SEITE.
  856. iVPagePos = vpr_getPageVPos() + 20.
  857. RUN vpr_setPageVPos ( iVPagePos ).
  858. END.
  859. FOR EACH tDokument
  860. WHERE tDokument.cGruppe = ipGruppe
  861. BREAK BY tDokument.cGruppe
  862. BY tDokument.iZeile:
  863. IF FIRST-OF ( tDokument.cGruppe ) THEN
  864. DO:
  865. IF ipGruppe <> 'Kondition' AND
  866. ipGruppe <> 'BESR' AND
  867. ipGruppe <> 'ADRESSE' THEN
  868. DO:
  869. iVPagePos = vpr_getPageVPos().
  870. RUN vpr_setGroupVPos ( ipGruppe, iVPagePos ).
  871. END.
  872. END.
  873. IF FIRST-OF ( tDokument.iZeile ) THEN
  874. DO:
  875. cZellen = ''.
  876. cWerte = ''.
  877. END.
  878. cWerte = cWerte
  879. + tDokument.cInhalt.
  880. cZellen = cZellen
  881. + tDokument.cFeld.
  882. IF NOT LAST-OF ( tDokument.iZeile ) THEN
  883. DO:
  884. ASSIGN
  885. cWerte = cWerte + CHR(01)
  886. cZellen = cZellen + ','.
  887. NEXT.
  888. END.
  889. RUN vpr_SetDelimiter (CHR(01)).
  890. RUN vpr_setGroupText (ipGruppe, cZellen, cWerte).
  891. RUN vpr_FlushGroup (ipGruppe).
  892. END.
  893. FOR EACH tDokument
  894. WHERE tDokument.cGruppe = ipGruppe:
  895. DELETE tDokument.
  896. END.
  897. END PROCEDURE.
  898. /* _UIB-CODE-BLOCK-END */
  899. &ANALYZE-RESUME
  900. &ENDIF
  901. &IF DEFINED(EXCLUDE-DRUCKEN) = 0 &THEN
  902. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN Procedure
  903. PROCEDURE DRUCKEN :
  904. /*------------------------------------------------------------------------------
  905. Purpose:
  906. Parameters: <none>
  907. Notes:
  908. ------------------------------------------------------------------------------*/
  909. DEFINE VARIABLE cText AS CHARACTER NO-UNDO.
  910. DEFINE VARIABLE cLAdresse AS CHARACTER NO-UNDO.
  911. DEFINE VARIABLE RText AS CHARACTER NO-UNDO.
  912. DEFINE VARIABLE WText AS CHARACTER NO-UNDO.
  913. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  914. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  915. DEFINE VARIABLE nBetrag AS DECIMAL NO-UNDO.
  916. DEFINE VARIABLE iMwstCd AS INTEGER NO-UNDO.
  917. DEFINE VARIABLE nZeiTot AS DECIMAL DECIMALS 4 NO-UNDO.
  918. DEFINE VARIABLE lJa AS LOG NO-UNDO.
  919. DEFINE VARIABLE cPDFName AS CHARACTER INIT '' NO-UNDO.
  920. DEFINE VARIABLE xString AS CHARACTER NO-UNDO.
  921. FIND FIRST tParam.
  922. IF tParam.lBatch THEN
  923. DO:
  924. ASSIGN
  925. tParam.lOpenPDF = FALSE.
  926. END.
  927. lEnde = FALSE.
  928. FIND FIRST tAufko NO-ERROR.
  929. IF NOT AVAILABLE tAufko THEN CREATE tAufko.
  930. BUFFER-COPY bAufko TO tAufko
  931. ASSIGN
  932. tAufko.iRecid = RECID(bAufko)
  933. tAufko.lBetrag = TRUE.
  934. nFakBetr = 0.
  935. IF iSeite = 0 THEN RUN VIPER_INIT.
  936. RUN DRUCKEN_KOPF.
  937. iArtZeile = 0.
  938. iVPagePos = vpr_getPageVPos().
  939. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
  940. FOR EACH tAufze NO-LOCK
  941. BY tAufze.Aufnr
  942. BY tAufze.Sort1
  943. BY tAufze.LagOrt
  944. BY tAufze.Sort2
  945. BY tAufze.Pos :
  946. FIND Aufze NO-LOCK WHERE RECID(Aufze) = tAufze.Zeile.
  947. RUN ARTIKELZEILE ( RECID(tAufze) ).
  948. nFakBetr = nFakBetr + Aufze.Net_Betr.
  949. RELEASE Aufze.
  950. END.
  951. IF lPreis THEN
  952. DO:
  953. iArtZeile = iArtZeile + 1.
  954. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , ' ' ).
  955. iArtZeile = iArtZeile + 1.
  956. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , TRIM(SUBSTRING(cFormText[10],41,20)) ).
  957. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(nFakBetr,'->>>,>>9.99')) ).
  958. END.
  959. iArtZeile = iArtZeile + 1.
  960. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , ' ' ).
  961. RUN AUSGABE_ARTIKELZEILE.
  962. /* Gebindelieferungen ------------------------------------------------ */
  963. RUN VIPER_CREATE_DOKUMENT ( 'Zusatztext', iArtZeile, 'Bemerkung_1' , 'Liefergebinde:' ).
  964. nBetrag = 0.
  965. iArtZeile = 0.
  966. ii = 0.
  967. FOR EACH AufGKon NO-LOCK
  968. WHERE AufGKon.Firma = BAufko.Firma
  969. AND AufGKon.Aufnr = BAufko.Aufnr
  970. AND AufGKon.Depot <> 0
  971. AND (AufGKon.Eingang <> 0 OR
  972. AufGKon.Ausgang <> 0)
  973. BREAK BY AufgKon.Firma
  974. BY AufGKon.Aufnr:
  975. FIND GebKonto NO-LOCK
  976. WHERE GebKonto.Firma = cFirma
  977. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd.
  978. i1 = AufGKon.Ausgang - AufGKon.Eingang.
  979. Rundbetr = AufGKon.Betrag.
  980. iMwstCd = AufGKon.MWSt_Cd.
  981. nBetrag = nBetrag + Rundbetr.
  982. ii = ii + 1.
  983. IF ii MOD 2 > 0 THEN
  984. DO:
  985. iArtZeile = iArtZeile + 1.
  986. RUN VIPER_CREATE_DOKUMENT ( 'GebindeLieferung', iArtZeile, 'GebindeGel_1' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ).
  987. RUN VIPER_CREATE_DOKUMENT ( 'GebindeLieferung', iArtZeile, 'Gebindetext_1', GebKonto.Bez ).
  988. RUN VIPER_CREATE_DOKUMENT ( 'GebindeLieferung', iArtZeile, 'a_1' , 'à' ).
  989. RUN VIPER_CREATE_DOKUMENT ( 'GebindeLieferung', iArtZeile, 'GebindeBetr_1', TRIM(STRING(GebKonto.Depot ,'->>>9.99')) ).
  990. END.
  991. ELSE
  992. DO:
  993. RUN VIPER_CREATE_DOKUMENT ( 'GebindeLieferung', iArtZeile, 'GebindeGel_2' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ).
  994. RUN VIPER_CREATE_DOKUMENT ( 'GebindeLieferung', iArtZeile, 'Gebindetext_2', GebKonto.Bez ).
  995. RUN VIPER_CREATE_DOKUMENT ( 'GebindeLieferung', iArtZeile, 'a_2' , 'à' ).
  996. RUN VIPER_CREATE_DOKUMENT ( 'GebindeLieferung', iArtZeile, 'GebindeBetr_2', TRIM(STRING(GebKonto.Depot ,'->>>9.99')) ).
  997. END.
  998. END.
  999. RELEASE AufGKon.
  1000. RELEASE GebKonto.
  1001. IF iArtZeile > 0 THEN
  1002. DO:
  1003. RUN AUSGABE_GRUPPE ('ZusatzText').
  1004. RUN AUSGABE_GRUPPE ('GebindeLieferung').
  1005. END.
  1006. /* Gebindelrücknahmetablle ------------------------------------------- */
  1007. iArtZeile = 0.
  1008. xString = SUBSTITUTE('GEBINDERETOUR&1', STRING(bAufko.Fak_Art,'99')).
  1009. cText = ''.
  1010. FIND TabTexte NO-LOCK USE-INDEX TabTexte-k1
  1011. WHERE TabTexte.Firma = bAufko.Firma
  1012. AND TabTexte.TextArt = xString
  1013. AND TabTexte.Sprcd = iSprcd NO-ERROR.
  1014. IF NOT AVAILABLE TabTexte THEN
  1015. DO:
  1016. FIND TabTexte NO-LOCK USE-INDEX TabTexte-k1
  1017. WHERE TabTexte.Firma = bAufko.Firma
  1018. AND TabTexte.TextArt = xString
  1019. AND TabTexte.Sprcd = 1 NO-ERROR.
  1020. END.
  1021. IF NOT AVAILABLE TabTexte THEN
  1022. DO:
  1023. xString = 'GEBINDERETOUR'.
  1024. FIND TabTexte NO-LOCK USE-INDEX TabTexte-k1
  1025. WHERE TabTexte.Firma = bAufko.Firma
  1026. AND TabTexte.TextArt = xString
  1027. AND TabTexte.Sprcd = iSprcd NO-ERROR.
  1028. END.
  1029. IF NOT AVAILABLE TabTexte THEN
  1030. DO:
  1031. FIND TabTexte NO-LOCK USE-INDEX TabTexte-k1
  1032. WHERE TabTexte.Firma = bAufko.Firma
  1033. AND TabTexte.TextArt = xString
  1034. AND TabTexte.Sprcd = 1 NO-ERROR.
  1035. END.
  1036. IF AVAILABLE TabTexte THEN cText = TabTexte.Inhalt.
  1037. IF cText <> '' THEN
  1038. DO:
  1039. RUN vpr_asc2rtf ( cText, '', OUTPUT cText ).
  1040. RUN VIPER_CREATE_DOKUMENT ( 'GebindeRuecknahme', 1, 'GebindeRuecknahme_T' , cText ).
  1041. ii = DYNAMIC-FUNCTION ('calculateBlock':U, 'GebindeRuecknahme') NO-ERROR.
  1042. ii = ii + vpr_getPageVPos() + 150.
  1043. IF ii > (iMaxPos) THEN
  1044. DO:
  1045. RUN VIPER_NEUE_SEITE.
  1046. iVPagePos = vpr_getPageVPos() + 75.
  1047. END.
  1048. ELSE iVPagePos = vpr_getPageVPos() + 150.
  1049. RUN vpr_setPageVPos ( iVPagePos ).
  1050. RUN vpr_setGroupVPos ( 'GebindeRuecknahme', iVPagePos ).
  1051. RUN AUSGABE_GRUPPE ( 'GebindeRuecknahme' ).
  1052. END.
  1053. lEnde = TRUE.
  1054. RUN VIPER_NEUE_SEITE.
  1055. RUN vpr_EndDoc.
  1056. cvpr_Dokument = SUBSTITUTE(cERPDokumente,
  1057. tParam.cInstall,
  1058. 'Lieferscheine',
  1059. SUBSTITUTE('&1-&2_&3.vpr',
  1060. STRING(bAufko.Knr ,'999999'),
  1061. STRING(bAufko.Aufnr,'9999999'),
  1062. tParam.cDokument) ).
  1063. RUN vpr_SaveDoc ( cvpr_Dokument ).
  1064. IF tParam.lCreatePDF THEN
  1065. DO:
  1066. cPDFName = REPLACE(cvpr_Dokument, '.vpr', '.pdf').
  1067. RUN vpr_printPDF (0, 0, INPUT-OUTPUT cPDFName ).
  1068. END.
  1069. IF tParam.lOpenPDF THEN
  1070. DO:
  1071. DEFINE VARIABLE o-i AS i NO-UNDO.
  1072. FILE-INFO:FILE-NAME = cPDFName.
  1073. cPDFName = FILE-INFO:FULL-PATHNAME.
  1074. RUN shellExecuteA (0,
  1075. "open",
  1076. cPDFName,
  1077. "",
  1078. "",
  1079. 0,
  1080. OUTPUT o-i).
  1081. END.
  1082. END PROCEDURE.
  1083. /* _UIB-CODE-BLOCK-END */
  1084. &ANALYZE-RESUME
  1085. &ENDIF
  1086. &IF DEFINED(EXCLUDE-DRUCKEN_ADRESSE) = 0 &THEN
  1087. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN_ADRESSE Procedure
  1088. PROCEDURE DRUCKEN_ADRESSE :
  1089. /*------------------------------------------------------------------------------
  1090. Purpose:
  1091. Parameters: <none>
  1092. Notes:
  1093. ------------------------------------------------------------------------------*/
  1094. DEFINE VARIABLE cZellen AS CHARACTER NO-UNDO.
  1095. DEFINE VARIABLE cWerte AS CHARACTER NO-UNDO.
  1096. DEFINE VARIABLE iPos AS INTEGER NO-UNDO.
  1097. FIND FIRST tParam.
  1098. FIND FIRST tDokument
  1099. WHERE tDokument.cGruppe = 'KOPF'
  1100. AND tDokument.iZeile = 1
  1101. AND tDokument.cFeld = 'Seite' NO-ERROR.
  1102. IF NOT AVAILABLE tDokument THEN
  1103. DO:
  1104. CREATE tDokument.
  1105. ASSIGN
  1106. tDokument.cGruppe = 'KOPF'
  1107. tDokument.iZeile = 1
  1108. tDokument.cFeld = 'Seite'.
  1109. END.
  1110. tDokument.cInhalt = STRING(iSeite,'z9').
  1111. cZellen = ''.
  1112. cWerte = ''.
  1113. FOR EACH tDokument
  1114. WHERE tDokument.cGruppe = 'Kopf'
  1115. BREAK BY tDokument.cGruppe
  1116. BY tDokument.cFeld:
  1117. cWerte = cWerte
  1118. + tDokument.cInhalt.
  1119. cZellen = cZellen
  1120. + tDokument.cFeld.
  1121. IF NOT LAST-OF ( tDokument.cGruppe ) THEN ASSIGN cWerte = cWerte + CHR(01)
  1122. cZellen = cZellen + ','.
  1123. END.
  1124. RUN vpr_SetDelimiter (CHR(01)).
  1125. RUN vpr_setGroupText ('Kopf', cZellen, cWerte).
  1126. RUN vpr_FlushGroup ('Kopf').
  1127. IF iSeite = 1 THEN
  1128. DO:
  1129. cZellen = ''.
  1130. cWerte = ''.
  1131. FOR EACH tDokument
  1132. WHERE tDokument.cGruppe = 'KopfDetail'
  1133. BREAK BY tDokument.cGruppe
  1134. BY tDokument.cFeld:
  1135. cWerte = cWerte
  1136. + tDokument.cInhalt.
  1137. cZellen = cZellen
  1138. + tDokument.cFeld.
  1139. IF NOT LAST-OF ( tDokument.cGruppe ) THEN ASSIGN cWerte = cWerte + CHR(01)
  1140. cZellen = cZellen + ','.
  1141. END.
  1142. RUN vpr_SetDelimiter (CHR(01)).
  1143. RUN vpr_setGroupText ('KopfDetail', cZellen, cWerte).
  1144. RUN vpr_FlushGroup ('KopfDetail').
  1145. END.
  1146. iPos = vpr_getGroupVPos('KopfDetail').
  1147. iVPagePos = vpr_getCellVPos('Seite_T', 'Kopf') + vpr_getCellHeight('Seite_T', 'Kopf').
  1148. IF iPos > iVPagePos THEN iVPagePos = iPos.
  1149. iVPagePos = iVPagePos + 20.
  1150. RUN vpr_setGroupVPos ( 'Ueberschrift', iVPagePos ).
  1151. RUN vpr_FlushGroup ( 'Ueberschrift' ).
  1152. iPos = vpr_getGroupVPos('Ueberschrift') + vpr_getGroupHeight('Ueberschrift').
  1153. RUN vpr_setPageVPos ( iPos ).
  1154. END PROCEDURE.
  1155. /* _UIB-CODE-BLOCK-END */
  1156. &ANALYZE-RESUME
  1157. &ENDIF
  1158. &IF DEFINED(EXCLUDE-DRUCKEN_KOPF) = 0 &THEN
  1159. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN_KOPF Procedure
  1160. PROCEDURE DRUCKEN_KOPF :
  1161. /*------------------------------------------------------------------------------
  1162. Purpose:
  1163. Parameters: <none>
  1164. Notes:
  1165. ------------------------------------------------------------------------------*/
  1166. DEFINE VARIABLE cText AS CHARACTER NO-UNDO.
  1167. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  1168. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  1169. FIND FIRST tParam.
  1170. RUN VIPER_NEUE_SEITE.
  1171. IF iSeite = 1 THEN
  1172. DO:
  1173. iFaknr = tParam.iAufnr.
  1174. cBesrKopf = ''.
  1175. IF bAufko.Adresse[05] <> '' THEN
  1176. DO:
  1177. i1 = 6.
  1178. DO ii = 1 TO 5:
  1179. CREATE tDokument.
  1180. ASSIGN
  1181. tDokument.cGruppe = 'KOPF'
  1182. tDokument.iZeile = 1
  1183. tDokument.cFeld = 'Adresse_' + STRING((6 + ii),'99')
  1184. tDokument.cInhalt = bAufko.Adresse[ii].
  1185. i1 = i1 + 1.
  1186. cBesrKopf[i1] = bAufko.Adresse[ii].
  1187. END.
  1188. END.
  1189. ELSE
  1190. DO:
  1191. DO ii = 5 TO 11:
  1192. CREATE tDokument.
  1193. ASSIGN
  1194. tDokument.cGruppe = 'KOPF'
  1195. tDokument.iZeile = 1
  1196. tDokument.cFeld = 'Adresse_' + STRING(ii,'99')
  1197. tDokument.cInhalt = bAdresse.Anschrift[ii].
  1198. cBesrKopf[ii] = bAdresse.Anschrift[ii].
  1199. END.
  1200. END.
  1201. CREATE tDokument.
  1202. ASSIGN
  1203. tDokument.cGruppe = 'KOPF'
  1204. tDokument.iZeile = 1
  1205. tDokument.cFeld = 'T_Dokument'
  1206. tDokument.cInhalt = (IF bAufko.Auf_Tot >= 0
  1207. THEN TRIM(SUBSTRING(cFormText[02],01,20))
  1208. ELSE TRIM(SUBSTRING(cFormText[02],21,20))).
  1209. tDokument.cInhalt = tDokument.cInhalt
  1210. + ' '
  1211. + STRING(iFaknr,'z999999').
  1212. CREATE tDokument.
  1213. ASSIGN
  1214. tDokument.cGruppe = 'KOPF'
  1215. tDokument.iZeile = 1
  1216. tDokument.cFeld = 'Ort_Datum'
  1217. tDokument.cInhalt = TRIM(SUBSTRING(cFormText[07],01,20))
  1218. + " "
  1219. + STRING(TODAY,"99.99.9999").
  1220. /* Kundennummer */
  1221. CREATE tDokument.
  1222. ASSIGN
  1223. tDokument.cGruppe = 'KOPFDETAIL'
  1224. tDokument.iZeile = 1
  1225. tDokument.cFeld = 'Knr_T'
  1226. tDokument.cInhalt = ENTRY(1, cFormText[24], ';').
  1227. CREATE tDokument.
  1228. ASSIGN
  1229. tDokument.cGruppe = 'KOPFDETAIL'
  1230. tDokument.iZeile = 1
  1231. tDokument.cFeld = 'Knr'
  1232. tDokument.cInhalt = STRING(bAufko.Knr,'999999').
  1233. /* Gewicht */
  1234. CREATE tDokument.
  1235. ASSIGN
  1236. tDokument.cGruppe = 'KOPFDETAIL'
  1237. tDokument.iZeile = 1
  1238. tDokument.cFeld = 'Gewicht_T'
  1239. tDokument.cInhalt = ENTRY(3, cFormText[19], ';').
  1240. CREATE tDokument.
  1241. ASSIGN
  1242. tDokument.cGruppe = 'KOPFDETAIL'
  1243. tDokument.iZeile = 1
  1244. tDokument.cFeld = 'Gewicht'
  1245. tDokument.cInhalt = TRIM(STRING(bAufko.Gewicht,'->>>,>>9.999')).
  1246. /* Bestellt am */
  1247. CREATE tDokument.
  1248. ASSIGN
  1249. tDokument.cGruppe = 'KOPFDETAIL'
  1250. tDokument.iZeile = 1
  1251. tDokument.cFeld = 'Bestellt_T'
  1252. tDokument.cInhalt = ENTRY(2, cFormText[20], ';').
  1253. CREATE tDokument.
  1254. ASSIGN
  1255. tDokument.cGruppe = 'KOPFDETAIL'
  1256. tDokument.iZeile = 1
  1257. tDokument.cFeld = 'Auf_Datum'
  1258. tDokument.cInhalt = STRING(bAufko.Auf_Datum,'99.99.9999').
  1259. /* Lieferdatum */
  1260. CREATE tDokument.
  1261. ASSIGN
  1262. tDokument.cGruppe = 'KOPFDETAIL'
  1263. tDokument.iZeile = 1
  1264. tDokument.cFeld = 'Geliefert_T'
  1265. tDokument.cInhalt = ENTRY(3, cFormText[20], ';').
  1266. CREATE tDokument.
  1267. ASSIGN
  1268. tDokument.cGruppe = 'KOPFDETAIL'
  1269. tDokument.iZeile = 1
  1270. tDokument.cFeld = 'Lief_Datum'
  1271. tDokument.cInhalt = STRING(bAufko.Lief_Datum,'99.99.9999').
  1272. /* Auftragstext, Abladevorschrift, Abholtext */
  1273. cText = ''.
  1274. IF bAufko.Auf_Text <> '' THEN
  1275. cText = cText
  1276. + (IF cText = '' THEN '' ELSE CHR(10) )
  1277. + bAufko.Auf_Text.
  1278. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR.
  1279. IF AVAILABLE tTabTexte THEN
  1280. DO:
  1281. IF tTabTexte.cFeld3 <> '' THEN
  1282. cText = cText
  1283. + (IF cText = '' THEN '' ELSE CHR(10) + CHR(10) )
  1284. + tTabTexte.cFeld3.
  1285. END.
  1286. IF bAufko.Abh_Text <> '' THEN
  1287. cText = cText
  1288. + (IF cText = '' THEN '' ELSE CHR(10) + CHR(10) )
  1289. + bAufko.Abh_Text.
  1290. IF cText <> '' THEN
  1291. DO:
  1292. RUN vpr_asc2rtf ( cText, '', OUTPUT cText).
  1293. CREATE tDokument.
  1294. ASSIGN
  1295. tDokument.cGruppe = 'KOPFDETAIL'
  1296. tDokument.iZeile = 1
  1297. tDokument.cFeld = 'Kopftexte'
  1298. tDokument.cInhalt = cText.
  1299. END.
  1300. /* Lieferdatum */
  1301. CREATE tDokument.
  1302. ASSIGN
  1303. tDokument.cGruppe = 'KOPF'
  1304. tDokument.iZeile = 1
  1305. tDokument.cFeld = 'Seite_T'
  1306. tDokument.cInhalt = ENTRY(2, cFormText[24], ';').
  1307. END.
  1308. RUN DRUCKEN_ADRESSE.
  1309. END PROCEDURE.
  1310. /* _UIB-CODE-BLOCK-END */
  1311. &ANALYZE-RESUME
  1312. &ENDIF
  1313. &IF DEFINED(EXCLUDE-DRUCKEN_RUECKSTAND) = 0 &THEN
  1314. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN_RUECKSTAND Procedure
  1315. PROCEDURE DRUCKEN_RUECKSTAND :
  1316. /*------------------------------------------------------------------------------
  1317. Purpose:
  1318. Parameters: <none>
  1319. Notes:
  1320. ------------------------------------------------------------------------------*/
  1321. DEFINE INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  1322. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1323. FIND tRueckst WHERE RECID(tRueckst) = ipRecid NO-LOCK.
  1324. FIND Aufze WHERE RECID(Aufze) = tRueckst.Zeile NO-LOCK.
  1325. iArtZeile = iArtZeile + 1.
  1326. DO WHILE Aufze.Artnr = 0:
  1327. CREATE tDokument.
  1328. ASSIGN
  1329. tDokument.cGruppe = 'ArtikelZeile1'
  1330. tDokument.iZeile = iArtZeile
  1331. tDokument.cFeld = 'Bez1'
  1332. tDokument.cInhalt = Aufze.Bez1.
  1333. IF Aufze.Bez2 <> '' THEN
  1334. DO:
  1335. iArtZeile = iArtZeile + 1.
  1336. CREATE tDokument.
  1337. ASSIGN
  1338. tDokument.cGruppe = 'ArtikelZeile1'
  1339. tDokument.iZeile = iArtZeile
  1340. tDokument.cFeld = 'Bez1'
  1341. tDokument.cInhalt = Aufze.Bez2.
  1342. END.
  1343. RETURN.
  1344. END.
  1345. FIND Artst OF Aufze NO-LOCK.
  1346. FIND VGebinde NO-LOCK
  1347. WHERE VGebinde.Firma = cFirma
  1348. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-ERROR.
  1349. FIND KGebinde NO-LOCK
  1350. WHERE KGebinde.Firma = cFirma
  1351. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-ERROR.
  1352. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'KGebinde', KGebinde.Kbez ).
  1353. IF Aufze.VGeb_Ru <> 0 THEN
  1354. DO:
  1355. cString = STRING(Aufze.VGeb_Ru,'->>>>')
  1356. + 'x '
  1357. + VGebinde.KBez.
  1358. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'VGebinde', cString ).
  1359. END.
  1360. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Menge', STRING(Aufze.MRuek,'->>,>>9') ).
  1361. cString = Aufze.Bez1.
  1362. IF Aufze.Bez2 <> '' THEN cString = cString
  1363. + (IF cString = '' THEN '' ELSE CHR(10))
  1364. + Aufze.Bez2.
  1365. IF Aufze.Aktion THEN cString = cString
  1366. + (IF cString = '' THEN '' ELSE CHR(10))
  1367. + Aufze.Aktion_Text.
  1368. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', cString ).
  1369. IF Aufze.Jahr > 9 THEN
  1370. DO:
  1371. cString = STRING(Aufze.Jahr,"9999").
  1372. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'JG', cString ).
  1373. END.
  1374. IF Aufze.Alk_Gehalt <> 0 THEN
  1375. DO:
  1376. cString = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  1377. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Alk%', cString ).
  1378. END.
  1379. RUN AUSGABE_GRUPPE ( 'ArtikelZeile1' ).
  1380. RELEASE Aufze .
  1381. RELEASE Artst .
  1382. RELEASE VGebinde.
  1383. RELEASE KGebinde.
  1384. END PROCEDURE.
  1385. /* _UIB-CODE-BLOCK-END */
  1386. &ANALYZE-RESUME
  1387. &ENDIF
  1388. &IF DEFINED(EXCLUDE-FUELLEN_tAufze) = 0 &THEN
  1389. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_tAufze Procedure
  1390. PROCEDURE FUELLEN_tAufze :
  1391. /*------------------------------------------------------------------------------
  1392. Purpose:
  1393. Parameters: <none>
  1394. Notes:
  1395. ------------------------------------------------------------------------------*/
  1396. DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO.
  1397. DEFINE VARIABLE minPos AS INTEGER NO-UNDO.
  1398. DEFINE VARIABLE maxPos AS INTEGER NO-UNDO.
  1399. DEFINE VARIABLE jPlatz AS INTEGER NO-UNDO.
  1400. DEFINE VARIABLE cLagOrt AS CHARACTER NO-UNDO.
  1401. DEFINE VARIABLE iRuestArt AS INTEGER NO-UNDO.
  1402. DEFINE VARIABLE iPlusMinus AS INTEGER NO-UNDO.
  1403. DEFINE VARIABLE lArtikel AS LOG NO-UNDO.
  1404. DEFINE VARIABLE cSort AS CHARACTER NO-UNDO.
  1405. EMPTY TEMP-TABLE tAufze.
  1406. FIND Steuer NO-LOCK
  1407. WHERE Steuer.Firma = cFirma NO-ERROR.
  1408. IF AVAILABLE Steuer THEN iRuestArt = Steuer.RuestArt.
  1409. ASSIGN
  1410. minPos = 0
  1411. maxPos = 9999
  1412. iPlusMinus = 0.
  1413. /* Kommentar zu Beginn eines Auftrages */
  1414. lArtikel = FALSE.
  1415. FOR EACH Aufze NO-LOCK
  1416. WHERE Aufze.Firma = cFirma
  1417. AND Aufze.Aufnr = ipAufnr
  1418. AND Aufze.Pos > minPos:
  1419. IF Aufze.Artnr > 0 THEN
  1420. DO:
  1421. lArtikel = TRUE.
  1422. LEAVE.
  1423. END.
  1424. minPos = Aufze.Pos.
  1425. CREATE tAufze.
  1426. ASSIGN
  1427. tAufze.Aufnr = Aufze.Aufnr
  1428. tAufze.Artnr = Aufze.Artnr
  1429. tAufze.Inhalt = Aufze.Inhalt
  1430. tAufze.Jahr = Aufze.Jahr
  1431. tAufze.Pos = Aufze.Pos
  1432. tAufze.Zeile = RECID(Aufze)
  1433. tAufze.Aktion = Aufze.Aktion
  1434. tAufze.Preis = Aufze.Preis
  1435. tAufze.MGeli = Aufze.MGeli
  1436. tAufze.MRuek = Aufze.MRuek.
  1437. ASSIGN
  1438. tAufze.Sort1 = ''
  1439. tAufze.Sort2 = ''
  1440. tAufze.Sort3 = STRING(tAufze.Artnr ,'999999')
  1441. + STRING(tAufze.Inhalt,'9999')
  1442. + STRING(tAufze.Jahr ,'9999')
  1443. + STRING(iPlusMinus ,'9')
  1444. + STRING(tAufze.Pos ,'99999')
  1445. tAufze.LagOrt = ''.
  1446. END.
  1447. /* Kommentar am Ende eines Auftrages */
  1448. IF lArtikel THEN
  1449. DO:
  1450. FOR EACH Aufze NO-LOCK
  1451. WHERE Aufze.Firma = cFirma
  1452. AND Aufze.Aufnr = ipAufnr
  1453. BY Aufze.Pos DESCENDING:
  1454. IF Aufze.Artnr > 0 THEN LEAVE.
  1455. maxPos = Aufze.Pos.
  1456. CREATE tAufze.
  1457. ASSIGN
  1458. tAufze.Aufnr = Aufze.Aufnr
  1459. tAufze.Artnr = Aufze.Artnr
  1460. tAufze.Inhalt = Aufze.Inhalt
  1461. tAufze.Jahr = Aufze.Jahr
  1462. tAufze.Pos = Aufze.Pos
  1463. tAufze.Zeile = RECID(Aufze)
  1464. tAufze.Aktion = Aufze.Aktion
  1465. tAufze.Preis = Aufze.Preis
  1466. tAufze.MGeli = Aufze.MGeli
  1467. tAufze.MRuek = Aufze.MRuek.
  1468. ASSIGN
  1469. tAufze.Sort1 = 'ZZZ'
  1470. tAufze.Sort2 = ''
  1471. tAufze.Sort3 = STRING(tAufze.Artnr ,'999999')
  1472. + STRING(tAufze.Inhalt,'9999')
  1473. + STRING(tAufze.Jahr ,'9999')
  1474. + STRING(iPlusMinus ,'9')
  1475. + STRING(tAufze.Pos ,'99999')
  1476. tAufze.LagOrt = ''.
  1477. END.
  1478. END.
  1479. /* Artikelzeilen nach Lagerort/WarenGruppe/ProdGruppen/Artikelgruppen */
  1480. cLagOrt = ''.
  1481. cSort = ''.
  1482. FOR EACH Aufze NO-LOCK
  1483. WHERE Aufze.Firma = cFirma
  1484. AND Aufze.Aufnr = ipAufnr
  1485. AND Aufze.Pos > minPos
  1486. AND Aufze.Pos < MaxPos
  1487. BY Aufze.Pos DESCENDING:
  1488. IF Aufze.Artnr > 0 THEN
  1489. DO:
  1490. FIND Artst NO-LOCK
  1491. WHERE Artst.Firma = Aufze.Firma
  1492. AND Artst.Artnr = Aufze.Artnr
  1493. AND Artst.Inhalt = Aufze.Inhalt
  1494. AND Artst.Jahr = Aufze.Jahr NO-ERROR.
  1495. FIND ArtLager NO-LOCK
  1496. WHERE ArtLager.Firma = Aufze.Firma
  1497. AND ArtLager.Artnr = Aufze.Artnr
  1498. AND ArtLager.Inhalt = Aufze.Inhalt
  1499. AND ArtLager.Jahr = Aufze.Jahr
  1500. AND ArtLager.Lager = Aufze.Lager NO-ERROR.
  1501. IF AVAILABLE ArtLager THEN cLagOrt = ArtLager.Ort.
  1502. ASSIGN
  1503. iWgr = Artst.Wg_Grp
  1504. iPgr = Artst.Prod_Grp
  1505. iAgr = Artst.Art_Grp
  1506. iArtnr = Artst.Artnr
  1507. iInhalt = Artst.Inhalt
  1508. iJahr = Artst.Jahr.
  1509. END.
  1510. cSort = STRING(iWgr,'9999')
  1511. + STRING(iPgr,'9999')
  1512. + STRING(iAgr,'9999').
  1513. iPlusMinus = (IF Aufze.MGeli < 0 THEN 1 ELSE 0).
  1514. CREATE tAufze.
  1515. ASSIGN
  1516. tAufze.Aufnr = Aufze.Aufnr
  1517. tAufze.Artnr = Aufze.Artnr
  1518. tAufze.Inhalt = Aufze.Inhalt
  1519. tAufze.Jahr = Aufze.Jahr
  1520. tAufze.Pos = Aufze.Pos
  1521. tAufze.Zeile = RECID(Aufze)
  1522. tAufze.Aktion = Aufze.Aktion
  1523. tAufze.Preis = Aufze.Preis
  1524. tAufze.MGeli = Aufze.MGeli
  1525. tAufze.MRuek = Aufze.MRuek.
  1526. ASSIGN
  1527. tAufze.Sort1 = cLagOrt
  1528. tAufze.Sort2 = cSort
  1529. tAufze.Sort3 = STRING(iArtnr ,'999999')
  1530. + STRING(iInhalt ,'9999')
  1531. + STRING(iJahr ,'9999')
  1532. + STRING(iPlusMinus,'9')
  1533. + STRING(tAufze.Pos,'99999')
  1534. tAufze.LagOrt = cLagort.
  1535. END.
  1536. END PROCEDURE.
  1537. /* _UIB-CODE-BLOCK-END */
  1538. &ANALYZE-RESUME
  1539. &ENDIF
  1540. &IF DEFINED(EXCLUDE-VIPER_CREATE_DOKUMENT) = 0 &THEN
  1541. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_CREATE_DOKUMENT Procedure
  1542. PROCEDURE VIPER_CREATE_DOKUMENT :
  1543. /*------------------------------------------------------------------------------
  1544. Purpose:
  1545. Parameters: <none>
  1546. Notes:
  1547. ------------------------------------------------------------------------------*/
  1548. DEFINE INPUT PARAMETER ipGruppe AS CHARACTER NO-UNDO.
  1549. DEFINE INPUT PARAMETER ipZeile AS INTEGER NO-UNDO.
  1550. DEFINE INPUT PARAMETER ipFeld AS CHARACTER NO-UNDO.
  1551. DEFINE INPUT PARAMETER ipInhalt AS CHARACTER NO-UNDO.
  1552. CREATE tDokument.
  1553. ASSIGN
  1554. tDokument.cGruppe = ipGruppe
  1555. tDokument.iZeile = ipZeile
  1556. tDokument.cFeld = ipFeld
  1557. tDokument.cInhalt = ipInhalt.
  1558. END PROCEDURE.
  1559. /* _UIB-CODE-BLOCK-END */
  1560. &ANALYZE-RESUME
  1561. &ENDIF
  1562. &IF DEFINED(EXCLUDE-VIPER_INIT) = 0 &THEN
  1563. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_INIT Procedure
  1564. PROCEDURE VIPER_INIT :
  1565. /*------------------------------------------------------------------------------
  1566. Purpose:
  1567. Parameters: <none>
  1568. Notes:
  1569. ------------------------------------------------------------------------------*/
  1570. DEFINE VARIABLE cTemplate AS CHARACTER NO-UNDO.
  1571. DEFINE VARIABLE cDokument AS CHARACTER NO-UNDO.
  1572. DEFINE VARIABLE cZellen AS CHARACTER NO-UNDO.
  1573. DEFINE VARIABLE cZelle AS CHARACTER NO-UNDO.
  1574. DEFINE VARIABLE cGruppe AS CHARACTER NO-UNDO.
  1575. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  1576. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1577. FIND FIRST tParam.
  1578. IF iLauf = 1 THEN
  1579. DO:
  1580. cTemplate = tParam.cInstall + '/' + tParam.cDokument + '.vfr'.
  1581. RUN vpr_LoadVFR (cTemplate).
  1582. RUN vpr_ActivateReport (tParam.cDokument).
  1583. RUN vpr_SelectPrinter (tParam.Drucker).
  1584. RUN vpr_setPrinterAttrib('duplex=1').
  1585. /* cString = SUBSTITUTE('copies=&1', tParam.Anzahl). */
  1586. RUN vpr_SetPrinterAttrib('copies=1').
  1587. RUN vpr_ResetDoc.
  1588. RUN vpr_SetDocAttrib ('PAPERSIZE=A4').
  1589. RUN vpr_SetPreviewMode ('Direct').
  1590. RUN vpr_setDocTitle (tParam.cDokument).
  1591. IF tParam.Schacht_Original > 0 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", tParam.Schacht_Original ).
  1592. END.
  1593. ELSE
  1594. DO:
  1595. RUN vpr_NewPage.
  1596. IF tParam.Schacht_Kopie > 0 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", tParam.Schacht_Kopie ).
  1597. END.
  1598. RUN vpr_InitGroups("").
  1599. RUN vpr_InitGraphObj.
  1600. RUN vpr_SetGroupAttrib ("Kopf", "Fixed=true").
  1601. iMaxPos = 2800.
  1602. END PROCEDURE.
  1603. /* _UIB-CODE-BLOCK-END */
  1604. &ANALYZE-RESUME
  1605. &ENDIF
  1606. &IF DEFINED(EXCLUDE-VIPER_NEUE_SEITE) = 0 &THEN
  1607. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_NEUE_SEITE Procedure
  1608. PROCEDURE VIPER_NEUE_SEITE :
  1609. /*------------------------------------------------------------------------------
  1610. Purpose:
  1611. Parameters: <none>
  1612. Notes:
  1613. ------------------------------------------------------------------------------*/
  1614. DEFINE VARIABLE iPos AS INTEGER NO-UNDO.
  1615. DEFINE VARIABLE cTempDateiName AS CHARACTER NO-UNDO.
  1616. FIND FIRST tParam.
  1617. DO WHILE TRUE:
  1618. IF iSeite = 0 THEN
  1619. DO:
  1620. RUN vpr_InitGroups('').
  1621. iSeite = iSeite + 1.
  1622. RUN FUELLEN_UEBERSCHRIFT.
  1623. LEAVE.
  1624. END.
  1625. IF tParam.lDokDruck THEN
  1626. DO:
  1627. RUN vpr_SetCurrentPageProperties ( "Papertray", tParam.Schacht_Original ).
  1628. RUN vpr_printdoc ( iSeite, iSeite ).
  1629. PAUSE 0.2 NO-MESSAGE.
  1630. RUN vpr_SetCurrentPageProperties ( "Papertray", tParam.Schacht_Kopie ).
  1631. RUN vpr_printdoc ( iSeite, iSeite ).
  1632. END.
  1633. IF NOT lEnde THEN
  1634. DO:
  1635. RUN vpr_NewPage.
  1636. RUN vpr_InitGroups('').
  1637. iSeite = iSeite + 1.
  1638. RUN DRUCKEN_ADRESSE.
  1639. END.
  1640. LEAVE.
  1641. END.
  1642. END PROCEDURE.
  1643. /* _UIB-CODE-BLOCK-END */
  1644. &ANALYZE-RESUME
  1645. &ENDIF
  1646. /* ************************ Function Implementations ***************** */
  1647. &IF DEFINED(EXCLUDE-calculateBlock) = 0 &THEN
  1648. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION calculateBlock Procedure
  1649. FUNCTION calculateBlock RETURNS INTEGER
  1650. ( ipGruppe AS CHARACTER ):
  1651. /*------------------------------------------------------------------------------
  1652. Purpose:
  1653. Notes:
  1654. ------------------------------------------------------------------------------*/
  1655. DEF VAR cZellen AS CHAR NO-UNDO.
  1656. DEF VAR cWerte AS CHAR NO-UNDO.
  1657. DEF VAR iSpace AS INT NO-UNDO.
  1658. DEF VAR iGrpHo AS INT NO-UNDO.
  1659. FOR EACH tDokument
  1660. WHERE tDokument.cGruppe = ipGruppe
  1661. BREAK BY tDokument.cGruppe
  1662. BY tDokument.iZeile :
  1663. IF FIRST-OF ( tDokument.iZeile ) THEN
  1664. DO:
  1665. cZellen = ''.
  1666. cWerte = ''.
  1667. END.
  1668. cWerte = cWerte
  1669. + tDokument.cInhalt.
  1670. cZellen = cZellen
  1671. + tDokument.cFeld.
  1672. IF NOT LAST-OF ( tDokument.iZeile ) THEN
  1673. DO:
  1674. ASSIGN
  1675. cWerte = cWerte + CHR(01)
  1676. cZellen = cZellen + ','.
  1677. NEXT.
  1678. END.
  1679. RUN vpr_setGroupText (ipGruppe, cZellen, cWerte).
  1680. iGrpHo = vpr_getGroupHeight ( ipGruppe ).
  1681. iSpace = iSpace + iGrpHo.
  1682. END.
  1683. /* RUN vpr_InitGroups(ipGruppe).*/
  1684. RETURN iSpace.
  1685. END FUNCTION.
  1686. /* _UIB-CODE-BLOCK-END */
  1687. &ANALYZE-RESUME
  1688. &ENDIF