Lieferschein.p 59 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12
  2. &ANALYZE-RESUME
  3. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Procedure
  4. /*------------------------------------------------------------------------
  5. File :
  6. Purpose :
  7. Syntax :
  8. Description :
  9. Author(s) :
  10. Created :
  11. Notes :
  12. ----------------------------------------------------------------------*/
  13. /* This .W file was created with the Progress AppBuilder. */
  14. /*----------------------------------------------------------------------*/
  15. /* *************************** Definitions ************************** */
  16. DEF INPUT PARAMETER iphParam AS HANDLE NO-UNDO.
  17. DEF OUTPUT PARAMETER opcResult AS CHAR NO-UNDO.
  18. DEF VAR iSeite AS INT NO-UNDO.
  19. DEF VAR iAnzDok AS INT NO-UNDO.
  20. DEF VAR iLauf AS INT NO-UNDO.
  21. DEF VAR lFirst AS LOG INIT FALSE NO-UNDO.
  22. DEF VAR lLast AS LOG INIT FALSE NO-UNDO.
  23. DEF VAR lPreis AS LOG NO-UNDO.
  24. DEF VAR cFirma AS CHAR NO-UNDO.
  25. DEF VAR AdFirma AS CHAR NO-UNDO.
  26. DEF VAR nFakBetr AS DEC NO-UNDO.
  27. DEF VAR dFakDatum AS DATE NO-UNDO.
  28. DEF VAR iFaknr AS INT NO-UNDO.
  29. DEF VAR iSprcd AS INT NO-UNDO.
  30. DEF VAR nTotale AS DEC EXTENT 15 NO-UNDO.
  31. DEF VAR cFormtext AS CHAR EXTENT 30 NO-UNDO.
  32. DEF VAR cRabText AS CHAR NO-UNDO.
  33. DEF VAR cZusText AS CHAR NO-UNDO.
  34. DEF VAR cEpzText AS CHAR NO-UNDO.
  35. DEF VAR cBesrKopf AS CHAR EXTENT 12 NO-UNDO.
  36. DEF VAR lDebIncl AS LOG NO-UNDO.
  37. DEF VAR Rundbetr AS DEC DECIMALS 4 NO-UNDO.
  38. DEF VAR RundCode AS INT INIT 1 NO-UNDO.
  39. DEF VAR htTabTexte AS HANDLE NO-UNDO.
  40. DEF VAR hAufko AS HANDLE NO-UNDO.
  41. DEF VAR cInstallation AS CHAR NO-UNDO.
  42. DEF VAR iBesrArt AS INT NO-UNDO.
  43. DEF VAR cBenutzer AS CHAR NO-UNDO.
  44. DEF VAR iMaxPos AS INT INIT 2650 NO-UNDO.
  45. DEF VAR cvpr_Dokument AS CHAR NO-UNDO.
  46. DEF VAR iArtZeile AS INT NO-UNDO.
  47. DEF VAR iVPagePos AS INT NO-UNDO.
  48. DEF VAR iVGroupPos AS INT NO-UNDO.
  49. DEF BUFFER bAufko FOR Aufko .
  50. DEF BUFFER bAufze FOR Aufze .
  51. DEF BUFFER FDebst FOR Debst . /* Fakturaadresse */
  52. DEF BUFFER LDebst FOR Debst . /* Lieferadresse */
  53. DEF BUFFER LAdresse FOR Adresse .
  54. DEF BUFFER bAdresse FOR Adresse .
  55. DEF BUFFER bWust FOR Wust .
  56. DEF BUFFER bSteuer FOR Steuer .
  57. { incl/properties.i }
  58. { incl/ttdruckparam.i }
  59. DEF TEMP-TABLE tDokument
  60. FIELD cGruppe AS CHAR
  61. FIELD iZeile AS INT
  62. FIELD cFeld AS CHAR
  63. FIELD cInhalt AS CHAR
  64. INDEX tDokument-k1 IS PRIMARY
  65. cGruppe
  66. iZeile
  67. cFeld
  68. .
  69. DEF TEMP-TABLE tTotale
  70. FIELD nMwstPfl AS DEC EXTENT 12
  71. FIELD nMwstBet AS DEC EXTENT 12
  72. FIELD nSammTot AS DEC
  73. FIELD nSkBer AS DEC
  74. FIELD nWW AS DEC
  75. .
  76. DEF TEMP-TABLE sAufko
  77. FIELD cFirma AS CHAR
  78. FIELD iAufnr AS INT
  79. FIELD iFak_Knr AS INT
  80. FIELD iKnr AS INT
  81. FIELD iSamm_Nr AS INT
  82. FIELD iRecid AS RECID
  83. FIELD iFaknr AS INT
  84. FIELD dFakDat AS DATE
  85. .
  86. DEF TEMP-TABLE tAufko LIKE Aufko
  87. FIELD iRecid AS RECID
  88. .
  89. DEF TEMP-TABLE tAufze
  90. FIELD Aufnr AS INT
  91. FIELD Sort1 AS CHAR
  92. FIELD Sort2 AS CHAR
  93. FIELD Sort3 AS CHAR
  94. FIELD Artnr AS INT
  95. FIELD Inhalt AS INT
  96. FIELD Jahr AS INT
  97. FIELD Pos AS INT
  98. FIELD Zeile AS RECID
  99. FIELD Preis AS DEC DECIMALS 4
  100. FIELD Aktion AS LOG
  101. FIELD LagOrt AS CHAR
  102. FIELD MGeli AS DEC
  103. FIELD MRuek AS DEC
  104. INDEX tAufze-k1 IS PRIMARY
  105. Aufnr
  106. Sort1
  107. Sort2
  108. Sort3
  109. .
  110. DEF TEMP-TABLE tRueckst LIKE tAufze
  111. .
  112. DEF TEMP-TABLE tSpeRab
  113. FIELD Rab_Grp AS INT
  114. FIELD Auf_Betr AS DEC DECIMALS 4
  115. .
  116. DEF TEMP-TABLE tGebKto
  117. FIELD Sort_Cd AS CHAR
  118. FIELD Geb_Cd AS CHAR
  119. FIELD Bez AS CHAR
  120. FIELD Preis AS DEC
  121. FIELD A_Anz AS DEC
  122. FIELD A_Betrag AS DEC
  123. FIELD E_Anz AS DEC
  124. FIELD E_Betrag AS DEC
  125. FIELD MWST_Art AS INT
  126. FIELD MWST_Cd AS INT
  127. .
  128. DEF TEMP-TABLE tRabSumm
  129. FIELD Rab_Summ AS INT
  130. FIELD Bez AS CHAR
  131. FIELD F_Rab_Art AS INT
  132. FIELD F_Wert AS DEC DECIMALS 4
  133. FIELD A_Rab_Art AS INT
  134. FIELD A_Wert AS DEC DECIMALS 4
  135. FIELD Auf_Rab AS DEC DECIMALS 4
  136. FIELD Abh_Rab AS DEC DECIMALS 4
  137. .
  138. DEF TEMP-TABLE tUmsGrp
  139. FIELD Ums_Grp AS INT
  140. FIELD Mwst AS INT
  141. FIELD Ansatz AS DEC
  142. FIELD Bez AS CHAR
  143. FIELD lInkl AS LOG
  144. FIELD Ums_Betr AS DEC DECIMALS 4
  145. .
  146. DEF TEMP-TABLE tTabTexte
  147. FIELD cRecArt AS CHAR
  148. FIELD iZeile AS INT
  149. FIELD cFeld1 AS CHAR
  150. FIELD cFeld2 AS CHAR
  151. FIELD cFeld3 AS CHAR
  152. FIELD iFeld1 AS INT
  153. FIELD iFeld2 AS INT
  154. FIELD iFeld3 AS INT
  155. INDEX tTabTexte-k1 IS PRIMARY
  156. cRecArt
  157. iZeile.
  158. /* _UIB-CODE-BLOCK-END */
  159. &ANALYZE-RESUME
  160. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  161. /* ******************** Preprocessor Definitions ******************** */
  162. &Scoped-define PROCEDURE-TYPE Procedure
  163. &Scoped-define DB-AWARE no
  164. /* _UIB-PREPROCESSOR-BLOCK-END */
  165. &ANALYZE-RESUME
  166. /* ************************ Function Prototypes ********************** */
  167. &IF DEFINED(EXCLUDE-calcBlock) = 0 &THEN
  168. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD calcBlock Procedure
  169. FUNCTION calcBlock RETURNS INTEGER (ipGruppe AS CHAR) FORWARD.
  170. /* _UIB-CODE-BLOCK-END */
  171. &ANALYZE-RESUME
  172. &ENDIF
  173. &IF DEFINED(EXCLUDE-fillFormular) = 0 &THEN
  174. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD fillFormular Procedure
  175. FUNCTION fillFormular RETURNS LOGICAL
  176. ( ) FORWARD.
  177. /* _UIB-CODE-BLOCK-END */
  178. &ANALYZE-RESUME
  179. &ENDIF
  180. /* *********************** Procedure Settings ************************ */
  181. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  182. /* Settings for THIS-PROCEDURE
  183. Type: Procedure
  184. Allow:
  185. Frames: 0
  186. Add Fields to: Neither
  187. Other Settings: CODE-ONLY COMPILE
  188. */
  189. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  190. /* ************************* Create Window ************************** */
  191. &ANALYZE-SUSPEND _CREATE-WINDOW
  192. /* DESIGN Window definition (used by the UIB)
  193. CREATE WINDOW Procedure ASSIGN
  194. HEIGHT = 18.62
  195. WIDTH = 59.4.
  196. /* END WINDOW DEFINITION */
  197. */
  198. &ANALYZE-RESUME
  199. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure
  200. /* *************************** Main Block *************************** */
  201. opcResult = ''.
  202. cInstallation = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR.
  203. cBenutzer = DYNAMIC-FUNCTION('getBenutzer':U) NO-ERROR.
  204. CREATE tParam.
  205. htParam:BUFFER-COPY(iphParam).
  206. ASSIGN
  207. cFirma = tParam.cFirma
  208. iAnzDok = tParam.Anzahl
  209. lPreis = TRUE.
  210. FIND bSteuer NO-LOCK WHERE bSteuer.Firma = cFirma.
  211. AdFirma = bSteuer.AdFirma.
  212. RUN AUFTRAG_ERMITTELN.
  213. IF opcResult <> '' THEN RETURN.
  214. FOR EACH sAufko
  215. BY sAufko.iFak_Knr:
  216. FIND bAdresse NO-LOCK
  217. WHERE bAdresse.Firma = AdFirma
  218. AND bAdresse.Knr = sAufko.iKnr.
  219. iSprcd = bAdresse.Sprcd.
  220. RUN GET_FORMTEXT ( tParam.cInstall, tParam.Template, iSprcd,
  221. OUTPUT cFormText ) NO-ERROR.
  222. cRabText = TRIM(SUBSTRING(cFormText[21],01,20)).
  223. cZusText = TRIM(SUBSTRING(cFormText[21],21,20)).
  224. cEpzText = TRIM(SUBSTRING(cFormText[21],41,20)).
  225. RELEASE bAdresse.
  226. { vpr.i INIT }.
  227. { vpr.i START }.
  228. DO iLauf = 1 TO iAnzDok:
  229. dFakDatum = sAufko.dFakDat.
  230. iSeite = 0.
  231. iFaknr = sAufko.iFaknr.
  232. lFirst = TRUE.
  233. lLast = FALSE.
  234. EMPTY TEMP-TABLE tUmsGrp .
  235. EMPTY TEMP-TABLE tTotale .
  236. CREATE tTotale.
  237. FOR EACH bAufko NO-LOCK
  238. WHERE bAufko.Firma = sAufko.cFirma
  239. AND bAufko.Aufnr = sAufko.iAufnr
  240. BREAK BY bAufko.Firma
  241. BY bAufko.Aufnr :
  242. EMPTY TEMP-TABLE tAufze .
  243. EMPTY TEMP-TABLE tGebKto .
  244. EMPTY TEMP-TABLE tRabSumm .
  245. EMPTY TEMP-TABLE tSpeRab .
  246. EMPTY TEMP-TABLE tTabTexte .
  247. EMPTY TEMP-TABLE tRueckst .
  248. FIND bAdresse NO-LOCK USE-INDEX Adresse-k1
  249. WHERE bAdresse.Firma = AdFirma
  250. AND bAdresse.Knr = bAufko.Knr NO-ERROR.
  251. FIND LDebst NO-LOCK USE-INDEX Debst-k1
  252. WHERE LDebst.Firma = cFirma
  253. AND LDebst.Knr = bAufko.Knr NO-ERROR.
  254. FIND FDebst NO-LOCK USE-INDEX Debst-k1
  255. WHERE FDebst.Firma = cFirma
  256. AND FDebst.Knr = bAufko.Fak_Knr NO-ERROR.
  257. FIND bWust NO-LOCK USE-INDEX Wust-k1
  258. WHERE bWust.CodeK = LDebst.MWST
  259. AND bWust.CodeA = 99 NO-ERROR.
  260. lDebIncl = FALSE.
  261. IF AVAILABLE bWust THEN lDebIncl = bWust.Incl.
  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, TOUR1 */
  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 RETURN-VALUE = 'NOK' THEN LEAVE.
  309. IF iLauf < iAnzDok THEN LEAVE.
  310. FIND Aufko WHERE RECID(Aufko) = RECID(bAufko).
  311. ASSIGN
  312. Aufko.Fak_Datum = dFakDat
  313. Aufko.Gedruckt = TRUE.
  314. RELEASE Aufko.
  315. RUN AUFTRAG_GEDRUCKT ( bAufko.Aufnr ).
  316. LEAVE.
  317. END.
  318. END.
  319. END.
  320. { vpr.i STOP }
  321. END.
  322. PROCEDURE ShellExecuteA EXTERNAL "shell32.dll" :
  323. DEFINE INPUT PARAMETER lphwnd AS LONG.
  324. DEFINE INPUT PARAMETER lpOperation AS CHAR.
  325. DEFINE INPUT PARAMETER lpFile AS CHAR.
  326. DEFINE INPUT PARAMETER lpParameters AS CHAR.
  327. DEFINE INPUT PARAMETER lpDirectory AS CHAR.
  328. DEFINE INPUT PARAMETER nShowCmd AS LONG.
  329. DEFINE RETURN PARAMETER hInstance AS LONG.
  330. END PROCEDURE.
  331. /* _UIB-CODE-BLOCK-END */
  332. &ANALYZE-RESUME
  333. /* ********************** Internal Procedures *********************** */
  334. &IF DEFINED(EXCLUDE-ARTIKELZEILE) = 0 &THEN
  335. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE Procedure
  336. PROCEDURE ARTIKELZEILE :
  337. /*------------------------------------------------------------------------------
  338. Purpose:
  339. Parameters: <none>
  340. Notes:
  341. ------------------------------------------------------------------------------*/
  342. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  343. DEF VAR cString AS CHAR NO-UNDO.
  344. DEF VAR nRabWert AS DEC NO-UNDO.
  345. DEF VAR xRabText AS CHAR NO-UNDO.
  346. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
  347. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  348. iArtZeile = iArtZeile + 1.
  349. DO WHILE Aufze.Artnr = 0:
  350. cString = Aufze.Bez1.
  351. IF Aufze.Bez1 <> '' THEN
  352. DO:
  353. cString = cString
  354. + (IF cString = '' THEN '' ELSE CHR(10))
  355. + Aufze.Bez2.
  356. END.
  357. CREATE tDokument.
  358. ASSIGN
  359. tDokument.cGruppe = 'ArtikelZeile1'
  360. tDokument.iZeile = iArtZeile
  361. tDokument.cFeld = 'Bez1'
  362. tDokument.cInhalt = cString.
  363. RETURN.
  364. END.
  365. FIND Artst OF Aufze NO-LOCK.
  366. FIND GGebinde NO-LOCK
  367. WHERE GGebinde.Firma = cFirma
  368. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-ERROR.
  369. FIND VGebinde NO-LOCK
  370. WHERE VGebinde.Firma = cFirma
  371. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-ERROR.
  372. FIND KGebinde NO-LOCK
  373. WHERE KGebinde.Firma = cFirma
  374. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-ERROR.
  375. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr' , STRING(Aufze.Artnr ,"999999") ).
  376. IF Aufze.VGeb_Me <> 0 THEN
  377. DO:
  378. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Menge_VGeb', TRIM(STRING(Aufze.VGeb_Me,'->>>>>9')) ).
  379. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'VGebinde' , VGebinde.KBez ).
  380. END.
  381. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'KGebinde', KGebinde.Kbez ).
  382. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Menge' , TRIM(STRING(Aufze.MGeli,'->>,>>9')) ).
  383. cString = Aufze.Bez1.
  384. IF Aufze.Bez2 <> '' THEN
  385. DO:
  386. cString = cString
  387. + (IF cString = '' THEN '' ELSE CHR(10))
  388. + Aufze.Bez2.
  389. END.
  390. IF Aufze.Aktion THEN
  391. DO:
  392. cString = cString
  393. + (IF cString = '' THEN '' ELSE CHR(10))
  394. + Aufze.Aktion_Text.
  395. END.
  396. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', cString ).
  397. IF Aufze.Alk_Gehalt <> 0 THEN
  398. DO:
  399. cString = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  400. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Alk%', cString ).
  401. END.
  402. IF Aufze.Jahr > 9 THEN
  403. DO:
  404. cString = STRING(Aufze.Jahr,"9999").
  405. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'JG', cString ).
  406. END.
  407. IF NOT tParam.lPreis THEN RETURN.
  408. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis' , STRING(Aufze.Preis ,'>,>>9.99<') ).
  409. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', STRING(Aufze.Bru_Betr,'->>>,>>9.99') ).
  410. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC' , STRING(Aufze.WuCd ,'z9') ).
  411. IF Aufze.Rab_Betr <> 0 THEN
  412. DO:
  413. iArtZeile = iArtZeile + 1.
  414. nRabWert = ABSOLUTE(Aufze.Rab_Wert).
  415. IF Aufze.Rab_Art = 3 THEN xRabText = cEpzText.
  416. ELSE
  417. DO:
  418. IF Aufze.Rab_Betr < 0 THEN xRabText = cZusText.
  419. IF Aufze.Rab_Betr > 0 THEN xRabText = cRabText.
  420. END.
  421. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(xRabText) ).
  422. IF Aufze.Rab_Art = 1 THEN cString = STRING(nRabWert,"->9.9%").
  423. IF Aufze.Rab_Art = 2 OR
  424. Aufze.Rab_Art = 3 THEN cString = STRING(nRabWert,"-9.99").
  425. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis', cString ).
  426. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Aufze.Rab_Betr,"->>>,>>9.99")) ).
  427. END.
  428. DO WHILE TRUE:
  429. IF Aufze.Zus_Betr = 0 THEN LEAVE.
  430. iArtZeile = iArtZeile + 1.
  431. nRabWert = ABSOLUTE(Aufze.Zus_Wert).
  432. IF Aufze.Zus_Art = 3 THEN xRabText = cEpzText.
  433. ELSE
  434. DO:
  435. IF Aufze.Zus_Betr < 0 THEN xRabText = cRabText.
  436. IF Aufze.Zus_Betr > 0 THEN xRabText = cZusText.
  437. END.
  438. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(xRabText) ).
  439. IF Aufze.Zus_Art = 1 THEN cString = STRING(nRabWert,"->9.9%").
  440. IF Aufze.Zus_Art = 2 OR
  441. Aufze.Zus_Art = 3 THEN cString = STRING(nRabWert,"-9.99").
  442. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis', cString ).
  443. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(+ Aufze.Zus_Betr,"->>>,>>9.99")) ).
  444. LEAVE.
  445. END.
  446. END PROCEDURE.
  447. /* _UIB-CODE-BLOCK-END */
  448. &ANALYZE-RESUME
  449. &ENDIF
  450. &IF DEFINED(EXCLUDE-AUFTRAGSTEXT) = 0 &THEN
  451. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAGSTEXT Procedure
  452. PROCEDURE AUFTRAGSTEXT :
  453. /*------------------------------------------------------------------------------
  454. Purpose:
  455. Parameters: <none>
  456. Notes:
  457. ------------------------------------------------------------------------------*/
  458. IF bAufko.Auf_Text = '' THEN RETURN.
  459. iArtZeile = 1.
  460. RUN VIPER_CREATE_DOKUMENT ( 'Zusatztext', iArtZeile, 'Bemerkung_1', bAufko.Auf_Text ).
  461. RUN AUSGABE_GRUPPE ( 'Zusatztext' ).
  462. END PROCEDURE.
  463. /* _UIB-CODE-BLOCK-END */
  464. &ANALYZE-RESUME
  465. &ENDIF
  466. &IF DEFINED(EXCLUDE-AUFTRAG_ERMITTELN) = 0 &THEN
  467. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAG_ERMITTELN Procedure
  468. PROCEDURE AUFTRAG_ERMITTELN :
  469. /*------------------------------------------------------------------------------
  470. Purpose:
  471. Parameters: <none>
  472. Notes:
  473. ------------------------------------------------------------------------------*/
  474. DEF VAR iAufnr AS INT NO-UNDO.
  475. DEF BUFFER bDebst FOR Debst.
  476. FIND FIRST tParam.
  477. EMPTY TEMP-TABLE sAufko.
  478. /* Sammeln aller Aufträge */
  479. FOR EACH Aufko NO-LOCK USE-INDEX Aufko-k5
  480. WHERE Aufko.Firma = tParam.cFirma
  481. AND Aufko.Aufnr = tParam.iAufnr :
  482. FIND bDebst NO-LOCK
  483. WHERE bDebst.Firma = Aufko.Firma
  484. AND bDebst.Knr = Aufko.Knr NO-ERROR.
  485. IF NOT AVAILABLE bDebst THEN NEXT.
  486. iFaknr = Aufko.Aufnr.
  487. CREATE sAufko.
  488. ASSIGN
  489. sAufko.cFirma = Aufko.Firma
  490. sAufko.iAufnr = Aufko.Aufnr
  491. sAufko.iFak_Knr = Aufko.Fak_Knr
  492. sAufko.iKnr = Aufko.Knr
  493. sAufko.iSamm_Nr = 0
  494. sAufko.iRecid = RECID(Aufko)
  495. sAufko.iFaknr = iFaknr.
  496. IF Aufko.Lief_Datum = ? THEN sAufko.dFakDat = TODAY.
  497. ELSE sAufko.dFakDat = Aufko.Lief_Datum.
  498. END.
  499. /* Alle Auftragstotale aller Lieferscheine neu rechnen */
  500. FOR EACH sAufko:
  501. FOR EACH bAufko NO-LOCK
  502. WHERE bAufko.Firma = sAufko.cFirma
  503. AND bAufko.Aufnr = sAufko.iAufnr :
  504. DYNAMIC-FUNCTION('calculateAuftragsTotal':U, bAufko.Firma,
  505. bAufko.Aufnr,
  506. OUTPUT nTotale ) NO-ERROR.
  507. RELEASE bAufko.
  508. END.
  509. END.
  510. END PROCEDURE.
  511. /* _UIB-CODE-BLOCK-END */
  512. &ANALYZE-RESUME
  513. &ENDIF
  514. &IF DEFINED(EXCLUDE-AUSGABE_ARTIKELZEILE) = 0 &THEN
  515. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_ARTIKELZEILE Procedure
  516. PROCEDURE AUSGABE_ARTIKELZEILE :
  517. /*------------------------------------------------------------------------------
  518. Purpose:
  519. Parameters: <none>
  520. Notes:
  521. ------------------------------------------------------------------------------*/
  522. DEF VAR cZellen AS CHAR NO-UNDO.
  523. DEF VAR cWerte AS CHAR NO-UNDO.
  524. DEF VAR iPos AS INT NO-UNDO.
  525. DEF VAR lArtnr AS LOG NO-UNDO.
  526. FOR EACH tDokument
  527. WHERE tDokument.cGruppe = 'ArtikelZeile1'
  528. BREAK BY tDokument.cGruppe
  529. BY tDokument.iZeile:
  530. IF FIRST-OF ( tDokument.cGruppe ) THEN
  531. DO:
  532. iVPagePos = vpr_getPageVPos() + 20.
  533. RUN vpr_setPageVPos ( iVPagePos ).
  534. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
  535. END.
  536. IF FIRST-OF ( tDokument.iZeile ) THEN
  537. DO:
  538. cZellen = ''.
  539. cWerte = ''.
  540. lArtnr = FALSE.
  541. END.
  542. cWerte = cWerte
  543. + tDokument.cInhalt.
  544. cZellen = cZellen
  545. + tDokument.cFeld.
  546. CASE tDokument.cFeld:
  547. WHEN 'Bez1' THEN
  548. cWerte = REPLACE(cWerte, CHR(10), ' \par ').
  549. WHEN 'Artnr' THEN
  550. lArtnr = TRUE.
  551. END CASE.
  552. IF NOT LAST-OF ( tDokument.iZeile ) THEN
  553. DO:
  554. ASSIGN
  555. cWerte = cWerte + CHR(01)
  556. cZellen = cZellen + ','.
  557. NEXT.
  558. END.
  559. RUN vpr_SetDelimiter (CHR(01)).
  560. RUN vpr_setGroupText ('ArtikelZeile1', cZellen, cWerte).
  561. iVPagePos = vpr_getPageVPos().
  562. IF lArtnr THEN iVPagePos = iVPagePos + 8.
  563. iPos = iVPagePos + vpr_getGroupHeight('ArtikelZeile1').
  564. IF iPos > iMaxPos THEN
  565. DO:
  566. RUN vpr_setPageVPos ( iMaxPos ).
  567. RUN VIPER_NEUE_SEITE.
  568. RUN DRUCKEN_ADRESSE.
  569. END.
  570. RUN vpr_setGroupVPos ('ArtikelZeile1', iVPagePos).
  571. RUN vpr_FlushGroup ('ArtikelZeile1').
  572. END.
  573. iVPagePos = vpr_getPageVPos() + 10.
  574. RUN vpr_setPageVPos ( iVPagePos ).
  575. FOR EACH tDokument
  576. WHERE tDokument.cGruppe = 'ArtikelZeile1':
  577. DELETE tDokument.
  578. END.
  579. END PROCEDURE.
  580. /* _UIB-CODE-BLOCK-END */
  581. &ANALYZE-RESUME
  582. &ENDIF
  583. &IF DEFINED(EXCLUDE-AUSGABE_GRUPPE) = 0 &THEN
  584. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_GRUPPE Procedure
  585. PROCEDURE AUSGABE_GRUPPE :
  586. /*------------------------------------------------------------------------------
  587. Purpose:
  588. Parameters: <none>
  589. Notes:
  590. ------------------------------------------------------------------------------*/
  591. DEF INPUT PARAMETER ipGruppe AS CHAR NO-UNDO.
  592. DEF VAR cZellen AS CHAR NO-UNDO.
  593. DEF VAR cWerte AS CHAR NO-UNDO.
  594. DEF VAR iSpace AS INT NO-UNDO.
  595. iSpace = vpr_getPageVPos().
  596. FOR EACH tDokument NO-LOCK
  597. WHERE tDokument.cGruppe = ipGruppe
  598. BREAK BY tDokument.cGruppe
  599. BY tDokument.iZeile:
  600. IF FIRST-OF ( tDokument.iZeile ) THEN iSpace = iSpace + 40.
  601. END.
  602. IF iSpace > iMaxPos THEN
  603. DO:
  604. RUN vpr_setPageVPos ( iMaxPos ).
  605. RUN VIPER_NEUE_SEITE.
  606. RUN DRUCKEN_ADRESSE.
  607. END.
  608. iVPagePos = vpr_getPageVPos().
  609. CASE ipGruppe:
  610. WHEN 'GebindeLieferung' THEN
  611. DO:
  612. iSpace = DYNAMIC-FUNCTION ('calcBlock':U, ipGruppe) NO-ERROR.
  613. iSpace = iSpace + iVPagePos + 30.
  614. IF iSpace > iMaxPos THEN
  615. DO:
  616. RUN vpr_setPageVPos ( iMaxPos ).
  617. RUN VIPER_NEUE_SEITE.
  618. RUN DRUCKEN_ADRESSE.
  619. END.
  620. iVPagePos = vpr_getPageVPos().
  621. iVPagePos = iVPagePos + 20.
  622. RUN vpr_setPageVPos ( iVPagePos ).
  623. RUN vpr_setGroupVPos ('GebindeLieferungTitel', iVPagePos ).
  624. RUN vpr_FlushGroup ('GebindeLieferungTitel').
  625. iVPagePos = vpr_getPageVPos().
  626. /* RUN vpr_setGroupVPos ('GebindeLieferung', iVPagePos ).*/
  627. END.
  628. WHEN 'GebindeRuecknahme' THEN
  629. DO:
  630. iSpace = DYNAMIC-FUNCTION ('calcBlock':U, ipGruppe) NO-ERROR.
  631. iSpace = iSpace + iVPagePos + 50.
  632. IF iSpace > iMaxPos THEN
  633. DO:
  634. RUN vpr_setPageVPos ( iMaxPos ).
  635. RUN VIPER_NEUE_SEITE.
  636. RUN DRUCKEN_ADRESSE.
  637. END.
  638. iVPagePos = vpr_getPageVPos().
  639. iVPagePos = iVPagePos + 50.
  640. RUN vpr_setPageVPos ( iVPagePos ).
  641. /* RUN vpr_setGroupVPos ( 'GebindeRuecknahme', iVPagePos ).*/
  642. /* iVPagePos = vpr_getPageVPos(). */
  643. END.
  644. OTHERWISE
  645. DO:
  646. END.
  647. END CASE.
  648. FOR EACH tDokument
  649. WHERE tDokument.cGruppe = ipGruppe
  650. BREAK BY tDokument.cGruppe
  651. BY tDokument.iZeile:
  652. IF FIRST-OF ( tDokument.cGruppe ) THEN
  653. DO:
  654. IF ipGruppe <> 'Kondition' AND
  655. ipGruppe <> 'BESR' AND
  656. ipGruppe <> 'ADRESSE' THEN
  657. DO:
  658. iVPagePos = vpr_getPageVPos().
  659. RUN vpr_setPageVPos ( iVPagePos ).
  660. RUN vpr_setGroupVPos ( ipGruppe, iVPagePos ).
  661. END.
  662. END.
  663. IF FIRST-OF ( tDokument.iZeile ) THEN
  664. DO:
  665. cZellen = ''.
  666. cWerte = ''.
  667. END.
  668. cWerte = cWerte
  669. + tDokument.cInhalt.
  670. cZellen = cZellen
  671. + tDokument.cFeld.
  672. CASE tDokument.cFeld:
  673. WHEN 'Bez1' THEN
  674. cWerte = REPLACE(cWerte, CHR(10), ' \par ').
  675. END CASE.
  676. IF NOT LAST-OF ( tDokument.iZeile ) THEN
  677. DO:
  678. ASSIGN
  679. cWerte = cWerte + CHR(01)
  680. cZellen = cZellen + ','.
  681. NEXT.
  682. END.
  683. RUN vpr_SetDelimiter (CHR(01)).
  684. RUN vpr_SetGroupText (ipGruppe, cZellen, cWerte).
  685. RUN vpr_FlushGroup (ipGruppe).
  686. END.
  687. FOR EACH tDokument
  688. WHERE tDokument.cGruppe = ipGruppe:
  689. DELETE tDokument.
  690. END.
  691. END PROCEDURE.
  692. /* _UIB-CODE-BLOCK-END */
  693. &ANALYZE-RESUME
  694. &ENDIF
  695. &IF DEFINED(EXCLUDE-DRUCKEN) = 0 &THEN
  696. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN Procedure
  697. PROCEDURE DRUCKEN :
  698. /*------------------------------------------------------------------------------
  699. Purpose:
  700. Parameters: <none>
  701. Notes:
  702. ------------------------------------------------------------------------------*/
  703. DEF VAR cText AS CHAR NO-UNDO.
  704. DEF VAR xString AS CHAR NO-UNDO.
  705. DEF VAR cLAdresse AS CHAR NO-UNDO.
  706. DEF VAR RText AS CHAR NO-UNDO.
  707. DEF VAR WText AS CHAR NO-UNDO.
  708. DEF VAR ii AS INT NO-UNDO.
  709. DEF VAR i1 AS INT NO-UNDO.
  710. DEF VAR nBetrag AS DEC NO-UNDO.
  711. DEF VAR nRabWert AS DEC NO-UNDO.
  712. DEF VAR iMwstCd AS INT NO-UNDO.
  713. DEF VAR nZeiTot AS DEC DECIMALS 4 NO-UNDO.
  714. DEF VAR lJa AS LOG NO-UNDO.
  715. DEF VAR cPDFName AS CHAR INIT '' NO-UNDO.
  716. DEF VAR nPfli AS DEC EXTENT 12 NO-UNDO.
  717. DEF VAR nMwst AS DEC EXTENT 12 NO-UNDO.
  718. DEF BUFFER bDebst FOR Debst.
  719. FIND FIRST tParam.
  720. nFakBetr = 0.
  721. IF iSeite = 0 THEN
  722. DO:
  723. RUN VIPER_INIT.
  724. SESSION:PRINTER-NAME = tParam.Drucker.
  725. END.
  726. FIND bDebst NO-LOCK
  727. WHERE bDebst.Firma = bAufko.Firma
  728. AND bDebst.Knr = bAufko.Fak_Knr.
  729. iBesrArt = bDebst.BESR_Art.
  730. RUN DRUCKEN_KOPF.
  731. FOR EACH tAufze NO-LOCK
  732. BY tAufze.Aufnr
  733. BY tAufze.Sort1
  734. BY tAufze.LagOrt
  735. BY tAufze.Sort2
  736. BY tAufze.Pos :
  737. FIND Aufze NO-LOCK WHERE RECID(Aufze) = tAufze.Zeile.
  738. RUN ARTIKELZEILE ( RECID(tAufze) ).
  739. nFakBetr = nFakBetr + Aufze.Net_Betr.
  740. RELEASE Aufze.
  741. END.
  742. IF tParam.lPreis THEN
  743. DO:
  744. iArtZeile = iArtZeile + 1.
  745. RUN vpr_Asc2RTF(TRIM(SUBSTRING(cFormText[10],41,20)), 'bold', OUTPUT xString ).
  746. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , xString ).
  747. RUN vpr_Asc2RTF(TRIM(STRING(nFakBetr,'->>>,>>9.99')), 'bold', OUTPUT xString ).
  748. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', xString ).
  749. iArtZeile = iArtZeile + 1.
  750. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , ' ' ).
  751. END.
  752. RUN AUSGABE_ARTIKELZEILE.
  753. /* Gebindelieferung -------------------------------------------------- */
  754. IF FDebst.Geb_Rg THEN
  755. DO:
  756. ii = 0.
  757. FOR EACH AufGKon NO-LOCK
  758. WHERE AufGKon.Firma = bAufko.Firma
  759. AND AufGKon.Aufnr = bAufko.Aufnr
  760. AND AufGKon.Ausgang <> 0
  761. AND AufGKon.Depot <> 0:
  762. FIND FIRST tGebKto WHERE tGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR.
  763. IF NOT AVAILABLE tGebKto THEN
  764. DO:
  765. FIND GebKonto NO-LOCK
  766. WHERE GebKonto.Firma = AufGKon.Firma
  767. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd.
  768. CREATE tGebKto.
  769. ASSIGN
  770. tGebKto.Sort_Cd = GebKonto.Sort_Cd
  771. tGebKto.Geb_Cd = GebKonto.Geb_Cd
  772. tGebKto.Bez = GebKonto.Bez
  773. tGebKto.Preis = AufGKon.Depot
  774. tGebKto.MWST_Cd = AufGKon.MWSt_Cd.
  775. END.
  776. tGebKto.A_Anz = tGebKto.A_Anz + AufGKon.Ausgang.
  777. tGebKto.A_Betrag = tGebKto.A_Anz * tGebKto.Preis.
  778. tGebKto.E_Anz = tGebKto.E_Anz + AufGKon.Eingang.
  779. tGebKto.E_Betrag = tGebKto.E_Anz * tGebKto.Preis.
  780. ii = ii + 1.
  781. END.
  782. RELEASE AufGKon.
  783. /* Gebindelieferungen ------------------------------------------------ */
  784. IF ii > 0 THEN
  785. DO:
  786. nBetrag = 0.
  787. iArtZeile = 0.
  788. ii = 0.
  789. FOR EACH AufGKon NO-LOCK
  790. WHERE AufGKon.Firma = bAufko.Firma
  791. AND AufGKon.Aufnr = bAufko.Aufnr
  792. AND AufGKon.Ausgang <> 0
  793. AND AufGKon.Depot <> 0
  794. BREAK BY AufGKon.Firma
  795. BY AufGKon.Aufnr:
  796. iMwstCd = AufGKon.MWSt_Cd.
  797. FIND LAST MwstAns NO-LOCK
  798. WHERE MwstAns.Mwst_Cd = iMwstCd
  799. AND MwstAns.Datum <= bAufko.Lief_Datum NO-ERROR.
  800. FIND GebKonto NO-LOCK
  801. WHERE GebKonto.Firma = cFirma
  802. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd.
  803. ii = ii + 1.
  804. IF ii MOD 2 = 1 THEN
  805. DO:
  806. iArtZeile = iArtZeile + 1.
  807. RUN VIPER_CREATE_DOKUMENT ( 'GebindeLieferung', iArtZeile, 'Gebindetext_L' , GebKonto.Bez ).
  808. RUN VIPER_CREATE_DOKUMENT ( 'GebindeLieferung', iArtZeile, 'GebindeGel_L' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ).
  809. END.
  810. ELSE
  811. DO:
  812. RUN VIPER_CREATE_DOKUMENT ( 'GebindeLieferung', iArtZeile, 'Gebindetext_R' , GebKonto.Bez ).
  813. RUN VIPER_CREATE_DOKUMENT ( 'GebindeLieferung', iArtZeile, 'GebindeGel_R' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ).
  814. END.
  815. END.
  816. RELEASE AufGKon.
  817. RELEASE GebKonto.
  818. END.
  819. IF iArtZeile > 0 THEN
  820. DO:
  821. RUN AUSGABE_GRUPPE ('GebindeLieferung').
  822. END.
  823. END.
  824. /* Gebindelrücknahmetablle ------------------------------------------- */
  825. iArtZeile = 0.
  826. xString = SUBSTITUTE('GEBINDERETOUR&1', STRING(bAufko.Fak_Art,'99')).
  827. cText = ''.
  828. FIND TabTexte NO-LOCK USE-INDEX TabTexte-k1
  829. WHERE TabTexte.Firma = bAufko.Firma
  830. AND TabTexte.TextArt = xString
  831. AND TabTexte.Sprcd = iSprcd NO-ERROR.
  832. IF NOT AVAILABLE TabTexte THEN
  833. DO:
  834. FIND TabTexte NO-LOCK USE-INDEX TabTexte-k1
  835. WHERE TabTexte.Firma = bAufko.Firma
  836. AND TabTexte.TextArt = xString
  837. AND TabTexte.Sprcd = 1 NO-ERROR.
  838. END.
  839. IF NOT AVAILABLE TabTexte THEN
  840. DO:
  841. xString = 'GEBINDERETOUR'.
  842. FIND TabTexte NO-LOCK USE-INDEX TabTexte-k1
  843. WHERE TabTexte.Firma = bAufko.Firma
  844. AND TabTexte.TextArt = xString
  845. AND TabTexte.Sprcd = iSprcd NO-ERROR.
  846. END.
  847. IF NOT AVAILABLE TabTexte THEN
  848. DO:
  849. FIND TabTexte NO-LOCK USE-INDEX TabTexte-k1
  850. WHERE TabTexte.Firma = bAufko.Firma
  851. AND TabTexte.TextArt = xString
  852. AND TabTexte.Sprcd = 1 NO-ERROR.
  853. END.
  854. IF AVAILABLE TabTexte THEN cText = TabTexte.Inhalt.
  855. IF cText <> '' THEN
  856. DO:
  857. cText = REPLACE(cText, CHR(10), '\par ').
  858. RUN VIPER_CREATE_DOKUMENT ( 'GebindeRuecknahme', 1, 'GebindeRuecknahme_T' , cText ).
  859. RUN AUSGABE_GRUPPE ('GebindeRuecknahme').
  860. END.
  861. /* IF NOT FDebst.Geb_Rg THEN RUN SCHLUSSTEXT. */
  862. /* ------------------------------------------------------ */
  863. /* Druckausgabe */
  864. /* ------------------------------------------------------ */
  865. RUN vpr_EndDoc.
  866. /* IF cBenutzer <> 'ivana' THEN DO: */
  867. /* IF cBenutzer <> '' THEN */
  868. /* DO: */
  869. /* RUN vpr_SetWindowPos ( 20, 20, 725, 1000 ). */
  870. /* RUN vpr_SetPreviewMode('preview'). */
  871. /* RUN vpr_ShowPreView. */
  872. /* */
  873. /* MESSAGE 'Alles richtig und drucken? ' VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO*/
  874. /* UPDATE lJa. */
  875. /* */
  876. /* RUN vpr_HidePreView. */
  877. /* */
  878. /* IF NOT lJa THEN RETURN 'NOK'. */
  879. /* END. */
  880. cvpr_Dokument = SUBSTITUTE(cERPDokumente,
  881. cInstallation ,
  882. 'Lieferscheine' ,
  883. STRING(bAufko.Knr ,'999999'),
  884. STRING(bAufko.Aufnr,'9999999'),
  885. tParam.cDokument ).
  886. cvpr_Dokument = SUBSTITUTE(cERPDokumente, cInstallation, 'Lieferscheine', cvpr_Dokument).
  887. RUN vpr_saveDoc ( cvpr_Dokument ).
  888. DO WHILE tParam.lDokDruck:
  889. SESSION:PRINTER-NAME = tParam.Drucker NO-ERROR.
  890. IF SESSION:PRINTER-NAME <> tParam.Drucker THEN
  891. DO:
  892. RUN vpr_printerDialog ( OUTPUT lJa ).
  893. IF NOT lJa THEN LEAVE.
  894. END.
  895. RUN vpr_printDoc (0, 0).
  896. RUN vpr_resetDoc.
  897. LEAVE.
  898. END.
  899. IF tParam.lCreatePDF THEN
  900. DO:
  901. cPDFName = REPLACE(cvpr_Dokument, '.vpr', '.pdf').
  902. RUN vpr_openDoc ( cvpr_Dokument ).
  903. RUN vpr_printPDF ( 0, 0, INPUT-OUTPUT cPDFName ).
  904. END.
  905. IF tParam.lOpenPDF THEN
  906. DO:
  907. DEF VAR o-i AS i NO-UNDO.
  908. FILE-INFO:FILE-NAME = cPDFName.
  909. cPDFName = FILE-INFO:FULL-PATHNAME.
  910. RUN ShellExecuteA (0,
  911. "open",
  912. cPDFName,
  913. "",
  914. "",
  915. 0,
  916. OUTPUT o-i).
  917. END.
  918. END PROCEDURE.
  919. /* _UIB-CODE-BLOCK-END */
  920. &ANALYZE-RESUME
  921. &ENDIF
  922. &IF DEFINED(EXCLUDE-DRUCKEN_ADRESSE) = 0 &THEN
  923. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN_ADRESSE Procedure
  924. PROCEDURE DRUCKEN_ADRESSE :
  925. /*------------------------------------------------------------------------------
  926. Purpose:
  927. Parameters: <none>
  928. Notes:
  929. ------------------------------------------------------------------------------*/
  930. DEF VAR cZellen AS CHAR NO-UNDO.
  931. DEF VAR cWerte AS CHAR NO-UNDO.
  932. FIND FIRST tParam.
  933. iVPagePos = 1.
  934. FIND FIRST tDokument
  935. WHERE tDokument.cGruppe = 'KOPF'
  936. AND tDokument.iZeile = 1
  937. AND tDokument.cFeld = 'Seite' NO-ERROR.
  938. IF NOT AVAILABLE tDokument THEN
  939. DO:
  940. CREATE tDokument.
  941. ASSIGN
  942. tDokument.cGruppe = 'KOPF'
  943. tDokument.iZeile = 1
  944. tDokument.cFeld = 'Seite'.
  945. END.
  946. tDokument.cInhalt = STRING(iSeite,'z9').
  947. cZellen = ''.
  948. cWerte = ''.
  949. FOR EACH tDokument
  950. WHERE tDokument.cGruppe = 'Kopf'
  951. BREAK BY tDokument.cGruppe
  952. BY tDokument.cFeld:
  953. cWerte = cWerte
  954. + tDokument.cInhalt.
  955. cZellen = cZellen
  956. + tDokument.cFeld.
  957. IF NOT LAST-OF ( tDokument.cGruppe ) THEN ASSIGN cWerte = cWerte + CHR(01)
  958. cZellen = cZellen + ','.
  959. END.
  960. RUN vpr_SetDelimiter (CHR(01)).
  961. RUN vpr_setGroupText ('Kopf', cZellen, cWerte).
  962. /* RUN vpr_setGroupVPos ('Kopf', iVPagePos).*/
  963. RUN vpr_FlushGroup ('Kopf').
  964. iVPagePos = iVPagePos + vpr_getGroupVPos('Kopf') + vpr_getGroupHeight ( 'Kopf' ) + 20.
  965. IF iSeite = 1 THEN
  966. DO:
  967. cZellen = ''.
  968. cWerte = ''.
  969. FOR EACH tDokument
  970. WHERE tDokument.cGruppe = 'KopfDetail'
  971. BREAK BY tDokument.cGruppe
  972. BY tDokument.cFeld:
  973. cWerte = cWerte
  974. + tDokument.cInhalt.
  975. cZellen = cZellen
  976. + tDokument.cFeld.
  977. IF NOT LAST-OF ( tDokument.cGruppe ) THEN ASSIGN cWerte = cWerte + CHR(01)
  978. cZellen = cZellen + ','.
  979. END.
  980. RUN vpr_SetDelimiter (CHR(01)).
  981. RUN vpr_setGroupText ('KopfDetail', cZellen, cWerte).
  982. RUN vpr_setGroupVPos ('Kopf', iVPagePos).
  983. RUN vpr_FlushGroup ('KopfDetail').
  984. iVPagePos = vpr_getPageVPos() + 20.
  985. END.
  986. ELSE iVPagePos = 930.
  987. RUN vpr_setPageVPos ( iVPagePos).
  988. RUN vpr_setGroupVPos ('Ueberschrift', iVPagePos ).
  989. RUN vpr_FlushGroup ('Ueberschrift').
  990. iVPagePos = vpr_getPageVPos() + 20.
  991. RUN vpr_setPageVPos ( iVPagePos ).
  992. END PROCEDURE.
  993. /* _UIB-CODE-BLOCK-END */
  994. &ANALYZE-RESUME
  995. &ENDIF
  996. &IF DEFINED(EXCLUDE-DRUCKEN_KOPF) = 0 &THEN
  997. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN_KOPF Procedure
  998. PROCEDURE DRUCKEN_KOPF :
  999. /*------------------------------------------------------------------------------
  1000. Purpose:
  1001. Parameters: <none>
  1002. Notes:
  1003. ------------------------------------------------------------------------------*/
  1004. DEF VAR cText AS CHAR NO-UNDO.
  1005. DEF VAR cString AS CHAR NO-UNDO.
  1006. DEF VAR ii AS INT NO-UNDO.
  1007. DEF VAR i1 AS INT NO-UNDO.
  1008. FIND FIRST tParam.
  1009. iFaknr = bAufko.Aufnr.
  1010. RUN VIPER_NEUE_SEITE.
  1011. IF iSeite = 1 THEN
  1012. DO:
  1013. FIND bSteuer NO-LOCK WHERE bSteuer.Firma = cFirma.
  1014. RUN VIPER_CREATE_DOKUMENT ( 'Kopf', 1, 'MWST_T', bSteuer.Mwst_Nr ).
  1015. IF bAufko.Adresse[05] <> '' THEN
  1016. DO:
  1017. DO ii = 1 TO 5:
  1018. CREATE tDokument.
  1019. ASSIGN
  1020. tDokument.cGruppe = 'KOPF'
  1021. tDokument.iZeile = 1
  1022. tDokument.cFeld = 'Adresse_' + STRING((6 + ii),'99')
  1023. tDokument.cInhalt = bAufko.Adresse[ii].
  1024. END.
  1025. END.
  1026. ELSE
  1027. DO:
  1028. DO ii = 5 TO 11:
  1029. CREATE tDokument.
  1030. ASSIGN
  1031. tDokument.cGruppe = 'KOPF'
  1032. tDokument.iZeile = 1
  1033. tDokument.cFeld = 'Adresse_' + STRING(ii,'99')
  1034. tDokument.cInhalt = bAdresse.Anschrift[ii].
  1035. END.
  1036. END.
  1037. CREATE tDokument.
  1038. ASSIGN
  1039. tDokument.cGruppe = 'KOPF'
  1040. tDokument.iZeile = 1
  1041. tDokument.cFeld = 'Ort_Datum'
  1042. tDokument.cInhalt = TRIM(SUBSTRING(cFormText[07],01,20))
  1043. + " "
  1044. + STRING(TODAY,"99.99.9999").
  1045. cString = (IF bAufko.Auf_Tot >= 0
  1046. THEN TRIM(SUBSTRING(cFormText[02],01,20))
  1047. ELSE TRIM(SUBSTRING(cFormText[02],21,20))).
  1048. cString = cString
  1049. + ' '
  1050. + TRIM(STRING(iFaknr,'>>>>>>9'))
  1051. + ' /'
  1052. + STRING(bAufko.Vertr,'zz9').
  1053. CREATE tDokument.
  1054. ASSIGN
  1055. tDokument.cGruppe = 'KOPF'
  1056. tDokument.iZeile = 1
  1057. tDokument.cFeld = 'T_Dokument'
  1058. tDokument.cInhalt = cString.
  1059. CREATE tDokument.
  1060. ASSIGN
  1061. tDokument.cGruppe = 'KOPFDETAIL'
  1062. tDokument.iZeile = 1
  1063. tDokument.cFeld = 'Auf_Datum'
  1064. tDokument.cInhalt = STRING(bAufko.Auf_Datum,'99.99.9999').
  1065. CREATE tDokument.
  1066. ASSIGN
  1067. tDokument.cGruppe = 'KOPFDETAIL'
  1068. tDokument.iZeile = 1
  1069. tDokument.cFeld = 'Lief_Datum'
  1070. tDokument.cInhalt = STRING(bAufko.Lief_Datum,'99.99.9999').
  1071. CREATE tDokument.
  1072. ASSIGN
  1073. tDokument.cGruppe = 'KOPFDETAIL'
  1074. tDokument.iZeile = 1
  1075. tDokument.cFeld = 'U_Ref'
  1076. tDokument.cInhalt = bAufko.U_Ref.
  1077. CREATE tDokument.
  1078. ASSIGN
  1079. tDokument.cGruppe = 'KOPFDETAIL'
  1080. tDokument.iZeile = 1
  1081. tDokument.cFeld = 'Knr'
  1082. tDokument.cInhalt = STRING(bAufko.Knr,'999999').
  1083. cText = ''.
  1084. cText = (IF bAdresse.Tel-1 <> '' THEN bAdresse.Tel-1 ELSE bAdresse.Tel-2).
  1085. IF bAdresse.Natel <> '' THEN cText = cText
  1086. + (IF cText = '' THEN '' ELSE ' / ')
  1087. + bAdresse.Natel.
  1088. CREATE tDokument.
  1089. ASSIGN
  1090. tDokument.cGruppe = 'KOPFDETAIL'
  1091. tDokument.iZeile = 1
  1092. tDokument.cFeld = 'Telefon'
  1093. tDokument.cInhalt = cText.
  1094. cString = ''.
  1095. FIND FIRST tTabTexte NO-LOCK
  1096. WHERE tTabTexte.cRecArt = 'TOUR1' NO-ERROR.
  1097. IF AVAILABLE tTabTexte THEN cString = tTabTexte.cFeld1.
  1098. FIND FIRST tTabTexte NO-LOCK
  1099. WHERE tTabTexte.cRecArt = 'FAHRER' NO-ERROR.
  1100. IF AVAILABLE tTabTexte THEN cString = cString
  1101. + (IF cString = '' THEN '' ELSE ' / ')
  1102. + tTabTexte.cFeld1.
  1103. CREATE tDokument.
  1104. ASSIGN
  1105. tDokument.cGruppe = 'KOPFDETAIL'
  1106. tDokument.iZeile = 1
  1107. tDokument.cFeld = 'Versand'
  1108. tDokument.cInhalt = cString.
  1109. CREATE tDokument.
  1110. ASSIGN
  1111. tDokument.cGruppe = 'KOPFDETAIL'
  1112. tDokument.iZeile = 1
  1113. tDokument.cFeld = 'Gewicht'
  1114. tDokument.cInhalt = TRIM(STRING(bAufko.Gewicht,'->>>,>>9.999')).
  1115. RUN vpr_Asc2RTF(tDokument.cInhalt, 'bold', OUTPUT tDokument.cInhalt ).
  1116. CREATE tDokument.
  1117. ASSIGN
  1118. tDokument.cGruppe = 'KOPFDETAIL'
  1119. tDokument.iZeile = 1
  1120. tDokument.cFeld = 'I_Best'
  1121. tDokument.cInhalt = TRIM(bAufko.I_Best).
  1122. END.
  1123. RUN DRUCKEN_ADRESSE.
  1124. IF iSeite <> 1 THEN RETURN.
  1125. cText = ''.
  1126. IF bAufko.Abh_Text <> '' THEN
  1127. DO:
  1128. cText = bAufko.Abh_Text.
  1129. END.
  1130. IF bAufko.Auf_Text <> '' THEN
  1131. DO:
  1132. cText = cText
  1133. + (IF cText <> '' THEN CHR(10) + CHR(10) ELSE '')
  1134. + bAufko.Auf_Text.
  1135. END.
  1136. IF cText = '' THEN RETURN.
  1137. CREATE tDokument.
  1138. ASSIGN
  1139. tDokument.cGruppe = 'ZusatzText'
  1140. tDokument.iZeile = 1
  1141. tDokument.cFeld = 'Bemerkung_1'
  1142. tDokument.cInhalt = cText.
  1143. iVPagePos = vpr_getPageVPos() + 30.
  1144. RUN vpr_setPageVPos ( iVPagePos ).
  1145. RUN vpr_setGroupVPos ( 'ZusatzText' , iVPagePos ).
  1146. RUN AUSGABE_GRUPPE ( 'ZusatzText' ).
  1147. END PROCEDURE.
  1148. /* _UIB-CODE-BLOCK-END */
  1149. &ANALYZE-RESUME
  1150. &ENDIF
  1151. &IF DEFINED(EXCLUDE-FUELLEN_tAufze) = 0 &THEN
  1152. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_tAufze Procedure
  1153. PROCEDURE FUELLEN_tAufze :
  1154. /*------------------------------------------------------------------------------
  1155. Purpose:
  1156. Parameters: <none>
  1157. Notes:
  1158. ------------------------------------------------------------------------------*/
  1159. DEF INPUT PARAMETER ipAufnr AS INT NO-UNDO.
  1160. DEF VAR minPos AS INT NO-UNDO.
  1161. DEF VAR maxPos AS INT NO-UNDO.
  1162. DEF VAR jPlatz AS INT NO-UNDO.
  1163. DEF VAR cLagOrt AS CHAR NO-UNDO.
  1164. DEF VAR iRuestArt AS INT NO-UNDO.
  1165. DEF VAR iPlusMinus AS INT NO-UNDO.
  1166. DEF VAR lArtikel AS LOG NO-UNDO.
  1167. DEF VAR cSort AS CHAR NO-UNDO.
  1168. EMPTY TEMP-TABLE tAufze.
  1169. FIND Steuer NO-LOCK
  1170. WHERE Steuer.Firma = cFirma NO-ERROR.
  1171. IF AVAILABLE Steuer THEN iRuestArt = Steuer.RuestArt.
  1172. ASSIGN
  1173. minPos = 0
  1174. maxPos = 9999
  1175. iPlusMinus = 0.
  1176. /* Kommentar zu Beginn eines Auftrages */
  1177. lArtikel = FALSE.
  1178. FOR EACH Aufze NO-LOCK
  1179. WHERE Aufze.Firma = cFirma
  1180. AND Aufze.Aufnr = ipAufnr
  1181. AND Aufze.Pos > minPos:
  1182. IF Aufze.Artnr > 0 THEN
  1183. DO:
  1184. lArtikel = TRUE.
  1185. LEAVE.
  1186. END.
  1187. minPos = Aufze.Pos.
  1188. CREATE tAufze.
  1189. ASSIGN
  1190. tAufze.Aufnr = Aufze.Aufnr
  1191. tAufze.Artnr = Aufze.Artnr
  1192. tAufze.Inhalt = Aufze.Inhalt
  1193. tAufze.Jahr = Aufze.Jahr
  1194. tAufze.Pos = Aufze.Pos
  1195. tAufze.Zeile = RECID(Aufze)
  1196. tAufze.Aktion = Aufze.Aktion
  1197. tAufze.Preis = Aufze.Preis
  1198. tAufze.MGeli = Aufze.MGeli
  1199. tAufze.MRuek = Aufze.MRuek.
  1200. ASSIGN
  1201. tAufze.Sort1 = ''
  1202. tAufze.Sort2 = ''
  1203. tAufze.Sort3 = STRING(iPlusMinus ,'9')
  1204. + STRING(tAufze.Pos ,'99999').
  1205. tAufze.LagOrt = ''.
  1206. END.
  1207. /* Kommentar am Ende eines Auftrages */
  1208. IF lArtikel THEN
  1209. DO:
  1210. FOR EACH Aufze NO-LOCK
  1211. WHERE Aufze.Firma = cFirma
  1212. AND Aufze.Aufnr = ipAufnr
  1213. BY Aufze.Pos DESCENDING:
  1214. IF Aufze.Artnr > 0 THEN LEAVE.
  1215. maxPos = Aufze.Pos.
  1216. CREATE tAufze.
  1217. ASSIGN
  1218. tAufze.Aufnr = Aufze.Aufnr
  1219. tAufze.Artnr = Aufze.Artnr
  1220. tAufze.Inhalt = Aufze.Inhalt
  1221. tAufze.Jahr = Aufze.Jahr
  1222. tAufze.Pos = Aufze.Pos
  1223. tAufze.Zeile = RECID(Aufze)
  1224. tAufze.Aktion = Aufze.Aktion
  1225. tAufze.Preis = Aufze.Preis
  1226. tAufze.MGeli = Aufze.MGeli
  1227. tAufze.MRuek = Aufze.MRuek.
  1228. ASSIGN
  1229. tAufze.Sort1 = 'ZZZ'
  1230. tAufze.Sort2 = ''
  1231. tAufze.Sort3 = STRING(iPlusMinus ,'9')
  1232. + STRING(tAufze.Pos ,'99999').
  1233. tAufze.LagOrt = ''.
  1234. END.
  1235. END.
  1236. cLagOrt = ''.
  1237. cSort = ''.
  1238. FOR EACH Aufze NO-LOCK
  1239. WHERE Aufze.Firma = cFirma
  1240. AND Aufze.Aufnr = ipAufnr
  1241. AND Aufze.Pos > minPos
  1242. AND Aufze.Pos < MaxPos
  1243. BY Aufze.Pos DESCENDING:
  1244. IF Aufze.Artnr > 0 THEN
  1245. DO:
  1246. FIND Artst NO-LOCK
  1247. WHERE Artst.Firma = Aufze.Firma
  1248. AND Artst.Artnr = Aufze.Artnr
  1249. AND Artst.Inhalt = Aufze.Inhalt
  1250. AND Artst.Jahr = Aufze.Jahr NO-ERROR.
  1251. IF AVAILABLE Artst THEN cSort = 'Artikel'.
  1252. END.
  1253. iPlusMinus = (IF Aufze.MGeli < 0 THEN 1 ELSE 0).
  1254. CREATE tAufze.
  1255. ASSIGN
  1256. tAufze.Aufnr = Aufze.Aufnr
  1257. tAufze.Artnr = Aufze.Artnr
  1258. tAufze.Inhalt = Aufze.Inhalt
  1259. tAufze.Jahr = Aufze.Jahr
  1260. tAufze.Pos = Aufze.Pos
  1261. tAufze.Zeile = RECID(Aufze)
  1262. tAufze.Aktion = Aufze.Aktion
  1263. tAufze.Preis = Aufze.Preis
  1264. tAufze.MGeli = Aufze.MGeli
  1265. tAufze.MRuek = Aufze.MRuek.
  1266. ASSIGN
  1267. tAufze.Sort1 = cSort
  1268. tAufze.Sort2 = ''
  1269. tAufze.Sort3 = STRING(iPlusMinus ,'9')
  1270. + STRING(tAufze.Pos ,'99999').
  1271. tAufze.LagOrt = cLagort.
  1272. END.
  1273. END PROCEDURE.
  1274. /* _UIB-CODE-BLOCK-END */
  1275. &ANALYZE-RESUME
  1276. &ENDIF
  1277. &IF DEFINED(EXCLUDE-SCHLUSSTEXT) = 0 &THEN
  1278. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SCHLUSSTEXT Procedure
  1279. PROCEDURE SCHLUSSTEXT :
  1280. /*------------------------------------------------------------------------------
  1281. Purpose:
  1282. Parameters: <none>
  1283. Notes:
  1284. ------------------------------------------------------------------------------*/
  1285. FIND TabTexte NO-LOCK USE-INDEX TabTexte-k1
  1286. WHERE TabTexte.Firma = bAufko.Firma
  1287. AND TabTexte.TextArt = 'DOK' + STRING(bAufko.Fak_Art,'99')
  1288. AND TabTexte.Sprcd = iSprcd NO-ERROR.
  1289. IF NOT AVAILABLE TabTexte THEN
  1290. DO:
  1291. FIND TabTexte NO-LOCK USE-INDEX TabTexte-k1
  1292. WHERE TabTexte.Firma = bAufko.Firma
  1293. AND TabTexte.TextArt = 'DOK' + STRING(bAufko.Fak_Art,'99')
  1294. AND TabTexte.Sprcd = 1 NO-ERROR.
  1295. END.
  1296. IF NOT AVAILABLE TabTexte THEN RETURN.
  1297. iArtZeile = 1.
  1298. RUN VIPER_CREATE_DOKUMENT ( 'Zusatztext', iArtZeile, 'Bemerkung_1', TabTexte.Inhalt ).
  1299. RUN AUSGABE_GRUPPE ( 'Zusatztext' ).
  1300. END PROCEDURE.
  1301. /* _UIB-CODE-BLOCK-END */
  1302. &ANALYZE-RESUME
  1303. &ENDIF
  1304. &IF DEFINED(EXCLUDE-VIPER_CREATE_DOKUMENT) = 0 &THEN
  1305. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_CREATE_DOKUMENT Procedure
  1306. PROCEDURE VIPER_CREATE_DOKUMENT :
  1307. /*------------------------------------------------------------------------------
  1308. Purpose:
  1309. Parameters: <none>
  1310. Notes:
  1311. ------------------------------------------------------------------------------*/
  1312. DEF INPUT PARAMETER ipGruppe AS CHAR NO-UNDO.
  1313. DEF INPUT PARAMETER ipZeile AS INT NO-UNDO.
  1314. DEF INPUT PARAMETER ipFeld AS CHAR NO-UNDO.
  1315. DEF INPUT PARAMETER ipInhalt AS CHAR NO-UNDO.
  1316. CREATE tDokument.
  1317. ASSIGN
  1318. tDokument.cGruppe = ipGruppe
  1319. tDokument.iZeile = ipZeile
  1320. tDokument.cFeld = ipFeld
  1321. tDokument.cInhalt = ipInhalt.
  1322. END PROCEDURE.
  1323. /* _UIB-CODE-BLOCK-END */
  1324. &ANALYZE-RESUME
  1325. &ENDIF
  1326. &IF DEFINED(EXCLUDE-VIPER_INIT) = 0 &THEN
  1327. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_INIT Procedure
  1328. PROCEDURE VIPER_INIT :
  1329. /*------------------------------------------------------------------------------
  1330. Purpose:
  1331. Parameters: <none>
  1332. Notes:
  1333. ------------------------------------------------------------------------------*/
  1334. DEF VAR cTemplate AS CHAR NO-UNDO.
  1335. DEF VAR cDokument AS CHAR NO-UNDO.
  1336. DEF VAR cZellen AS CHAR NO-UNDO.
  1337. DEF VAR cZelle AS CHAR NO-UNDO.
  1338. DEF VAR cGruppe AS CHAR NO-UNDO.
  1339. DEF VAR ii AS INT NO-UNDO.
  1340. DEF VAR cString AS CHAR NO-UNDO.
  1341. FIND FIRST tParam.
  1342. IF iLauf = 1 THEN
  1343. DO:
  1344. IF tParam.lCreatePDF THEN cDokument = tParam.cInstall + '/' + tParam.Template + '.vfr'.
  1345. ELSE cDokument = tParam.cInstall + '/' + tParam.Template + '.vfr'.
  1346. RUN vpr_ResetDoc.
  1347. RUN vpr_LoadVFR (cDokument).
  1348. RUN vpr_ActivateReport (tParam.Template).
  1349. RUN vpr_SelectPrinter (tParam.Drucker).
  1350. RUN vpr_setPrinterAttrib('duplex=1,copies=2').
  1351. RUN vpr_ResetDoc.
  1352. RUN vpr_SetDocAttrib ('PAPERSIZE=A4').
  1353. RUN vpr_SetPreviewMode ('Direct').
  1354. RUN vpr_setDocTitle (tParam.cDokument).
  1355. IF tParam.Schacht_Original > 0 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", tParam.Schacht_Original ).
  1356. END.
  1357. ELSE
  1358. DO:
  1359. RUN vpr_NewPage.
  1360. IF tParam.Schacht_Kopie > 0 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", tParam.Schacht_Kopie ).
  1361. END.
  1362. RUN vpr_initGroups ('').
  1363. RUN vpr_SetGroupAttrib ("Kopf" , "Fixed=true").
  1364. RUN vpr_SetGroupAttrib ("Fusstext" , "Fixed=true").
  1365. RUN vpr_SetGroupAttrib ("Kondition", "Fixed=true").
  1366. iMaxPos = 2780.
  1367. /* DYNAMIC-FUNCTION('fillFormular':U) NO-ERROR.*/
  1368. END PROCEDURE.
  1369. /* _UIB-CODE-BLOCK-END */
  1370. &ANALYZE-RESUME
  1371. &ENDIF
  1372. &IF DEFINED(EXCLUDE-VIPER_NEUE_SEITE) = 0 &THEN
  1373. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_NEUE_SEITE Procedure
  1374. PROCEDURE VIPER_NEUE_SEITE :
  1375. /*------------------------------------------------------------------------------
  1376. Purpose:
  1377. Parameters: <none>
  1378. Notes:
  1379. ------------------------------------------------------------------------------*/
  1380. DEF VAR iPos AS INT NO-UNDO.
  1381. FIND FIRST tParam.
  1382. DO WHILE TRUE:
  1383. IF iSeite = 0 THEN
  1384. DO:
  1385. iSeite = iSeite + 1.
  1386. LEAVE.
  1387. END.
  1388. RUN vpr_NewPage.
  1389. IF iLauf = 1 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", tParam.Schacht_Original ).
  1390. ELSE RUN vpr_SetCurrentPageProperties ( "Papertray", tParam.Schacht_Kopie ).
  1391. iSeite = iSeite + 1.
  1392. LEAVE.
  1393. END.
  1394. RUN vpr_InitGroups ('').
  1395. RUN vpr_initGraphObj.
  1396. RUN vpr_setPageVPos ( 1 ).
  1397. END PROCEDURE.
  1398. /* _UIB-CODE-BLOCK-END */
  1399. &ANALYZE-RESUME
  1400. &ENDIF
  1401. &IF DEFINED(EXCLUDE-_GEBINDE_SALDO) = 0 &THEN
  1402. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE _GEBINDE_SALDO Procedure
  1403. PROCEDURE _GEBINDE_SALDO :
  1404. /*------------------------------------------------------------------------------
  1405. Purpose:
  1406. Parameters: <none>
  1407. Notes:
  1408. ------------------------------------------------------------------------------*/
  1409. FOR EACH AufGKon USE-INDEX AufGKon-k1
  1410. WHERE AufGKon.Firma = BAufko.Firma
  1411. AND AufGKon.Aufnr = BAufko.Aufnr NO-LOCK:
  1412. IF AufGKon.Eingang = 0 AND
  1413. AufGKon.Ausgang = 0 THEN NEXT.
  1414. FIND FIRST tGebKto WHERE tGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR.
  1415. IF NOT AVAILABLE tGebKto THEN
  1416. DO:
  1417. FIND GebKonto USE-INDEX GebKonto-k1
  1418. WHERE GebKonto.Firma = AufGKon.Firma
  1419. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK.
  1420. CREATE tGebKto.
  1421. ASSIGN
  1422. tGebKto.Sort_Cd = GebKonto.Sort_Cd
  1423. tGebKto.Geb_Cd = GebKonto.Geb_Cd
  1424. tGebKto.Bez = GebKonto.Bez
  1425. tGebKto.Preis = AufGKon.Depot
  1426. tGebKto.MWST_Cd = AufGKon.MWSt_Cd.
  1427. END.
  1428. tGebKto.A_Anz = tGebKto.A_Anz + AufGKon.Ausgang.
  1429. tGebKto.A_Betrag = tGebKto.A_Anz * tGebKto.Preis.
  1430. tGebKto.E_Anz = tGebKto.E_Anz + AufGKon.Eingang.
  1431. tGebKto.E_Betrag = tGebKto.E_Anz * tGebKto.Preis.
  1432. END.
  1433. END PROCEDURE.
  1434. /* _UIB-CODE-BLOCK-END */
  1435. &ANALYZE-RESUME
  1436. &ENDIF
  1437. /* ************************ Function Implementations ***************** */
  1438. &IF DEFINED(EXCLUDE-calcBlock) = 0 &THEN
  1439. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION calcBlock Procedure
  1440. FUNCTION calcBlock RETURNS INTEGER (ipGruppe AS CHAR):
  1441. DEF VAR cZellen AS CHAR NO-UNDO.
  1442. DEF VAR cWerte AS CHAR NO-UNDO.
  1443. DEF VAR iSpace AS INT NO-UNDO.
  1444. DEF VAR iGrpHo AS INT NO-UNDO.
  1445. FOR EACH tDokument
  1446. WHERE tDokument.cGruppe = ipGruppe
  1447. BREAK BY tDokument.cGruppe
  1448. BY tDokument.iZeile :
  1449. IF FIRST-OF ( tDokument.iZeile ) THEN
  1450. DO:
  1451. cZellen = ''.
  1452. cWerte = ''.
  1453. END.
  1454. cWerte = cWerte
  1455. + tDokument.cInhalt.
  1456. cZellen = cZellen
  1457. + tDokument.cFeld.
  1458. IF NOT LAST-OF ( tDokument.iZeile ) THEN
  1459. DO:
  1460. ASSIGN
  1461. cWerte = cWerte + CHR(01)
  1462. cZellen = cZellen + ','.
  1463. NEXT.
  1464. END.
  1465. RUN vpr_setGroupText (ipGruppe, cZellen, cWerte).
  1466. iGrpHo = vpr_getGroupHeight ( ipGruppe ).
  1467. iSpace = iSpace + iGrpHo.
  1468. END.
  1469. RUN vpr_InitGroups(ipGruppe).
  1470. RETURN iSpace.
  1471. END FUNCTION.
  1472. /* _UIB-CODE-BLOCK-END */
  1473. &ANALYZE-RESUME
  1474. &ENDIF
  1475. &IF DEFINED(EXCLUDE-fillFormular) = 0 &THEN
  1476. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION fillFormular Procedure
  1477. FUNCTION fillFormular RETURNS LOGICAL
  1478. ( ) :
  1479. /*------------------------------------------------------------------------------
  1480. Purpose:
  1481. Notes:
  1482. ------------------------------------------------------------------------------*/
  1483. RUN vpr_SetGroupText ( 'Ueberschrift', 'Artnr_T' , ENTRY( 1, cFormText[23], ';') ).
  1484. RUN vpr_SetGroupText ( 'Ueberschrift', 'VGeb_Menge_T' , ENTRY( 2, cFormText[23], ';') ).
  1485. RUN vpr_SetGroupText ( 'Ueberschrift', 'VGeb_T' , ENTRY( 3, cFormText[23], ';') ).
  1486. RUN vpr_SetGroupText ( 'Ueberschrift', 'KGeb_Menge_T' , ENTRY( 4, cFormText[23], ';') ).
  1487. RUN vpr_SetGroupText ( 'Ueberschrift', 'KGeb_T' , ENTRY( 5, cFormText[23], ';') ).
  1488. RUN vpr_SetGroupText ( 'Ueberschrift', 'Bez_T' , ENTRY( 6, cFormText[23], ';') ).
  1489. RUN vpr_SetGroupText ( 'Ueberschrift', 'Alk%_T' , ENTRY( 7, cFormText[23], ';') ).
  1490. RUN vpr_SetGroupText ( 'Ueberschrift', 'JG_T' , ENTRY( 8, cFormText[23], ';') ).
  1491. RUN vpr_SetGroupText ( 'Ueberschrift', 'Preis_T' , ENTRY( 9, cFormText[23], ';') ).
  1492. RUN vpr_SetGroupText ( 'Ueberschrift', 'Betrag_T' , ENTRY(10, cFormText[23], ';') ).
  1493. RUN vpr_SetGroupText ( 'Ueberschrift', 'MC_T' , ENTRY(11, cFormText[23], ';') ).
  1494. RUN vpr_SetGroupText ( 'Kopf' , 'Seite_T' , ENTRY( 2, cFormText[24], ';') ).
  1495. RUN vpr_SetGroupText ( 'KopfDetail' , 'Knr_T' , ENTRY( 1, cFormText[20], ';') ).
  1496. RUN vpr_SetGroupText ( 'KopfDetail' , 'Bestellt_T' , ENTRY( 2, cFormText[20], ';') ).
  1497. RUN vpr_SetGroupText ( 'KopfDetail' , 'Geliefert_T' , ENTRY( 3, cFormText[20], ';') ).
  1498. RUN vpr_SetGroupText ( 'KopfDetail' , 'Versand_T' , ENTRY( 4, cFormText[20], ';') ).
  1499. RUN vpr_SetGroupText ( 'KopfDetail' , 'URef_T' , ENTRY( 1, cFormText[19], ';') ).
  1500. RUN vpr_SetGroupText ( 'KopfDetail' , 'Telefon_T' , ENTRY( 2, cFormText[19], ';') ).
  1501. RUN vpr_SetGroupText ( 'KopfDetail' , 'Gewicht_T' , ENTRY( 3, cFormText[19], ';') ).
  1502. RUN vpr_SetGroupText ( 'KopfDetail' , 'IBest_T' , ENTRY( 4, cFormText[19], ';') ).
  1503. RUN vpr_SetGroupText ( 'GebindeTitel', 'GebindeText_T' , ENTRY( 1, cFormText[25], ';') ).
  1504. RUN vpr_SetGroupText ( 'GebindeTitel', 'GebindeGel_T' , ENTRY( 2, cFormText[25], ';') ).
  1505. RUN vpr_SetGroupText ( 'GebindeTitel', 'GebindeRet_T' , ENTRY( 3, cFormText[25], ';') ).
  1506. RUN vpr_SetGroupText ( 'GebindeTitel', 'GebindeSaldo_T', ENTRY( 4, cFormText[25], ';') ).
  1507. RUN vpr_SetGroupText ( 'GebindeTitel', 'GebindeBetr_T' , ENTRY( 5, cFormText[25], ';') ).
  1508. RUN vpr_SetGroupText ( 'GebindeTitel', 'GebindeTot_T' , ENTRY( 6, cFormText[25], ';') ).
  1509. RETURN TRUE.
  1510. END FUNCTION.
  1511. /* _UIB-CODE-BLOCK-END */
  1512. &ANALYZE-RESUME
  1513. &ENDIF