c-p_latorre-sk.w 110 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME C-Win
  7. /* Temp-Table and Buffer definitions */
  8. DEFINE NEW SHARED TEMP-TABLE XTermOut NO-UNDO LIKE TermOut.
  9. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS C-Win
  10. /*------------------------------------------------------------------------
  11. File:
  12. Description:
  13. Input Parameters:
  14. <none>
  15. Output Parameters:
  16. <none>
  17. Author:
  18. Created:
  19. ------------------------------------------------------------------------*/
  20. /* This .W file was created with the Progress UIB. */
  21. /*----------------------------------------------------------------------*/
  22. /* Create an unnamed pool to store all the widgets created
  23. by this procedure. This is a good default which assures
  24. that this procedure's triggers and internal procedures
  25. will execute in this procedure's storage, and that proper
  26. cleanup will occur on deletion of the procedure. */
  27. CREATE WIDGET-POOL.
  28. /* *************************** Definitions ************************** */
  29. /* Parameters Definitions --- */
  30. /* Local Variable Definitions --- */
  31. DEF VAR FDrucken AS LOG NO-UNDO.
  32. DEF VAR TRecid AS RECID NO-UNDO.
  33. DEF VAR RabText AS CHAR NO-UNDO.
  34. DEF VAR RabWert AS DEC NO-UNDO.
  35. DEF VAR VFak_Betr AS DEC DECIMALS 4 NO-UNDO.
  36. DEF VAR GTWpfl AS DEC EXTENT 12 NO-UNDO.
  37. DEF VAR GTWust AS DEC EXTENT 12 NO-UNDO.
  38. DEF VAR GTFak_Betr AS DEC NO-UNDO.
  39. DEF VAR GTSk_Ber AS DEC NO-UNDO.
  40. DEF VAR SFaknr AS INT NO-UNDO.
  41. DEF VAR FLetzt AS LOG NO-UNDO.
  42. DEF VAR FErste AS LOG NO-UNDO.
  43. DEF VAR VZeile AS CHAR FORMAT "x(180)" NO-UNDO.
  44. DEF VAR RZeile AS CHAR FORMAT "x(180)" NO-UNDO.
  45. DEF VAR LiKopf AS LOG NO-UNDO.
  46. DEF VAR StBreite AS INT NO-UNDO.
  47. DEF VAR VWC AS INT NO-UNDO.
  48. DEF VAR VZTot AS DEC DECIMALS 4 NO-UNDO.
  49. DEF VAR FDatum AS DATE FORMAT "99.99.9999" NO-UNDO.
  50. DEF VAR VFaknr AS INT NO-UNDO.
  51. DEF VAR VesrKnr AS INT NO-UNDO.
  52. DEF VAR VesrFnr AS INT NO-UNDO.
  53. DEF VAR VBesr AS INT NO-UNDO.
  54. DEF VAR VRabText AS CHAR FORMAT "x(20)" NO-UNDO.
  55. DEF VAR VZusText AS CHAR FORMAT "x(20)" NO-UNDO.
  56. DEF VAR VEpzText AS CHAR FORMAT "x(20)" NO-UNDO.
  57. DEF VAR XVersand AS CHAR NO-UNDO.
  58. DEF VAR XAblade AS CHAR NO-UNDO.
  59. DEF VAR XChauffeur AS CHAR NO-UNDO.
  60. DEF VAR XAuf_Text LIKE Savko.Auf_Text NO-UNDO.
  61. DEF VAR XTelnr LIKE Savko.Auf_Text NO-UNDO.
  62. DEF VAR VTemp AS CHAR FORMAT "x(100)" NO-UNDO.
  63. DEF VAR FPreis AS LOG NO-UNDO.
  64. DEF VAR FBetrag AS LOG NO-UNDO.
  65. DEF VAR FRabatt AS LOG NO-UNDO.
  66. DEF VAR FUeber AS LOG NO-UNDO.
  67. DEF VAR FSamm AS LOG NO-UNDO.
  68. DEF VAR VTabTexte LIKE TabTexte.Inhalt NO-UNDO.
  69. DEF VAR VDokArt AS CHAR NO-UNDO.
  70. DEF VAR VKopfArt AS CHAR NO-UNDO.
  71. DEF VAR BESRGedr AS LOG NO-UNDO.
  72. DEF VAR BOpen AS LOG NO-UNDO.
  73. DEF VAR BESRName AS CHAR NO-UNDO.
  74. DEF VAR cUSER AS CHAR NO-UNDO.
  75. DEF VAR Laser AS LOG NO-UNDO.
  76. DEF VAR Schacht AS INT NO-UNDO.
  77. DEF VAR Schacht1 AS CHAR NO-UNDO.
  78. DEF VAR Schacht2 AS CHAR NO-UNDO.
  79. DEF VAR Schacht3 AS CHAR NO-UNDO.
  80. DEF VAR Schacht4 AS CHAR NO-UNDO.
  81. DEF VAR cWag AS CHAR INIT '-' NO-UNDO.
  82. DEF VAR cSenk AS CHAR INIT '|' NO-UNDO.
  83. DEF VAR cPlus AS CHAR INIT '+' NO-UNDO.
  84. DEF VAR DruckInit AS CHAR NO-UNDO.
  85. DEF VAR SchriftInit AS CHAR NO-UNDO.
  86. DEF VAR OCRBInit AS CHAR NO-UNDO.
  87. DEF VAR FormText AS CHAR FORMAT "x(80)" EXTENT 40.
  88. DEF BUFFER BSavko FOR Savko.
  89. DEF BUFFER XSavko FOR Savko.
  90. DEF BUFFER BSavze FOR Savze.
  91. DEF BUFFER BSavGebKo FOR SavGebKo.
  92. DEF BUFFER FDebst FOR Debst.
  93. DEF BUFFER LDebst FOR Debst.
  94. DEF BUFFER BTabel FOR Tabel.
  95. DEF BUFFER TFakart FOR Tabel.
  96. DEF BUFFER TAufsta FOR Tabel.
  97. DEF VAR DebInkl AS LOG NO-UNDO.
  98. DEF VAR VWg_Grp AS INT INIT 0 NO-UNDO.
  99. DEF VAR VProd_Grp AS INT INIT 0 NO-UNDO.
  100. DEF VAR VArt_Grp AS INT INIT 0 NO-UNDO.
  101. DEF VAR AArtnr AS INT INIT 0 NO-UNDO.
  102. DEF VAR AInhalt AS INT INIT 0 NO-UNDO.
  103. DEF VAR AJahr AS INT INIT 0 NO-UNDO.
  104. DEF TEMP-TABLE TSavze FIELD Aufnr AS INT
  105. FIELD Sort1 AS CHAR
  106. FIELD Sort2 AS CHAR
  107. FIELD Sort3 AS CHAR
  108. FIELD Artnr AS INT
  109. FIELD Inhalt AS INT
  110. FIELD Jahr AS INT
  111. FIELD Pos AS INT
  112. FIELD Zeile AS RECID
  113. FIELD Preis AS DEC DECIMALS 4
  114. FIELD Aktion AS LOG.
  115. DEF TEMP-TABLE TGebKto FIELD Sort_Cd AS CHAR
  116. FIELD Geb_Cd AS CHAR
  117. FIELD Bez AS CHAR
  118. FIELD Preis AS DEC
  119. FIELD A_Anz AS DEC
  120. FIELD A_Betrag AS DEC
  121. FIELD E_Anz AS DEC
  122. FIELD E_Betrag AS DEC
  123. FIELD MWST_Art AS INT
  124. FIELD MWST_Cd AS INT.
  125. DEF TEMP-TABLE TRabSumm FIELD Rab_Summ AS INT
  126. FIELD Bez AS CHAR
  127. FIELD F_Rab_Art AS INT
  128. FIELD F_Wert AS DEC DECIMALS 4
  129. FIELD A_Rab_Art AS INT
  130. FIELD A_Wert AS DEC DECIMALS 4
  131. FIELD Auf_Rab AS DEC DECIMALS 4
  132. FIELD Abh_Rab AS DEC DECIMALS 4.
  133. DEF TEMP-TABLE TUmsGrp FIELD Ums_Grp AS INT
  134. FIELD Bez AS CHAR
  135. FIELD Ums_Betr AS DEC DECIMALS 4.
  136. DEF TEMP-TABLE TGebuehr FIELD MWST_Cd AS INT
  137. FIELD Anz AS DEC
  138. FIELD Betrag AS DEC.
  139. DEF TEMP-TABLE SammFak FIELD Knr AS INT
  140. FIELD Samm_Nr AS INT
  141. FIELD Aufnr AS INT
  142. FIELD RID AS RECID.
  143. DEF TEMP-TABLE TSpeRab FIELD Rab_Grp AS INT
  144. FIELD Auf_Betr AS DEC DECIMALS 4.
  145. DEF STREAM BESR_Stream.
  146. /* ---------- Globale Variablen ---------------------------------- */
  147. { v8/globvar.i" " " " "SHARED" }
  148. { v8/debivar.i " " " " "SHARED" }
  149. { v8/artivar.i " " " " "SHARED" }
  150. { v8/contvar.i " " " " "SHARED" }
  151. { v8/listtitv.i "NEW" "SHARED" }
  152. { v8/aufkototv.i "NEW" "SHARED" }
  153. /* _UIB-CODE-BLOCK-END */
  154. &ANALYZE-RESUME
  155. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  156. /* ******************** Preprocessor Definitions ******************** */
  157. &Scoped-define PROCEDURE-TYPE Window
  158. &Scoped-define DB-AWARE no
  159. /* Name of first Frame and/or Browse and/or first Query */
  160. &Scoped-define FRAME-NAME DEFAULT-FRAME
  161. /* Standard List Definitions */
  162. &Scoped-Define ENABLED-OBJECTS RECT-1 F_Drucker E_Adresse F_Schrift F_Tzz ~
  163. F_Kzz F_Fzz F_KOPIE F_Aufnr F_Faknr F_Datum F_Dokart F_Seite
  164. &Scoped-Define DISPLAYED-OBJECTS F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz ~
  165. F_Fzz F_KOPIE F_Aufnr F_Faknr F_Datum F_Dokart F_Seite
  166. /* Custom List Definitions */
  167. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  168. &Scoped-define List-1 F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz ~
  169. F_KOPIE F_Aufnr F_Faknr F_Datum F_Dokart F_Seite
  170. /* _UIB-PREPROCESSOR-BLOCK-END */
  171. &ANALYZE-RESUME
  172. /* *********************** Control Definitions ********************** */
  173. /* Define the widget handle for the window */
  174. DEFINE VAR C-Win AS WIDGET-HANDLE NO-UNDO.
  175. /* Definitions of the field level widgets */
  176. DEFINE VARIABLE E_Adresse AS CHARACTER
  177. VIEW-AS EDITOR MAX-CHARS 1000
  178. SIZE 47.6 BY 6.19
  179. BGCOLOR 15 NO-UNDO.
  180. DEFINE VARIABLE F_Aufnr AS INTEGER FORMAT "zzzzzz9":U INITIAL 0
  181. LABEL "Auftragsnummer"
  182. VIEW-AS FILL-IN NATIVE
  183. SIZE 14 BY 1
  184. BGCOLOR 15 NO-UNDO.
  185. DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U
  186. LABEL "Fakturadatum"
  187. VIEW-AS FILL-IN NATIVE
  188. SIZE 19.6 BY 1
  189. BGCOLOR 15 NO-UNDO.
  190. DEFINE VARIABLE F_Dokart AS CHARACTER FORMAT "x(50)":U
  191. LABEL "Dokumentart"
  192. VIEW-AS FILL-IN NATIVE
  193. SIZE 29.2 BY 1
  194. BGCOLOR 15 NO-UNDO.
  195. DEFINE VARIABLE F_Drucker AS CHARACTER FORMAT "x(50)":U
  196. LABEL "Drucker"
  197. VIEW-AS FILL-IN NATIVE
  198. SIZE 45 BY 1
  199. BGCOLOR 15 NO-UNDO.
  200. DEFINE VARIABLE F_Faknr AS INTEGER FORMAT "zzzzzzz":U INITIAL 0
  201. LABEL "Fakturanummer"
  202. VIEW-AS FILL-IN NATIVE
  203. SIZE 14 BY 1
  204. BGCOLOR 15 NO-UNDO.
  205. DEFINE VARIABLE F_Fzz AS INTEGER FORMAT "zz9":U INITIAL 0
  206. LABEL "Leere Fusszeilen"
  207. VIEW-AS FILL-IN NATIVE
  208. SIZE 7 BY 1
  209. BGCOLOR 15 NO-UNDO.
  210. DEFINE VARIABLE F_KOPIE AS INTEGER FORMAT "zz9":U INITIAL 0
  211. LABEL "Anz. Kopien"
  212. VIEW-AS FILL-IN NATIVE
  213. SIZE 7 BY 1
  214. BGCOLOR 15 NO-UNDO.
  215. DEFINE VARIABLE F_Kzz AS INTEGER FORMAT "zz9":U INITIAL 0
  216. LABEL "Leere Kopfzeilen"
  217. VIEW-AS FILL-IN NATIVE
  218. SIZE 7 BY 1
  219. BGCOLOR 15 NO-UNDO.
  220. DEFINE VARIABLE F_Schrift AS CHARACTER FORMAT "x(50)":U
  221. LABEL "Schriftbild"
  222. VIEW-AS FILL-IN NATIVE
  223. SIZE 45 BY 1
  224. BGCOLOR 15 NO-UNDO.
  225. DEFINE VARIABLE F_Seite AS INTEGER FORMAT "zz9":U INITIAL 0
  226. LABEL "Seite"
  227. VIEW-AS FILL-IN NATIVE
  228. SIZE 7 BY 1
  229. BGCOLOR 15 NO-UNDO.
  230. DEFINE VARIABLE F_Tzz AS INTEGER FORMAT "zz9":U INITIAL 0
  231. LABEL "Total Zeilen"
  232. VIEW-AS FILL-IN NATIVE
  233. SIZE 7 BY 1
  234. BGCOLOR 15 NO-UNDO.
  235. DEFINE RECTANGLE RECT-1
  236. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  237. SIZE 126 BY 9.52.
  238. /* ************************ Frame Definitions *********************** */
  239. DEFINE FRAME DEFAULT-FRAME
  240. F_Drucker AT ROW 2 COL 25.6 COLON-ALIGNED
  241. E_Adresse AT ROW 2 COL 76.6 NO-LABEL
  242. F_Schrift AT ROW 3 COL 25.6 COLON-ALIGNED
  243. F_Tzz AT ROW 4 COL 25.6 COLON-ALIGNED
  244. F_Kzz AT ROW 5 COL 25.6 COLON-ALIGNED
  245. F_Fzz AT ROW 6 COL 25.6 COLON-ALIGNED
  246. F_KOPIE AT ROW 6 COL 63.4 COLON-ALIGNED
  247. F_Aufnr AT ROW 7 COL 25.6 COLON-ALIGNED
  248. F_Faknr AT ROW 8 COL 25.6 COLON-ALIGNED
  249. F_Datum AT ROW 9 COL 25.6 COLON-ALIGNED
  250. F_Dokart AT ROW 9 COL 74.6 COLON-ALIGNED
  251. F_Seite AT ROW 9 COL 115.2 COLON-ALIGNED
  252. RECT-1 AT ROW 1.24 COL 2
  253. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  254. SIDE-LABELS NO-UNDERLINE THREE-D
  255. AT COL 1 ROW 1
  256. SIZE 129.4 BY 14.43.
  257. /* *********************** Procedure Settings ************************ */
  258. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  259. /* Settings for THIS-PROCEDURE
  260. Type: Window
  261. Allow: Basic,Browse,DB-Fields,Window,Query
  262. Other Settings: COMPILE
  263. Temp-Tables and Buffers:
  264. TABLE: XTermOut T "NEW SHARED" NO-UNDO AnaDat TermOut
  265. END-TABLES.
  266. */
  267. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  268. /* ************************* Create Window ************************** */
  269. &ANALYZE-SUSPEND _CREATE-WINDOW
  270. IF SESSION:DISPLAY-TYPE = "GUI":U THEN
  271. CREATE WINDOW C-Win ASSIGN
  272. HIDDEN = YES
  273. TITLE = "Drucken von Auftragsdokumenten"
  274. HEIGHT = 10
  275. WIDTH = 128
  276. MAX-HEIGHT = 26.57
  277. MAX-WIDTH = 203
  278. VIRTUAL-HEIGHT = 26.57
  279. VIRTUAL-WIDTH = 203
  280. RESIZE = yes
  281. SCROLL-BARS = no
  282. STATUS-AREA = no
  283. BGCOLOR = ?
  284. FGCOLOR = ?
  285. KEEP-FRAME-Z-ORDER = yes
  286. THREE-D = yes
  287. MESSAGE-AREA = no
  288. SENSITIVE = yes.
  289. ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
  290. /* END WINDOW DEFINITION */
  291. &ANALYZE-RESUME
  292. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  293. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  294. /* SETTINGS FOR WINDOW C-Win
  295. VISIBLE,,RUN-PERSISTENT */
  296. /* SETTINGS FOR FRAME DEFAULT-FRAME
  297. */
  298. /* SETTINGS FOR EDITOR E_Adresse IN FRAME DEFAULT-FRAME
  299. 1 */
  300. ASSIGN
  301. E_Adresse:READ-ONLY IN FRAME DEFAULT-FRAME = TRUE.
  302. /* SETTINGS FOR FILL-IN F_Aufnr IN FRAME DEFAULT-FRAME
  303. 1 */
  304. /* SETTINGS FOR FILL-IN F_Datum IN FRAME DEFAULT-FRAME
  305. 1 */
  306. /* SETTINGS FOR FILL-IN F_Dokart IN FRAME DEFAULT-FRAME
  307. 1 */
  308. /* SETTINGS FOR FILL-IN F_Drucker IN FRAME DEFAULT-FRAME
  309. 1 */
  310. /* SETTINGS FOR FILL-IN F_Faknr IN FRAME DEFAULT-FRAME
  311. 1 */
  312. /* SETTINGS FOR FILL-IN F_Fzz IN FRAME DEFAULT-FRAME
  313. 1 */
  314. /* SETTINGS FOR FILL-IN F_KOPIE IN FRAME DEFAULT-FRAME
  315. 1 */
  316. /* SETTINGS FOR FILL-IN F_Kzz IN FRAME DEFAULT-FRAME
  317. 1 */
  318. /* SETTINGS FOR FILL-IN F_Schrift IN FRAME DEFAULT-FRAME
  319. 1 */
  320. /* SETTINGS FOR FILL-IN F_Seite IN FRAME DEFAULT-FRAME
  321. 1 */
  322. /* SETTINGS FOR FILL-IN F_Tzz IN FRAME DEFAULT-FRAME
  323. 1 */
  324. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win)
  325. THEN C-Win:HIDDEN = no.
  326. /* _RUN-TIME-ATTRIBUTES-END */
  327. &ANALYZE-RESUME
  328. /* ************************ Control Triggers ************************ */
  329. &Scoped-define SELF-NAME C-Win
  330. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win
  331. ON END-ERROR OF C-Win /* Drucken von Auftragsdokumenten */
  332. OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
  333. /* This case occurs when the user presses the "Esc" key.
  334. In a persistently run window, just ignore this. If we did not, the
  335. application would exit. */
  336. IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
  337. END.
  338. /* _UIB-CODE-BLOCK-END */
  339. &ANALYZE-RESUME
  340. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win
  341. ON WINDOW-CLOSE OF C-Win /* Drucken von Auftragsdokumenten */
  342. DO:
  343. /* This event will close the window and terminate the procedure. */
  344. APPLY "CLOSE":U TO THIS-PROCEDURE.
  345. RETURN NO-APPLY.
  346. END.
  347. /* _UIB-CODE-BLOCK-END */
  348. &ANALYZE-RESUME
  349. &UNDEFINE SELF-NAME
  350. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK C-Win
  351. /* *************************** Main Block *************************** */
  352. /* Set CURRENT-WINDOW: this will parent dialog-boxes and frames. */
  353. ASSIGN CURRENT-WINDOW = {&WINDOW-NAME}
  354. THIS-PROCEDURE:CURRENT-WINDOW = {&WINDOW-NAME}.
  355. ON CLOSE OF THIS-PROCEDURE RUN disable_UI.
  356. PAUSE 0 BEFORE-HIDE.
  357. MAIN-BLOCK:
  358. DO ON ERROR UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK
  359. ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK:
  360. RUN enable_UI.
  361. FDrucken = TRUE.
  362. cUSER = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR.
  363. VERARBEITEN:
  364. DO WHILE FDrucken:
  365. FIND FIRST Tabel USE-INDEX Tabel-k1
  366. WHERE Tabel.Firma = GVFirma
  367. AND Tabel.RecArt = 'AUFDRUCK'
  368. AND Tabel.CodeC = cUSER
  369. AND Tabel.Bez1 = '' NO-LOCK NO-ERROR.
  370. IF NOT AVAILABLE Tabel THEN DO:
  371. FDrucken = FALSE.
  372. NEXT.
  373. END.
  374. TRecid = RECID(Tabel).
  375. REPEAT TRANSACTION:
  376. FIND BTabel WHERE RECID(BTabel) = TRecid
  377. EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
  378. IF AVAILABLE BTabel THEN DO:
  379. BTabel.Bez1 = 'A'.
  380. RELEASE BTabel.
  381. LEAVE.
  382. END.
  383. IF LOCKED BTabel THEN NEXT.
  384. TRecid = 0.
  385. LEAVE.
  386. END.
  387. IF TRecid = 0 THEN NEXT.
  388. FIND Tabel WHERE RECID(Tabel) = TRecid NO-LOCK.
  389. RUN DRUCKEN.
  390. REPEAT TRANSACTION:
  391. FIND BTabel WHERE RECID(BTabel) = TRecid.
  392. DELETE BTabel.
  393. RELEASE BTabel.
  394. LEAVE.
  395. END.
  396. END.
  397. /*
  398. IF NOT THIS-PROCEDURE:PERSISTENT THEN WAIT-FOR CLOSE OF THIS-PROCEDURE.
  399. */
  400. APPLY 'CLOSE' TO THIS-PROCEDURE.
  401. END.
  402. /* _UIB-CODE-BLOCK-END */
  403. &ANALYZE-RESUME
  404. /* ********************** Internal Procedures *********************** */
  405. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ABLADEVORSCHRIFT C-Win
  406. PROCEDURE ABLADEVORSCHRIFT :
  407. /*------------------------------------------------------------------------------
  408. Purpose:
  409. Parameters: <none>
  410. Notes:
  411. ------------------------------------------------------------------------------*/
  412. XAblade = ''.
  413. FIND Tabel USE-INDEX Tabel-k1
  414. WHERE Tabel.Firma = GVFirma
  415. AND Tabel.RecArt = 'ABLAD'
  416. AND Tabel.CodeC = ''
  417. AND Tabel.CodeI = BSavko.Ablad_Vor
  418. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  419. IF NOT AVAILABLE tabel THEN DO:
  420. XAblade = BSavko.Ablad_Vor_Text.
  421. RETURN.
  422. END.
  423. IF LENGTH(Tabel.Bez1) > 4 THEN XAblade = Tabel.Bez1.
  424. IF BSavko.Ablad_Vor_Text <> '' THEN DO:
  425. IF XAblade <> '' THEN XAblade = XAblade + " / ".
  426. XAblade = BSavko.Ablad_Vor_Text.
  427. END.
  428. END PROCEDURE.
  429. /* _UIB-CODE-BLOCK-END */
  430. &ANALYZE-RESUME
  431. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE C-Win
  432. PROCEDURE ARTIKELZEILE :
  433. /*------------------------------------------------------------------------------
  434. Purpose:
  435. Parameters: <none>
  436. Notes:
  437. ------------------------------------------------------------------------------*/
  438. VZeile = RZeile.
  439. DO WHILE Savze.Artnr = 0:
  440. SUBSTRING(VZeile,036) = STRING(Savze.Bez1,"x(30)").
  441. { v8/putstream.i "1" }
  442. IF Savze.Bez2 <> '' THEN DO:
  443. VZeile = RZeile.
  444. SUBSTRING(VZeile,036) = STRING(Savze.Bez2,"x(30)").
  445. { v8/putstream.i "1" }
  446. END.
  447. RETURN.
  448. END.
  449. FIND Artst OF Savze NO-LOCK.
  450. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  451. AND GGebinde.Geb_Cd = Savze.GGeb_Cd NO-LOCK NO-ERROR.
  452. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  453. AND VGebinde.Geb_Cd = Savze.VGeb_Cd NO-LOCK NO-ERROR.
  454. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  455. AND KGebinde.Geb_Cd = Savze.KGeb_Cd NO-LOCK NO-ERROR.
  456. VZeile = RZeile.
  457. SUBSTRING(VZeile,001) = STRING(Savze.Artnr,"999999").
  458. IF Savze.GGeb_Me <> 0 THEN DO:
  459. SUBSTRING(VZeile,008) = STRING(Savze.GGeb_Me ,"->9").
  460. SUBSTRING(VZeile,012) = STRING(GGebinde.KBez ,"x(08)").
  461. { v8/putstream.i "1" }
  462. VZeile = RZeile.
  463. END.
  464. IF Savze.VGeb_Me <> 0 THEN DO:
  465. SUBSTRING(VZeile,008) = STRING(Savze.VGeb_Me ,"->9").
  466. SUBSTRING(VZeile,012) = STRING(VGebinde.KBez ,"x(08)").
  467. END.
  468. SUBSTRING(VZeile,021) = STRING(Savze.MGeli ,"->>>9").
  469. SUBSTRING(VZeile,027) = STRING(KGebinde.KBez ,"x(08)").
  470. SUBSTRING(VZeile,036) = STRING(Savze.Bez1 ,"x(30)").
  471. IF Savze.Alk_Gehalt <> 0 THEN DO:
  472. SUBSTRING(VZeile,066) = STRING(Savze.Alk_Gehalt,"z9.9%").
  473. END.
  474. IF Savze.Jahr > 9 THEN DO:
  475. SUBSTRING(VZeile,072) = SUBSTRING(STRING(Savze.Jahr,"9999"),03).
  476. END.
  477. IF FPreis THEN DO:
  478. SUBSTRING(VZeile,075) = STRING(Savze.Preis ,"zz9.99").
  479. END.
  480. IF FBetrag THEN DO:
  481. SUBSTRING(VZeile,082) = STRING(Savze.Bru_Betr ,"->>,>>9.99").
  482. SUBSTRING(VZeile,093) = STRING(Savze.WuCd ,"z9").
  483. END.
  484. { v8/putstream.i "1" }
  485. IF Savze.Bez2 <> '' THEN DO:
  486. VZeile = RZeile.
  487. SUBSTRING(VZeile,036) = STRING(Savze.Bez2,"x(30)").
  488. { v8/putstream.i "1" }
  489. END.
  490. IF Savze.Aktion THEN DO:
  491. VZeile = RZeile.
  492. SUBSTRING(VZeile,036) = STRING(Savze.Aktion_Text,"x(30)").
  493. { v8/putstream.i "1" }
  494. END.
  495. DO WHILE FBetrag:
  496. IF Savze.Rab_Betr = 0 THEN LEAVE.
  497. VZeile = RZeile.
  498. RabWert = ABSOLUTE(Savze.Rab_Wert).
  499. IF Savze.Rab_Art = 3 THEN RabText = VEpzText.
  500. ELSE DO:
  501. IF Savze.Rab_Betr < 0 THEN RabText = VZusText.
  502. IF Savze.Rab_Betr > 0 THEN RabText = VRabText.
  503. END.
  504. SUBSTRING(VZeile,036) = TRIM(RabText).
  505. IF Savze.Rab_Art = 1
  506. THEN SUBSTRING(VZeile,055) = STRING(RabWert,"->9.9 %").
  507. IF Savze.Rab_Art = 2 OR
  508. Savze.Rab_Art = 3
  509. THEN SUBSTRING(VZeile,055) = STRING(RabWert,"-9.99 Fr.").
  510. SUBSTRING(VZeile,082) = STRING(- Savze.Rab_Betr ,"->>,>>9.99").
  511. { v8/putstream.i "1" }
  512. LEAVE.
  513. END.
  514. DO WHILE FBetrag:
  515. IF Savze.Zus_Betr = 0 THEN LEAVE.
  516. VZeile = RZeile.
  517. RabWert = ABSOLUTE(Savze.Zus_Wert).
  518. IF Savze.Zus_Art = 3 THEN RabText = VEpzText.
  519. ELSE DO:
  520. IF Savze.Zus_Betr > 0 THEN RabText = VZusText.
  521. IF Savze.Zus_Betr < 0 THEN RabText = VRabText.
  522. END.
  523. SUBSTRING(VZeile,036) = TRIM(RabText).
  524. IF Savze.Zus_Art = 1
  525. THEN SUBSTRING(VZeile,055) = STRING(RabWert,"->9.9 %").
  526. IF Savze.Zus_Art = 2 OR
  527. Savze.Zus_Art = 3
  528. THEN SUBSTRING(VZeile,055) = STRING(RabWert,"-9.99 Fr.").
  529. SUBSTRING(VZeile,082) = STRING(+ Savze.Zus_Betr ,"->>,>>9.99").
  530. { v8/putstream.i "1" }
  531. LEAVE.
  532. END.
  533. /* ---- Summengruppen-Total -------------------------------------------- */
  534. IF Savze.Rab_Su_Grp <> 0 THEN DO:
  535. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Savze.Rab_Su_Grp NO-ERROR.
  536. IF AVAILABLE TRabSumm THEN DO:
  537. TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Savze.Auf_Rab.
  538. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Savze.Abh_Rab.
  539. END.
  540. END.
  541. /* ---- Warengruppen-Totale -------------------------------------------- */
  542. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp NO-ERROR.
  543. IF NOT AVAILABLE TUmsGrp THEN DO:
  544. FIND WarenGrp USE-INDEX WarenGrp-k1
  545. WHERE WarenGrp.Firma = GVFirma
  546. AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR.
  547. CREATE TUmsGrp.
  548. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp.
  549. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
  550. ELSE TUmsGrp.Bez = "??????????".
  551. END.
  552. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
  553. + Savze.Net_Betr
  554. - Savze.Auf_Rab
  555. - Savze.Abh_Rab.
  556. END PROCEDURE.
  557. /* _UIB-CODE-BLOCK-END */
  558. &ANALYZE-RESUME
  559. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CHAUFFEUR C-Win
  560. PROCEDURE CHAUFFEUR :
  561. /*------------------------------------------------------------------------------
  562. Purpose:
  563. Parameters: <none>
  564. Notes:
  565. ------------------------------------------------------------------------------*/
  566. XChauffeur = ''.
  567. FIND Tabel USE-INDEX Tabel-k1
  568. WHERE Tabel.Firma = GVFirma
  569. AND Tabel.RecArt = 'FAHRER'
  570. AND Tabel.CodeC = ''
  571. AND Tabel.CodeI = BSavko.Fahrer
  572. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  573. IF AVAILABLE Tabel THEN XChauffeur = Tabel.Bez1.
  574. END PROCEDURE.
  575. /* _UIB-CODE-BLOCK-END */
  576. &ANALYZE-RESUME
  577. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI C-Win _DEFAULT-DISABLE
  578. PROCEDURE disable_UI :
  579. /*------------------------------------------------------------------------------
  580. Purpose: DISABLE the User Interface
  581. Parameters: <none>
  582. Notes: Here we clean-up the user-interface by deleting
  583. dynamic widgets we have created and/or hide
  584. frames. This procedure is usually called when
  585. we are ready to "clean-up" after running.
  586. ------------------------------------------------------------------------------*/
  587. /* Delete the WINDOW we created */
  588. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win)
  589. THEN DELETE WIDGET C-Win.
  590. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  591. END PROCEDURE.
  592. /* _UIB-CODE-BLOCK-END */
  593. &ANALYZE-RESUME
  594. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE C-Win
  595. PROCEDURE DRUCKAUSGABE :
  596. /*------------------------------------------------------------------------------
  597. Purpose:
  598. Parameters: <none>
  599. Notes:
  600. ------------------------------------------------------------------------------*/
  601. DEF VAR AnzKopien AS INT NO-UNDO.
  602. DEF VAR sRecid AS RECID NO-UNDO.
  603. DEF VAR iSize AS INT NO-UNDO.
  604. AnzKopien = BLiDruck.ListCopy.
  605. AnzKopien = 1.
  606. AnzKopien = F_Kopie.
  607. IF AnzKopien = 0 THEN AnzKopien = 1.
  608. DO VCopy = 1 TO AnzKopien:
  609. sRecid = RECID(BSchrift).
  610. Schacht = BLiDruck.Schacht.
  611. iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, VTemp ,
  612. RECID(BSchrift),
  613. ? ,
  614. 240 , /* Blockgrösse */
  615. 'ibm850' ,
  616. 1 ). /* AnzahlKopien */
  617. IF iSize = 0 THEN DO:
  618. MESSAGE 'Druckvorgang gescheitert !!! '
  619. VIEW-AS ALERT-BOX ERROR.
  620. END.
  621. END.
  622. END PROCEDURE.
  623. /* _UIB-CODE-BLOCK-END */
  624. &ANALYZE-RESUME
  625. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE_BESR C-Win
  626. PROCEDURE DRUCKAUSGABE_BESR :
  627. /*------------------------------------------------------------------------------
  628. Purpose:
  629. Parameters: <none>
  630. Notes:
  631. ------------------------------------------------------------------------------*/
  632. DEF VAR sRecid AS RECID NO-UNDO.
  633. DEF VAR iSize AS INT NO-UNDO.
  634. sRecid = RECID(BSchrift).
  635. Schacht = BLiDruck.Schacht.
  636. iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, BESRName ,
  637. sRecid ,
  638. ? ,
  639. 240 , /* Blockgrösse */
  640. 'ibm850' ,
  641. 1 ). /* AnzahlKopien */
  642. IF iSize = 0 THEN DO:
  643. MESSAGE 'BESR Druckvorgang gescheitert !!! '
  644. VIEW-AS ALERT-BOX ERROR.
  645. END.
  646. /*
  647. OUTPUT STREAM Out_Stream
  648. TO VALUE(BSchrift.Schname)
  649. CONVERT TARGET "ibm850".
  650. INPUT STREAM In_Stream FROM VALUE(BESRName) NO-ECHO NO-MAP.
  651. REPEAT ON STOP UNDO, LEAVE WITH FRAME f_Print:
  652. IMPORT STREAM In_Stream UNFORMATTED VZeile.
  653. DISPLAY STREAM Out_Stream VZeile
  654. WITH FRAME f_Print NO-LABELS STREAM-IO
  655. NO-BOX USE-TEXT WIDTH 255.
  656. END.
  657. PUT STREAM Out_Stream CONTROL CHR(12).
  658. OUTPUT STREAM Out_Stream CLOSE.
  659. INPUT STREAM In_Stream CLOSE.
  660. */
  661. END PROCEDURE.
  662. /* _UIB-CODE-BLOCK-END */
  663. &ANALYZE-RESUME
  664. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN C-Win
  665. PROCEDURE DRUCKEN :
  666. /*------------------------------------------------------------------------------
  667. Purpose:
  668. Parameters: <none>
  669. Notes:
  670. ------------------------------------------------------------------------------*/
  671. DO WITH FRAME {&FRAME-NAME}:
  672. DEF VAR XFakArt AS INT NO-UNDO.
  673. DEF VAR XAufSta AS INT NO-UNDO.
  674. DEF VAR ARecid AS RECID NO-UNDO.
  675. DEF VAR BRecid AS RECID NO-UNDO.
  676. DEF VAR CRecid AS RECID NO-UNDO.
  677. ARecid = Tabel.Int_1.
  678. BRecid = Tabel.Int_2.
  679. CRecid = Tabel.Int_3.
  680. VBesr = Tabel.Dec_1.
  681. VDokArt = Tabel.Bez2.
  682. F_DokArt = Tabel.Bez2.
  683. SFaknr = 0.
  684. FIND BSteuer WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR.
  685. FIND BListen WHERE RECID(BListen) = ARecid NO-LOCK NO-ERROR.
  686. FIND BLiDruck WHERE RECID(BLiDruck) = BRecid NO-LOCK NO-ERROR.
  687. FIND BSavko WHERE RECID(BSavko) = CRecid NO-LOCK NO-ERROR.
  688. IF NOT AVAILABLE BSavko THEN RETURN.
  689. F_Aufnr = BSavko.Aufnr.
  690. F_Faknr = BSavko.Faknr.
  691. F_Datum = BSavko.Fak_Datum.
  692. IF F_Datum = ? THEN F_Datum = TODAY.
  693. FDatum = F_Datum.
  694. VSort = BListen.Sort.
  695. F_Drucker = BLiDruck.ListDru.
  696. F_Schrift = BLiDruck.ListBild.
  697. F_TZZ = BLiDruck.Listtzz.
  698. F_KZZ = BLiDruck.Listkzz.
  699. F_FZZ = BLiDruck.Listfzz.
  700. F_KOPIE = BLiDruck.ListCopy.
  701. FIND TFakart USE-INDEX Tabel-k1
  702. WHERE TFakart.Firma = GVFirma
  703. AND TFakart.RecArt = 'FAKART'
  704. AND TFakart.CodeC = ''
  705. AND TFakart.CodeI = BSavko.Fak_Art
  706. AND TFakart.Sprcd = 1 NO-LOCK NO-ERROR.
  707. F_Dokart = TFakart.Bez1.
  708. FIND TAufsta USE-INDEX Tabel-k1
  709. WHERE TAufsta.Firma = GVFirma
  710. AND TAufsta.RecArt = 'AUFSTATUS'
  711. AND TAufsta.CodeC = ''
  712. AND TAufsta.CodeI = BSavko.Auf_Sta
  713. AND TAufsta.Sprcd = 1 NO-LOCK NO-ERROR.
  714. FIND Adresse USE-INDEX Adresse-k1
  715. WHERE Adresse.Firma = AdFirma
  716. AND Adresse.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR.
  717. E_Adresse = ''.
  718. IF BSavko.Adresse[05] <> '' THEN DO:
  719. E_Adresse = CHR(10)
  720. + CHR(10)
  721. + BSavko.Adresse[01] + CHR(10)
  722. + BSavko.Adresse[02] + CHR(10)
  723. + BSavko.Adresse[03] + CHR(10)
  724. + BSavko.Adresse[04] + CHR(10)
  725. + BSavko.Adresse[05].
  726. END.
  727. ELSE DO:
  728. E_Adresse = Adresse.Anschrift[05] + CHR(10) +
  729. Adresse.Anschrift[06] + CHR(10) +
  730. Adresse.Anschrift[07] + CHR(10) +
  731. Adresse.Anschrift[08] + CHR(10) +
  732. Adresse.Anschrift[09] + CHR(10) +
  733. Adresse.Anschrift[10] + CHR(10) +
  734. Adresse.Anschrift[11] + CHR(10) +
  735. Adresse.Anschrift[12].
  736. END.
  737. DISPLAY {&List-1}.
  738. RUN LIBILD.
  739. FOR EACH SammFak:
  740. DELETE SammFak.
  741. END.
  742. IF BSavko.Samm_Nr <> 0 AND
  743. NOT VDokArt BEGINS 'Ruest' THEN DO:
  744. RUN SAMMELSUCHEN.
  745. END.
  746. ELSE DO:
  747. CREATE SammFak.
  748. ASSIGN SammFak.Knr = BSavko.Fak_Knr
  749. SammFak.Aufnr = BSavko.Aufnr
  750. SammFak.Samm_Nr = BSavko.Aufnr
  751. SammFak.RID = RECID(BSavko).
  752. END.
  753. DOpen = FALSE.
  754. BOpen = FALSE.
  755. RUN WORKFILE.
  756. IF DOpen = TRUE THEN OUTPUT STREAM Out_Stream TO VALUE(VTemp).
  757. FOR EACH SammFak BREAK BY SammFak.Knr
  758. BY SammFak.Samm_Nr
  759. BY SammFak.Aufnr :
  760. FIND BSavko WHERE RECID(BSavko) = SammFak.RID NO-LOCK NO-ERROR.
  761. F_Aufnr = BSavko.Aufnr.
  762. DISPLAY F_Aufnr WITH FRAME {&FRAME-NAME}.
  763. VWg_Grp = 0.
  764. VProd_Grp = 0.
  765. VArt_Grp = 0.
  766. VFak_Betr = 0.
  767. FErste = FALSE.
  768. FOR EACH TSavze:
  769. DELETE TSavze.
  770. END.
  771. FOR EACH TGebKto:
  772. DELETE TGebKto.
  773. END.
  774. FOR EACH TRabSumm:
  775. DELETE TRabSumm.
  776. END.
  777. FOR EACH TSpeRab:
  778. DELETE TSpeRab.
  779. END.
  780. FOR EACH TGebuehr:
  781. DELETE TGebuehr.
  782. END.
  783. IF FIRST-OF ( SammFak.Samm_Nr ) THEN DO:
  784. FOR EACH TUmsGrp :
  785. DELETE TUmsGrp .
  786. END.
  787. GTWpfl = 0.
  788. GTWust = 0.
  789. GTFak_Betr = 0.
  790. GTSk_Ber = 0.
  791. FLetzt = FALSE.
  792. FErste = TRUE.
  793. TiDruck = TRUE.
  794. VSeite = 0.
  795. END.
  796. FOR EACH BSavze USE-INDEX Savze-k1
  797. WHERE BSavze.Firma = BSavko.Firma
  798. AND BSavze.Aufnr = BSavko.Aufnr NO-LOCK:
  799. IF BSavze.Artnr <> 0 THEN DO:
  800. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  801. AND GGebinde.Geb_Cd = BSavze.GGeb_Cd NO-LOCK NO-ERROR.
  802. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  803. AND VGebinde.Geb_Cd = BSavze.VGeb_Cd NO-LOCK NO-ERROR.
  804. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  805. AND KGebinde.Geb_Cd = BSavze.KGeb_Cd NO-LOCK NO-ERROR.
  806. END.
  807. CREATE TSavze.
  808. ASSIGN TSavze.Aufnr = BSavze.Aufnr
  809. TSavze.Artnr = BSavze.Artnr
  810. TSavze.Inhalt = BSavze.Inhalt
  811. TSavze.Jahr = BSavze.Jahr
  812. TSavze.Pos = BSavze.Pos
  813. TSavze.Zeile = RECID(BSavze)
  814. TSavze.Aktion = BSavze.Aktion
  815. TSavze.Preis = BSavze.Preis.
  816. IF BSavze.Artnr <> 0 THEN DO:
  817. FIND Artst OF BSavze NO-LOCK.
  818. VWg_Grp = Artst.Wg_Grp.
  819. VProd_Grp = Artst.Prod_Grp.
  820. VArt_Grp = Artst.Art_Grp.
  821. AArtnr = Artst.Artnr.
  822. AInhalt = Artst.Inhalt.
  823. AJahr = Artst.Jahr.
  824. END.
  825. IF VSort = 1 THEN DO:
  826. ASSIGN TSavze.Sort1 = STRING(VWg_Grp ,"999")
  827. TSavze.Sort2 = STRING(VProd_Grp ,"999")
  828. TSavze.Sort3 = STRING(VArt_Grp ,"999").
  829. END.
  830. IF BSavze.Artnr = 0 THEN DO:
  831. ASSIGN TSavze.Artnr = AArtnr
  832. TSavze.Inhalt = AInhalt
  833. TSavze.Jahr = AJahr.
  834. END.
  835. IF BSavze.Artnr = 0 THEN NEXT.
  836. /* Spezial-Auftrags-Rabatt -------------------------------------------- */
  837. IF BSavze.Auf_Sp_Grp > 0 THEN DO:
  838. FIND FIRST TSpeRab WHERE TSpeRab.Rab_Grp = BSavze.Auf_Sp_Grp NO-ERROR.
  839. IF NOT AVAILABLE TSpeRab THEN DO:
  840. CREATE TSpeRab.
  841. ASSIGN TSpeRab.Rab_Grp = BSavze.Auf_Sp_Grp.
  842. END.
  843. TSpeRab.Auf_Betr = TSpeRab.Auf_Betr + BSavze.Auf_Sp_Rab.
  844. END.
  845. /* Summengruppen-Totale ------------------------------------------------ */
  846. DO WHILE BSavze.Rab_Su_Grp > 0:
  847. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = BSavze.Rab_Su_Grp NO-ERROR.
  848. IF NOT AVAILABLE TRabSumm THEN DO:
  849. FIND FIRST RabSumm USE-INDEX RabSumm-k1
  850. WHERE RabSumm.Firma = GVFirma
  851. AND RabSumm.Rab_Summ = BSavze.Rab_Su_Grp
  852. NO-LOCK NO-ERROR.
  853. IF NOT AVAILABLE RabSumm THEN LEAVE.
  854. CREATE TRabSumm.
  855. ASSIGN TRabSumm.Rab_Summ = BSavze.Rab_Su_Grp
  856. TRabSumm.Bez = RabSumm.Bez
  857. TRabSumm.Auf_Rab = 0
  858. TRabSumm.Abh_Rab = 0.
  859. END.
  860. LEAVE.
  861. END.
  862. END.
  863. IF LAST-OF ( SammFak.Samm_Nr ) THEN DO:
  864. FLetzt = TRUE.
  865. END.
  866. RUN VALUE(VDokArt).
  867. IF NOT FLetzt THEN NEXT.
  868. END. /* FOR EACH SammFak */
  869. IF DOpen THEN OUTPUT STREAM Out_Stream CLOSE.
  870. DOpen = FALSE.
  871. RUN DRUCKAUSGABE.
  872. IF VTemp <> '' THEN OS-DELETE VALUE(VTemp).
  873. IF BOpen THEN DO:
  874. OUTPUT STREAM BESR_Stream CLOSE.
  875. BOpen = FALSE.
  876. RUN DRUCKAUSGABE_BESR.
  877. END.
  878. IF BESRName <> '' THEN OS-DELETE VALUE(BESRName) NO-ERROR.
  879. REPEAT TRANSACTION:
  880. FIND BListen WHERE RECID(BListen) = ARecid.
  881. BListen.Listfl = ''.
  882. RELEASE BListen.
  883. LEAVE.
  884. END.
  885. END. /* DO WITH FRAME */
  886. RETURN NO-APPLY.
  887. END PROCEDURE.
  888. /* _UIB-CODE-BLOCK-END */
  889. &ANALYZE-RESUME
  890. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKPOSITION C-Win
  891. PROCEDURE DRUCKPOSITION :
  892. /*------------------------------------------------------------------------------
  893. Purpose:
  894. Parameters: <none>
  895. Notes:
  896. ------------------------------------------------------------------------------*/
  897. DEF VAR SX AS INT INIT 0.
  898. DEF VAR SY AS INT INIT 12.
  899. DEF INPUT PARAMETER Aufloesung AS INT.
  900. DEF INPUT PARAMETER X AS INT.
  901. DEF INPUT PARAMETER Y AS INT.
  902. X = X + SX.
  903. Y = Y + SY.
  904. PUT STREAM BESR_Stream CONTROL CHR(027) '9'.
  905. PUT STREAM BESR_Stream CONTROL CHR(027) '*t' STRING(Aufloesung) 'R'.
  906. PUT STREAM BESR_Stream CONTROL CHR(027) '*p' STRING(Y) 'y' STRING(X) 'X'.
  907. END PROCEDURE.
  908. /* _UIB-CODE-BLOCK-END */
  909. &ANALYZE-RESUME
  910. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI C-Win _DEFAULT-ENABLE
  911. PROCEDURE enable_UI :
  912. /*------------------------------------------------------------------------------
  913. Purpose: ENABLE the User Interface
  914. Parameters: <none>
  915. Notes: Here we display/view/enable the widgets in the
  916. user-interface. In addition, OPEN all queries
  917. associated with each FRAME and BROWSE.
  918. These statements here are based on the "Other
  919. Settings" section of the widget Property Sheets.
  920. ------------------------------------------------------------------------------*/
  921. DISPLAY F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_KOPIE F_Aufnr
  922. F_Faknr F_Datum F_Dokart F_Seite
  923. WITH FRAME DEFAULT-FRAME IN WINDOW C-Win.
  924. ENABLE RECT-1 F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_KOPIE F_Aufnr
  925. F_Faknr F_Datum F_Dokart F_Seite
  926. WITH FRAME DEFAULT-FRAME IN WINDOW C-Win.
  927. {&OPEN-BROWSERS-IN-QUERY-DEFAULT-FRAME}
  928. VIEW C-Win.
  929. END PROCEDURE.
  930. /* _UIB-CODE-BLOCK-END */
  931. &ANALYZE-RESUME
  932. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA C-Win
  933. PROCEDURE FAKTURA :
  934. /*------------------------------------------------------------------------------
  935. Purpose:
  936. Parameters: <none>
  937. Notes:
  938. ------------------------------------------------------------------------------*/
  939. VSeite = 0.
  940. VFak_Betr = 0.
  941. LiKopf = TRUE.
  942. FPreis = TRUE.
  943. FBetrag = TRUE.
  944. FRabatt = TRUE.
  945. FUeber = TRUE.
  946. FSamm = FALSE.
  947. VKopfArt = 'FAKTURA_KOPF'.
  948. RUN VALUE(VKopfArt).
  949. FOR EACH TSavze NO-LOCK
  950. BY TSavze.Aufnr
  951. /*
  952. BY TSavze.Sort1
  953. BY TSavze.Sort2
  954. BY TSavze.Sort3
  955. BY TSavze.Artnr
  956. BY TSavze.Inhalt
  957. BY TSavze.Jahr
  958. */
  959. BY TSavze.Pos :
  960. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO:
  961. RUN VALUE(VKopfArt).
  962. END.
  963. FIND Savze WHERE RECID(Savze) = TSavze.Zeile NO-LOCK.
  964. RUN ARTIKELZEILE.
  965. VFak_Betr = VFak_Betr + Savze.Net_Betr.
  966. END.
  967. VZeile = FILL('-', StBreite).
  968. { v8/putstream.i "1" }
  969. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[10],41,20)).
  970. SUBSTRING(VZeile,082) = STRING(VFak_Betr,"->>,>>9.99").
  971. { v8/putstreamf.i "1" }
  972. LiKopf = FALSE.
  973. RUN SUMMENRABATTE.
  974. { v8/putstream.i "1" }
  975. RUN GEBINDE_SALDO.
  976. RUN GEBINDE_ABRECHNUNG.
  977. RUN MEHRWERTSTEUER.
  978. SUBSTRING(VZeile,082) = '=========='.
  979. { v8/putstream.i "2" }
  980. FUeber = FALSE.
  981. RUN ZAHLUNGSKONDITION.
  982. RUN SCHLUSSTEXT.
  983. RUN UMSATZVERTEILUNG.
  984. RUN KOPF_MUTATION.
  985. Rundbetr = VFak_Betr.
  986. VesrKnr = BSavko.Fak_Knr.
  987. VesrFnr = BSavko.Faknr.
  988. RUN VESR_DRUCK.
  989. END PROCEDURE.
  990. /* _UIB-CODE-BLOCK-END */
  991. &ANALYZE-RESUME
  992. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA_KOPF C-Win
  993. PROCEDURE FAKTURA_KOPF :
  994. /*------------------------------------------------------------------------------
  995. Purpose:
  996. Parameters: <none>
  997. Notes:
  998. ------------------------------------------------------------------------------*/
  999. RUN NEUE_SEITE.
  1000. PUT STREAM Out_Stream CONTROL CHR(27) "&l0O" /* Hochformat */
  1001. CHR(27) "&l5H" /* Schacht 3 */
  1002. CHR(27) "(10U" /* CODEPAGE 850 */
  1003. CHR(27) "(s4102t0b0p0s12H". /* LetterGotic 12cpi */
  1004. IF VSeite = 1 THEN DO:
  1005. IF SFaknr = 0 THEN DO:
  1006. SFaknr = BSavko.Faknr.
  1007. END.
  1008. FIND Adresse USE-INDEX Adresse-k1
  1009. WHERE Adresse.Firma = AdFirma
  1010. AND Adresse.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR.
  1011. FIND LDebst USE-INDEX Debst-k1
  1012. WHERE LDebst.Firma = GVFirma
  1013. AND LDebst.Knr = BSavko.Knr NO-LOCK NO-ERROR.
  1014. FIND FDebst USE-INDEX Debst-k1
  1015. WHERE FDebst.Firma = GVFirma
  1016. AND FDebst.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR.
  1017. FIND Wust USE-INDEX Wust-k1
  1018. WHERE Wust.CodeK = LDebst.MWST
  1019. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  1020. LVSprcd = Adresse.Sprcd.
  1021. DebInkl = FALSE.
  1022. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  1023. XTelnr = ''.
  1024. IF DebInkl THEN DO:
  1025. IF Adresse.Tel-2 <> '' THEN XTelnr = Adresse.Tel-2.
  1026. ELSE XTelnr = Adresse.Tel-1.
  1027. END.
  1028. ELSE DO:
  1029. IF Adresse.Tel-1 <> '' THEN XTelnr = Adresse.Tel-1.
  1030. ELSE XTelnr = Adresse.Tel-2.
  1031. END.
  1032. END.
  1033. F_Seite = VSeite.
  1034. F_Faknr = SFaknr.
  1035. DISPLAY F_Seite
  1036. F_Faknr WITH FRAME {&FRAME-NAME}.
  1037. VZeile = ''.
  1038. { v8/putstream.i BLiDruck.Listkzz }.
  1039. IF BSavko.Adresse[05] <> '' THEN DO:
  1040. DO ix = 1 TO 5:
  1041. SUBSTRING(VZeile,053) = BSavko.Adresse[ix].
  1042. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END.
  1043. ELSE DO: { v8/putstream.i "1" }. END.
  1044. END.
  1045. END.
  1046. ELSE DO:
  1047. DO ix = 7 TO 11:
  1048. SUBSTRING(VZeile,053) = Adresse.Anschrift[ix].
  1049. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END.
  1050. ELSE DO: { v8/putstream.i "1" }. END.
  1051. END.
  1052. END.
  1053. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20))
  1054. + STRING(SFaknr,"z999999")
  1055. + " /"
  1056. + STRING(VSeite,"zz9").
  1057. { v8/putstreamf.i "1" }
  1058. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20))
  1059. + " "
  1060. + BSteuer.MWST_Nr.
  1061. { v8/putstream.i "1" }
  1062. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20))
  1063. + " "
  1064. + STRING(FDatum,"99.99.9999").
  1065. { v8/putstream.i "2" }
  1066. DO WHILE VSeite = 1.
  1067. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],21,20))
  1068. + " "
  1069. + BSavko.I_Best.
  1070. { v8/putstream.i "1" }
  1071. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20))
  1072. + " "
  1073. + STRING(BSavko.Aufnr,"9999999").
  1074. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[07],41,20))
  1075. + " "
  1076. + STRING(BSavko.Auf_Datum,"99.99.9999").
  1077. SUBSTRING(VZeile,071) = TRIM(SUBSTRING(FormText[08],01,20))
  1078. + " "
  1079. + STRING(BSavko.Fak_Knr,"999999").
  1080. { v8/putstream.i "2" }
  1081. XAuf_Text = BSavko.Auf_Text.
  1082. i1 = INDEX(XAuf_Text, CHR(10)).
  1083. i2 = 0.
  1084. DO WHILE i1 > 0:
  1085. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  1086. { v8/putstreamf.i "1" }
  1087. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  1088. i1 = INDEX(XAuf_Text, CHR(10)).
  1089. i2 = i2 + 1.
  1090. END.
  1091. IF XAuf_Text <> '' THEN DO:
  1092. SUBSTRING(VZeile,001) = XAuf_Text.
  1093. { v8/putstreamf.i "1" }
  1094. i2 = i2 + 1.
  1095. END.
  1096. IF i2 > 0 THEN DO:
  1097. { v8/putstream.i "1" }
  1098. END.
  1099. XAuf_Text = BSavko.Abh_Text.
  1100. i1 = INDEX(XAuf_Text, CHR(10)).
  1101. i2 = 0.
  1102. DO WHILE i1 > 0:
  1103. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  1104. { v8/putstreamf.i "1" }
  1105. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  1106. i1 = INDEX(XAuf_Text, CHR(10)).
  1107. i2 = i2 + 1.
  1108. END.
  1109. IF XAuf_Text <> '' THEN DO:
  1110. SUBSTRING(VZeile,001) = XAuf_Text.
  1111. { v8/putstreamf.i "1" }
  1112. i2 = i2 + 1.
  1113. END.
  1114. IF i2 > 0 THEN DO:
  1115. { v8/putstream.i "1" }
  1116. END.
  1117. LEAVE.
  1118. END.
  1119. IF LiKopf THEN DO:
  1120. SUBSTRING(VZeile,001) = FormText[03].
  1121. SUBSTRING(VZeile,071) = FormText[04].
  1122. { v8/putstream.i "1" }
  1123. SUBSTRING(VZeile,001) = FormText[05].
  1124. SUBSTRING(VZeile,071) = FormText[06].
  1125. StBreite = LENGTH(VZeile).
  1126. { v8/putstream.i "1" }
  1127. END.
  1128. ELSE DO:
  1129. { v8/putstream.i "1" }
  1130. END.
  1131. IF VSeite > 1 AND
  1132. FUeber = TRUE THEN DO:
  1133. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[09],41,20)).
  1134. SUBSTRING(VZeile,082) = STRING(VFak_Betr,"->>,>>9.99").
  1135. { v8/putstreamf.i "2" }
  1136. END.
  1137. END PROCEDURE.
  1138. /* _UIB-CODE-BLOCK-END */
  1139. &ANALYZE-RESUME
  1140. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_ABRECHNUNG C-Win
  1141. PROCEDURE GEBINDE_ABRECHNUNG :
  1142. /*------------------------------------------------------------------------------
  1143. Purpose:
  1144. Parameters: <none>
  1145. Notes:
  1146. ------------------------------------------------------------------------------*/
  1147. Zuszz = 0.
  1148. FOR EACH SavGKon USE-INDEX SavGKon-k1
  1149. WHERE SavGKon.Firma = BSavko.Firma
  1150. AND SavGKon.Aufnr = BSavko.Aufnr
  1151. AND SavGKon.Depot <> 0 NO-LOCK:
  1152. IF SavGKon.Eingang = 0 AND
  1153. SavGKon.Ausgang = 0 THEN NEXT.
  1154. Zuszz = Zuszz + 1.
  1155. END.
  1156. Ja = FALSE.
  1157. IF Zuszz > 0 THEN DO:
  1158. Zuszz = Zuszz + 2.
  1159. Ja = TRUE.
  1160. END.
  1161. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO:
  1162. RUN VALUE(VKopfArt).
  1163. END.
  1164. i5 = 0.
  1165. VZTot = 0.
  1166. IF Ja THEN DO:
  1167. SUBSTRING(VZeile,001) = FormText[12].
  1168. SUBSTRING(VZeile,071) = FormText[13].
  1169. { v8/putstreamf.i "1" }
  1170. END.
  1171. FOR EACH SavGKon USE-INDEX SavGKon-k1
  1172. WHERE SavGKon.Firma = BSavko.Firma
  1173. AND SavGKon.Aufnr = BSavko.Aufnr
  1174. AND SavGKon.Depot <> 0 NO-LOCK:
  1175. IF SavGKon.Eingang = 0 AND
  1176. SavGKon.Ausgang = 0 THEN NEXT.
  1177. FIND GebKonto USE-INDEX GebKonto-k1
  1178. WHERE GebKonto.Firma = GVFirma
  1179. AND GebKonto.Geb_Cd = SavGKon.Geb_Cd NO-LOCK.
  1180. i1 = SavGKon.Ausgang - SavGKon.Eingang.
  1181. Rundbetr = SavGKon.Betrag.
  1182. VWC = SavGKon.MWSt_Cd.
  1183. VZTot = VZTot + Rundbetr.
  1184. SUBSTRING(VZeile,004) = GebKonto.Bez.
  1185. SUBSTRING(VZeile,035) = STRING(SavGKon.Ausgang,"->>,>>9").
  1186. SUBSTRING(VZeile,045) = STRING(SavGKon.Eingang,"->>,>>9").
  1187. SUBSTRING(VZeile,055) = STRING(i1 ,"->>,>>9").
  1188. SUBSTRING(VZeile,065) = STRING(Rundbetr ,"->>,>>9.99").
  1189. SUBSTRING(VZeile,093) = STRING(VWC ,"z9").
  1190. { v8/putstream.i "1" }
  1191. i5 = i5 + 1.
  1192. END.
  1193. IF i5 > 0 THEN DO:
  1194. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[11],21,20)).
  1195. SUBSTRING(VZeile,082) = STRING(VZTot,"->>,>>9.99").
  1196. { v8/putstream.i "1" }
  1197. VFak_Betr = VFak_Betr + VZTot.
  1198. END.
  1199. IF NOT FSamm THEN DO:
  1200. SUBSTRING(VZeile,027) = FILL('-', StBreite - 026).
  1201. { v8/putstream.i "1" }
  1202. SUBSTRING(VZeile,027) = TRIM(SUBSTRING(FormText[15],21,20)).
  1203. SUBSTRING(VZeile,082) = STRING(VFak_Betr,"->>,>>9.99").
  1204. { v8/putstreamf.i "1" }
  1205. SUBSTRING(VZeile,027) = FILL('-', StBreite - 026).
  1206. { v8/putstream.i "1" }
  1207. END.
  1208. END PROCEDURE.
  1209. /* _UIB-CODE-BLOCK-END */
  1210. &ANALYZE-RESUME
  1211. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_LIEFERUNG C-Win
  1212. PROCEDURE GEBINDE_LIEFERUNG :
  1213. /*------------------------------------------------------------------------------
  1214. Purpose:
  1215. Parameters: <none>
  1216. Notes:
  1217. ------------------------------------------------------------------------------*/
  1218. Zuszz = 0.
  1219. FOR EACH TGebKto NO-LOCK:
  1220. Zuszz = Zuszz + 1.
  1221. END.
  1222. IF Zuszz > 0 THEN Zuszz = Zuszz + 2.
  1223. Zuszz = (Zuszz + 1) / 2.
  1224. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO:
  1225. RUN VALUE(VKopfArt).
  1226. END.
  1227. i5 = 0.
  1228. VZTot = 0.
  1229. SUBSTRING(VZeile,001) = BDrucker.DruUnterB
  1230. + TRIM(SUBSTRING(FormText[10],01,20))
  1231. + BDrucker.DruUnterE.
  1232. { v8/putstream.i "2" }
  1233. i1 = 1.
  1234. i2 = 0.
  1235. FOR EACH TGebKto BY TGebKto.Sort_Cd
  1236. BY TGebKto.Geb_Cd :
  1237. i2 = i2 + 1.
  1238. IF i2 MOD 2 = 0 THEN i1 = 41.
  1239. ELSE i1 = 01.
  1240. SUBSTRING(VZeile,i1) = STRING(TGebKto.A_Anz,"->>>>9")
  1241. + " "
  1242. + STRING(TGebKto.Bez,"x(30)").
  1243. IF i1 > 30 THEN DO:
  1244. { v8/putstream.i "1" }
  1245. i5 = i5 + 1.
  1246. END.
  1247. END.
  1248. IF VZeile <> '' THEN DO:
  1249. { v8/putstream.i "1" }
  1250. i5 = i5 + 1.
  1251. END.
  1252. IF i5 > 0 THEN DO:
  1253. { v8/putstream.i "1" }
  1254. END.
  1255. END PROCEDURE.
  1256. /* _UIB-CODE-BLOCK-END */
  1257. &ANALYZE-RESUME
  1258. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_RUECKNAHME_TABELLE C-Win
  1259. PROCEDURE GEBINDE_RUECKNAHME_TABELLE :
  1260. /*------------------------------------------------------------------------------
  1261. Purpose:
  1262. Parameters: <none>
  1263. Notes:
  1264. ------------------------------------------------------------------------------*/
  1265. /* Gebinderücknahmetabelle ------------------------------------------- */
  1266. FIND TabTexte USE-INDEX TabTexte-k1
  1267. WHERE TabTexte.Firma = GVFirma
  1268. AND TabTexte.TextArt = 'GEBINDERETOUR'
  1269. AND TabTexte.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  1270. IF NOT AVAILABLE TabTexte THEN DO:
  1271. FIND TabTexte USE-INDEX TabTexte-k1
  1272. WHERE TabTexte.Firma = GVFirma
  1273. AND TabTexte.TextArt = 'GEBINDERETOUR'
  1274. AND TabTexte.Sprcd = 1 NO-LOCK NO-ERROR.
  1275. END.
  1276. IF AVAILABLE TabTexte THEN VTabTexte = TabTexte.Inhalt.
  1277. Zuszz = NUM-ENTRIES(VTabTexte, CHR(10)).
  1278. IF Zuszz > 0 THEN Zuszz = Zuszz + 2.
  1279. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO:
  1280. RUN VALUE(VKopfArt).
  1281. END.
  1282. DO WHILE TRUE:
  1283. ix = INDEX(VTabTexte, CHR(10)).
  1284. IF ix = 0 THEN DO:
  1285. VZeile = VTabTexte.
  1286. LEAVE.
  1287. END.
  1288. VZeile = SUBSTRING(VTabTexte,01,ix - 1).
  1289. VTabTexte = SUBSTRING(VTabTexte,ix + 1).
  1290. { v8/putstream.i "1" }.
  1291. END.
  1292. IF VZeile <> '' THEN DO:
  1293. { v8/putstream.i "1" }.
  1294. END.
  1295. END PROCEDURE.
  1296. /* _UIB-CODE-BLOCK-END */
  1297. &ANALYZE-RESUME
  1298. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_SALDO C-Win
  1299. PROCEDURE GEBINDE_SALDO :
  1300. /*------------------------------------------------------------------------------
  1301. Purpose:
  1302. Parameters: <none>
  1303. Notes:
  1304. ------------------------------------------------------------------------------*/
  1305. FOR EACH SavGKon USE-INDEX SavGKon-k1
  1306. WHERE SavGKon.Firma = BSavko.Firma
  1307. AND SavGKon.Aufnr = BSavko.Aufnr NO-LOCK:
  1308. IF SavGKon.Eingang = 0 AND
  1309. SavGKon.Ausgang = 0 THEN NEXT.
  1310. FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = SavGKon.Geb_Cd NO-ERROR.
  1311. IF NOT AVAILABLE TGebKto THEN DO:
  1312. FIND GebKonto USE-INDEX GebKonto-k1
  1313. WHERE GebKonto.Firma = SavGKon.Firma
  1314. AND GebKonto.Geb_Cd = SavGKon.Geb_Cd NO-LOCK.
  1315. CREATE TGebKto.
  1316. ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd
  1317. TGebKto.Geb_Cd = GebKonto.Geb_Cd
  1318. TGebKto.Bez = GebKonto.Bez
  1319. TGebKto.Preis = SavGKon.Depot
  1320. TGebKto.MWST_Cd = SavGKon.MWSt_Cd.
  1321. END.
  1322. TGebKto.A_Anz = TGebKto.A_Anz + SavGKon.Ausgang.
  1323. TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis.
  1324. TGebKto.E_Anz = TGebKto.E_Anz + SavGKon.Eingang.
  1325. TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis.
  1326. END.
  1327. END PROCEDURE.
  1328. /* _UIB-CODE-BLOCK-END */
  1329. &ANALYZE-RESUME
  1330. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF_MUTATION C-Win
  1331. PROCEDURE KOPF_MUTATION :
  1332. /*------------------------------------------------------------------------------
  1333. Purpose:
  1334. Parameters: <none>
  1335. Notes:
  1336. ------------------------------------------------------------------------------*/
  1337. END PROCEDURE.
  1338. /* _UIB-CODE-BLOCK-END */
  1339. &ANALYZE-RESUME
  1340. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIBILD C-Win
  1341. PROCEDURE LIBILD :
  1342. /*------------------------------------------------------------------------------
  1343. Purpose:
  1344. Parameters: <none>
  1345. Notes:
  1346. ------------------------------------------------------------------------------*/
  1347. DEF VAR VProgName AS CHAR NO-UNDO.
  1348. VProgName = BSteuer.Fwc10 + ":" + VDokArt.
  1349. FormText = "".
  1350. FOR EACH LiBild USE-INDEX LiBild-k1
  1351. WHERE LiBild.Sprcd = GVSprcd
  1352. AND LiBild.Prog = VProgname
  1353. AND LiBild.Tenr > 0 NO-LOCK
  1354. ix = 1 TO 40:
  1355. FormText[ix] = LiBild.Litext.
  1356. END.
  1357. Fuell = SUBSTRING(FormText[01],01,01).
  1358. Breite = INTEGER(SUBSTRING(FormText[01],02,03)).
  1359. VRand = INTEGER(SUBSTRING(FormText[01],68,03)).
  1360. Dattxt = SUBSTRING(FormText[01],05,10).
  1361. Seitxt = SUBSTRING(FormText[01],15,10).
  1362. Zeitxt = SUBSTRING(FormText[01],25,10).
  1363. Firtxt = SUBSTRING(FormText[01],35,10).
  1364. Jahtxt = SUBSTRING(FormText[01],45,10).
  1365. Ueber1 = "".
  1366. Ueber2 = "".
  1367. Ueber3 = "".
  1368. ap = 1.
  1369. XDruDat = ?.
  1370. VRabText = TRIM(SUBSTRING(FormText[21],01,20)).
  1371. VZusText = TRIM(SUBSTRING(FormText[21],21,20)).
  1372. VEpzText = TRIM(SUBSTRING(FormText[21],41,20)).
  1373. SUBSTRING(VZeile,001) = FormText[05].
  1374. SUBSTRING(VZeile,071) = FormText[06].
  1375. StBreite = LENGTH(VZeile).
  1376. RZeile = FILL('|', Breite).
  1377. SUBSTRING(RZeile,001) = STRING(' ',"x(06)").
  1378. SUBSTRING(RZeile,008) = STRING(' ',"x(03)").
  1379. SUBSTRING(RZeile,012) = STRING(' ',"x(08)").
  1380. SUBSTRING(RZeile,021) = STRING(' ',"x(05)").
  1381. SUBSTRING(RZeile,027) = STRING(' ',"x(08)").
  1382. SUBSTRING(RZeile,036) = STRING(' ',"x(35)").
  1383. SUBSTRING(RZeile,072) = STRING(' ',"x(02)").
  1384. SUBSTRING(RZeile,075) = STRING(' ',"x(06)").
  1385. SUBSTRING(RZeile,082) = STRING(' ',"x(10)").
  1386. SUBSTRING(RZeile,093) = STRING(' ',"x(02)").
  1387. RZeile = SUBSTRING(RZeile,01,StBreite).
  1388. VZeile = ''.
  1389. END PROCEDURE.
  1390. /* _UIB-CODE-BLOCK-END */
  1391. &ANALYZE-RESUME
  1392. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK C-Win
  1393. PROCEDURE LIEFERFAK :
  1394. /*------------------------------------------------------------------------------
  1395. Purpose:
  1396. Parameters: <none>
  1397. Notes:
  1398. ------------------------------------------------------------------------------*/
  1399. VSeite = 0.
  1400. VFak_Betr = 0.
  1401. LiKopf = TRUE.
  1402. FPreis = TRUE.
  1403. FBetrag = TRUE.
  1404. FRabatt = TRUE.
  1405. FUeber = TRUE.
  1406. FSamm = FALSE.
  1407. VKopfArt = 'LIEFERFAK_KOPF'.
  1408. RUN VALUE(VKopfArt).
  1409. FOR EACH TSavze NO-LOCK
  1410. BY TSavze.Aufnr
  1411. /*
  1412. BY TSavze.Sort1
  1413. BY TSavze.Sort2
  1414. BY TSavze.Sort3
  1415. BY TSavze.Artnr
  1416. BY TSavze.Inhalt
  1417. BY TSavze.Jahr
  1418. */
  1419. BY TSavze.Pos :
  1420. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO:
  1421. RUN VALUE(VKopfArt).
  1422. END.
  1423. FIND Savze WHERE RECID(Savze) = TSavze.Zeile NO-LOCK.
  1424. RUN ARTIKELZEILE.
  1425. VFak_Betr = VFak_Betr + Savze.Net_Betr.
  1426. END.
  1427. VZeile = FILL('-', StBreite).
  1428. { v8/putstream.i "1" }
  1429. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[10],41,20)).
  1430. SUBSTRING(VZeile,082) = STRING(VFak_Betr,"->>,>>9.99").
  1431. { v8/putstreamf.i "1" }
  1432. LiKopf = FALSE.
  1433. RUN SUMMENRABATTE.
  1434. { v8/putstream.i "1" }
  1435. RUN GEBINDE_SALDO.
  1436. RUN GEBINDE_ABRECHNUNG.
  1437. RUN MEHRWERTSTEUER.
  1438. { v8/putstream.i "1" }
  1439. SUBSTRING(VZeile,050) = TRIM(SUBSTRING(FormText[18],21,20)).
  1440. SUBSTRING(VZeile,082) = "__________".
  1441. { v8/putstreamf.i "2" }
  1442. SUBSTRING(VZeile,050) = TRIM(SUBSTRING(FormText[18],41,20)).
  1443. SUBSTRING(VZeile,082) = "__________".
  1444. { v8/putstreamf.i "2" }
  1445. RUN GEBINDE_RUECKNAHME_TABELLE.
  1446. RUN KOPF_MUTATION.
  1447. Rundbetr = 0.
  1448. VesrKnr = BSavko.Fak_Knr.
  1449. VesrFnr = BSavko.Faknr.
  1450. RUN VESR_DRUCK.
  1451. END PROCEDURE.
  1452. /* _UIB-CODE-BLOCK-END */
  1453. &ANALYZE-RESUME
  1454. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK_KOPF C-Win
  1455. PROCEDURE LIEFERFAK_KOPF :
  1456. /*------------------------------------------------------------------------------
  1457. Purpose:
  1458. Parameters: <none>
  1459. Notes:
  1460. ------------------------------------------------------------------------------*/
  1461. RUN NEUE_SEITE.
  1462. PUT STREAM Out_Stream CONTROL CHR(27) "&l0O" /* Hochformat */
  1463. CHR(27) "&l5H" /* Schacht 3 */
  1464. CHR(27) "(10U" /* CODEPAGE 850 */
  1465. CHR(27) "(s4102t0b0p0s12H". /* LetterGotic 12cpi */
  1466. IF VSeite = 1 THEN DO:
  1467. IF SFaknr = 0 THEN DO:
  1468. SFaknr = BSavko.Faknr.
  1469. END.
  1470. FIND Adresse USE-INDEX Adresse-k1
  1471. WHERE Adresse.Firma = AdFirma
  1472. AND Adresse.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR.
  1473. FIND LDebst USE-INDEX Debst-k1
  1474. WHERE LDebst.Firma = GVFirma
  1475. AND LDebst.Knr = BSavko.Knr NO-LOCK NO-ERROR.
  1476. FIND FDebst USE-INDEX Debst-k1
  1477. WHERE FDebst.Firma = GVFirma
  1478. AND FDebst.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR.
  1479. FIND Wust USE-INDEX Wust-k1
  1480. WHERE Wust.CodeK = LDebst.MWST
  1481. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  1482. LVSprcd = Adresse.Sprcd.
  1483. DebInkl = FALSE.
  1484. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  1485. XTelnr = ''.
  1486. IF DebInkl THEN DO:
  1487. IF Adresse.Tel-2 <> '' THEN XTelnr = Adresse.Tel-2.
  1488. ELSE XTelnr = Adresse.Tel-1.
  1489. END.
  1490. ELSE DO:
  1491. IF Adresse.Tel-1 <> '' THEN XTelnr = Adresse.Tel-1.
  1492. ELSE XTelnr = Adresse.Tel-2.
  1493. END.
  1494. END.
  1495. F_Seite = VSeite.
  1496. F_Faknr = SFaknr.
  1497. DISPLAY F_Seite
  1498. F_Faknr WITH FRAME {&FRAME-NAME}.
  1499. VZeile = ''.
  1500. { v8/putstream.i BLiDruck.Listkzz }.
  1501. IF BSavko.Adresse[05] <> '' THEN DO:
  1502. DO ix = 1 TO 5:
  1503. SUBSTRING(VZeile,053) = BSavko.Adresse[ix].
  1504. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END.
  1505. ELSE DO: { v8/putstream.i "1" }. END.
  1506. END.
  1507. END.
  1508. ELSE DO:
  1509. DO ix = 7 TO 11:
  1510. SUBSTRING(VZeile,053) = Adresse.Anschrift[ix].
  1511. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END.
  1512. ELSE DO: { v8/putstream.i "1" }. END.
  1513. END.
  1514. END.
  1515. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20))
  1516. + STRING(SFaknr,"z999999")
  1517. + " /"
  1518. + STRING(VSeite,"zz9").
  1519. { v8/putstreamf.i "1" }
  1520. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20))
  1521. + " "
  1522. + BSteuer.MWST_Nr.
  1523. { v8/putstream.i "1" }
  1524. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20))
  1525. + " "
  1526. + STRING(FDatum,"99.99.9999").
  1527. { v8/putstream.i "2" }
  1528. DO WHILE VSeite = 1.
  1529. RUN ABLADEVORSCHRIFT.
  1530. RUN VERSANDART.
  1531. RUN CHAUFFEUR.
  1532. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],21,20))
  1533. + " "
  1534. + BSavko.I_Best.
  1535. SUBSTRING(VZeile,061) = TRIM(SUBSTRING(FormText[08],21,20))
  1536. + STRING(BSavko.Gewicht,"zzz,zz9.999-").
  1537. { v8/putstream.i "1" }
  1538. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],41,20))
  1539. + " "
  1540. + STRING(BSavko.Auf_Datum,"99.99.9999").
  1541. SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[08],01,20))
  1542. + STRING(BSavko.Knr,"zz999999").
  1543. SUBSTRING(VZeile,061) = TRIM(SUBSTRING(FormText[08],41,20))
  1544. + " "
  1545. + XTelnr.
  1546. { v8/putstream.i "1" }
  1547. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[09],21,20))
  1548. + " "
  1549. + STRING(BSavko.Lief_Datum,"99.99.9999").
  1550. SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[09],01,20))
  1551. + " "
  1552. + XVersand.
  1553. { v8/putstream.i "1" }
  1554. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20))
  1555. + " "
  1556. + STRING(BSavko.Aufnr,"9999999").
  1557. SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[22],01,20))
  1558. + " "
  1559. + XChauffeur.
  1560. { v8/putstream.i "2" }
  1561. IF XAblade <> '' THEN DO:
  1562. SUBSTRING(VZeile,001) = XAblade.
  1563. { v8/putstreamf.i "2" }
  1564. END.
  1565. XAuf_Text = BSavko.Auf_Text.
  1566. i1 = INDEX(XAuf_Text, CHR(10)).
  1567. i2 = 0.
  1568. DO WHILE i1 > 0:
  1569. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  1570. { v8/putstreamf.i "1" }
  1571. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  1572. i1 = INDEX(XAuf_Text, CHR(10)).
  1573. i2 = i2 + 1.
  1574. END.
  1575. IF XAuf_Text <> '' THEN DO:
  1576. SUBSTRING(VZeile,001) = XAuf_Text.
  1577. { v8/putstreamf.i "1" }
  1578. i2 = i2 + 1.
  1579. END.
  1580. IF i2 > 0 THEN DO:
  1581. { v8/putstream.i "1" }
  1582. END.
  1583. XAuf_Text = BSavko.Abh_Text.
  1584. i1 = INDEX(XAuf_Text, CHR(10)).
  1585. i2 = 0.
  1586. DO WHILE i1 > 0:
  1587. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  1588. { v8/putstreamf.i "1" }
  1589. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  1590. i1 = INDEX(XAuf_Text, CHR(10)).
  1591. i2 = i2 + 1.
  1592. END.
  1593. IF XAuf_Text <> '' THEN DO:
  1594. SUBSTRING(VZeile,001) = XAuf_Text.
  1595. { v8/putstreamf.i "1" }
  1596. i2 = i2 + 1.
  1597. END.
  1598. IF i2 > 0 THEN DO:
  1599. { v8/putstream.i "1" }
  1600. END.
  1601. LEAVE.
  1602. END.
  1603. IF LiKopf THEN DO:
  1604. SUBSTRING(VZeile,001) = FormText[03].
  1605. SUBSTRING(VZeile,071) = FormText[04].
  1606. { v8/putstream.i "1" }
  1607. SUBSTRING(VZeile,001) = FormText[05].
  1608. SUBSTRING(VZeile,071) = FormText[06].
  1609. { v8/putstream.i "1" }
  1610. END.
  1611. ELSE DO:
  1612. { v8/putstream.i "1" }
  1613. END.
  1614. IF VSeite > 1 AND
  1615. FUeber = TRUE THEN DO:
  1616. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[09],41,20)).
  1617. SUBSTRING(VZeile,082) = STRING(VFak_Betr,"->>,>>9.99").
  1618. { v8/putstreamf.i "2" }
  1619. END.
  1620. END PROCEDURE.
  1621. /* _UIB-CODE-BLOCK-END */
  1622. &ANALYZE-RESUME
  1623. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERPREIS C-Win
  1624. PROCEDURE LIEFERPREIS :
  1625. /*------------------------------------------------------------------------------
  1626. Purpose:
  1627. Parameters: <none>
  1628. Notes:
  1629. ------------------------------------------------------------------------------*/
  1630. VSeite = 0.
  1631. VFak_Betr = 0.
  1632. LiKopf = TRUE.
  1633. FPreis = TRUE.
  1634. FBetrag = FALSE.
  1635. FRabatt = FALSE.
  1636. FSamm = FALSE.
  1637. VKopfArt = 'LIEFERSCHEIN_KOPF'.
  1638. RUN VALUE(VKopfArt).
  1639. FOR EACH TSavze NO-LOCK
  1640. BY TSavze.Aufnr
  1641. /*
  1642. BY TSavze.Sort1
  1643. BY TSavze.Sort2
  1644. BY TSavze.Sort3
  1645. BY TSavze.Artnr
  1646. BY TSavze.Inhalt
  1647. BY TSavze.Jahr
  1648. */
  1649. BY TSavze.Pos :
  1650. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO:
  1651. RUN VALUE(VKopfArt).
  1652. END.
  1653. FIND Savze WHERE RECID(Savze) = TSavze.Zeile NO-LOCK.
  1654. RUN ARTIKELZEILE.
  1655. VFak_Betr = VFak_Betr + Savze.Net_Betr.
  1656. END.
  1657. VZeile = FILL('-', StBreite).
  1658. { v8/putstream.i "2" }
  1659. LiKopf = FALSE.
  1660. RUN GEBINDE_SALDO.
  1661. RUN GEBINDE_LIEFERUNG.
  1662. RUN GEBINDE_RUECKNAHME_TABELLE.
  1663. RUN KOPF_MUTATION.
  1664. END PROCEDURE.
  1665. /* _UIB-CODE-BLOCK-END */
  1666. &ANALYZE-RESUME
  1667. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERSCHEIN C-Win
  1668. PROCEDURE LIEFERSCHEIN :
  1669. /*------------------------------------------------------------------------------
  1670. Purpose:
  1671. Parameters: <none>
  1672. Notes:
  1673. ------------------------------------------------------------------------------*/
  1674. VSeite = 0.
  1675. VFak_Betr = 0.
  1676. LiKopf = TRUE.
  1677. FPreis = FALSE.
  1678. FBetrag = FALSE.
  1679. FRabatt = FALSE.
  1680. FSamm = FALSE.
  1681. VKopfArt = 'LIEFERSCHEIN_KOPF'.
  1682. RUN VALUE(VKopfArt).
  1683. FOR EACH TSavze NO-LOCK
  1684. BY TSavze.Aufnr
  1685. /*
  1686. BY TSavze.Sort1
  1687. BY TSavze.Sort2
  1688. BY TSavze.Sort3
  1689. BY TSavze.Artnr
  1690. BY TSavze.Inhalt
  1691. BY TSavze.Jahr
  1692. */
  1693. BY TSavze.Pos :
  1694. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO:
  1695. RUN VALUE(VKopfArt).
  1696. END.
  1697. FIND Savze WHERE RECID(Savze) = TSavze.Zeile NO-LOCK.
  1698. RUN ARTIKELZEILE.
  1699. VFak_Betr = VFak_Betr + Savze.Net_Betr.
  1700. END.
  1701. VZeile = FILL('-', StBreite).
  1702. { v8/putstream.i "2" }
  1703. LiKopf = FALSE.
  1704. RUN GEBINDE_SALDO.
  1705. RUN GEBINDE_LIEFERUNG.
  1706. RUN GEBINDE_RUECKNAHME_TABELLE.
  1707. RUN KOPF_MUTATION.
  1708. END PROCEDURE.
  1709. /* _UIB-CODE-BLOCK-END */
  1710. &ANALYZE-RESUME
  1711. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERSCHEIN_KOPF C-Win
  1712. PROCEDURE LIEFERSCHEIN_KOPF :
  1713. /*------------------------------------------------------------------------------
  1714. Purpose:
  1715. Parameters: <none>
  1716. Notes:
  1717. ------------------------------------------------------------------------------*/
  1718. RUN NEUE_SEITE.
  1719. PUT STREAM Out_Stream CONTROL BSchrift.Schseqbeg.
  1720. /* PUT STREAM Out_Stream CONTROL CHR(27) "&l0O" /* Hochformat */
  1721. * CHR(27) "&l4H" /* Schacht 2 */
  1722. * CHR(27) "(10U" /* CODEPAGE 850 */
  1723. * CHR(27) "(s4102t0b0p0s12H". /* LetterGotic 12cpi */*/
  1724. IF VSeite = 1 THEN DO:
  1725. FIND Adresse USE-INDEX Adresse-k1
  1726. WHERE Adresse.Firma = AdFirma
  1727. AND Adresse.Knr = BSavko.Knr NO-LOCK NO-ERROR.
  1728. FIND LDebst USE-INDEX Debst-k1
  1729. WHERE LDebst.Firma = GVFirma
  1730. AND LDebst.Knr = BSavko.Knr NO-LOCK NO-ERROR.
  1731. FIND FDebst USE-INDEX Debst-k1
  1732. WHERE FDebst.Firma = GVFirma
  1733. AND FDebst.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR.
  1734. FIND Wust USE-INDEX Wust-k1
  1735. WHERE Wust.CodeK = LDebst.MWST
  1736. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  1737. LVSprcd = Adresse.Sprcd.
  1738. DebInkl = FALSE.
  1739. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  1740. XTelnr = ''.
  1741. IF DebInkl THEN DO:
  1742. IF Adresse.Tel-2 <> '' THEN XTelnr = Adresse.Tel-2.
  1743. ELSE XTelnr = Adresse.Tel-1.
  1744. END.
  1745. ELSE DO:
  1746. IF Adresse.Tel-1 <> '' THEN XTelnr = Adresse.Tel-1.
  1747. ELSE XTelnr = Adresse.Tel-2.
  1748. END.
  1749. END.
  1750. F_Seite = VSeite.
  1751. F_Faknr = BSavko.Faknr.
  1752. DISPLAY F_Seite
  1753. F_Faknr WITH FRAME {&FRAME-NAME}.
  1754. VZeile = ''.
  1755. { v8/putstream.i BLiDruck.Listkzz }.
  1756. IF BSavko.Adresse[05] <> '' THEN DO:
  1757. DO ix = 1 TO 5:
  1758. SUBSTRING(VZeile,053) = BSavko.Adresse[ix].
  1759. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END.
  1760. ELSE DO: { v8/putstream.i "1" }. END.
  1761. END.
  1762. END.
  1763. ELSE DO:
  1764. DO ix = 7 TO 11:
  1765. SUBSTRING(VZeile,053) = Adresse.Anschrift[ix].
  1766. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END.
  1767. ELSE DO: { v8/putstream.i "1" }. END.
  1768. END.
  1769. END.
  1770. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20))
  1771. + STRING(BSavko.Aufnr,"z999999")
  1772. + " /"
  1773. + STRING(VSeite,"zz9").
  1774. { v8/putstreamf.i "1" }
  1775. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20))
  1776. + " "
  1777. + BSteuer.MWST_Nr.
  1778. { v8/putstream.i "1" }
  1779. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20))
  1780. + " "
  1781. + STRING(FDatum,"99.99.9999").
  1782. { v8/putstream.i "2" }
  1783. DO WHILE VSeite = 1.
  1784. RUN ABLADEVORSCHRIFT.
  1785. RUN VERSANDART.
  1786. RUN CHAUFFEUR.
  1787. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],21,20))
  1788. + " "
  1789. + BSavko.I_Best.
  1790. SUBSTRING(VZeile,061) = TRIM(SUBSTRING(FormText[08],21,20))
  1791. + STRING(BSavko.Gewicht,"zzz,zz9.999-").
  1792. { v8/putstream.i "1" }
  1793. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],41,20))
  1794. + " "
  1795. + STRING(BSavko.Auf_Datum,"99.99.9999").
  1796. SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[08],01,20))
  1797. + STRING(BSavko.Knr,"zz999999").
  1798. SUBSTRING(VZeile,061) = TRIM(SUBSTRING(FormText[08],41,20))
  1799. + " "
  1800. + XTelnr.
  1801. { v8/putstream.i "1" }
  1802. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[09],21,20))
  1803. + " "
  1804. + STRING(BSavko.Lief_Datum,"99.99.9999").
  1805. SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[09],01,20))
  1806. + " "
  1807. + XVersand
  1808. + " / "
  1809. + XChauffeur.
  1810. { v8/putstream.i "2" }
  1811. /* SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[22],01,20))
  1812. * + " "
  1813. * + XChauffeur.
  1814. * { v8/putstream.i "2" }
  1815. * */
  1816. IF XAblade <> '' THEN DO:
  1817. SUBSTRING(VZeile,001) = XAblade.
  1818. { v8/putstreamf.i "2" }
  1819. END.
  1820. XAuf_Text = BSavko.Auf_Text.
  1821. i1 = INDEX(XAuf_Text, CHR(10)).
  1822. i2 = 0.
  1823. DO WHILE i1 > 0:
  1824. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  1825. { v8/putstreamf.i "1" }
  1826. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  1827. i1 = INDEX(XAuf_Text, CHR(10)).
  1828. i2 = i2 + 1.
  1829. END.
  1830. IF XAuf_Text <> '' THEN DO:
  1831. SUBSTRING(VZeile,001) = XAuf_Text.
  1832. { v8/putstreamf.i "1" }
  1833. i2 = i2 + 1.
  1834. END.
  1835. IF i2 > 0 THEN DO:
  1836. { v8/putstream.i "1" }
  1837. END.
  1838. XAuf_Text = BSavko.Abh_Text.
  1839. i1 = INDEX(XAuf_Text, CHR(10)).
  1840. i2 = 0.
  1841. DO WHILE i1 > 0:
  1842. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  1843. { v8/putstreamf.i "1" }
  1844. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  1845. i1 = INDEX(XAuf_Text, CHR(10)).
  1846. i2 = i2 + 1.
  1847. END.
  1848. IF XAuf_Text <> '' THEN DO:
  1849. SUBSTRING(VZeile,001) = XAuf_Text.
  1850. { v8/putstreamf.i "1" }
  1851. i2 = i2 + 1.
  1852. END.
  1853. IF i2 > 0 THEN DO:
  1854. { v8/putstream.i "1" }
  1855. END.
  1856. LEAVE.
  1857. END.
  1858. IF LiKopf THEN DO:
  1859. SUBSTRING(VZeile,001) = FormText[03].
  1860. SUBSTRING(VZeile,071) = FormText[04].
  1861. { v8/putstream.i "1" }
  1862. SUBSTRING(VZeile,001) = FormText[05].
  1863. SUBSTRING(VZeile,071) = FormText[06].
  1864. StBreite = LENGTH(VZeile).
  1865. { v8/putstream.i "1" }
  1866. END.
  1867. ELSE DO:
  1868. { v8/putstream.i "1" }
  1869. END.
  1870. END PROCEDURE.
  1871. /* _UIB-CODE-BLOCK-END */
  1872. &ANALYZE-RESUME
  1873. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MEHRWERTSTEUER C-Win
  1874. PROCEDURE MEHRWERTSTEUER :
  1875. /*------------------------------------------------------------------------------
  1876. Purpose:
  1877. Parameters: <none>
  1878. Notes:
  1879. ------------------------------------------------------------------------------*/
  1880. VWpfl = 0.
  1881. VWust = 0.
  1882. Zuszz = 0.
  1883. DO ix = 1 TO 11:
  1884. IF BSavko.WPfl[ix] = 0 THEN NEXT.
  1885. VWpfl[ix] = BSavko.Wpfl[ix].
  1886. VWust[ix] = BSavko.Wust[ix].
  1887. Zuszz = Zuszz + 1.
  1888. END.
  1889. IF Zuszz > 0 THEN Zuszz + 4.
  1890. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO:
  1891. RUN VALUE(VKopfArt).
  1892. END.
  1893. DO ix = 1 TO 11:
  1894. IF VWpfl[ix] = 0 THEN NEXT.
  1895. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  1896. WHERE MWSTAns.MWST_Cd = ix
  1897. AND MWSTAns.Datum <= BSavko.Kond_Datum NO-LOCK.
  1898. SUBSTRING(VZeile,027) = MWSTAns.Bez.
  1899. SUBSTRING(VZeile,065) = STRING(VWpfl[ix],"->>,>>9.99").
  1900. SUBSTRING(VZeile,082) = STRING(VWust[ix],"->>,>>9.99").
  1901. SUBSTRING(VZeile,093) = STRING(ix ,"z9").
  1902. { v8/putstream.i "1" }
  1903. VFak_Betr = VFak_Betr + VWust[ix].
  1904. END.
  1905. Rundbetr = VFak_Betr.
  1906. Rundcode = 1.
  1907. RUN "v8/runden.p".
  1908. VFak_Betr = Rundbetr.
  1909. SUBSTRING(VZeile,027) = FILL('-', StBreite - 026).
  1910. { v8/putstream.i "1" }
  1911. SUBSTRING(VZeile,027) = TRIM(FormText[16]).
  1912. SUBSTRING(VZeile,082) = STRING(VFak_Betr,"->>,>>9.99").
  1913. { v8/putstreamf.i "1" }
  1914. END PROCEDURE.
  1915. /* _UIB-CODE-BLOCK-END */
  1916. &ANALYZE-RESUME
  1917. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUE_SEITE C-Win
  1918. PROCEDURE NEUE_SEITE :
  1919. /*------------------------------------------------------------------------------
  1920. Purpose:
  1921. Parameters: <none>
  1922. Notes:
  1923. ------------------------------------------------------------------------------*/
  1924. DEF VAR A AS INT NO-UNDO.
  1925. DEF VAR B AS INT NO-UNDO.
  1926. DO WHILE VSeite > 0:
  1927. IF DOpen THEN DO:
  1928. PUT STREAM Out_Stream CONTROL CHR(12).
  1929. LEAVE.
  1930. END.
  1931. A = BLiDruck.Listtzz.
  1932. DO B = VLine TO A:
  1933. VZNr = VZNr + 1.
  1934. CREATE XTermOut.
  1935. ASSIGN XTermOut.ZNr = VZNr
  1936. XTermOut.Zeile = ''.
  1937. END.
  1938. LEAVE.
  1939. END.
  1940. VLine = 0.
  1941. VSeite = VSeite + 1.
  1942. END PROCEDURE.
  1943. /* _UIB-CODE-BLOCK-END */
  1944. &ANALYZE-RESUME
  1945. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PRUEFZIFFER C-Win
  1946. PROCEDURE PRUEFZIFFER :
  1947. /*------------------------------------------------------------------------------
  1948. Purpose:
  1949. Parameters: <none>
  1950. Notes:
  1951. ------------------------------------------------------------------------------*/
  1952. /* ------------------------------------------------------------------------- */
  1953. /* Prufziffer MODULO 10, Rekursiv (27 Stellig Ref.-Nr.) */
  1954. /* ------------------------------------------------------------------------- */
  1955. /* */
  1956. /* Uebergabe Variable: 1. String Betrag (12-stellig) */
  1957. /* 2. String Referenz (27-stellig) */
  1958. /* 3. String Teilnehmernummer ( 9-stellig) */
  1959. /* */
  1960. /* Erstellung der VESR-Codierzeile */
  1961. /* */
  1962. /*---------------------------------------------------------------------------*/
  1963. DEF INPUT-OUTPUT PARAMETER PZBetrag AS CHAR FORMAT "x(13)".
  1964. DEF INPUT-OUTPUT PARAMETER PZReferenz AS CHAR FORMAT "x(27)".
  1965. DEF INPUT-OUTPUT PARAMETER PZTNummer AS CHAR FORMAT "x(09)".
  1966. DEF OUTPUT PARAMETER VSZeile AS CHAR FORMAT "x(58)".
  1967. DEF VAR l1 AS INT.
  1968. DEF VAR l2 AS INT.
  1969. DEF VAR l3 AS INT.
  1970. DEF VAR PZ AS INT.
  1971. DEF VAR x1 AS INT.
  1972. DEF VAR x2 AS INT.
  1973. DEF VAR x3 AS INT.
  1974. DEF VAR VMOD10 AS CHAR FORMAT "x(11)" EXTENT 11.
  1975. VMOD10[01] = "09468271350".
  1976. VMOD10[02] = "94682713509".
  1977. VMOD10[03] = "46827135098".
  1978. VMOD10[04] = "68271350947".
  1979. VMOD10[05] = "82713509466".
  1980. VMOD10[06] = "27135094685".
  1981. VMOD10[07] = "71350946824".
  1982. VMOD10[08] = "13509468273".
  1983. VMOD10[09] = "35094682712".
  1984. VMOD10[10] = "50946827131".
  1985. l1 = 12.
  1986. l2 = 26.
  1987. l3 = 08.
  1988. DO WHILE SUBSTRING(PZBetrag,01,01) <> " ": /* Mit Betrag */
  1989. x2 = 1.
  1990. x1 = INT(SUBSTRING(PZBetrag ,01 ,01)).
  1991. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  1992. DO x3 = 2 TO 12:
  1993. x1 = INT(SUBSTRING(PZBetrag ,x3 ,01)).
  1994. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  1995. END.
  1996. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  1997. SUBSTRING(PZBetrag,13) = STRING(PZ,"9").
  1998. LEAVE.
  1999. END.
  2000. DO WHILE SUBSTRING(PZBetrag,01,01) = " ": /* Ohne Betrag */
  2001. x2 = 11.
  2002. x1 = INT(SUBSTRING(PZBetrag ,01 ,01)).
  2003. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  2004. DO x3 = 12 TO 12:
  2005. x1 = INT(SUBSTRING(PZBetrag ,x3 ,01)).
  2006. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  2007. END.
  2008. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  2009. SUBSTRING(PZBetrag,13) = STRING(PZ,"9").
  2010. LEAVE.
  2011. END.
  2012. DO WHILE l2 = 26:
  2013. x2 = 1.
  2014. x1 = INT(SUBSTRING(PZReferenz,01 ,01)).
  2015. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  2016. DO x3 = 2 TO 26:
  2017. x1 = INT(SUBSTRING(PZReferenz ,x3 ,01)).
  2018. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  2019. END.
  2020. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  2021. SUBSTRING(PZReferenz,27) = STRING(PZ,"9").
  2022. LEAVE.
  2023. END.
  2024. DO WHILE l3 = 08:
  2025. x2 = 1.
  2026. x1 = INT(SUBSTRING(PZTNummer ,01 ,01)).
  2027. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  2028. DO x3 = 2 TO 08:
  2029. x1 = INT(SUBSTRING(PZTNummer ,x3 ,01)).
  2030. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  2031. END.
  2032. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  2033. SUBSTRING(PZTNummer,09) = STRING(PZ,"9").
  2034. LEAVE.
  2035. END.
  2036. VSZeile = "".
  2037. SUBSTRING(VSZeile,01) = PZBetrag.
  2038. SUBSTRING(VSZeile,14) = ">".
  2039. SUBSTRING(VSZeile,15) = PZReferenz.
  2040. SUBSTRING(VSZeile,42) = "+ ".
  2041. SUBSTRING(VSZeile,44) = PZTNummer.
  2042. SUBSTRING(VSZeile,53) = ">".
  2043. SUBSTRING(VSZeile,58) = "H".
  2044. END PROCEDURE.
  2045. /* _UIB-CODE-BLOCK-END */
  2046. &ANALYZE-RESUME
  2047. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMELSUCHEN C-Win
  2048. PROCEDURE SAMMELSUCHEN :
  2049. /*------------------------------------------------------------------------------
  2050. Purpose:
  2051. Parameters: <none>
  2052. Notes:
  2053. ------------------------------------------------------------------------------*/
  2054. FIND FIRST SammFak WHERE SammFak.Knr = BSavko.Fak_Knr
  2055. AND SammFak.Samm_Nr = BSavko.Samm_Nr NO-ERROR.
  2056. IF AVAILABLE SammFak THEN RETURN.
  2057. FOR EACH Savko USE-INDEX Savko-k5
  2058. WHERE Savko.Firma = BSavko.Firma
  2059. AND Savko.Fak_Art = BSavko.Fak_Art
  2060. AND Savko.Samm_Nr = BSavko.Samm_Nr :
  2061. IF Savko.Auf_Sta < 4 THEN DO:
  2062. Savko.Faknr = 0.
  2063. NEXT.
  2064. END.
  2065. CREATE SammFak.
  2066. ASSIGN SammFak.Knr = Savko.Fak_Knr
  2067. SammFak.Aufnr = Savko.Aufnr
  2068. SammFak.Samm_Nr = Savko.Samm_Nr
  2069. SammFak.RID = RECID(Savko).
  2070. IF SFaknr = 0 THEN SFaknr = Savko.Faknr.
  2071. END.
  2072. END PROCEDURE.
  2073. /* _UIB-CODE-BLOCK-END */
  2074. &ANALYZE-RESUME
  2075. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK C-Win
  2076. PROCEDURE SAMMFAK :
  2077. /*------------------------------------------------------------------------------
  2078. Purpose:
  2079. Parameters: <none>
  2080. Notes:
  2081. ------------------------------------------------------------------------------*/
  2082. Zuszz = 8.
  2083. LiKopf = TRUE.
  2084. FPreis = TRUE.
  2085. FBetrag = TRUE.
  2086. FRabatt = TRUE.
  2087. FUeber = FALSE.
  2088. FSamm = TRUE.
  2089. VKopfArt = 'SAMMFAK_KOPF'.
  2090. IF (BLiDruck.Listtzz - VLine - Zuszz ) < BLiDruck.Listfzz THEN DO:
  2091. TiDruck = TRUE.
  2092. END.
  2093. IF TiDruck THEN DO:
  2094. RUN VALUE(VKopfArt).
  2095. END.
  2096. ELSE DO:
  2097. { v8/putstream.i "2" }
  2098. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20))
  2099. + " "
  2100. + STRING(BSavko.Aufnr ,"zzzzzzzzz9").
  2101. { v8/putstream.i "1" }
  2102. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],41,20))
  2103. + " "
  2104. + STRING(BSavko.Auf_Datum,"99.99.9999").
  2105. { v8/putstream.i "2" }
  2106. SUBSTRING(VZeile,001) = FormText[03].
  2107. SUBSTRING(VZeile,071) = FormText[04].
  2108. { v8/putstream.i "1" }
  2109. SUBSTRING(VZeile,001) = FormText[05].
  2110. SUBSTRING(VZeile,071) = FormText[06].
  2111. { v8/putstream.i "1" }
  2112. END.
  2113. FOR EACH TSavze NO-LOCK
  2114. BY TSavze.Aufnr
  2115. /*
  2116. BY TSavze.Sort1
  2117. BY TSavze.Sort2
  2118. BY TSavze.Sort3
  2119. BY TSavze.Artnr
  2120. BY TSavze.Inhalt
  2121. BY TSavze.Jahr
  2122. */
  2123. BY TSavze.Pos :
  2124. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO:
  2125. RUN VALUE(VKopfArt).
  2126. END.
  2127. FIND Savze WHERE RECID(Savze) = TSavze.Zeile NO-LOCK.
  2128. RUN ARTIKELZEILE.
  2129. VFak_Betr = VFak_Betr + Savze.Net_Betr.
  2130. END.
  2131. VZeile = FILL('-', StBreite).
  2132. { v8/putstream.i "1" }
  2133. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[10],41,20)).
  2134. SUBSTRING(VZeile,082) = STRING(VFak_Betr,"->>,>>9.99").
  2135. { v8/putstreamf.i "1" }
  2136. LiKopf = FALSE.
  2137. RUN SUMMENRABATTE.
  2138. { v8/putstream.i "1" }
  2139. RUN GEBINDE_SALDO.
  2140. RUN GEBINDE_ABRECHNUNG.
  2141. DO ix = 1 TO 12:
  2142. GTWpfl[ix] = GTWpfl[ix] + BSavko.Wpfl[ix].
  2143. GTWust[ix] = GTWust[ix] + BSavko.Wust[ix].
  2144. END.
  2145. GTFak_Betr = GTFak_Betr + VFak_Betr.
  2146. GTSk_Ber = GTSk_Ber + BSavko.Sk_Ber.
  2147. TiDruck = FALSE.
  2148. IF FLetzt THEN RUN SAMMFAK_ENDE.
  2149. END PROCEDURE.
  2150. /* _UIB-CODE-BLOCK-END */
  2151. &ANALYZE-RESUME
  2152. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_ENDE C-Win
  2153. PROCEDURE SAMMFAK_ENDE :
  2154. /*------------------------------------------------------------------------------
  2155. Purpose:
  2156. Parameters: <none>
  2157. Notes:
  2158. ------------------------------------------------------------------------------*/
  2159. SUBSTRING(VZeile,027) = FILL('-', StBreite - 026).
  2160. { v8/putstream.i "1" }
  2161. SUBSTRING(VZeile,027) = TRIM(SUBSTRING(FormText[14],01,20)).
  2162. SUBSTRING(VZeile,082) = STRING(GTFak_Betr,"->>,>>9.99").
  2163. { v8/putstreamf.i "1" }
  2164. SUBSTRING(VZeile,027) = FILL('-', StBreite - 026).
  2165. { v8/putstream.i "1" }
  2166. DO ix = 1 TO 11:
  2167. IF GTWpfl[ix] = 0 THEN NEXT.
  2168. GTFak_Betr = GTFak_Betr + GTWust[ix].
  2169. Zuszz = Zuszz + 1.
  2170. END.
  2171. IF Zuszz > 0 THEN Zuszz = Zuszz + 6.
  2172. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO:
  2173. RUN VALUE(VKopfArt).
  2174. END.
  2175. DO ix = 1 TO 11:
  2176. IF GTWpfl[ix] = 0 THEN NEXT.
  2177. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  2178. WHERE MWSTAns.MWST_Cd = ix
  2179. AND MWSTAns.Datum <= BSavko.Kond_Datum NO-LOCK.
  2180. SUBSTRING(VZeile,027) = MWSTAns.Bez.
  2181. SUBSTRING(VZeile,065) = STRING(GTWpfl[ix],"->>,>>9.99").
  2182. SUBSTRING(VZeile,082) = STRING(GTWust[ix],"->>,>>9.99").
  2183. SUBSTRING(VZeile,093) = STRING(ix ,"z9").
  2184. { v8/putstream.i "1" }
  2185. END.
  2186. Rundbetr = GTFak_Betr.
  2187. Rundcode = 1.
  2188. RUN "v8/runden.p".
  2189. GTFak_Betr = Rundbetr.
  2190. SUBSTRING(VZeile,027) = FILL('-', StBreite - 026).
  2191. { v8/putstream.i "1" }
  2192. SUBSTRING(VZeile,027) = TRIM(FormText[16]).
  2193. SUBSTRING(VZeile,082) = STRING(GTFak_Betr,"->>,>>9.99").
  2194. { v8/putstreamf.i "1" }
  2195. SUBSTRING(VZeile,082) = FILL('=', StBreite - 082).
  2196. { v8/putstream.i "2" }
  2197. FIND Kondi USE-INDEX Kondi-k1
  2198. WHERE Kondi.Kond = BSavko.Kond
  2199. AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  2200. IF AVAILABLE Kondi THEN DO:
  2201. SUBSTRING(VZeile,001) = Kondi.KoText.
  2202. IF Kondi.Skonto[01] <> 0 THEN DO:
  2203. Rundbetr = GTSk_Ber * Kondi.Skonto[01] / 100.
  2204. Rundcode = 1.
  2205. RUN "v8/runden.p".
  2206. SUBSTRING(VZeile,082) = STRING(Rundbetr,"->>,>>9.99").
  2207. END.
  2208. END.
  2209. ELSE DO:
  2210. SUBSTRING(VZeile,001) = FILL('?', 30).
  2211. END.
  2212. { v8/putstream.i "2" }
  2213. RUN SCHLUSSTEXT.
  2214. RUN UMSATZVERTEILUNG.
  2215. Rundbetr = GTFak_Betr.
  2216. VesrKnr = BSavko.Fak_Knr.
  2217. VesrFnr = BSavko.Faknr.
  2218. RUN VESR_DRUCK.
  2219. END PROCEDURE.
  2220. /* _UIB-CODE-BLOCK-END */
  2221. &ANALYZE-RESUME
  2222. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_KOPF C-Win
  2223. PROCEDURE SAMMFAK_KOPF :
  2224. /*------------------------------------------------------------------------------
  2225. Purpose:
  2226. Parameters: <none>
  2227. Notes:
  2228. ------------------------------------------------------------------------------*/
  2229. RUN NEUE_SEITE.
  2230. PUT STREAM Out_Stream CONTROL CHR(27) "&l0O" /* Hochformat */
  2231. CHR(27) "&l5H" /* Schacht 3 */
  2232. CHR(27) "(10U" /* CODEPAGE 850 */
  2233. CHR(27) "(s4102t0b0p0s12H". /* LetterGotic 12cpi */
  2234. IF VSeite = 1 THEN DO:
  2235. IF SFaknr = 0 THEN DO:
  2236. SFaknr = BSavko.Faknr.
  2237. END.
  2238. FIND Adresse USE-INDEX Adresse-k1
  2239. WHERE Adresse.Firma = AdFirma
  2240. AND Adresse.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR.
  2241. FIND LDebst USE-INDEX Debst-k1
  2242. WHERE LDebst.Firma = GVFirma
  2243. AND LDebst.Knr = BSavko.Knr NO-LOCK NO-ERROR.
  2244. FIND FDebst USE-INDEX Debst-k1
  2245. WHERE FDebst.Firma = GVFirma
  2246. AND FDebst.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR.
  2247. FIND Wust USE-INDEX Wust-k1
  2248. WHERE Wust.CodeK = LDebst.MWST
  2249. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  2250. LVSprcd = Adresse.Sprcd.
  2251. DebInkl = FALSE.
  2252. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  2253. END.
  2254. F_Seite = VSeite.
  2255. F_Faknr = SFaknr.
  2256. DISPLAY F_Seite
  2257. F_Faknr WITH FRAME {&FRAME-NAME}.
  2258. VZeile = ''.
  2259. { v8/putstream.i BLiDruck.Listkzz }.
  2260. DO ix = 6 TO 12:
  2261. SUBSTRING(VZeile,053) = Adresse.Anschrift[ix].
  2262. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END.
  2263. ELSE DO: { v8/putstream.i "1" }. END.
  2264. END.
  2265. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20))
  2266. + STRING(SFaknr,"z999999")
  2267. + " /"
  2268. + STRING(VSeite,"zz9").
  2269. { v8/putstreamf.i "1" }
  2270. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20))
  2271. + " "
  2272. + BSteuer.MWST_Nr.
  2273. { v8/putstream.i "1" }
  2274. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20)).
  2275. SUBSTRING(VZeile,012) = STRING(FDatum,"99.99.9999").
  2276. SUBSTRING(VZeile,053) = TRIM(SUBSTRING(FormText[08],01,20))
  2277. + STRING(BSavko.Fak_Knr,"zz999999").
  2278. { v8/putstream.i "2" }
  2279. IF VSeite = 1 THEN DO:
  2280. END.
  2281. DO WHILE TiDruck.
  2282. SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[17],21,20))
  2283. + " "
  2284. + STRING(BSavko.Aufnr,"zzzzzzzzz9").
  2285. { v8/putstream.i "1" }
  2286. SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[07],41,20))
  2287. + " "
  2288. + STRING(BSavko.Auf_Datum,"99.99.9999").
  2289. { v8/putstream.i "2" }
  2290. LEAVE.
  2291. END.
  2292. IF LiKopf THEN DO:
  2293. SUBSTRING(VZeile,001) = FormText[03].
  2294. SUBSTRING(VZeile,071) = FormText[04].
  2295. { v8/putstream.i "1" }
  2296. SUBSTRING(VZeile,001) = FormText[05].
  2297. SUBSTRING(VZeile,071) = FormText[06].
  2298. StBreite = LENGTH(VZeile).
  2299. { v8/putstream.i "1" }
  2300. END.
  2301. ELSE DO:
  2302. { v8/putstream.i "1" }
  2303. END.
  2304. IF VSeite > 1 AND
  2305. FUeber = TRUE THEN DO:
  2306. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[09],41,20)).
  2307. SUBSTRING(VZeile,082) = STRING(VFak_Betr,"->>,>>9.99").
  2308. { v8/putstreamf.i "2" }
  2309. END.
  2310. END PROCEDURE.
  2311. /* _UIB-CODE-BLOCK-END */
  2312. &ANALYZE-RESUME
  2313. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SCHLUSSTEXT C-Win
  2314. PROCEDURE SCHLUSSTEXT :
  2315. /*------------------------------------------------------------------------------
  2316. Purpose:
  2317. Parameters: <none>
  2318. Notes:
  2319. ------------------------------------------------------------------------------*/
  2320. /* Schlusstext -------------------------------------------------------- */
  2321. FIND TabTexte USE-INDEX TabTexte-k1
  2322. WHERE TabTexte.Firma = GVFirma
  2323. AND TabTexte.TextArt = 'DOK' + STRING(BSavko.Fak_Art,'99')
  2324. AND TabTexte.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  2325. IF NOT AVAILABLE TabTexte THEN DO:
  2326. FIND TabTexte USE-INDEX TabTexte-k1
  2327. WHERE TabTexte.Firma = GVFirma
  2328. AND TabTexte.TextArt = 'DOK' + STRING(BSavko.Fak_Art,'99')
  2329. AND TabTexte.Sprcd = 1 NO-LOCK NO-ERROR.
  2330. END.
  2331. IF AVAILABLE TabTexte THEN VTabTexte = TabTexte.Inhalt.
  2332. Zuszz = NUM-ENTRIES(VTabTexte, CHR(10)).
  2333. IF Zuszz > 0 THEN Zuszz = Zuszz + 2.
  2334. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO:
  2335. RUN VALUE(VKopfArt).
  2336. END.
  2337. DO WHILE TRUE:
  2338. ix = INDEX(VTabTexte, CHR(10)).
  2339. IF ix = 0 THEN DO:
  2340. VZeile = VTabTexte.
  2341. LEAVE.
  2342. END.
  2343. VZeile = SUBSTRING(VTabTexte,01,ix - 1).
  2344. VTabTexte = SUBSTRING(VTabTexte,ix + 1).
  2345. { v8/putstream.i "1" }.
  2346. END.
  2347. IF VZeile <> '' THEN DO:
  2348. { v8/putstream.i "1" }.
  2349. END.
  2350. END PROCEDURE.
  2351. /* _UIB-CODE-BLOCK-END */
  2352. &ANALYZE-RESUME
  2353. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUMMENRABATTE C-Win
  2354. PROCEDURE SUMMENRABATTE :
  2355. /*------------------------------------------------------------------------------
  2356. Purpose:
  2357. Parameters: <none>
  2358. Notes:
  2359. ------------------------------------------------------------------------------*/
  2360. DEF VAR RText AS CHAR FORMAT "x(20)" NO-UNDO.
  2361. DEF VAR WText AS CHAR NO-UNDO.
  2362. DO WHILE FRabatt:
  2363. Zuszz = 0.
  2364. FOR EACH TRabSumm NO-LOCK:
  2365. IF TRabSumm.Auf_Rab <> 0 THEN Zuszz = Zuszz + 1.
  2366. IF TRabSumm.Abh_Rab <> 0 THEN Zuszz = Zuszz + 1.
  2367. END.
  2368. FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0 NO-LOCK:
  2369. Zuszz = Zuszz + 1.
  2370. END.
  2371. /* Receycling */
  2372. FOR EACH SavGKon USE-INDEX SavGKon-k1
  2373. WHERE SavGKon.Firma = BSavko.Firma
  2374. AND SavGKon.Aufnr = BSavko.Aufnr
  2375. AND SavGKon.Gebuehr <> 0
  2376. AND SavGKon.Betrag <> 0 NO-LOCK:
  2377. Zuszz = Zuszz + 1.
  2378. END.
  2379. IF Zuszz > 0 THEN Zuszz = Zuszz + 3.
  2380. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO:
  2381. RUN VALUE(VKopfArt).
  2382. END.
  2383. LEAVE.
  2384. END.
  2385. /* Auftragsrabatt ---------------------------------------------------- */
  2386. i5 = 0.
  2387. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
  2388. BY TRabSumm.Rab_Summ:
  2389. Rundbetr = TRabSumm.Auf_Rab.
  2390. VFak_Betr = VFak_Betr - Rundbetr.
  2391. IF NOT FRabatt THEN NEXT.
  2392. IF Rundbetr < 0 THEN RText = VZusText.
  2393. ELSE RText = VRabText.
  2394. FIND FIRST SavRabSu USE-INDEX SavRabSu-k1
  2395. WHERE SavRabSu.Firma = BSavko.Firma
  2396. AND SavRabSu.Aufnr = BSavko.Aufnr
  2397. AND SavRabSu.Rab_Summ = TRabSumm.Rab_Summ NO-LOCK.
  2398. IF SavRabSu.F_Art = 1 THEN WText = "%".
  2399. ELSE WText = "Fr.".
  2400. RabWert = ABSOLUT(SavRabSu.F_Wert).
  2401. SUBSTRING(VZeile,036) = RText
  2402. + " "
  2403. + TRabSumm.Bez.
  2404. SUBSTRING(VZeile,055) = STRING(RabWert,"z9.99-")
  2405. + WText.
  2406. SUBSTRING(VZeile,082) = STRING(- Rundbetr,"->>,>>9.99").
  2407. { v8/putstream.i "1" }
  2408. i5 = i5 + 1.
  2409. END.
  2410. /* Abholrabatt ------------------------------------------------------- */
  2411. FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
  2412. BY TRabSumm.Rab_Summ:
  2413. Rundbetr = TRabSumm.Abh_Rab.
  2414. VFak_Betr = VFak_Betr - Rundbetr.
  2415. IF NOT FRabatt THEN NEXT.
  2416. IF Rundbetr < 0 THEN RText = VZusText.
  2417. ELSE RText = VRabText.
  2418. FIND FIRST SavRabSu USE-INDEX SavRabSu-k1
  2419. WHERE SavRabSu.Firma = BSavko.Firma
  2420. AND SavRabSu.Aufnr = BSavko.Aufnr
  2421. AND SavRabSu.Rab_Summ = TRabSumm.Rab_Summ NO-LOCK.
  2422. IF SavRabSu.A_Art = 1 THEN WText = "%".
  2423. ELSE WText = "Fr.".
  2424. RabWert = ABSOLUT(SavRabSu.A_Wert).
  2425. SUBSTRING(VZeile,036) = RText
  2426. + " "
  2427. + TRabSumm.Bez.
  2428. SUBSTRING(VZeile,055) = STRING(RabWert,"z9.99-")
  2429. + WText.
  2430. SUBSTRING(VZeile,082) = STRING(- Rundbetr,"->>,>>9.99").
  2431. { v8/putstream.i "1" }
  2432. i5 = i5 + 1.
  2433. END.
  2434. /* Spezialpreis-Auftragsrabatte ---------------------------------------- */
  2435. FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0
  2436. BY TSpeRab.Rab_Grp:
  2437. Rundbetr = TSpeRab.Auf_Betr.
  2438. VFak_Betr = VFak_Betr - Rundbetr.
  2439. IF NOT FRabatt THEN NEXT.
  2440. FIND Tabel USE-INDEX Tabel-k1
  2441. WHERE Tabel.Firma = GVFirma
  2442. AND Tabel.RecArt = 'ARABGRP'
  2443. AND Tabel.CodeC = ''
  2444. AND Tabel.CodeI = TSpeRab.Rab_Grp
  2445. AND Tabel.Sprcd = 1 NO-LOCK.
  2446. IF Rundbetr < 0 THEN RText = VZusText.
  2447. ELSE RText = VRabText.
  2448. FIND FIRST SavSpRab USE-INDEX SavSpRab-k1
  2449. WHERE SavSpRab.Firma = BSavko.Firma
  2450. AND SavSpRab.Aufnr = BSavko.Aufnr
  2451. AND SavSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK.
  2452. IF SavSpRab.Auf_Proz_Betr THEN WText = "%".
  2453. ELSE WText = "Fr.".
  2454. RabWert = ABSOLUT(SavSpRab.Auf_Wert).
  2455. SUBSTRING(VZeile,036) = RText
  2456. + " "
  2457. + TRIM(Tabel.Bez1).
  2458. SUBSTRING(VZeile,055) = STRING(RabWert,"z9.99-")
  2459. + WText.
  2460. SUBSTRING(VZeile,082) = STRING(- Rundbetr,"->>,>>9.99").
  2461. { v8/putstream.i "1" }
  2462. i5 = i5 + 1.
  2463. END.
  2464. IF i5 > 0 THEN DO:
  2465. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[14],21,20)).
  2466. SUBSTRING(VZeile,082) = STRING(VFak_Betr,"->>,>>9.99").
  2467. { v8/putstreamf.i "1" }
  2468. END.
  2469. /* Recycling-Gebühren ------------------------------------------------ */
  2470. i5 = 0.
  2471. FOR EACH SavGKon USE-INDEX SavGKon-k1
  2472. WHERE SavGKon.Firma = BSavko.Firma
  2473. AND SavGKon.Aufnr = BSavko.Aufnr
  2474. AND SavGKon.Gebuehr <> 0
  2475. AND SavGKon.Betrag <> 0 NO-LOCK:
  2476. VFak_Betr = VFak_Betr + SavGKon.Betrag.
  2477. IF NOT FRabatt THEN NEXT.
  2478. VWC = SavGKon.MWSt_Cd.
  2479. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[11],41,20)).
  2480. SUBSTRING(VZeile,082) = STRING(SavGKon.Betrag ,"->>,>>9.99").
  2481. SUBSTRING(VZeile,093) = STRING(SavGKon.MWSt_Cd ,"z9").
  2482. { v8/putstream.i "1" }
  2483. i5 = i5 + 1.
  2484. END.
  2485. IF i5 > 0 THEN DO:
  2486. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[14],41,20)).
  2487. SUBSTRING(VZeile,082) = STRING(VFak_Betr,"->>,>>9.99").
  2488. { v8/putstreamf.i "1" }
  2489. END.
  2490. END PROCEDURE.
  2491. /* _UIB-CODE-BLOCK-END */
  2492. &ANALYZE-RESUME
  2493. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE UMSATZVERTEILUNG C-Win
  2494. PROCEDURE UMSATZVERTEILUNG :
  2495. /*------------------------------------------------------------------------------
  2496. Purpose:
  2497. Parameters: <none>
  2498. Notes:
  2499. ------------------------------------------------------------------------------*/
  2500. Zuszz = 0.
  2501. Ja = FALSE.
  2502. FOR EACH TUmsGrp NO-LOCK:
  2503. Zuszz = Zuszz + 1.
  2504. END.
  2505. IF Zuszz > 0 THEN DO:
  2506. Zuszz = Zuszz + 2.
  2507. Ja = TRUE.
  2508. END.
  2509. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO:
  2510. RUN VALUE(VKopfArt).
  2511. END.
  2512. IF Ja THEN DO:
  2513. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[15],41,20)).
  2514. { v8/putstreamf.i "1" }
  2515. END.
  2516. FOR EACH TUmsGrp WHERE TUmsGrp.Ums_Betr <> 0 NO-LOCK
  2517. BY TUmsGrp.Ums_Grp :
  2518. SUBSTRING(VZeile,001) = TUmsGrp.Bez.
  2519. SUBSTRING(VZeile,040) = BSteuer.Fwc03.
  2520. SUBSTRING(VZeile,050) = STRING(TUmsGrp.Ums_Betr,"->>>,>>9.99").
  2521. { v8/putstream.i "1" }
  2522. END.
  2523. END PROCEDURE.
  2524. /* _UIB-CODE-BLOCK-END */
  2525. &ANALYZE-RESUME
  2526. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERSANDART C-Win
  2527. PROCEDURE VERSANDART :
  2528. /*------------------------------------------------------------------------------
  2529. Purpose:
  2530. Parameters: <none>
  2531. Notes:
  2532. ------------------------------------------------------------------------------*/
  2533. XVersand = ''.
  2534. FIND Tabel USE-INDEX Tabel-k1
  2535. WHERE Tabel.Firma = GVFirma
  2536. AND Tabel.RecArt = 'LIEFART'
  2537. AND Tabel.CodeC = ''
  2538. AND Tabel.CodeI = BSavko.Lief_Bed
  2539. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  2540. IF AVAILABLE Tabel THEN XVersand = Tabel.Bez1.
  2541. END PROCEDURE.
  2542. /* _UIB-CODE-BLOCK-END */
  2543. &ANALYZE-RESUME
  2544. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK C-Win
  2545. PROCEDURE VESR_DRUCK :
  2546. /*------------------------------------------------------------------------------
  2547. Purpose:
  2548. Parameters: <none>
  2549. Notes:
  2550. ------------------------------------------------------------------------------*/
  2551. DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
  2552. DEF VAR PZBetrag AS CHAR FORMAT "x(13)" NO-UNDO.
  2553. DEF VAR PZReferenz AS CHAR FORMAT "x(27)" NO-UNDO.
  2554. DEF VAR PZTNummer AS CHAR FORMAT "x(09)" NO-UNDO.
  2555. DEF VAR VSZeile AS CHAR FORMAT "x(58)" NO-UNDO.
  2556. DEF VAR VZeile AS CHAR FORMAT "x(58)" NO-UNDO.
  2557. DEF VAR XArt AS INT NO-UNDO.
  2558. DEF VAR XAnz AS INT NO-UNDO.
  2559. DEF VAR XBetr AS CHAR FORMAT "x(20)" NO-UNDO.
  2560. DEF VAR VESR_P AS CHAR FORMAT "x(02)" NO-UNDO.
  2561. DEF VAR VESR AS CHAR FORMAT "x(02)" NO-UNDO.
  2562. DEF VAR DruBetr AS DEC NO-UNDO.
  2563. DEF VAR XBetrag AS CHAR FORMAT "x(12)" NO-UNDO.
  2564. DEF VAR XCodeC AS CHAR NO-UNDO.
  2565. DEF VAR XP AS INT NO-UNDO.
  2566. DEF VAR YP AS INT NO-UNDO.
  2567. IF VBesr = 0 THEN RETURN.
  2568. IF NOT BOpen THEN DO:
  2569. OUTPUT STREAM BESR_Stream TO VALUE(BESRName).
  2570. BOpen = TRUE.
  2571. END.
  2572. DruBetr = Rundbetr.
  2573. FIND Kondi USE-INDEX Kondi-k1
  2574. WHERE Kondi.Kond = BSavko.Kond
  2575. AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  2576. IF AVAILABLE Kondi THEN DO:
  2577. IF Kondi.Skonto[01] <> 0 THEN DruBetr = 0.
  2578. END.
  2579. DO WHILE TRUE:
  2580. PZBetrag = ''.
  2581. IF DruBetr < 0 THEN DO:
  2582. PZBetrag = FILL('*', 13).
  2583. PZReferenz = FILL('*', 27).
  2584. PZTNummer = FILL('*', 09).
  2585. XBetrag = FILL('*', 12).
  2586. END.
  2587. ELSE DO:
  2588. IF DruBetr > 0 THEN DO:
  2589. PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
  2590. XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999").
  2591. END.
  2592. IF DruBetr = 0 THEN DO:
  2593. PZBetrag = " 04 ".
  2594. END.
  2595. PZReferenz = "991440000000"
  2596. + STRING(VesrKnr,"999999")
  2597. + "0"
  2598. + STRING(VesrFnr,"9999999")
  2599. + " ".
  2600. PZTNummer = "01000530".
  2601. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
  2602. INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
  2603. END.
  2604. PUT STREAM BESR_Stream CONTROL CHR(27) "&l4H". /* Schacht 1 */
  2605. PUT STREAM BESR_Stream CONTROL CHR(27) "&l1O" /* Querformat */
  2606. CHR(27) "(10U" /* CODEPAGE 850 */
  2607. CHR(27) "(s4102t0b0p0s12H". /* LetterGotic 12cpi */
  2608. XP = 0980.
  2609. YP = 600.
  2610. VZeile = ''.
  2611. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ).
  2612. SUBSTRING(VZeile,001) = "Graub. Kantonalbank".
  2613. SUBSTRING(VZeile,030) = "Graub. Kantonalbank".
  2614. PUT STREAM BESR_Stream CONTROL VZeile CHR(10).
  2615. YP = YP + 50.
  2616. VZeile = ''.
  2617. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ).
  2618. SUBSTRING(VZeile,001) = "7002 Chur".
  2619. SUBSTRING(VZeile,030) = "7002 Chur".
  2620. PUT STREAM BESR_Stream CONTROL VZeile CHR(10).
  2621. YP = YP + 150.
  2622. VZeile = ''.
  2623. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ).
  2624. SUBSTRING(VZeile,001) = "La Torre S.g.l.".
  2625. SUBSTRING(VZeile,030) = "La Torre S.g.l.".
  2626. PUT STREAM BESR_Stream CONTROL VZeile CHR(10).
  2627. YP = YP + 50.
  2628. VZeile = ''.
  2629. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ).
  2630. SUBSTRING(VZeile,001) = "Casa Vinicola".
  2631. SUBSTRING(VZeile,030) = "Casa Vinicola".
  2632. PUT STREAM BESR_Stream CONTROL VZeile CHR(10).
  2633. YP = YP + 50.
  2634. VZeile = ''.
  2635. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ).
  2636. SUBSTRING(VZeile,001) = "7742 Poschiavo".
  2637. SUBSTRING(VZeile,030) = "7742 Poschiavo".
  2638. PUT STREAM BESR_Stream CONTROL VZeile CHR(10).
  2639. YP = YP + 90.
  2640. VZeile = ''.
  2641. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ).
  2642. SUBSTRING(VZeile,013) = " 01-530-4".
  2643. SUBSTRING(VZeile,041) = " 01-530-4".
  2644. SUBSTRING(VZeile,062) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  2645. PUT STREAM BESR_Stream CONTROL VZeile CHR(10).
  2646. YP = YP + 110.
  2647. XP = 0999.
  2648. VZeile = ''.
  2649. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ).
  2650. SUBSTRING(VZeile,004) = STRING(XBetrag,"XXXXXXXXXX XX").
  2651. SUBSTRING(VZeile,033) = STRING(XBetrag,"XXXXXXXXXX XX").
  2652. PUT STREAM BESR_Stream CONTROL VZeile CHR(10).
  2653. YP = YP + 90.
  2654. XP = 0980.
  2655. VZeile = ''.
  2656. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ).
  2657. PUT STREAM BESR_Stream CONTROL CHR(27) "(10U" /* CODEPAGE 850 */
  2658. CHR(27) "(s4102t0b0p0s16H". /* LetterGotic 16cpi */
  2659. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  2660. PUT STREAM BESR_Stream CONTROL VZeile CHR(10).
  2661. FIND Adresse USE-INDEX Adresse-k1
  2662. WHERE Adresse.Firma = AdFirma
  2663. AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
  2664. YP = YP + 160.
  2665. PUT STREAM BESR_Stream CONTROL CHR(27) "(10U" /* CODEPAGE 850 */
  2666. CHR(27) "(s4102t0b0p0s12H". /* LetterGotic 12cpi */
  2667. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ).
  2668. DO ix = 11 TO 6 BY -1:
  2669. VZeile = ''.
  2670. SUBSTRING(VZeile,059) = Adresse.Anschrift[ix].
  2671. IF ix = 11 THEN VZeile = BDrucker.Drufettb + VZeile + BDrucker.Drufette.
  2672. PUT STREAM BESR_Stream CONTROL VZeile CHR(10).
  2673. YP = YP - 48.
  2674. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ).
  2675. END.
  2676. YP = 1430.
  2677. PUT STREAM BESR_Stream CONTROL CHR(27) "(10U" /* CODEPAGE 850 */
  2678. CHR(27) "(s4102t0b0p0s13H". /* LetterGotic 14cpi */
  2679. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ).
  2680. DO ix = 11 TO 7 BY -1:
  2681. VZeile = ''.
  2682. SUBSTRING(VZeile,001) = STRING(Adresse.Anschrift[ix],"x(30)").
  2683. PUT STREAM BESR_Stream CONTROL VZeile CHR(10).
  2684. YP = YP - 43.
  2685. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ).
  2686. END.
  2687. YP = 1490.
  2688. VZeile = ''.
  2689. PUT STREAM BESR_Stream CONTROL CHR(27) "(1O" /* CODEPAGE OCR-B */
  2690. CHR(27) "(s110t1b0p0s10h12V". /* OCR-B 10 cpi */
  2691. XP = XP + 15.
  2692. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ).
  2693. XP = XP - 15.
  2694. SUBSTRING(VZeile,022) = "H".
  2695. SUBSTRING(VZeile,027) = STRING(VSZeile,"x(53)").
  2696. PUT STREAM BESR_Stream CONTROL VZeile CHR(10).
  2697. VLine = 0.
  2698. VSeite = 0.
  2699. LEAVE.
  2700. END.
  2701. END PROCEDURE.
  2702. /* _UIB-CODE-BLOCK-END */
  2703. &ANALYZE-RESUME
  2704. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WORKFILE C-Win
  2705. PROCEDURE WORKFILE :
  2706. /*------------------------------------------------------------------------------
  2707. Purpose:
  2708. Parameters: <none>
  2709. Notes:
  2710. ------------------------------------------------------------------------------*/
  2711. FIND BSchrift USE-INDEX Schrift-k1
  2712. WHERE BSchrift.Schname = BLiDruck.ListDru
  2713. AND BSchrift.Schbild = BLiDruck.ListBild NO-LOCK NO-ERROR.
  2714. FIND BDrucker USE-INDEX Drucker-k1
  2715. WHERE BDrucker.Drucker = BSchrift.Schdru NO-LOCK NO-ERROR.
  2716. DOpen = FALSE.
  2717. VTemp = ''.
  2718. IF BDrucker.Emul = 'TERMINAL' THEN DO:
  2719. FOR EACH XTermOut:
  2720. DELETE XTermOut.
  2721. END.
  2722. VZNr = 0.
  2723. RETURN.
  2724. END.
  2725. DO WHILE TRUE TRANSACTION:
  2726. FIND Tabel USE-INDEX Tabel-k1
  2727. WHERE Tabel.Firma = GVFirma
  2728. AND Tabel.RecArt = 'TEMPFILE'
  2729. AND Tabel.CodeI = 0
  2730. AND Tabel.CodeC = 'AUFTRAG'
  2731. AND Tabel.Sprcd = 1 NO-ERROR.
  2732. IF NOT AVAILABLE Tabel THEN DO:
  2733. CREATE Tabel.
  2734. ASSIGN Tabel.Firma = GVFirma
  2735. Tabel.RecArt = 'TEMPFILE'
  2736. Tabel.CodeI = 0
  2737. Tabel.CodeC = 'AUFTRAG'
  2738. Tabel.Sprcd = 1
  2739. Tabel.Bez1 = SESSION:TEMP-DIR.
  2740. END.
  2741. Tabel.Int_1 = Tabel.Int_1 + 1.
  2742. VTemp = Tabel.Bez1 + 'Faktura' + STRING(Tabel.Int_1) + '.tmp'.
  2743. BESRName = Tabel.Bez1 + 'BESR' + STRING(Tabel.Int_1) + '.tmp'.
  2744. RELEASE Tabel.
  2745. LEAVE.
  2746. END.
  2747. DOpen = TRUE.
  2748. END PROCEDURE.
  2749. /* _UIB-CODE-BLOCK-END */
  2750. &ANALYZE-RESUME
  2751. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ZAHLUNGSKONDITION C-Win
  2752. PROCEDURE ZAHLUNGSKONDITION :
  2753. /*------------------------------------------------------------------------------
  2754. Purpose:
  2755. Parameters: <none>
  2756. Notes:
  2757. ------------------------------------------------------------------------------*/
  2758. FIND Kondi USE-INDEX Kondi-k1
  2759. WHERE Kondi.Kond = BSavko.Kond
  2760. AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  2761. IF AVAILABLE Kondi THEN DO:
  2762. SUBSTRING(VZeile,001) = Kondi.KoText.
  2763. IF Kondi.Skonto[01] <> 0 THEN DO:
  2764. Rundbetr = BSavko.Sk_Ber * Kondi.Skonto[01] / 100.
  2765. IF DebInkl THEN DO:
  2766. Rundcode = 1.
  2767. RUN "v8/runden.p".
  2768. END.
  2769. SUBSTRING(VZeile,082) = STRING(Rundbetr,"->>,>>9.99").
  2770. END.
  2771. END.
  2772. ELSE DO:
  2773. SUBSTRING(VZeile,001) = FILL('?', 30).
  2774. END.
  2775. { v8/putstream.i "2" }
  2776. END PROCEDURE.
  2777. /* _UIB-CODE-BLOCK-END */
  2778. &ANALYZE-RESUME