c-p_oswald - Kopie.w 145 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260
  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(250)" 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 FakArt AS INT NO-UNDO.
  55. DEF VAR VRabText AS CHAR FORMAT "x(20)" NO-UNDO.
  56. DEF VAR VZusText AS CHAR FORMAT "x(20)" NO-UNDO.
  57. DEF VAR VEpzText AS CHAR FORMAT "x(20)" NO-UNDO.
  58. DEF VAR XVersand AS CHAR NO-UNDO.
  59. DEF VAR XAblade AS CHAR NO-UNDO.
  60. DEF VAR XChauffeur AS CHAR NO-UNDO.
  61. DEF VAR XAuf_Text LIKE Aufko.Auf_Text NO-UNDO.
  62. DEF VAR XTelnr LIKE Aufko.Auf_Text NO-UNDO.
  63. DEF VAR VTemp AS CHAR FORMAT "x(100)" NO-UNDO.
  64. DEF VAR FPreis AS LOG NO-UNDO.
  65. DEF VAR FBetrag AS LOG NO-UNDO.
  66. DEF VAR FRabatt AS LOG NO-UNDO.
  67. DEF VAR FUeber AS LOG NO-UNDO.
  68. DEF VAR FSamm AS LOG NO-UNDO.
  69. DEF VAR VTabTexte LIKE TabTexte.Inhalt NO-UNDO.
  70. DEF VAR VDokArt AS CHAR NO-UNDO.
  71. DEF VAR VKopfArt AS CHAR NO-UNDO.
  72. DEF VAR LiefAdr AS CHAR NO-UNDO.
  73. DEF VAR Laser AS LOG NO-UNDO.
  74. DEF VAR Schacht AS INT NO-UNDO.
  75. DEF VAR Schacht1 AS CHAR NO-UNDO.
  76. DEF VAR Schacht2 AS CHAR NO-UNDO.
  77. DEF VAR Schacht3 AS CHAR NO-UNDO.
  78. DEF VAR Schacht4 AS CHAR NO-UNDO.
  79. DEF VAR cWag AS CHAR INIT '-' NO-UNDO.
  80. DEF VAR cSenk AS CHAR INIT '|' NO-UNDO.
  81. DEF VAR cPlus AS CHAR INIT '+' NO-UNDO.
  82. DEF VAR DruckInit AS CHAR NO-UNDO.
  83. DEF VAR SchriftInit AS CHAR NO-UNDO.
  84. DEF VAR OCRBInit AS CHAR NO-UNDO.
  85. DEF VAR cUSER AS CHAR NO-UNDO.
  86. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  87. DEF VAR ExZeile AS INT NO-UNDO.
  88. DEF VAR FormText AS CHAR FORMAT "x(80)" EXTENT 40.
  89. DEF BUFFER BAufko FOR Aufko.
  90. DEF BUFFER XAufko FOR Aufko.
  91. DEF BUFFER BAufze FOR Aufze.
  92. DEF BUFFER BAufGebKo FOR AufGebKo.
  93. DEF BUFFER FDebst FOR Debst.
  94. DEF BUFFER LDebst FOR Debst.
  95. DEF BUFFER BTabel FOR Tabel.
  96. DEF BUFFER DTabel FOR Tabel.
  97. DEF BUFFER TFakart FOR Tabel.
  98. DEF BUFFER TAufsta FOR Tabel.
  99. DEF BUFFER BAdresse FOR Adresse.
  100. DEF VAR DebInkl AS LOG NO-UNDO.
  101. DEF VAR VWg_Grp AS INT INIT 0 NO-UNDO.
  102. DEF VAR VProd_Grp AS INT INIT 0 NO-UNDO.
  103. DEF VAR VArt_Grp AS INT INIT 0 NO-UNDO.
  104. DEF VAR AArtnr AS INT INIT 0 NO-UNDO.
  105. DEF VAR AInhalt AS INT INIT 0 NO-UNDO.
  106. DEF VAR AJahr AS INT INIT 0 NO-UNDO.
  107. DEF TEMP-TABLE TAufze FIELD Aufnr AS INT
  108. FIELD Sort1 AS CHAR
  109. FIELD Sort2 AS CHAR
  110. FIELD Sort3 AS CHAR
  111. FIELD Artnr AS INT
  112. FIELD Inhalt AS INT
  113. FIELD Jahr AS INT
  114. FIELD Pos AS INT
  115. FIELD Zeile AS RECID
  116. FIELD Preis AS DEC DECIMALS 4
  117. FIELD Aktion AS LOG.
  118. DEF TEMP-TABLE TGebKto FIELD Sort_Cd AS CHAR
  119. FIELD Geb_Cd AS CHAR
  120. FIELD Bez AS CHAR
  121. FIELD Preis AS DEC
  122. FIELD A_Anz AS DEC
  123. FIELD A_Betrag AS DEC
  124. FIELD E_Anz AS DEC
  125. FIELD E_Betrag AS DEC
  126. FIELD MWST_Art AS INT
  127. FIELD MWST_Cd AS INT.
  128. DEF TEMP-TABLE TRabSumm FIELD Rab_Summ AS INT
  129. FIELD Bez AS CHAR
  130. FIELD F_Rab_Art AS INT
  131. FIELD F_Wert AS DEC DECIMALS 4
  132. FIELD A_Rab_Art AS INT
  133. FIELD A_Wert AS DEC DECIMALS 4
  134. FIELD Auf_Rab AS DEC DECIMALS 4
  135. FIELD Abh_Rab AS DEC DECIMALS 4.
  136. DEF TEMP-TABLE TUmsGrp FIELD Ums_Grp AS INT
  137. FIELD Mwst AS DEC DECIMALS 2
  138. FIELD Bez AS CHAR
  139. FIELD Ums_Betr AS DEC DECIMALS 4.
  140. DEF TEMP-TABLE TGebuehr FIELD MWST_Cd AS INT
  141. FIELD Anz AS DEC
  142. FIELD Betrag AS DEC.
  143. DEF TEMP-TABLE SammFak FIELD Knr AS INT
  144. FIELD Samm_Nr AS INT
  145. FIELD Aufnr AS INT
  146. FIELD RID AS RECID.
  147. DEF TEMP-TABLE TSpeRab FIELD Rab_Grp AS INT
  148. FIELD Auf_Betr AS DEC DECIMALS 4.
  149. /* ---------- Globale Variablen ---------------------------------- */
  150. { v8/globvar.i" " " " "SHARED" }
  151. { v8/debivar.i " " " " "SHARED" }
  152. { v8/artivar.i " " " " "SHARED" }
  153. { v8/contvar.i " " " " "SHARED" }
  154. { v8/listtitv.i "NEW" "SHARED" }
  155. { v8/aufkototv.i "NEW" "SHARED" }
  156. /* _UIB-CODE-BLOCK-END */
  157. &ANALYZE-RESUME
  158. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  159. /* ******************** Preprocessor Definitions ******************** */
  160. &Scoped-define PROCEDURE-TYPE Window
  161. &Scoped-define DB-AWARE no
  162. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  163. &Scoped-define FRAME-NAME DEFAULT-FRAME
  164. /* Standard List Definitions */
  165. &Scoped-Define ENABLED-OBJECTS RECT-1 F_Drucker E_Adresse F_Schrift F_Tzz ~
  166. F_Kzz F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite
  167. &Scoped-Define DISPLAYED-OBJECTS F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz ~
  168. F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite
  169. /* Custom List Definitions */
  170. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  171. &Scoped-define List-1 F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz ~
  172. F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite
  173. /* _UIB-PREPROCESSOR-BLOCK-END */
  174. &ANALYZE-RESUME
  175. /* *********************** Control Definitions ********************** */
  176. /* Define the widget handle for the window */
  177. DEFINE VAR C-Win AS WIDGET-HANDLE NO-UNDO.
  178. /* Definitions of the field level widgets */
  179. DEFINE VARIABLE E_Adresse AS CHARACTER
  180. VIEW-AS EDITOR MAX-CHARS 1000
  181. SIZE 47.6 BY 6.19
  182. BGCOLOR 15 FONT 6 NO-UNDO.
  183. DEFINE VARIABLE F_Aufnr AS INTEGER FORMAT "zzzzzz9":U INITIAL 0
  184. LABEL "Auftragsnummer"
  185. VIEW-AS FILL-IN NATIVE
  186. SIZE 14 BY 1
  187. BGCOLOR 15 NO-UNDO.
  188. DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U
  189. LABEL "Fakturadatum"
  190. VIEW-AS FILL-IN NATIVE
  191. SIZE 19.6 BY 1
  192. BGCOLOR 15 NO-UNDO.
  193. DEFINE VARIABLE F_Dokart AS CHARACTER FORMAT "x(50)":U
  194. LABEL "Dokumentart"
  195. VIEW-AS FILL-IN NATIVE
  196. SIZE 29.2 BY 1
  197. BGCOLOR 15 NO-UNDO.
  198. DEFINE VARIABLE F_Drucker AS CHARACTER FORMAT "x(50)":U
  199. LABEL "Drucker"
  200. VIEW-AS FILL-IN NATIVE
  201. SIZE 50 BY 1
  202. BGCOLOR 15 NO-UNDO.
  203. DEFINE VARIABLE F_Faknr AS INTEGER FORMAT "zzzzzzz":U INITIAL 0
  204. LABEL "Fakturanummer"
  205. VIEW-AS FILL-IN NATIVE
  206. SIZE 14 BY 1
  207. BGCOLOR 15 NO-UNDO.
  208. DEFINE VARIABLE F_Fzz AS INTEGER FORMAT "zz9":U INITIAL 0
  209. LABEL "Leere Fusszeilen"
  210. VIEW-AS FILL-IN NATIVE
  211. SIZE 7 BY 1
  212. BGCOLOR 15 NO-UNDO.
  213. DEFINE VARIABLE F_KOPIE AS INTEGER FORMAT "zz9":U INITIAL 0
  214. LABEL "Anz. Kopien"
  215. VIEW-AS FILL-IN NATIVE
  216. SIZE 7 BY 1
  217. BGCOLOR 15 NO-UNDO.
  218. DEFINE VARIABLE F_Kzz AS INTEGER FORMAT "zz9":U INITIAL 0
  219. LABEL "Leere Kopfzeilen"
  220. VIEW-AS FILL-IN NATIVE
  221. SIZE 7 BY 1
  222. BGCOLOR 15 NO-UNDO.
  223. DEFINE VARIABLE F_Schrift AS CHARACTER FORMAT "x(50)":U
  224. LABEL "Schriftbild"
  225. VIEW-AS FILL-IN NATIVE
  226. SIZE 50 BY 1
  227. BGCOLOR 15 NO-UNDO.
  228. DEFINE VARIABLE F_Seite AS INTEGER FORMAT "zz9":U INITIAL 0
  229. LABEL "Seite"
  230. VIEW-AS FILL-IN NATIVE
  231. SIZE 7 BY 1
  232. BGCOLOR 15 NO-UNDO.
  233. DEFINE VARIABLE F_Tzz AS INTEGER FORMAT "zz9":U INITIAL 0
  234. LABEL "Total Zeilen"
  235. VIEW-AS FILL-IN NATIVE
  236. SIZE 7 BY 1
  237. BGCOLOR 15 NO-UNDO.
  238. DEFINE RECTANGLE RECT-1
  239. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  240. SIZE 126 BY 10.95.
  241. /* ************************ Frame Definitions *********************** */
  242. DEFINE FRAME DEFAULT-FRAME
  243. F_Drucker AT ROW 2 COL 19 COLON-ALIGNED
  244. E_Adresse AT ROW 2 COL 76.6 NO-LABEL
  245. F_Schrift AT ROW 3 COL 19 COLON-ALIGNED
  246. F_Tzz AT ROW 4 COL 19 COLON-ALIGNED
  247. F_Kzz AT ROW 5 COL 19 COLON-ALIGNED
  248. F_Fzz AT ROW 6 COL 19 COLON-ALIGNED
  249. F_Aufnr AT ROW 7 COL 19 COLON-ALIGNED
  250. F_KOPIE AT ROW 7 COL 63.4 COLON-ALIGNED
  251. F_Faknr AT ROW 8 COL 19 COLON-ALIGNED
  252. F_Datum AT ROW 9 COL 19 COLON-ALIGNED
  253. F_Dokart AT ROW 9 COL 74.6 COLON-ALIGNED
  254. F_Seite AT ROW 9 COL 115.2 COLON-ALIGNED
  255. RECT-1 AT ROW 1.24 COL 2
  256. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  257. SIDE-LABELS NO-UNDERLINE THREE-D
  258. AT COL 1 ROW 1
  259. SIZE 128.2 BY 13.86.
  260. /* *********************** Procedure Settings ************************ */
  261. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  262. /* Settings for THIS-PROCEDURE
  263. Type: Window
  264. Allow: Basic,Browse,DB-Fields,Window,Query
  265. Other Settings: COMPILE
  266. Temp-Tables and Buffers:
  267. TABLE: XTermOut T "NEW SHARED" NO-UNDO AnaDat TermOut
  268. END-TABLES.
  269. */
  270. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  271. /* ************************* Create Window ************************** */
  272. &ANALYZE-SUSPEND _CREATE-WINDOW
  273. IF SESSION:DISPLAY-TYPE = "GUI":U THEN
  274. CREATE WINDOW C-Win ASSIGN
  275. HIDDEN = YES
  276. TITLE = "Drucken von Auftragsdokumenten"
  277. HEIGHT = 11.43
  278. WIDTH = 128.2
  279. MAX-HEIGHT = 26.57
  280. MAX-WIDTH = 203
  281. VIRTUAL-HEIGHT = 26.57
  282. VIRTUAL-WIDTH = 203
  283. RESIZE = YES
  284. SCROLL-BARS = NO
  285. STATUS-AREA = NO
  286. BGCOLOR = ?
  287. FGCOLOR = ?
  288. KEEP-FRAME-Z-ORDER = YES
  289. THREE-D = YES
  290. MESSAGE-AREA = NO
  291. SENSITIVE = YES.
  292. ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
  293. /* END WINDOW DEFINITION */
  294. &ANALYZE-RESUME
  295. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  296. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  297. /* SETTINGS FOR WINDOW C-Win
  298. VISIBLE,,RUN-PERSISTENT */
  299. /* SETTINGS FOR FRAME DEFAULT-FRAME
  300. FRAME-NAME */
  301. /* SETTINGS FOR EDITOR E_Adresse IN FRAME DEFAULT-FRAME
  302. 1 */
  303. ASSIGN
  304. E_Adresse:READ-ONLY IN FRAME DEFAULT-FRAME = TRUE.
  305. /* SETTINGS FOR FILL-IN F_Aufnr IN FRAME DEFAULT-FRAME
  306. 1 */
  307. /* SETTINGS FOR FILL-IN F_Datum IN FRAME DEFAULT-FRAME
  308. 1 */
  309. /* SETTINGS FOR FILL-IN F_Dokart IN FRAME DEFAULT-FRAME
  310. 1 */
  311. /* SETTINGS FOR FILL-IN F_Drucker IN FRAME DEFAULT-FRAME
  312. 1 */
  313. /* SETTINGS FOR FILL-IN F_Faknr IN FRAME DEFAULT-FRAME
  314. 1 */
  315. /* SETTINGS FOR FILL-IN F_Fzz IN FRAME DEFAULT-FRAME
  316. 1 */
  317. /* SETTINGS FOR FILL-IN F_KOPIE IN FRAME DEFAULT-FRAME
  318. 1 */
  319. /* SETTINGS FOR FILL-IN F_Kzz IN FRAME DEFAULT-FRAME
  320. 1 */
  321. /* SETTINGS FOR FILL-IN F_Schrift IN FRAME DEFAULT-FRAME
  322. 1 */
  323. /* SETTINGS FOR FILL-IN F_Seite IN FRAME DEFAULT-FRAME
  324. 1 */
  325. /* SETTINGS FOR FILL-IN F_Tzz IN FRAME DEFAULT-FRAME
  326. 1 */
  327. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win)
  328. THEN C-Win:HIDDEN = NO.
  329. /* _RUN-TIME-ATTRIBUTES-END */
  330. &ANALYZE-RESUME
  331. /* ************************ Control Triggers ************************ */
  332. &Scoped-define SELF-NAME C-Win
  333. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win
  334. ON END-ERROR OF C-Win /* Drucken von Auftragsdokumenten */
  335. OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
  336. /* This case occurs when the user presses the "Esc" key.
  337. In a persistently run window, just ignore this. If we did not, the
  338. application would exit. */
  339. IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
  340. END.
  341. /* _UIB-CODE-BLOCK-END */
  342. &ANALYZE-RESUME
  343. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win
  344. ON WINDOW-CLOSE OF C-Win /* Drucken von Auftragsdokumenten */
  345. DO:
  346. /* This event will close the window and terminate the procedure. */
  347. APPLY "CLOSE":U TO THIS-PROCEDURE.
  348. RETURN NO-APPLY.
  349. END.
  350. /* _UIB-CODE-BLOCK-END */
  351. &ANALYZE-RESUME
  352. &UNDEFINE SELF-NAME
  353. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK C-Win
  354. /* *************************** Main Block *************************** */
  355. /* Set CURRENT-WINDOW: this will parent dialog-boxes and frames. */
  356. ASSIGN CURRENT-WINDOW = {&WINDOW-NAME}
  357. THIS-PROCEDURE:CURRENT-WINDOW = {&WINDOW-NAME}.
  358. Laser = FALSE.
  359. Schacht1 = CHR(27) + '&l4H'.
  360. Schacht2 = CHR(27) + '&l1H'.
  361. Schacht3 = CHR(27) + '&l5H'.
  362. Schacht4 = CHR(27) + '&l3H'.
  363. Druckinit = CHR(27) + 'E'
  364. + CHR(27) + '&l0O'
  365. + CHR(27) + '&k2G'
  366. + CHR(27) + '&l6d26a70P'
  367. + CHR(27) + '9'
  368. + CHR(27) + '&a0L'
  369. + CHR(27) + '&l0E'.
  370. SchriftInit = CHR(27) + '(s4102t13h0b0s0P'
  371. + CHR(27) + '(10U'.
  372. OCRBInit = CHR(27) + '(1O' + CHR(27) + '(s10h0b0s0p110T'.
  373. ON CLOSE OF THIS-PROCEDURE RUN disable_UI.
  374. PAUSE 0 BEFORE-HIDE.
  375. MAIN-BLOCK:
  376. DO ON ERROR UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK
  377. ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK:
  378. RUN enable_UI.
  379. FDrucken = TRUE.
  380. cUser = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR.
  381. VERARBEITEN:
  382. DO WHILE FDrucken:
  383. FIND FIRST Tabel USE-INDEX Tabel-k1
  384. WHERE Tabel.Firma = GVFirma
  385. AND Tabel.RecArt = 'AUFDRUCK'
  386. AND Tabel.CodeC = cUSER
  387. AND Tabel.Bez1 = '' NO-LOCK NO-ERROR.
  388. IF NOT AVAILABLE Tabel THEN DO:
  389. FDrucken = FALSE.
  390. NEXT.
  391. END.
  392. TRecid = RECID(Tabel).
  393. REPEAT TRANSACTION:
  394. FIND BTabel WHERE RECID(BTabel) = TRecid
  395. EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
  396. IF AVAILABLE BTabel THEN DO:
  397. BTabel.Bez1 = 'A'.
  398. RELEASE BTabel.
  399. LEAVE.
  400. END.
  401. IF LOCKED BTabel THEN NEXT.
  402. TRecid = 0.
  403. LEAVE.
  404. END.
  405. IF TRecid = 0 THEN NEXT.
  406. FIND Tabel WHERE RECID(Tabel) = TRecid NO-LOCK.
  407. RUN DRUCKEN.
  408. REPEAT TRANSACTION:
  409. FIND BTabel WHERE RECID(BTabel) = TRecid.
  410. DELETE BTabel.
  411. RELEASE BTabel.
  412. LEAVE.
  413. END.
  414. END.
  415. /*
  416. IF NOT THIS-PROCEDURE:PERSISTENT THEN WAIT-FOR CLOSE OF THIS-PROCEDURE.
  417. */
  418. APPLY 'CLOSE' TO THIS-PROCEDURE.
  419. END.
  420. /* _UIB-CODE-BLOCK-END */
  421. &ANALYZE-RESUME
  422. /* ********************** Internal Procedures *********************** */
  423. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ABLADEVORSCHRIFT C-Win
  424. PROCEDURE ABLADEVORSCHRIFT :
  425. /*------------------------------------------------------------------------------
  426. Purpose:
  427. Parameters: <none>
  428. Notes:
  429. ------------------------------------------------------------------------------*/
  430. XAblade = ''.
  431. FIND Tabel USE-INDEX Tabel-k1
  432. WHERE Tabel.Firma = GVFirma
  433. AND Tabel.RecArt = 'ABLAD'
  434. AND Tabel.CodeC = ''
  435. AND Tabel.CodeI = BAufko.Ablad_Vor
  436. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  437. IF NOT AVAILABLE tabel THEN DO:
  438. XAblade = BAufko.Ablad_Vor_Text.
  439. RETURN.
  440. END.
  441. IF LENGTH(Tabel.Bez1) > 4 THEN XAblade = Tabel.Bez1.
  442. IF BAufko.Ablad_Vor_Text <> '' THEN DO:
  443. IF XAblade <> '' THEN XAblade = XAblade + " / ".
  444. XAblade = BAufko.Ablad_Vor_Text.
  445. END.
  446. END PROCEDURE.
  447. /* _UIB-CODE-BLOCK-END */
  448. &ANALYZE-RESUME
  449. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE C-Win
  450. PROCEDURE ARTIKELZEILE :
  451. /*------------------------------------------------------------------------------
  452. Purpose:
  453. Parameters: <none>
  454. Notes:
  455. ------------------------------------------------------------------------------*/
  456. DEF VAR lInkl AS LOG NO-UNDO.
  457. VZeile = RZeile.
  458. DO WHILE Aufze.Artnr = 0:
  459. SUBSTRING(VZeile,036) = STRING(Aufze.Bez1,"x(30)").
  460. { v8/putstream.i "1" }
  461. IF Aufze.Bez2 <> '' THEN DO:
  462. VZeile = RZeile.
  463. SUBSTRING(VZeile,036) = STRING(Aufze.Bez2,"x(30)").
  464. { v8/putstream.i "1" }
  465. END.
  466. RETURN.
  467. END.
  468. FIND Artst OF Aufze NO-LOCK.
  469. FIND FIRST Artbez NO-LOCK OF Artst NO-ERROR.
  470. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  471. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
  472. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  473. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  474. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  475. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  476. VZeile = RZeile.
  477. SUBSTRING(VZeile,001) = STRING(Aufze.Artnr,"999999").
  478. IF Aufze.GGeb_Me <> 0 THEN DO:
  479. SUBSTRING(VZeile,008) = STRING(Aufze.GGeb_Me ,"->9").
  480. SUBSTRING(VZeile,012) = STRING(GGebinde.KBez ,"x(08)").
  481. { v8/putstream.i "1" }
  482. VZeile = RZeile.
  483. END.
  484. IF Aufze.VGeb_Me <> 0 THEN DO:
  485. SUBSTRING(VZeile,008) = STRING(Aufze.VGeb_Me ,"->9").
  486. SUBSTRING(VZeile,012) = STRING(VGebinde.KBez ,"x(08)").
  487. END.
  488. SUBSTRING(VZeile,021) = STRING(Aufze.MGeli ,"->>>9").
  489. SUBSTRING(VZeile,027) = STRING(KGebinde.KBez ,"x(08)").
  490. SUBSTRING(VZeile,036) = STRING(Aufze.Bez1 ,"x(30)").
  491. IF Aufze.Alk_Gehalt <> 0 THEN DO:
  492. SUBSTRING(VZeile,066) = STRING(Aufze.Alk_Gehalt,"z9.9%").
  493. END.
  494. IF Aufze.Jahr > 9 THEN DO:
  495. SUBSTRING(VZeile,072) = SUBSTRING(STRING(Aufze.Jahr,"9999"),03).
  496. END.
  497. IF FPreis THEN DO:
  498. IF Aufze.Preis > 999.99 THEN SUBSTRING(VZeile,075) = STRING(Aufze.Preis,"zzz9.99").
  499. ELSE SUBSTRING(VZeile,075) = STRING(Aufze.Preis,"zz9.999").
  500. END.
  501. IF FBetrag THEN DO:
  502. SUBSTRING(VZeile,083) = STRING(Aufze.Bru_Betr ,"->>,>>9.99").
  503. SUBSTRING(VZeile,094) = STRING(Aufze.WuCd ,"z9").
  504. END.
  505. { v8/putstream.i "1" }
  506. IF Artbez.Bez2_Druck THEN DO:
  507. IF Aufze.Bez2 <> '' THEN DO:
  508. VZeile = RZeile.
  509. SUBSTRING(VZeile,036) = STRING(Aufze.Bez2,"x(30)").
  510. { v8/putstream.i "1" }
  511. END.
  512. END.
  513. ELSE DO:
  514. IF Aufze.Bez2 <> '' AND
  515. Aufze.Bez2 <> Artbez.Bez2 THEN DO:
  516. VZeile = RZeile.
  517. SUBSTRING(VZeile,036) = STRING(Aufze.Bez2,"x(30)").
  518. { v8/putstream.i "1" }
  519. END.
  520. END.
  521. IF Aufze.Aktion THEN DO:
  522. VZeile = RZeile.
  523. SUBSTRING(VZeile,036) = STRING(Aufze.Aktion_Text,"x(30)").
  524. { v8/putstream.i "1" }
  525. END.
  526. DO WHILE FBetrag:
  527. IF Aufze.Rab_Betr = 0 THEN LEAVE.
  528. VZeile = RZeile.
  529. RabWert = ABSOLUTE(Aufze.Rab_Wert).
  530. IF Aufze.Rab_Art = 3 THEN RabText = VEpzText.
  531. ELSE DO:
  532. IF Aufze.Rab_Betr < 0 THEN RabText = VZusText.
  533. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText.
  534. END.
  535. SUBSTRING(VZeile,036) = TRIM(RabText).
  536. IF Aufze.Rab_Art = 1
  537. THEN SUBSTRING(VZeile,055) = STRING(RabWert,"->9.9 %").
  538. IF Aufze.Rab_Art = 2 OR
  539. Aufze.Rab_Art = 3
  540. THEN SUBSTRING(VZeile,055) = STRING(RabWert,"-9.99 Fr.").
  541. SUBSTRING(VZeile,083) = STRING(- Aufze.Rab_Betr ,"->>,>>9.99").
  542. { v8/putstream.i "1" }
  543. LEAVE.
  544. END.
  545. DO WHILE FBetrag:
  546. IF Aufze.Zus_Betr = 0 THEN LEAVE.
  547. VZeile = RZeile.
  548. RabWert = ABSOLUTE(Aufze.Zus_Wert).
  549. IF Aufze.Zus_Art = 3 THEN RabText = VEpzText.
  550. ELSE DO:
  551. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText.
  552. IF Aufze.Zus_Betr < 0 THEN RabText = VRabText.
  553. END.
  554. SUBSTRING(VZeile,036) = TRIM(RabText).
  555. IF Aufze.Zus_Art = 1
  556. THEN SUBSTRING(VZeile,055) = STRING(RabWert,"->9.9 %").
  557. IF Aufze.Zus_Art = 2 OR
  558. Aufze.Zus_Art = 3
  559. THEN SUBSTRING(VZeile,055) = STRING(RabWert,"-9.99 Fr.").
  560. SUBSTRING(VZeile,083) = STRING(+ Aufze.Zus_Betr ,"->>,>>9.99").
  561. { v8/putstream.i "1" }
  562. LEAVE.
  563. END.
  564. /* ---- Summengruppen-Total -------------------------------------------- */
  565. IF Aufze.Rab_Su_Grp <> 0 THEN DO:
  566. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR.
  567. IF AVAILABLE TRabSumm THEN DO:
  568. TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab.
  569. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab.
  570. END.
  571. END.
  572. /* ---- Warengruppen-Totale -------------------------------------------- */
  573. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp
  574. AND TUmsGrp.MWst = Aufze.MWSt% NO-ERROR.
  575. IF NOT AVAILABLE TUmsGrp THEN DO:
  576. FIND WarenGrp USE-INDEX WarenGrp-k1
  577. WHERE WarenGrp.Firma = GVFirma
  578. AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR.
  579. CREATE TUmsGrp.
  580. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp
  581. TUmsGrp.Mwst = Aufze.MWSt%.
  582. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
  583. ELSE TUmsGrp.Bez = "??????????".
  584. END.
  585. FIND FIRST Wust NO-LOCK USE-INDEX Wust-k2
  586. WHERE Wust.WuCd = Aufze.WuCd NO-ERROR.
  587. IF NOT AVAILABLE Wust THEN lInkl = FALSE.
  588. ELSE lInkl = Wust.Incl.
  589. IF NOT lInkl THEN DO:
  590. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
  591. + Aufze.Net_Betr
  592. - Aufze.Auf_Rab
  593. - Aufze.Abh_Rab.
  594. END.
  595. ELSE DO:
  596. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
  597. + ((Aufze.Net_Betr
  598. - Aufze.Auf_Rab
  599. - Aufze.Abh_Rab) * 100 / (100 + Aufze.Mwst%)).
  600. END.
  601. END PROCEDURE.
  602. /* _UIB-CODE-BLOCK-END */
  603. &ANALYZE-RESUME
  604. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CHAUFFEUR C-Win
  605. PROCEDURE CHAUFFEUR :
  606. /*------------------------------------------------------------------------------
  607. Purpose:
  608. Parameters: <none>
  609. Notes:
  610. ------------------------------------------------------------------------------*/
  611. XChauffeur = ''.
  612. FIND Tabel USE-INDEX Tabel-k1
  613. WHERE Tabel.Firma = GVFirma
  614. AND Tabel.RecArt = 'FAHRER'
  615. AND Tabel.CodeC = ''
  616. AND Tabel.CodeI = BAufko.Fahrer
  617. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  618. IF AVAILABLE Tabel THEN XChauffeur = Tabel.Bez1.
  619. END PROCEDURE.
  620. /* _UIB-CODE-BLOCK-END */
  621. &ANALYZE-RESUME
  622. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI C-Win _DEFAULT-DISABLE
  623. PROCEDURE disable_UI :
  624. /*------------------------------------------------------------------------------
  625. Purpose: DISABLE the User Interface
  626. Parameters: <none>
  627. Notes: Here we clean-up the user-interface by deleting
  628. dynamic widgets we have created and/or hide
  629. frames. This procedure is usually called when
  630. we are ready to "clean-up" after running.
  631. ------------------------------------------------------------------------------*/
  632. /* Delete the WINDOW we created */
  633. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win)
  634. THEN DELETE WIDGET C-Win.
  635. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  636. END PROCEDURE.
  637. /* _UIB-CODE-BLOCK-END */
  638. &ANALYZE-RESUME
  639. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE C-Win
  640. PROCEDURE DRUCKAUSGABE :
  641. /*------------------------------------------------------------------------------
  642. Purpose:
  643. Parameters: <none>
  644. Notes:
  645. ------------------------------------------------------------------------------*/
  646. DEF VAR AnzKopien AS INT NO-UNDO.
  647. DEF VAR sRecid AS RECID NO-UNDO.
  648. DEF VAR iSize AS INT NO-UNDO.
  649. IF BAufko.AlsOfferte THEN RETURN.
  650. AnzKopien = F_Kopie.
  651. IF AnzKopien = 0 THEN AnzKopien = 1.
  652. DO VCopy = 1 TO AnzKopien:
  653. sRecid = RECID(BSchrift).
  654. Schacht = BLiDruck.Schacht.
  655. iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, VTemp ,
  656. RECID(BSchrift),
  657. ? ,
  658. 240 , /* Blockgrösse */
  659. 'ibm850' ,
  660. 1 ). /* AnzahlKopien */
  661. IF iSize = 0 THEN DO:
  662. MESSAGE 'Druckvorgang gescheitert !!! '
  663. VIEW-AS ALERT-BOX ERROR.
  664. END.
  665. END.
  666. END PROCEDURE.
  667. /* _UIB-CODE-BLOCK-END */
  668. &ANALYZE-RESUME
  669. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN C-Win
  670. PROCEDURE DRUCKEN :
  671. /*------------------------------------------------------------------------------
  672. Purpose:
  673. Parameters: <none>
  674. Notes:
  675. ------------------------------------------------------------------------------*/
  676. DO WITH FRAME {&FRAME-NAME}:
  677. DEF VAR XFakArt AS INT NO-UNDO.
  678. DEF VAR XAufSta AS INT NO-UNDO.
  679. DEF VAR ARecid AS RECID NO-UNDO.
  680. DEF VAR BRecid AS RECID NO-UNDO.
  681. DEF VAR CRecid AS RECID NO-UNDO.
  682. ARecid = Tabel.Int_1.
  683. BRecid = Tabel.Int_2.
  684. CRecid = Tabel.Int_3.
  685. VBesr = Tabel.Dec_1.
  686. Schacht = Tabel.Dec_3.
  687. VDokArt = Tabel.Bez2.
  688. F_DokArt = Tabel.Bez2.
  689. IF Schacht > 0 THEN Laser = TRUE.
  690. ELSE Laser = FALSE.
  691. IF Laser THEN DO:
  692. cWag = CHR(142).
  693. cSenk = CHR(131).
  694. cPlus = CHR(143).
  695. END.
  696. FIND BSteuer WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR.
  697. FIND BListen WHERE RECID(BListen) = ARecid NO-LOCK NO-ERROR.
  698. FIND BLiDruck WHERE RECID(BLiDruck) = BRecid NO-LOCK NO-ERROR.
  699. FIND BAufko WHERE RECID(BAufko) = CRecid NO-LOCK NO-ERROR.
  700. IF NOT AVAILABLE BAufko THEN RETURN.
  701. IF BAufko.AlsOfferte THEN DO:
  702. ASSIGN F_DokArt = 'EXCEL_OFFERTE'.
  703. END.
  704. F_Aufnr = BAufko.Aufnr.
  705. F_Faknr = BAufko.Faknr.
  706. F_Datum = BAufko.Fak_Datum.
  707. IF F_Datum = ? THEN F_Datum = TODAY.
  708. IF BAufko.AlsOfferte THEN VDokArt = 'EXCEL_OFFERTE'.
  709. FDatum = F_Datum.
  710. VSort = BListen.Sort.
  711. F_Drucker = BLiDruck.ListDru.
  712. F_Schrift = BLiDruck.ListBild.
  713. F_TZZ = BLiDruck.Listtzz.
  714. F_KZZ = BLiDruck.Listkzz.
  715. F_FZZ = BLiDruck.Listfzz.
  716. F_KOPIE = BLiDruck.ListCopy.
  717. FIND TFakart USE-INDEX Tabel-k1
  718. WHERE TFakart.Firma = GVFirma
  719. AND TFakart.RecArt = 'FAKART'
  720. AND TFakart.CodeC = ''
  721. AND TFakart.CodeI = BAufko.Fak_Art
  722. AND TFakart.Sprcd = 1 NO-LOCK NO-ERROR.
  723. F_Dokart = TFakart.Bez1.
  724. FIND TAufsta USE-INDEX Tabel-k1
  725. WHERE TAufsta.Firma = GVFirma
  726. AND TAufsta.RecArt = 'AUFSTATUS'
  727. AND TAufsta.CodeC = ''
  728. AND TAufsta.CodeI = BAufko.Auf_Sta
  729. AND TAufsta.Sprcd = 1 NO-LOCK NO-ERROR.
  730. FIND Adresse USE-INDEX Adresse-k1
  731. WHERE Adresse.Firma = AdFirma
  732. AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  733. E_Adresse = ''.
  734. IF BAufko.Adresse[05] <> '' THEN DO:
  735. E_Adresse = CHR(10)
  736. + CHR(10)
  737. + BAufko.Adresse[01] + CHR(10)
  738. + BAufko.Adresse[02] + CHR(10)
  739. + BAufko.Adresse[03] + CHR(10)
  740. + BAufko.Adresse[04] + CHR(10)
  741. + BAufko.Adresse[05].
  742. END.
  743. ELSE DO:
  744. E_Adresse = Adresse.Anschrift[05] + CHR(10) +
  745. Adresse.Anschrift[06] + CHR(10) +
  746. Adresse.Anschrift[07] + CHR(10) +
  747. Adresse.Anschrift[08] + CHR(10) +
  748. Adresse.Anschrift[09] + CHR(10) +
  749. Adresse.Anschrift[10] + CHR(10) +
  750. Adresse.Anschrift[11] + CHR(10) +
  751. Adresse.Anschrift[12].
  752. END.
  753. DISPLAY {&List-1}.
  754. F_DokArt:BGCOLOR = 14.
  755. RUN LIBILD.
  756. EMPTY TEMP-TABLE SammFak.
  757. IF BAufko.Samm_Nr <> 0 AND
  758. NOT VDokArt BEGINS 'Ruest' THEN DO:
  759. RUN SAMMELSUCHEN.
  760. END.
  761. ELSE DO:
  762. CREATE SammFak.
  763. ASSIGN SammFak.Knr = BAufko.Fak_Knr
  764. SammFak.Aufnr = BAufko.Aufnr
  765. SammFak.Samm_Nr = BAufko.Aufnr
  766. SammFak.RID = RECID(BAufko).
  767. END.
  768. VTemp = ''.
  769. IF NOT bAufko.AlsOfferte THEN RUN WORKFILE.
  770. IF DOpen = TRUE THEN OUTPUT STREAM Out_Stream TO VALUE(VTemp).
  771. FOR EACH SammFak BREAK BY SammFak.Knr
  772. BY SammFak.Samm_Nr
  773. BY SammFak.Aufnr :
  774. FIND BAufko WHERE RECID(BAufko) = SammFak.RID NO-LOCK NO-ERROR.
  775. F_Aufnr = BAufko.Aufnr.
  776. DISPLAY F_Aufnr WITH FRAME {&FRAME-NAME}.
  777. VWg_Grp = 0.
  778. VProd_Grp = 0.
  779. VArt_Grp = 0.
  780. VFak_Betr = 0.
  781. FErste = FALSE.
  782. FakArt = BAufko.Fak_Art.
  783. EMPTY TEMP-TABLE tAufze.
  784. EMPTY TEMP-TABLE tGebKto.
  785. EMPTY TEMP-TABLE tRabSumm.
  786. EMPTY TEMP-TABLE tSpeRab.
  787. EMPTY TEMP-TABLE tGebuehr.
  788. IF FIRST-OF ( SammFak.Samm_Nr ) THEN DO:
  789. EMPTY TEMP-TABLE tUmsGrp.
  790. GTWpfl = 0.
  791. GTWust = 0.
  792. GTFak_Betr = 0.
  793. GTSk_Ber = 0.
  794. SFaknr = 0.
  795. FLetzt = FALSE.
  796. FErste = TRUE.
  797. TiDruck = TRUE.
  798. VSeite = 0.
  799. END.
  800. FOR EACH BAufze USE-INDEX Aufze-k1
  801. WHERE BAufze.Firma = BAufko.Firma
  802. AND BAufze.Aufnr = BAufko.Aufnr NO-LOCK:
  803. IF BAufze.Artnr <> 0 THEN DO:
  804. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  805. AND GGebinde.Geb_Cd = BAufze.GGeb_Cd NO-LOCK NO-ERROR.
  806. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  807. AND VGebinde.Geb_Cd = BAufze.VGeb_Cd NO-LOCK NO-ERROR.
  808. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  809. AND KGebinde.Geb_Cd = BAufze.KGeb_Cd NO-LOCK NO-ERROR.
  810. END.
  811. CREATE TAufze.
  812. ASSIGN TAufze.Aufnr = BAufze.Aufnr
  813. TAufze.Artnr = BAufze.Artnr
  814. TAufze.Inhalt = BAufze.Inhalt
  815. TAufze.Jahr = BAufze.Jahr
  816. TAufze.Pos = BAufze.Pos
  817. TAufze.Zeile = RECID(BAufze)
  818. TAufze.Aktion = BAufze.Aktion
  819. TAufze.Preis = BAufze.Preis.
  820. IF BAufze.Artnr <> 0 THEN DO:
  821. FIND Artst OF BAufze NO-LOCK.
  822. VWg_Grp = Artst.Wg_Grp.
  823. VProd_Grp = Artst.Prod_Grp.
  824. VArt_Grp = Artst.Art_Grp.
  825. AArtnr = Artst.Artnr.
  826. AInhalt = Artst.Inhalt.
  827. AJahr = Artst.Jahr.
  828. END.
  829. IF VSort = 1 THEN DO:
  830. ASSIGN TAufze.Sort1 = STRING(VWg_Grp ,"999")
  831. TAufze.Sort2 = STRING(VProd_Grp ,"999")
  832. TAufze.Sort3 = STRING(VArt_Grp ,"999").
  833. END.
  834. IF BAufze.Artnr = 0 THEN DO:
  835. ASSIGN TAufze.Artnr = AArtnr
  836. TAufze.Inhalt = AInhalt
  837. TAufze.Jahr = AJahr.
  838. END.
  839. IF BAufze.Artnr = 0 THEN NEXT.
  840. /* Spezial-Auftrags-Rabatt -------------------------------------------- */
  841. IF BAufze.Auf_Sp_Grp > 0 THEN DO:
  842. FIND FIRST TSpeRab WHERE TSpeRab.Rab_Grp = BAufze.Auf_Sp_Grp NO-ERROR.
  843. IF NOT AVAILABLE TSpeRab THEN DO:
  844. CREATE TSpeRab.
  845. ASSIGN TSpeRab.Rab_Grp = BAufze.Auf_Sp_Grp.
  846. END.
  847. TSpeRab.Auf_Betr = TSpeRab.Auf_Betr + BAufze.Auf_Sp_Rab.
  848. END.
  849. /* Summengruppen-Totale ------------------------------------------------ */
  850. DO WHILE BAufze.Rab_Su_Grp > 0:
  851. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = BAufze.Rab_Su_Grp NO-ERROR.
  852. IF NOT AVAILABLE TRabSumm THEN DO:
  853. FIND FIRST RabSumm USE-INDEX RabSumm-k1
  854. WHERE RabSumm.Firma = GVFirma
  855. AND RabSumm.Rab_Summ = BAufze.Rab_Su_Grp
  856. NO-LOCK NO-ERROR.
  857. IF NOT AVAILABLE RabSumm THEN LEAVE.
  858. CREATE TRabSumm.
  859. ASSIGN TRabSumm.Rab_Summ = BAufze.Rab_Su_Grp
  860. TRabSumm.Bez = RabSumm.Bez
  861. TRabSumm.Auf_Rab = 0
  862. TRabSumm.Abh_Rab = 0.
  863. END.
  864. LEAVE.
  865. END.
  866. END.
  867. IF LAST-OF ( SammFak.Samm_Nr ) THEN DO:
  868. FLetzt = TRUE.
  869. END.
  870. RUN VALUE(VDokArt).
  871. IF NOT FLetzt THEN NEXT.
  872. END. /* FOR EACH SammFak */
  873. IF DOpen THEN OUTPUT STREAM Out_Stream CLOSE.
  874. DOpen = FALSE.
  875. RUN DRUCKAUSGABE.
  876. IF VTemp <> '' THEN OS-DELETE VALUE(VTemp).
  877. REPEAT TRANSACTION:
  878. FIND BListen WHERE RECID(BListen) = ARecid.
  879. BListen.Listfl = ''.
  880. RELEASE BListen.
  881. LEAVE.
  882. END.
  883. END. /* DO WITH FRAME */
  884. RETURN NO-APPLY.
  885. END PROCEDURE.
  886. /* _UIB-CODE-BLOCK-END */
  887. &ANALYZE-RESUME
  888. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI C-Win _DEFAULT-ENABLE
  889. PROCEDURE enable_UI :
  890. /*------------------------------------------------------------------------------
  891. Purpose: ENABLE the User Interface
  892. Parameters: <none>
  893. Notes: Here we display/view/enable the widgets in the
  894. user-interface. In addition, OPEN all queries
  895. associated with each FRAME and BROWSE.
  896. These statements here are based on the "Other
  897. Settings" section of the widget Property Sheets.
  898. ------------------------------------------------------------------------------*/
  899. DISPLAY F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_Aufnr F_KOPIE
  900. F_Faknr F_Datum F_Dokart F_Seite
  901. WITH FRAME DEFAULT-FRAME IN WINDOW C-Win.
  902. ENABLE RECT-1 F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_Aufnr F_KOPIE
  903. F_Faknr F_Datum F_Dokart F_Seite
  904. WITH FRAME DEFAULT-FRAME IN WINDOW C-Win.
  905. {&OPEN-BROWSERS-IN-QUERY-DEFAULT-FRAME}
  906. VIEW C-Win.
  907. END PROCEDURE.
  908. /* _UIB-CODE-BLOCK-END */
  909. &ANALYZE-RESUME
  910. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_ARTIKELZEILE C-Win
  911. PROCEDURE EXCEL_ARTIKELZEILE :
  912. /*------------------------------------------------------------------------------
  913. Purpose:
  914. Parameters: <none>
  915. Notes:
  916. ------------------------------------------------------------------------------*/
  917. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  918. DEF INPUT-OUTPUT PARAMETER ioExZeile AS INT NO-UNDO.
  919. DEF VAR cString AS CHAR NO-UNDO.
  920. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
  921. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  922. DO WHILE Aufze.Artnr = 0:
  923. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E',
  924. INPUT ioExZeile, INPUT Aufze.Bez1 ).
  925. IF Aufze.Bez2 = '' THEN RETURN.
  926. ioExZeile = ioExZeile + 1.
  927. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E',
  928. INPUT ioExZeile, INPUT Aufze.Bez2 ).
  929. RETURN.
  930. END.
  931. FIND Artst OF Aufze NO-LOCK.
  932. FIND FIRST Artbez OF Artst NO-LOCK.
  933. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  934. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
  935. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  936. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  937. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  938. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  939. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'A',
  940. INPUT ioExZeile, INPUT STRING(Aufze.Artnr,'999999') ).
  941. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'B',
  942. INPUT ioExZeile, INPUT KGebinde.KBez ).
  943. IF Aufze.VGeb_Me <> 0 THEN DO:
  944. cString = STRING(Aufze.VGeb_Me,'->>>')
  945. + 'x '
  946. + STRING(VGebinde.KBez,'x(10)').
  947. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  948. INPUT ioExZeile, INPUT cString ).
  949. END.
  950. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  951. INPUT ioExZeile, INPUT STRING(Aufze.MGeli,'->>>>>9') ).
  952. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E',
  953. INPUT ioExZeile, INPUT Aufze.Bez1 ).
  954. IF Aufze.Jahr > 9 THEN
  955. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'F',
  956. INPUT ioExZeile, INPUT STRING(Aufze.Jahr,'9999') ).
  957. IF Aufze.Alk_Gehalt <> 0 THEN
  958. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'G',
  959. INPUT ioExZeile, INPUT STRING(Aufze.Alk_Gehalt,'zz9.9%') ).
  960. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H',
  961. INPUT ioExZeile, INPUT STRING(Aufze.Preis,'>>>>9.99') ).
  962. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  963. INPUT ioExZeile, INPUT STRING(Aufze.Bru_Betr,'->>>>>9.99') ).
  964. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J',
  965. INPUT ioExZeile, INPUT STRING(Aufze.WuCd,'z9') ).
  966. IF Artbez.Bez2_Druck THEN DO:
  967. IF Aufze.Bez2 <> '' THEN DO:
  968. ioExZeile = ioExZeile + 1.
  969. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E',
  970. INPUT ioExZeile, INPUT Aufze.Bez2 ).
  971. END.
  972. END.
  973. ELSE DO:
  974. IF Aufze.Bez2 <> '' AND
  975. Aufze.Bez2 <> Artbez.Bez2 THEN DO:
  976. ioExZeile = ioExZeile + 1.
  977. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E',
  978. INPUT ioExZeile, INPUT Aufze.Bez2 ).
  979. END.
  980. END.
  981. IF Aufze.Aktion THEN DO:
  982. ioExZeile = ioExZeile + 1.
  983. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E',
  984. INPUT ioExZeile, INPUT Aufze.Aktion_Text ).
  985. END.
  986. DO WHILE FPreis:
  987. IF Aufze.Rab_Betr = 0 THEN LEAVE.
  988. RabWert = ABSOLUTE(Aufze.Rab_Wert).
  989. IF Aufze.Rab_Art = 3 THEN RabText = VEpzText.
  990. ELSE DO:
  991. IF Aufze.Rab_Betr < 0 THEN RabText = VZusText.
  992. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText.
  993. END.
  994. ioExZeile = ioExZeile + 1.
  995. IF Aufze.Rab_Art = 1 THEN DO:
  996. RabText = RabText + STRING(RabWert,"->>9.9 %").
  997. END.
  998. IF Aufze.Rab_Art = 2 OR
  999. Aufze.Rab_Art = 3 THEN DO:
  1000. RabText = RabText + STRING(RabWert,"->>9.9 CHF").
  1001. END.
  1002. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  1003. INPUT ioExZeile, INPUT TRIM(STRING(- Aufze.Rab_Betr ,"->>>9.99")) ).
  1004. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E',
  1005. INPUT ioExZeile, INPUT TRIM(RabText) ).
  1006. LEAVE.
  1007. END.
  1008. DO WHILE FPreis:
  1009. IF Aufze.Zus_Betr = 0 THEN LEAVE.
  1010. RabWert = ABSOLUTE(Aufze.Zus_Wert).
  1011. IF Aufze.Zus_Art = 3 THEN RabText = VEpzText.
  1012. ELSE DO:
  1013. IF Aufze.Zus_Betr < 0 THEN RabText = VRabText.
  1014. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText.
  1015. END.
  1016. ioExZeile = ioExZeile + 1.
  1017. IF Aufze.Zus_Art = 1 THEN DO:
  1018. RabText = RabText + STRING(RabWert,"->>9.9 %").
  1019. END.
  1020. IF Aufze.Zus_Art = 2 OR
  1021. Aufze.Zus_Art = 3 THEN DO:
  1022. RabText = RabText + STRING(RabWert,"->>9.9 CHF").
  1023. END.
  1024. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  1025. INPUT ioExZeile, INPUT TRIM(STRING(- Aufze.Rab_Betr ,"->>>9.99")) ).
  1026. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E',
  1027. INPUT ioExZeile, INPUT TRIM(RabText) ).
  1028. LEAVE.
  1029. END.
  1030. /* ---- Summengruppen-Total -------------------------------------------- */
  1031. IF Aufze.Rab_Su_Grp <> 0 THEN DO:
  1032. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR.
  1033. IF AVAILABLE TRabSumm THEN DO:
  1034. TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab.
  1035. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab.
  1036. END.
  1037. END.
  1038. /* ---- Warengruppen-Totale -------------------------------------------- */
  1039. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp NO-ERROR.
  1040. IF NOT AVAILABLE TUmsGrp THEN DO:
  1041. FIND WarenGrp USE-INDEX WarenGrp-k1
  1042. WHERE WarenGrp.Firma = GVFirma
  1043. AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR.
  1044. CREATE TUmsGrp.
  1045. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp.
  1046. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
  1047. ELSE TUmsGrp.Bez = "??????????".
  1048. END.
  1049. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
  1050. + Aufze.Net_Betr
  1051. - Aufze.Auf_Rab
  1052. - Aufze.Abh_Rab.
  1053. END PROCEDURE.
  1054. /* _UIB-CODE-BLOCK-END */
  1055. &ANALYZE-RESUME
  1056. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_GEBINDE_ABRECHNUNG C-Win
  1057. PROCEDURE EXCEL_GEBINDE_ABRECHNUNG :
  1058. /*------------------------------------------------------------------------------
  1059. Purpose:
  1060. Parameters: <none>
  1061. Notes:
  1062. ------------------------------------------------------------------------------*/
  1063. DEF VAR cDaten AS CHAR NO-UNDO.
  1064. DEF VAR lTotal AS LOG NO-UNDO.
  1065. DEF VAR dBetrag AS DEC NO-UNDO.
  1066. lTotal = FALSE.
  1067. i5 = 0.
  1068. VZTot = 0.
  1069. FOR EACH AufGKon USE-INDEX AufGKon-k1
  1070. WHERE AufGKon.Firma = BAufko.Firma
  1071. AND AufGKon.Aufnr = BAufko.Aufnr
  1072. AND AufGKon.Depot <> 0 NO-LOCK:
  1073. IF AufGKon.Eingang = 0 AND
  1074. AufGKon.Ausgang = 0 THEN NEXT.
  1075. IF i5 = 0 THEN ExZeile = ExZeile + 2.
  1076. ELSE ExZeile = ExZeile + 1.
  1077. FIND GebKonto USE-INDEX GebKonto-k1
  1078. WHERE GebKonto.Firma = GVFirma
  1079. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK.
  1080. i1 = AufGKon.Ausgang.
  1081. IF AufGKon.Depot = 0 AND
  1082. AufGKon.Gebuehr = 0 THEN dBetrag = GebKonto.Depot + GebKonto.Gebuehr.
  1083. ELSE dBetrag = AufGKon.Depot + AufGKon.Gebuehr.
  1084. Rundbetr = i1 * dBetrag.
  1085. VWC = AufGKon.MWSt_Cd.
  1086. VZTot = VZTot + Rundbetr.
  1087. cDaten = GebKonto.Bez.
  1088. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  1089. INPUT ExZeile, INPUT cDaten ).
  1090. cDaten = TRIM(STRING(AufGKon.Ausgang,"->>>>9")).
  1091. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'B',
  1092. INPUT ExZeile, INPUT cDaten ).
  1093. cDaten = TRIM(STRING(dBetrag,"->>>>9.99")).
  1094. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H',
  1095. INPUT ExZeile, INPUT cDaten ).
  1096. cDaten = TRIM(STRING(Rundbetr,"->>>>9.99")).
  1097. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  1098. INPUT ExZeile, INPUT cDaten ).
  1099. cDaten = TRIM(STRING(VWC,"z9")).
  1100. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J',
  1101. INPUT ExZeile, INPUT cDaten ).
  1102. i5 = i5 + 1.
  1103. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  1104. WHERE MWSTAns.MWST_Cd = VWC
  1105. AND MWSTAns.Datum <= FDatum NO-LOCK NO-ERROR.
  1106. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 9990
  1107. AND TUmsGrp.Mwst = MWSTAns.Ansatz NO-ERROR.
  1108. IF NOT AVAILABLE TUmsGrp THEN DO:
  1109. CREATE TUmsGrp.
  1110. ASSIGN TUmsGrp.Ums_Grp = 9990
  1111. TUmsGrp.Mwst = MWSTAns.Ansatz
  1112. TUmsGrp.Bez = 'Gebinde-Kosten'.
  1113. END.
  1114. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + Rundbetr.
  1115. END.
  1116. IF i5 > 0 THEN lTotal = TRUE.
  1117. IF lTotal THEN DO:
  1118. ExZeile = ExZeile + 2.
  1119. cDaten = TRIM(SUBSTRING(FormText[11],21,20)).
  1120. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  1121. INPUT ExZeile, INPUT cDaten ).
  1122. cdaten = TRIM(STRING(VZTot,"->>>>9.99")).
  1123. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  1124. INPUT ExZeile, INPUT cDaten ).
  1125. VFak_Betr = VFak_Betr + VZTot.
  1126. END.
  1127. IF NOT FSamm THEN DO:
  1128. ExZeile = ExZeile + 2.
  1129. cDaten = TRIM(SUBSTRING(FormText[15],21,20)).
  1130. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  1131. INPUT ExZeile, INPUT cDaten ).
  1132. cDaten = TRIM(STRING(VFak_Betr,"->>>>9.99")).
  1133. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  1134. INPUT ExZeile, INPUT cDaten ).
  1135. END.
  1136. END PROCEDURE.
  1137. /* _UIB-CODE-BLOCK-END */
  1138. &ANALYZE-RESUME
  1139. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_MEHRWERTSTEUER C-Win
  1140. PROCEDURE EXCEL_MEHRWERTSTEUER :
  1141. /*------------------------------------------------------------------------------
  1142. Purpose:
  1143. Parameters: <none>
  1144. Notes:
  1145. ------------------------------------------------------------------------------*/
  1146. DEF VAR cDaten AS CHAR NO-UNDO.
  1147. VWpfl = 0.
  1148. VWust = 0.
  1149. Zuszz = 0.
  1150. DO ix = 1 TO 11:
  1151. IF BAufko.WPfl[ix] = 0 THEN NEXT.
  1152. VWpfl[ix] = BAufko.Wpfl[ix].
  1153. VWust[ix] = BAufko.Wust[ix].
  1154. END.
  1155. ExZeile = ExZeile + 1.
  1156. DO ix = 1 TO 11:
  1157. IF VWpfl[ix] = 0 THEN NEXT.
  1158. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  1159. WHERE MWSTAns.MWST_Cd = ix
  1160. AND MWSTAns.Datum <= BAUfko.Kond_Datum NO-LOCK.
  1161. ExZeile = ExZeile + 1.
  1162. cDaten = MWSTAns.Bez.
  1163. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  1164. INPUT ExZeile, INPUT cDaten ).
  1165. cDaten = TRIM(STRING(VWpfl[ix],"->>,>>9.99")).
  1166. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H',
  1167. INPUT ExZeile, INPUT cDaten ).
  1168. cDaten = TRIM(STRING(VWust[ix],"->>,>>9.99")).
  1169. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  1170. INPUT ExZeile, INPUT cDaten ).
  1171. cDaten = TRIM(STRING(ix,"z9")).
  1172. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J',
  1173. INPUT ExZeile, INPUT cDaten ).
  1174. VFak_Betr = VFak_Betr + VWust[ix].
  1175. END.
  1176. Rundbetr = VFak_Betr.
  1177. Rundcode = 1.
  1178. RUN "v8/runden.p".
  1179. VFak_Betr = Rundbetr.
  1180. ExZeile = ExZeile + 2.
  1181. cDaten = TRIM(FormText[16]).
  1182. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  1183. INPUT ExZeile, INPUT cDaten ).
  1184. cDaten = TRIM(STRING(VFak_Betr,"->>,>>9.99")).
  1185. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  1186. INPUT ExZeile, INPUT cDaten ).
  1187. END PROCEDURE.
  1188. /* _UIB-CODE-BLOCK-END */
  1189. &ANALYZE-RESUME
  1190. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_OFFERTE C-Win
  1191. PROCEDURE EXCEL_OFFERTE :
  1192. /*------------------------------------------------------------------------------
  1193. Purpose:
  1194. Parameters: <none>
  1195. Notes:
  1196. ------------------------------------------------------------------------------*/
  1197. DEF VAR io AS LOG NO-UNDO.
  1198. DEF VAR ODatei AS CHAR NO-UNDO.
  1199. DEF VAR cDaten AS CHAR NO-UNDO.
  1200. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  1201. IF NOT VALID-HANDLE(excelAppl) THEN RETURN NO-APPLY.
  1202. oDatei = "Offerte_OSWALD.xls" + CHR(01) + "Offerte_OSWALD.xls".
  1203. RUN CREATEDATEI ( INPUT oDatei ).
  1204. oDatei = SESSION:TEMP-DIR + "Offerte_OSWALD.xls".
  1205. RUN OPENEXCEL ( INPUT excelAppl, INPUT oDatei,
  1206. INPUT '', OUTPUT io ).
  1207. IF NOT io THEN DO:
  1208. RUN RELEASEEXCEL ( INPUT excelAppl ).
  1209. RETURN NO-APPLY.
  1210. END.
  1211. VFak_Betr = 0.
  1212. LiKopf = FALSE.
  1213. FPreis = TRUE.
  1214. FBetrag = TRUE.
  1215. FRabatt = TRUE.
  1216. FSamm = FALSE.
  1217. ExZeile = 5.
  1218. VKopfArt = 'EXCEL_KOPF'.
  1219. FIND Adresse USE-INDEX Adresse-k1
  1220. WHERE Adresse.Firma = AdFirma
  1221. AND Adresse.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  1222. FIND LDebst USE-INDEX Debst-k1
  1223. WHERE LDebst.Firma = GVFirma
  1224. AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  1225. FIND FDebst USE-INDEX Debst-k1
  1226. WHERE FDebst.Firma = GVFirma
  1227. AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  1228. FIND Wust USE-INDEX Wust-k1
  1229. WHERE Wust.CodeK = LDebst.MWST
  1230. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  1231. LVSprcd = Adresse.Sprcd.
  1232. DebInkl = FALSE.
  1233. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  1234. XTelnr = ''.
  1235. IF DebInkl THEN DO:
  1236. IF Adresse.Tel-2 <> '' THEN XTelnr = Adresse.Tel-2.
  1237. ELSE XTelnr = Adresse.Tel-1.
  1238. END.
  1239. ELSE DO:
  1240. IF Adresse.Tel-1 <> '' THEN XTelnr = Adresse.Tel-1.
  1241. ELSE XTelnr = Adresse.Tel-2.
  1242. END.
  1243. F_Seite = VSeite.
  1244. F_Faknr = BAufko.Aufnr.
  1245. DISPLAY F_Seite
  1246. F_Faknr WITH FRAME {&FRAME-NAME}.
  1247. VZeile = ''.
  1248. IF BAufko.Adresse[05] <> '' THEN DO:
  1249. DO ix = 1 TO 5:
  1250. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  1251. INPUT ExZeile, INPUT BAufko.Adresse[ix] ).
  1252. ExZeile = ExZeile + 1.
  1253. END.
  1254. END.
  1255. ELSE DO:
  1256. DO ix = 7 TO 11:
  1257. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  1258. INPUT ExZeile, INPUT Adresse.Anschrift[ix] ).
  1259. ExZeile = ExZeile + 1.
  1260. END.
  1261. END.
  1262. cDaten = STRING(TODAY,'99.99.9999').
  1263. ExZeile = ExZeile + 2.
  1264. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'B',
  1265. INPUT ExZeile, INPUT cDaten ).
  1266. ExZeile = ExZeile + 3.
  1267. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'B',
  1268. INPUT ExZeile, INPUT STRING(F_Faknr,'>999999') ).
  1269. ExZeile = ExZeile + 2.
  1270. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'B',
  1271. INPUT ExZeile, INPUT BAufko.U_Ref ).
  1272. ExZeile = 21.
  1273. ZEILEN:
  1274. FOR EACH tAufze NO-LOCK
  1275. BY tAufze.Aufnr
  1276. BY tAufze.Sort1
  1277. BY tAufze.Sort2
  1278. BY tAufze.Sort3
  1279. BY tAufze.Artnr
  1280. BY tAufze.Inhalt
  1281. BY tAufze.Jahr
  1282. BY tAufze.Pos :
  1283. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  1284. RUN EXCEL_ARTIKELZEILE ( RECID(tAufze), INPUT-OUTPUT ExZeile ).
  1285. ExZeile = ExZeile + 1.
  1286. VFak_Betr = VFak_Betr + Aufze.Net_Betr.
  1287. END.
  1288. ExZeile = ExZeile + 1.
  1289. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  1290. INPUT ExZeile, INPUT FormText[13] ).
  1291. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  1292. INPUT ExZeile, TRIM(STRING(VFak_Betr,"->>>>9.99")) ).
  1293. RUN EXCEL_SUMMENRABATTE.
  1294. RUN GEBINDE_SALDO.
  1295. RUN EXCEL_GEBINDE_ABRECHNUNG.
  1296. RUN EXCEL_MEHRWERTSTEUER.
  1297. ExZeile = ExZeile + 2.
  1298. FIND Kondi USE-INDEX Kondi-k1
  1299. WHERE Kondi.Kond = BAufko.Kond
  1300. AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  1301. IF AVAILABLE Kondi THEN DO:
  1302. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  1303. INPUT ExZeile, Kondi.Kotext ).
  1304. END.
  1305. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ).
  1306. END PROCEDURE.
  1307. /* _UIB-CODE-BLOCK-END */
  1308. &ANALYZE-RESUME
  1309. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_SUMMENRABATTE C-Win
  1310. PROCEDURE EXCEL_SUMMENRABATTE :
  1311. /*------------------------------------------------------------------------------
  1312. Purpose:
  1313. Parameters: <none>
  1314. Notes:
  1315. ------------------------------------------------------------------------------*/
  1316. DEF VAR RText AS CHAR FORMAT "x(20)" NO-UNDO.
  1317. DEF VAR WText AS CHAR NO-UNDO.
  1318. DEF VAR cDaten AS CHAR NO-UNDO.
  1319. DEF VAR lTotal AS LOG NO-UNDO.
  1320. /* Auftragsrabatt ---------------------------------------------------- */
  1321. lTotal = FALSE.
  1322. i5 = 0.
  1323. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
  1324. BY TRabSumm.Rab_Summ:
  1325. Rundbetr = TRabSumm.Auf_Rab.
  1326. VFak_Betr = VFak_Betr - Rundbetr.
  1327. IF NOT FRabatt THEN NEXT.
  1328. IF i5 = 0 THEN ExZeile = ExZeile + 2.
  1329. ELSE ExZeile = ExZeile + 1.
  1330. IF Rundbetr < 0 THEN RText = VZusText.
  1331. ELSE RText = VRabText.
  1332. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1
  1333. WHERE AufRabSu.Firma = BAufko.Firma
  1334. AND AufRabSu.Aufnr = BAufko.Aufnr
  1335. AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
  1336. IF AufRabSu.F_Proz_Betr THEN WText = "%".
  1337. ELSE WText = "Fr.".
  1338. RabWert = ABSOLUT(AufRabSu.F_Wert).
  1339. cDaten = RText
  1340. + " "
  1341. + TRabSumm.Bez
  1342. + " "
  1343. + STRING(RabWert,"z9.99- ")
  1344. + WText.
  1345. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  1346. INPUT ExZeile, INPUT cDaten ).
  1347. cDaten = STRING(- Rundbetr,"->>>>9.99").
  1348. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  1349. INPUT ExZeile, INPUT cDaten ).
  1350. i5 = i5 + 1.
  1351. END.
  1352. IF i5 > 0 THEN lTotal = TRUE.
  1353. /* Abholrabatt ------------------------------------------------------- */
  1354. i5 = 0.
  1355. FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
  1356. BY TRabSumm.Rab_Summ:
  1357. Rundbetr = TRabSumm.Abh_Rab.
  1358. VFak_Betr = VFak_Betr - Rundbetr.
  1359. IF NOT FRabatt THEN NEXT.
  1360. IF i5 = 0 THEN ExZeile = ExZeile + 2.
  1361. ELSE ExZeile = ExZeile + 1.
  1362. IF Rundbetr < 0 THEN RText = VZusText.
  1363. ELSE RText = VRabText.
  1364. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1
  1365. WHERE AufRabSu.Firma = BAufko.Firma
  1366. AND AufRabSu.Aufnr = BAufko.Aufnr
  1367. AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
  1368. IF AufRabSu.A_Proz_Betr THEN WText = "%".
  1369. ELSE WText = "Fr.".
  1370. RabWert = ABSOLUT(AufRabSu.A_Wert).
  1371. cDaten = RText
  1372. + " "
  1373. + TRabSumm.Bez
  1374. + " "
  1375. + STRING(RabWert,"z9.99- ")
  1376. + WText.
  1377. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  1378. INPUT ExZeile, INPUT cDaten ).
  1379. cDaten = STRING(- Rundbetr,"->>>>9.99").
  1380. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  1381. INPUT ExZeile, INPUT cDaten ).
  1382. i5 = i5 + 1.
  1383. END.
  1384. IF i5 > 0 THEN lTotal = TRUE.
  1385. /* Spezialpreis-Auftragsrabatte ---------------------------------------- */
  1386. i5 = 0.
  1387. FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0
  1388. BY TSpeRab.Rab_Grp:
  1389. Rundbetr = TSpeRab.Auf_Betr.
  1390. VFak_Betr = VFak_Betr - Rundbetr.
  1391. IF NOT FRabatt THEN NEXT.
  1392. IF i5 = 0 THEN ExZeile = ExZeile + 2.
  1393. ELSE ExZeile = ExZeile + 1.
  1394. IF Rundbetr < 0 THEN RText = VZusText.
  1395. ELSE RText = VRabText.
  1396. FIND Tabel USE-INDEX Tabel-k1
  1397. WHERE Tabel.Firma = GVFirma
  1398. AND Tabel.RecArt = 'ARABGRP'
  1399. AND Tabel.CodeC = ''
  1400. AND Tabel.CodeI = TSpeRab.Rab_Grp
  1401. AND Tabel.Sprcd = 1 NO-LOCK.
  1402. FIND FIRST AufSpRab USE-INDEX AufSpRab-k1
  1403. WHERE AufSpRab.Firma = BAufko.Firma
  1404. AND AufSpRab.Aufnr = BAufko.Aufnr
  1405. AND AufSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK.
  1406. IF AufSpRab.Auf_Proz_Betr THEN WText = "%".
  1407. ELSE WText = "Fr.".
  1408. RabWert = ABSOLUT(AufSpRab.Auf_Wert).
  1409. cDaten = RText
  1410. + " "
  1411. + TRabSumm.Bez
  1412. + " "
  1413. + STRING(RabWert,"z9.99- ")
  1414. + WText.
  1415. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  1416. INPUT ExZeile, INPUT cDaten ).
  1417. cDaten = STRING(- Rundbetr,"->>>>9.99").
  1418. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  1419. INPUT ExZeile, INPUT cDaten ).
  1420. i5 = i5 + 1.
  1421. END.
  1422. IF i5 > 0 THEN lTotal = TRUE.
  1423. IF lTotal THEN DO:
  1424. ExZeile = ExZeile + 1.
  1425. cDaten = TRIM(SUBSTRING(FormText[14],21,20)).
  1426. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  1427. INPUT ExZeile, INPUT cDaten ).
  1428. cDaten = TRIM(STRING(VFak_Betr,"->>>>9.99")).
  1429. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  1430. INPUT ExZeile, INPUT cDaten ).
  1431. END.
  1432. /* Recycling-Gebühren ------------------------------------------------ */
  1433. lTotal = FALSE.
  1434. i5 = 0.
  1435. FOR EACH AufGKon USE-INDEX AufGKon-k1
  1436. WHERE AufGKon.Firma = BAufko.Firma
  1437. AND AufGKon.Aufnr = BAufko.Aufnr
  1438. AND AufGKon.Gebuehr <> 0
  1439. AND AufGKon.Betrag <> 0 NO-LOCK:
  1440. VFak_Betr = VFak_Betr + AufGKon.Betrag.
  1441. IF NOT FRabatt THEN NEXT.
  1442. IF i5 = 0 THEN ExZeile = ExZeile + 2.
  1443. ELSE ExZeile = ExZeile + 1.
  1444. VWC = AufGKon.MWSt_Cd.
  1445. FIND GebKonto OF AufGKon NO-LOCK NO-ERROR.
  1446. IF NOT AVAILABLE GebKonto THEN cDaten = TRIM(SUBSTRING(FormText[11],41,20)).
  1447. ELSE cDaten = GebKonto.Bez.
  1448. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  1449. INPUT ExZeile, INPUT cDaten ).
  1450. cDaten = TRIM(STRING(AufGKon.Ausgang,"->>>>>9")).
  1451. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H',
  1452. INPUT ExZeile, INPUT cDaten ).
  1453. cDaten = TRIM(STRING(AufGKon.Betrag,"->>>>9.99")).
  1454. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  1455. INPUT ExZeile, INPUT cDaten ).
  1456. cDaten = TRIM(STRING(AufGKon.MWSt_Cd ,"z9")).
  1457. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J',
  1458. INPUT ExZeile, INPUT cDaten ).
  1459. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  1460. WHERE MWSTAns.MWST_Cd = VWC
  1461. AND MWSTAns.Datum <= FDatum NO-LOCK NO-ERROR.
  1462. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 9991
  1463. AND TUmsGrp.Mwst = MWSTAns.Ansatz NO-ERROR.
  1464. IF NOT AVAILABLE TUmsGrp THEN DO:
  1465. CREATE TUmsGrp.
  1466. ASSIGN TUmsGrp.Ums_Grp = 9991
  1467. TUmsGrp.Mwst = MWSTAns.Ansatz
  1468. TUmsGrp.Bez = 'Recycling-Gebühren'.
  1469. END.
  1470. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + AufGKon.Betrag.
  1471. i5 = i5 + 1.
  1472. END.
  1473. IF i5 > 0 THEN lTotal = TRUE.
  1474. IF lTotal THEN DO:
  1475. ExZeile = ExZeile + 1.
  1476. cDaten = TRIM(SUBSTRING(FormText[14],21,20)).
  1477. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  1478. INPUT ExZeile, INPUT cDaten ).
  1479. cDaten = TRIM(STRING(VFak_Betr,"->>>>9.99")).
  1480. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  1481. INPUT ExZeile, INPUT cDaten ).
  1482. END.
  1483. END PROCEDURE.
  1484. /* _UIB-CODE-BLOCK-END */
  1485. &ANALYZE-RESUME
  1486. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA C-Win
  1487. PROCEDURE FAKTURA :
  1488. /*------------------------------------------------------------------------------
  1489. Purpose:
  1490. Parameters: <none>
  1491. Notes:
  1492. ------------------------------------------------------------------------------*/
  1493. VSeite = 0.
  1494. VFak_Betr = 0.
  1495. LiKopf = TRUE.
  1496. FPreis = TRUE.
  1497. FBetrag = TRUE.
  1498. FRabatt = TRUE.
  1499. FUeber = TRUE.
  1500. FSamm = FALSE.
  1501. VKopfArt = 'FAKTURA_KOPF'.
  1502. RUN VALUE(VKopfArt).
  1503. LiefAdr = ''.
  1504. IF BAufko.Knr <> BAufko.Fak_Knr THEN DO:
  1505. FIND BAdresse USE-INDEX Adresse-k1
  1506. WHERE BAdresse.Firma = AdFirma
  1507. AND BAdresse.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  1508. LiefAdr = BAdresse.Anzeig_Br.
  1509. END.
  1510. IF LiefAdr <> '' THEN DO:
  1511. VZeile = LiefAdr.
  1512. { v8/putstreamf.i "1" }
  1513. END.
  1514. FOR EACH TAufze NO-LOCK
  1515. BY TAufze.Aufnr
  1516. BY TAufze.Sort1
  1517. BY TAufze.Sort2
  1518. BY TAufze.Sort3
  1519. BY TAufze.Artnr
  1520. BY TAufze.Inhalt
  1521. BY TAufze.Jahr
  1522. BY TAufze.Pos :
  1523. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO:
  1524. RUN VALUE(VKopfArt).
  1525. END.
  1526. FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK.
  1527. RUN ARTIKELZEILE.
  1528. VFak_Betr = VFak_Betr + Aufze.Net_Betr.
  1529. END.
  1530. VZeile = FILL(cWag, StBreite).
  1531. { v8/putstream.i "1" }
  1532. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[10],41,20)).
  1533. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  1534. { v8/putstreamf.i "1" }
  1535. LiKopf = FALSE.
  1536. RUN SUMMENRABATTE.
  1537. { v8/putstream.i "1" }
  1538. RUN GEBINDE_SALDO.
  1539. RUN GEBINDE_ABRECHNUNG.
  1540. RUN MEHRWERTSTEUER.
  1541. SUBSTRING(VZeile,083) = '=========='.
  1542. { v8/putstream.i "2" }
  1543. FUeber = FALSE.
  1544. RUN ZAHLUNGSKONDITION.
  1545. RUN UMSATZVERTEILUNG.
  1546. RUN KOPF_MUTATION.
  1547. Rundbetr = VFak_Betr.
  1548. VesrKnr = BAufko.Fak_Knr.
  1549. VesrFnr = BAufko.Faknr.
  1550. IF VBesr = 2 THEN RUN VESR_DRUCK02.
  1551. ELSE RUN VESR_DRUCK.
  1552. END PROCEDURE.
  1553. /* _UIB-CODE-BLOCK-END */
  1554. &ANALYZE-RESUME
  1555. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA_KOPF C-Win
  1556. PROCEDURE FAKTURA_KOPF :
  1557. /*------------------------------------------------------------------------------
  1558. Purpose:
  1559. Parameters: <none>
  1560. Notes:
  1561. ------------------------------------------------------------------------------*/
  1562. RUN NEUE_SEITE.
  1563. IF VSeite = 1 THEN DO:
  1564. IF Laser THEN DO:
  1565. VZeile = DruckInit + SchriftInit.
  1566. CASE Schacht:
  1567. WHEN 1 THEN VZeile = VZeile + Schacht1.
  1568. WHEN 2 THEN VZeile = VZeile + Schacht2.
  1569. WHEN 3 THEN VZeile = VZeile + Schacht3.
  1570. WHEN 4 THEN VZeile = VZeile + Schacht4.
  1571. END CASE.
  1572. PUT STREAM Out_Stream CONTROL VZeile.
  1573. END.
  1574. RUN PP_DRUCKEN.
  1575. IF SFaknr = 0 THEN DO:
  1576. SFaknr = BAufko.Faknr.
  1577. REPEAT WHILE SFaknr = 0 TRANSACTION:
  1578. RUN "v8/steunr.p" ( INPUT 2, OUTPUT VFaknr ).
  1579. IF RETURN-VALUE <> '' THEN NEXT.
  1580. SFaknr = VFaknr.
  1581. END.
  1582. END.
  1583. FIND Adresse USE-INDEX Adresse-k1
  1584. WHERE Adresse.Firma = AdFirma
  1585. AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  1586. FIND LDebst USE-INDEX Debst-k1
  1587. WHERE LDebst.Firma = GVFirma
  1588. AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  1589. FIND FDebst USE-INDEX Debst-k1
  1590. WHERE FDebst.Firma = GVFirma
  1591. AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  1592. FIND Wust USE-INDEX Wust-k1
  1593. WHERE Wust.CodeK = LDebst.MWST
  1594. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  1595. LVSprcd = Adresse.Sprcd.
  1596. DebInkl = FALSE.
  1597. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  1598. XTelnr = ''.
  1599. IF DebInkl THEN DO:
  1600. IF Adresse.Tel-2 <> '' THEN XTelnr = Adresse.Tel-2.
  1601. ELSE XTelnr = Adresse.Tel-1.
  1602. END.
  1603. ELSE DO:
  1604. IF Adresse.Tel-1 <> '' THEN XTelnr = Adresse.Tel-1.
  1605. ELSE XTelnr = Adresse.Tel-2.
  1606. END.
  1607. END.
  1608. F_Seite = VSeite.
  1609. F_Faknr = SFaknr.
  1610. DISPLAY F_Seite
  1611. F_Faknr WITH FRAME {&FRAME-NAME}.
  1612. VZeile = ''.
  1613. { v8/putstream.i BLiDruck.Listkzz }.
  1614. IF BAufko.Adresse[05] <> '' THEN DO:
  1615. DO ix = 1 TO 5:
  1616. SUBSTRING(VZeile,053) = BAufko.Adresse[ix].
  1617. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END.
  1618. ELSE DO: { v8/putstream.i "1" }. END.
  1619. END.
  1620. END.
  1621. ELSE DO:
  1622. DO ix = 7 TO 11:
  1623. SUBSTRING(VZeile,053) = Adresse.Anschrift[ix].
  1624. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END.
  1625. ELSE DO: { v8/putstream.i "1" }. END.
  1626. END.
  1627. END.
  1628. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20))
  1629. + STRING(SFaknr,"z999999")
  1630. + " /"
  1631. + STRING(VSeite,"zz9").
  1632. { v8/putstreamf.i "1" }
  1633. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20))
  1634. + " "
  1635. + BSteuer.MWST_Nr.
  1636. { v8/putstream.i "1" }
  1637. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20))
  1638. + " "
  1639. + STRING(FDatum,"99.99.9999").
  1640. { v8/putstream.i "2" }
  1641. DO WHILE VSeite = 1.
  1642. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],21,20))
  1643. + " "
  1644. + BAufko.I_Best.
  1645. { v8/putstream.i "1" }
  1646. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20))
  1647. + " "
  1648. + STRING(BAufko.Aufnr,"9999999").
  1649. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[07],41,20))
  1650. + " "
  1651. + STRING(BAufko.Auf_Datum,"99.99.9999").
  1652. SUBSTRING(VZeile,071) = TRIM(SUBSTRING(FormText[08],01,20))
  1653. + " "
  1654. + STRING(BAufko.Fak_Knr,"9999999").
  1655. { v8/putstream.i "2" }
  1656. XAuf_Text = BAufko.Auf_Text.
  1657. i1 = INDEX(XAuf_Text, CHR(10)).
  1658. i2 = 0.
  1659. DO WHILE i1 > 0:
  1660. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  1661. { v8/putstreamf.i "1" }
  1662. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  1663. i1 = INDEX(XAuf_Text, CHR(10)).
  1664. i2 = i2 + 1.
  1665. END.
  1666. IF XAuf_Text <> '' THEN DO:
  1667. SUBSTRING(VZeile,001) = XAuf_Text.
  1668. { v8/putstreamf.i "1" }
  1669. i2 = i2 + 1.
  1670. END.
  1671. IF i2 > 0 THEN DO:
  1672. { v8/putstream.i "1" }
  1673. END.
  1674. XAuf_Text = BAufko.Abh_Text.
  1675. i1 = INDEX(XAuf_Text, CHR(10)).
  1676. i2 = 0.
  1677. DO WHILE i1 > 0:
  1678. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  1679. { v8/putstreamf.i "1" }
  1680. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  1681. i1 = INDEX(XAuf_Text, CHR(10)).
  1682. i2 = i2 + 1.
  1683. END.
  1684. IF XAuf_Text <> '' THEN DO:
  1685. SUBSTRING(VZeile,001) = XAuf_Text.
  1686. { v8/putstreamf.i "1" }
  1687. i2 = i2 + 1.
  1688. END.
  1689. IF i2 > 0 THEN DO:
  1690. { v8/putstream.i "1" }
  1691. END.
  1692. LEAVE.
  1693. END.
  1694. IF LiKopf THEN DO:
  1695. SUBSTRING(VZeile,001) = FormText[03].
  1696. SUBSTRING(VZeile,071) = FormText[04].
  1697. { v8/putstream.i "1" }
  1698. SUBSTRING(VZeile,001) = FormText[05].
  1699. SUBSTRING(VZeile,071) = FormText[06].
  1700. StBreite = LENGTH(VZeile).
  1701. { v8/putstream.i "1" }
  1702. END.
  1703. ELSE DO:
  1704. { v8/putstream.i "1" }
  1705. END.
  1706. IF VSeite > 1 AND
  1707. FUeber = TRUE THEN DO:
  1708. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[09],41,20)).
  1709. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  1710. { v8/putstreamf.i "2" }
  1711. END.
  1712. END PROCEDURE.
  1713. /* _UIB-CODE-BLOCK-END */
  1714. &ANALYZE-RESUME
  1715. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_ABRECHNUNG C-Win
  1716. PROCEDURE GEBINDE_ABRECHNUNG :
  1717. /*------------------------------------------------------------------------------
  1718. Purpose:
  1719. Parameters: <none>
  1720. Notes:
  1721. ------------------------------------------------------------------------------*/
  1722. Zuszz = 0.
  1723. FOR EACH AufGKon USE-INDEX AufGKon-k1
  1724. WHERE AufGKon.Firma = BAufko.Firma
  1725. AND AufGKon.Aufnr = BAufko.Aufnr
  1726. AND AufGKon.Depot <> 0 NO-LOCK:
  1727. IF AufGKon.Eingang = 0 AND
  1728. AufGKon.Ausgang = 0 THEN NEXT.
  1729. Zuszz = Zuszz + 1.
  1730. END.
  1731. Ja = FALSE.
  1732. IF Zuszz > 0 THEN DO:
  1733. Zuszz = Zuszz + 2.
  1734. Ja = TRUE.
  1735. END.
  1736. IF (BLiDruck.Listtzz - VLine - Zuszz) <= BLiDruck.Listfzz THEN DO:
  1737. RUN VALUE(VKopfArt).
  1738. END.
  1739. i5 = 0.
  1740. VZTot = 0.
  1741. IF Ja THEN DO:
  1742. SUBSTRING(VZeile,001) = FormText[12].
  1743. SUBSTRING(VZeile,071) = FormText[13].
  1744. { v8/putstreamf.i "1" }
  1745. END.
  1746. FOR EACH AufGKon USE-INDEX AufGKon-k1
  1747. WHERE AufGKon.Firma = BAufko.Firma
  1748. AND AufGKon.Aufnr = BAufko.Aufnr
  1749. AND AufGKon.Depot <> 0 NO-LOCK:
  1750. IF AufGKon.Eingang = 0 AND
  1751. AufGKon.Ausgang = 0 THEN NEXT.
  1752. FIND GebKonto USE-INDEX GebKonto-k1
  1753. WHERE GebKonto.Firma = GVFirma
  1754. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK.
  1755. i1 = AufGKon.Ausgang - AufGKon.Eingang.
  1756. Rundbetr = AufGKon.Betrag.
  1757. VWC = AufGKon.MWSt_Cd.
  1758. VZTot = VZTot + Rundbetr.
  1759. SUBSTRING(VZeile,004) = GebKonto.Bez.
  1760. SUBSTRING(VZeile,035) = STRING(AufGKon.Ausgang,"->>,>>9").
  1761. SUBSTRING(VZeile,045) = STRING(AufGKon.Eingang,"->>,>>9").
  1762. SUBSTRING(VZeile,055) = STRING(i1 ,"->>,>>9").
  1763. SUBSTRING(VZeile,065) = STRING(Rundbetr ,"->>,>>9.99").
  1764. SUBSTRING(VZeile,094) = STRING(VWC ,"z9").
  1765. { v8/putstream.i "1" }
  1766. i5 = i5 + 1.
  1767. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  1768. WHERE MWSTAns.MWST_Cd = VWC
  1769. AND MWSTAns.Datum <= FDatum NO-LOCK NO-ERROR.
  1770. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 9990
  1771. AND TUmsGrp.Mwst = MWSTAns.Ansatz NO-ERROR.
  1772. IF NOT AVAILABLE TUmsGrp THEN DO:
  1773. CREATE TUmsGrp.
  1774. ASSIGN TUmsGrp.Ums_Grp = 9990
  1775. TUmsGrp.Mwst = MWSTAns.Ansatz
  1776. TUmsGrp.Bez = 'Gebinde-Kosten'.
  1777. END.
  1778. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + Rundbetr.
  1779. END.
  1780. IF i5 > 0 THEN DO:
  1781. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[11],21,20)).
  1782. SUBSTRING(VZeile,083) = STRING(VZTot,"->>,>>9.99").
  1783. { v8/putstream.i "1" }
  1784. VFak_Betr = VFak_Betr + VZTot.
  1785. END.
  1786. IF NOT FSamm THEN DO:
  1787. SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026).
  1788. { v8/putstream.i "1" }
  1789. SUBSTRING(VZeile,027) = TRIM(SUBSTRING(FormText[15],21,20)).
  1790. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  1791. { v8/putstreamf.i "1" }
  1792. SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026).
  1793. { v8/putstream.i "1" }
  1794. END.
  1795. END PROCEDURE.
  1796. /* _UIB-CODE-BLOCK-END */
  1797. &ANALYZE-RESUME
  1798. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_LIEFERUNG C-Win
  1799. PROCEDURE GEBINDE_LIEFERUNG :
  1800. /*------------------------------------------------------------------------------
  1801. Purpose:
  1802. Parameters: <none>
  1803. Notes:
  1804. ------------------------------------------------------------------------------*/
  1805. Zuszz = 0.
  1806. FOR EACH TGebKto NO-LOCK:
  1807. Zuszz = Zuszz + 1.
  1808. END.
  1809. IF Zuszz > 0 THEN Zuszz = Zuszz + 2.
  1810. Zuszz = (Zuszz + 1) / 2.
  1811. IF (BLiDruck.Listtzz - VLine - Zuszz) <= BLiDruck.Listfzz THEN DO:
  1812. RUN VALUE(VKopfArt).
  1813. END.
  1814. i5 = 0.
  1815. VZTot = 0.
  1816. SUBSTRING(VZeile,001) = BDrucker.DruUnterB
  1817. + TRIM(SUBSTRING(FormText[10],01,20))
  1818. + BDrucker.DruUnterE.
  1819. { v8/putstream.i "2" }
  1820. i1 = 1.
  1821. i2 = 0.
  1822. FOR EACH TGebKto BY TGebKto.Sort_Cd
  1823. BY TGebKto.Geb_Cd :
  1824. i2 = i2 + 1.
  1825. IF i2 MOD 2 = 0 THEN i1 = 41.
  1826. ELSE i1 = 01.
  1827. SUBSTRING(VZeile,i1) = STRING(TGebKto.A_Anz,"->>>>9")
  1828. + " "
  1829. + STRING(TGebKto.Bez,"x(30)").
  1830. IF i1 > 30 THEN DO:
  1831. { v8/putstream.i "1" }
  1832. i5 = i5 + 1.
  1833. END.
  1834. END.
  1835. IF VZeile <> '' THEN DO:
  1836. { v8/putstream.i "1" }
  1837. i5 = i5 + 1.
  1838. END.
  1839. IF i5 > 0 THEN DO:
  1840. { v8/putstream.i "1" }
  1841. END.
  1842. END PROCEDURE.
  1843. /* _UIB-CODE-BLOCK-END */
  1844. &ANALYZE-RESUME
  1845. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_RUECKNAHME_TABELLE C-Win
  1846. PROCEDURE GEBINDE_RUECKNAHME_TABELLE :
  1847. /*------------------------------------------------------------------------------
  1848. Purpose:
  1849. Parameters: <none>
  1850. Notes:
  1851. ------------------------------------------------------------------------------*/
  1852. DEF VAR cTextArt AS CHAR NO-UNDO.
  1853. cTextArt = 'GEBINDERETOUR' + STRING(FakArt,'99').
  1854. VTabTexte = ''.
  1855. FIND TabTexte NO-LOCK USE-INDEX TabTexte-k1
  1856. WHERE TabTexte.Firma = GVFirma
  1857. AND TabTexte.TextArt = cTextArt
  1858. AND TabTexte.Sprcd = LVSprcd NO-ERROR.
  1859. IF NOT AVAILABLE TabTexte THEN DO:
  1860. cTextArt = 'GEBINDERETOUR00'.
  1861. FIND TabTexte NO-LOCK USE-INDEX TabTexte-k1
  1862. WHERE TabTexte.Firma = GVFirma
  1863. AND TabTexte.TextArt = cTextArt
  1864. AND TabTexte.Sprcd = LVSprcd NO-ERROR.
  1865. END.
  1866. IF NOT AVAILABLE TabTexte THEN RETURN.
  1867. VTabTexte = TabTexte.Inhalt.
  1868. Zuszz = NUM-ENTRIES(VTabTexte, CHR(10)).
  1869. IF Zuszz > 0 THEN Zuszz = Zuszz + 2.
  1870. IF (BLiDruck.Listtzz - VLine - Zuszz) <= BLiDruck.Listfzz THEN DO:
  1871. RUN VALUE(VKopfArt).
  1872. END.
  1873. DO WHILE TRUE:
  1874. ix = INDEX(VTabTexte, CHR(10)).
  1875. IF ix = 0 THEN DO:
  1876. VZeile = VTabTexte.
  1877. LEAVE.
  1878. END.
  1879. VZeile = SUBSTRING(VTabTexte,01,ix - 1).
  1880. VTabTexte = SUBSTRING(VTabTexte,ix + 1).
  1881. { v8/putstream.i "1" }.
  1882. END.
  1883. IF VZeile <> '' THEN DO:
  1884. { v8/putstream.i "1" }.
  1885. END.
  1886. END PROCEDURE.
  1887. /* _UIB-CODE-BLOCK-END */
  1888. &ANALYZE-RESUME
  1889. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_SALDO C-Win
  1890. PROCEDURE GEBINDE_SALDO :
  1891. /*------------------------------------------------------------------------------
  1892. Purpose:
  1893. Parameters: <none>
  1894. Notes:
  1895. ------------------------------------------------------------------------------*/
  1896. FOR EACH AufGKon USE-INDEX AufGKon-k1
  1897. WHERE AufGKon.Firma = BAufko.Firma
  1898. AND AufGKon.Aufnr = BAufko.Aufnr
  1899. AND AufGKon.Depot <> 0
  1900. AND AufGKon.Betrag <> 0 NO-LOCK:
  1901. FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR.
  1902. IF NOT AVAILABLE TGebKto THEN DO:
  1903. FIND GebKonto USE-INDEX GebKonto-k1
  1904. WHERE GebKonto.Firma = AufGKon.Firma
  1905. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK.
  1906. CREATE TGebKto.
  1907. ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd
  1908. TGebKto.Geb_Cd = GebKonto.Geb_Cd
  1909. TGebKto.Bez = GebKonto.Bez
  1910. TGebKto.Preis = AufGKon.Depot
  1911. TGebKto.MWST_Cd = AufGKon.MWSt_Cd.
  1912. END.
  1913. TGebKto.A_Anz = TGebKto.A_Anz + AufGKon.Ausgang.
  1914. TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis.
  1915. TGebKto.E_Anz = TGebKto.E_Anz + AufGKon.Eingang.
  1916. TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis.
  1917. END.
  1918. END PROCEDURE.
  1919. /* _UIB-CODE-BLOCK-END */
  1920. &ANALYZE-RESUME
  1921. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF_MUTATION C-Win
  1922. PROCEDURE KOPF_MUTATION :
  1923. /*------------------------------------------------------------------------------
  1924. Purpose:
  1925. Parameters: <none>
  1926. Notes:
  1927. ------------------------------------------------------------------------------*/
  1928. DO TRANSACTION WHILE TRUE:
  1929. FIND Tabel USE-INDEX Tabel-k1
  1930. WHERE Tabel.Firma = GVFirma
  1931. AND Tabel.RecArt = 'FAKART'
  1932. AND Tabel.CodeC = ''
  1933. AND Tabel.CodeI = BAufko.Fak_Art
  1934. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  1935. IF Tabel.Int_3 > 2 THEN DO:
  1936. FIND Aufko WHERE RECID(Aufko) = RECID(BAufko).
  1937. Aufko.Fak_Datum = FDatum.
  1938. Aufko.Faknr = SFaknr.
  1939. RELEASE Aufko.
  1940. END.
  1941. RUN AUFTRAG_GEDRUCKT ( INPUT BAufko.Aufnr ).
  1942. RELEASE Aufko.
  1943. LEAVE.
  1944. END.
  1945. FIND Aufko WHERE RECID(Aufko) = RECID(BAufko) NO-LOCK.
  1946. END PROCEDURE.
  1947. /* _UIB-CODE-BLOCK-END */
  1948. &ANALYZE-RESUME
  1949. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIBILD C-Win
  1950. PROCEDURE LIBILD :
  1951. /*------------------------------------------------------------------------------
  1952. Purpose:
  1953. Parameters: <none>
  1954. Notes:
  1955. ------------------------------------------------------------------------------*/
  1956. DEF VAR VProgName AS CHAR NO-UNDO.
  1957. VProgName = BSteuer.Fwc10 + ":" + VDokArt.
  1958. FormText = "".
  1959. FOR EACH LiBild USE-INDEX LiBild-k1
  1960. WHERE LiBild.Sprcd = GVSprcd
  1961. AND LiBild.Prog = VProgname
  1962. AND LiBild.Tenr > 0 NO-LOCK
  1963. ix = 1 TO 40:
  1964. FormText[ix] = LiBild.Litext.
  1965. END.
  1966. Formtext[05] = REPLACE(Formtext[05], '-', cWag ).
  1967. Formtext[05] = REPLACE(Formtext[05], '+', cPlus).
  1968. Formtext[06] = REPLACE(Formtext[06], '-', cWag ).
  1969. Formtext[06] = REPLACE(Formtext[06], '+', cPlus).
  1970. Fuell = SUBSTRING(FormText[01],01,01).
  1971. Breite = INTEGER(SUBSTRING(FormText[01],02,03)).
  1972. VRand = INTEGER(SUBSTRING(FormText[01],68,03)).
  1973. Dattxt = SUBSTRING(FormText[01],05,10).
  1974. Seitxt = SUBSTRING(FormText[01],15,10).
  1975. Zeitxt = SUBSTRING(FormText[01],25,10).
  1976. Firtxt = SUBSTRING(FormText[01],35,10).
  1977. Jahtxt = SUBSTRING(FormText[01],45,10).
  1978. Ueber1 = "".
  1979. Ueber2 = "".
  1980. Ueber3 = "".
  1981. ap = 1.
  1982. XDruDat = ?.
  1983. VRabText = TRIM(SUBSTRING(FormText[21],01,20)).
  1984. VZusText = TRIM(SUBSTRING(FormText[21],21,20)).
  1985. VEpzText = TRIM(SUBSTRING(FormText[21],41,20)).
  1986. SUBSTRING(VZeile,001) = FormText[05].
  1987. SUBSTRING(VZeile,071) = FormText[06].
  1988. StBreite = LENGTH(VZeile).
  1989. RZeile = FILL(cSenk, Breite).
  1990. SUBSTRING(RZeile,001) = STRING(' ',"x(06)").
  1991. SUBSTRING(RZeile,008) = STRING(' ',"x(03)").
  1992. SUBSTRING(RZeile,012) = STRING(' ',"x(08)").
  1993. SUBSTRING(RZeile,021) = STRING(' ',"x(05)").
  1994. SUBSTRING(RZeile,027) = STRING(' ',"x(08)").
  1995. SUBSTRING(RZeile,036) = STRING(' ',"x(35)").
  1996. SUBSTRING(RZeile,072) = STRING(' ',"x(02)").
  1997. SUBSTRING(RZeile,075) = STRING(' ',"x(07)").
  1998. SUBSTRING(RZeile,083) = STRING(' ',"x(10)").
  1999. SUBSTRING(RZeile,094) = STRING(' ',"x(02)").
  2000. RZeile = SUBSTRING(RZeile,01,StBreite).
  2001. VZeile = ''.
  2002. END PROCEDURE.
  2003. /* _UIB-CODE-BLOCK-END */
  2004. &ANALYZE-RESUME
  2005. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK C-Win
  2006. PROCEDURE LIEFERFAK :
  2007. /*------------------------------------------------------------------------------
  2008. Purpose:
  2009. Parameters: <none>
  2010. Notes:
  2011. ------------------------------------------------------------------------------*/
  2012. VSeite = 0.
  2013. VFak_Betr = 0.
  2014. LiKopf = TRUE.
  2015. FPreis = TRUE.
  2016. FBetrag = TRUE.
  2017. FRabatt = TRUE.
  2018. FUeber = TRUE.
  2019. FSamm = FALSE.
  2020. VKopfArt = 'LIEFERFAK_KOPF'.
  2021. RUN VALUE(VKopfArt).
  2022. LiefAdr = ''.
  2023. IF BAufko.Knr <> BAufko.Fak_Knr THEN DO:
  2024. FIND BAdresse USE-INDEX Adresse-k1
  2025. WHERE BAdresse.Firma = AdFirma
  2026. AND BAdresse.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  2027. LiefAdr = BAdresse.Anzeig_Br.
  2028. END.
  2029. IF LiefAdr <> '' THEN DO:
  2030. VZeile = LiefAdr.
  2031. { v8/putstreamf.i "1" }
  2032. END.
  2033. FOR EACH TAufze NO-LOCK
  2034. BY TAufze.Aufnr
  2035. BY TAufze.Sort1
  2036. BY TAufze.Sort2
  2037. BY TAufze.Sort3
  2038. BY TAufze.Artnr
  2039. BY TAufze.Inhalt
  2040. BY TAufze.Jahr
  2041. BY TAufze.Pos :
  2042. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO:
  2043. RUN VALUE(VKopfArt).
  2044. END.
  2045. FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK.
  2046. RUN ARTIKELZEILE.
  2047. VFak_Betr = VFak_Betr + Aufze.Net_Betr.
  2048. END.
  2049. VZeile = FILL(cWag, StBreite).
  2050. { v8/putstream.i "1" }
  2051. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[10],41,20)).
  2052. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  2053. { v8/putstreamf.i "1" }
  2054. LiKopf = FALSE.
  2055. RUN SUMMENRABATTE.
  2056. { v8/putstream.i "1" }
  2057. RUN GEBINDE_SALDO.
  2058. RUN GEBINDE_ABRECHNUNG.
  2059. RUN MEHRWERTSTEUER.
  2060. { v8/putstream.i "1" }
  2061. SUBSTRING(VZeile,050) = TRIM(SUBSTRING(FormText[18],21,20)).
  2062. SUBSTRING(VZeile,083) = "__________".
  2063. { v8/putstreamf.i "2" }
  2064. SUBSTRING(VZeile,050) = TRIM(SUBSTRING(FormText[18],41,20)).
  2065. SUBSTRING(VZeile,083) = "__________".
  2066. { v8/putstreamf.i "2" }
  2067. RUN GEBINDE_RUECKNAHME_TABELLE.
  2068. RUN KOPF_MUTATION.
  2069. Rundbetr = 0.
  2070. VesrKnr = BAufko.Fak_Knr.
  2071. VesrFnr = BAufko.Faknr.
  2072. IF VBesr = 2 THEN RUN VESR_DRUCK02.
  2073. ELSE RUN VESR_DRUCK.
  2074. END PROCEDURE.
  2075. /* _UIB-CODE-BLOCK-END */
  2076. &ANALYZE-RESUME
  2077. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK_KOPF C-Win
  2078. PROCEDURE LIEFERFAK_KOPF :
  2079. /*------------------------------------------------------------------------------
  2080. Purpose:
  2081. Parameters: <none>
  2082. Notes:
  2083. ------------------------------------------------------------------------------*/
  2084. RUN NEUE_SEITE.
  2085. IF VSeite = 1 THEN DO:
  2086. IF Laser THEN DO:
  2087. VZeile = DruckInit + SchriftInit.
  2088. CASE Schacht:
  2089. WHEN 1 THEN VZeile = VZeile + Schacht1.
  2090. WHEN 2 THEN VZeile = VZeile + Schacht2.
  2091. WHEN 3 THEN VZeile = VZeile + Schacht3.
  2092. WHEN 4 THEN VZeile = VZeile + Schacht4.
  2093. END CASE.
  2094. PUT STREAM Out_Stream CONTROL VZeile.
  2095. END.
  2096. IF SFaknr = 0 THEN DO:
  2097. SFaknr = BAufko.Faknr.
  2098. REPEAT WHILE SFaknr = 0 TRANSACTION:
  2099. RUN "v8/steunr.p" ( INPUT 2, OUTPUT VFaknr ).
  2100. IF RETURN-VALUE <> '' THEN NEXT.
  2101. SFaknr = VFaknr.
  2102. END.
  2103. END.
  2104. FIND Adresse USE-INDEX Adresse-k1
  2105. WHERE Adresse.Firma = AdFirma
  2106. AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  2107. FIND LDebst USE-INDEX Debst-k1
  2108. WHERE LDebst.Firma = GVFirma
  2109. AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  2110. FIND FDebst USE-INDEX Debst-k1
  2111. WHERE FDebst.Firma = GVFirma
  2112. AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  2113. FIND Wust USE-INDEX Wust-k1
  2114. WHERE Wust.CodeK = LDebst.MWST
  2115. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  2116. LVSprcd = Adresse.Sprcd.
  2117. DebInkl = FALSE.
  2118. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  2119. XTelnr = ''.
  2120. IF DebInkl THEN DO:
  2121. IF Adresse.Tel-2 <> '' THEN XTelnr = Adresse.Tel-2.
  2122. ELSE XTelnr = Adresse.Tel-1.
  2123. END.
  2124. ELSE DO:
  2125. IF Adresse.Tel-1 <> '' THEN XTelnr = Adresse.Tel-1.
  2126. ELSE XTelnr = Adresse.Tel-2.
  2127. END.
  2128. END.
  2129. F_Seite = VSeite.
  2130. F_Faknr = SFaknr.
  2131. DISPLAY F_Seite
  2132. F_Faknr WITH FRAME {&FRAME-NAME}.
  2133. VZeile = ''.
  2134. { v8/putstream.i BLiDruck.Listkzz }.
  2135. IF BAufko.Adresse[05] <> '' THEN DO:
  2136. DO ix = 1 TO 5:
  2137. SUBSTRING(VZeile,053) = BAufko.Adresse[ix].
  2138. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END.
  2139. ELSE DO: { v8/putstream.i "1" }. END.
  2140. END.
  2141. END.
  2142. ELSE DO:
  2143. DO ix = 7 TO 11:
  2144. SUBSTRING(VZeile,053) = Adresse.Anschrift[ix].
  2145. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END.
  2146. ELSE DO: { v8/putstream.i "1" }. END.
  2147. END.
  2148. END.
  2149. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20))
  2150. + STRING(SFaknr,"z999999")
  2151. + " /"
  2152. + STRING(VSeite,"zz9").
  2153. { v8/putstreamf.i "1" }
  2154. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20))
  2155. + " "
  2156. + BSteuer.MWST_Nr.
  2157. { v8/putstream.i "1" }
  2158. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20))
  2159. + " "
  2160. + STRING(FDatum,"99.99.9999").
  2161. { v8/putstream.i "2" }
  2162. DO WHILE VSeite = 1.
  2163. RUN ABLADEVORSCHRIFT.
  2164. RUN VERSANDART.
  2165. RUN CHAUFFEUR.
  2166. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],21,20))
  2167. + " "
  2168. + BAufko.I_Best.
  2169. SUBSTRING(VZeile,061) = TRIM(SUBSTRING(FormText[08],21,20))
  2170. + STRING(BAufko.Gewicht,"zzz,zz9.999-").
  2171. { v8/putstream.i "1" }
  2172. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],41,20))
  2173. + " "
  2174. + STRING(BAufko.Auf_Datum,"99.99.9999").
  2175. SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[08],01,20))
  2176. + STRING(BAufko.Knr,"zz999999").
  2177. SUBSTRING(VZeile,061) = TRIM(SUBSTRING(FormText[08],41,20))
  2178. + " "
  2179. + XTelnr.
  2180. { v8/putstream.i "1" }
  2181. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[09],21,20))
  2182. + " "
  2183. + STRING(BAufko.Lief_Datum,"99.99.9999").
  2184. SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[09],01,20))
  2185. + " "
  2186. + XVersand.
  2187. { v8/putstream.i "1" }
  2188. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20))
  2189. + " "
  2190. + STRING(BAufko.Aufnr,"9999999").
  2191. SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[22],01,20))
  2192. + " "
  2193. + XChauffeur.
  2194. { v8/putstream.i "2" }
  2195. IF XAblade <> '' THEN DO:
  2196. SUBSTRING(VZeile,001) = XAblade.
  2197. { v8/putstreamf.i "2" }
  2198. END.
  2199. XAuf_Text = BAufko.Auf_Text.
  2200. i1 = INDEX(XAuf_Text, CHR(10)).
  2201. i2 = 0.
  2202. DO WHILE i1 > 0:
  2203. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  2204. { v8/putstreamf.i "1" }
  2205. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  2206. i1 = INDEX(XAuf_Text, CHR(10)).
  2207. i2 = i2 + 1.
  2208. END.
  2209. IF XAuf_Text <> '' THEN DO:
  2210. SUBSTRING(VZeile,001) = XAuf_Text.
  2211. { v8/putstreamf.i "1" }
  2212. i2 = i2 + 1.
  2213. END.
  2214. IF i2 > 0 THEN DO:
  2215. { v8/putstream.i "1" }
  2216. END.
  2217. XAuf_Text = BAufko.Abh_Text.
  2218. i1 = INDEX(XAuf_Text, CHR(10)).
  2219. i2 = 0.
  2220. DO WHILE i1 > 0:
  2221. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  2222. { v8/putstreamf.i "1" }
  2223. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  2224. i1 = INDEX(XAuf_Text, CHR(10)).
  2225. i2 = i2 + 1.
  2226. END.
  2227. IF XAuf_Text <> '' THEN DO:
  2228. SUBSTRING(VZeile,001) = XAuf_Text.
  2229. { v8/putstreamf.i "1" }
  2230. i2 = i2 + 1.
  2231. END.
  2232. IF i2 > 0 THEN DO:
  2233. { v8/putstream.i "1" }
  2234. END.
  2235. LEAVE.
  2236. END.
  2237. IF LiKopf THEN DO:
  2238. SUBSTRING(VZeile,001) = FormText[03].
  2239. SUBSTRING(VZeile,071) = FormText[04].
  2240. { v8/putstream.i "1" }
  2241. SUBSTRING(VZeile,001) = FormText[05].
  2242. SUBSTRING(VZeile,071) = FormText[06].
  2243. { v8/putstream.i "1" }
  2244. END.
  2245. ELSE DO:
  2246. { v8/putstream.i "1" }
  2247. END.
  2248. IF VSeite > 1 AND
  2249. FUeber = TRUE THEN DO:
  2250. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[09],41,20)).
  2251. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  2252. { v8/putstreamf.i "2" }
  2253. END.
  2254. END PROCEDURE.
  2255. /* _UIB-CODE-BLOCK-END */
  2256. &ANALYZE-RESUME
  2257. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERPREIS C-Win
  2258. PROCEDURE LIEFERPREIS :
  2259. /*------------------------------------------------------------------------------
  2260. Purpose:
  2261. Parameters: <none>
  2262. Notes:
  2263. ------------------------------------------------------------------------------*/
  2264. VSeite = 0.
  2265. VFak_Betr = 0.
  2266. LiKopf = TRUE.
  2267. FPreis = TRUE.
  2268. FBetrag = FALSE.
  2269. FRabatt = FALSE.
  2270. FSamm = FALSE.
  2271. VKopfArt = 'LIEFERSCHEIN_KOPF'.
  2272. RUN VALUE(VKopfArt).
  2273. FOR EACH TAufze NO-LOCK
  2274. BY TAufze.Aufnr
  2275. BY TAufze.Sort1
  2276. BY TAufze.Sort2
  2277. BY TAufze.Sort3
  2278. BY TAufze.Artnr
  2279. BY TAufze.Inhalt
  2280. BY TAufze.Jahr
  2281. BY TAufze.Pos :
  2282. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO:
  2283. RUN VALUE(VKopfArt).
  2284. END.
  2285. FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK.
  2286. RUN ARTIKELZEILE.
  2287. VFak_Betr = VFak_Betr + Aufze.Net_Betr.
  2288. END.
  2289. VZeile = FILL(cWag, StBreite).
  2290. { v8/putstream.i "2" }
  2291. LiKopf = FALSE.
  2292. RUN GEBINDE_SALDO.
  2293. RUN GEBINDE_LIEFERUNG.
  2294. RUN GEBINDE_RUECKNAHME_TABELLE.
  2295. RUN KOPF_MUTATION.
  2296. END PROCEDURE.
  2297. /* _UIB-CODE-BLOCK-END */
  2298. &ANALYZE-RESUME
  2299. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERSCHEIN C-Win
  2300. PROCEDURE LIEFERSCHEIN :
  2301. /*------------------------------------------------------------------------------
  2302. Purpose:
  2303. Parameters: <none>
  2304. Notes:
  2305. ------------------------------------------------------------------------------*/
  2306. VSeite = 0.
  2307. VFak_Betr = 0.
  2308. LiKopf = TRUE.
  2309. FPreis = FALSE.
  2310. FBetrag = FALSE.
  2311. FRabatt = FALSE.
  2312. FSamm = FALSE.
  2313. VKopfArt = 'LIEFERSCHEIN_KOPF'.
  2314. RUN VALUE(VKopfArt).
  2315. FOR EACH TAufze NO-LOCK
  2316. BY TAufze.Aufnr
  2317. BY TAufze.Sort1
  2318. BY TAufze.Sort2
  2319. BY TAufze.Sort3
  2320. BY TAufze.Artnr
  2321. BY TAufze.Inhalt
  2322. BY TAufze.Jahr
  2323. BY TAufze.Pos :
  2324. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO:
  2325. RUN VALUE(VKopfArt).
  2326. END.
  2327. FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK.
  2328. RUN ARTIKELZEILE.
  2329. VFak_Betr = VFak_Betr + Aufze.Net_Betr.
  2330. END.
  2331. VZeile = FILL(cWag, StBreite).
  2332. { v8/putstream.i "2" }
  2333. LiKopf = FALSE.
  2334. RUN GEBINDE_SALDO.
  2335. RUN GEBINDE_LIEFERUNG.
  2336. RUN GEBINDE_RUECKNAHME_TABELLE.
  2337. RUN KOPF_MUTATION.
  2338. END PROCEDURE.
  2339. /* _UIB-CODE-BLOCK-END */
  2340. &ANALYZE-RESUME
  2341. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERSCHEIN_KOPF C-Win
  2342. PROCEDURE LIEFERSCHEIN_KOPF :
  2343. /*------------------------------------------------------------------------------
  2344. Purpose:
  2345. Parameters: <none>
  2346. Notes:
  2347. ------------------------------------------------------------------------------*/
  2348. RUN NEUE_SEITE.
  2349. IF VSeite = 1 THEN DO:
  2350. IF Laser THEN DO:
  2351. VZeile = DruckInit + SchriftInit.
  2352. CASE Schacht:
  2353. WHEN 1 THEN VZeile = VZeile + Schacht1.
  2354. WHEN 2 THEN VZeile = VZeile + Schacht2.
  2355. WHEN 3 THEN VZeile = VZeile + Schacht3.
  2356. WHEN 4 THEN VZeile = VZeile + Schacht4.
  2357. END CASE.
  2358. PUT STREAM Out_Stream CONTROL VZeile.
  2359. END.
  2360. FIND Adresse USE-INDEX Adresse-k1
  2361. WHERE Adresse.Firma = AdFirma
  2362. AND Adresse.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  2363. FIND LDebst USE-INDEX Debst-k1
  2364. WHERE LDebst.Firma = GVFirma
  2365. AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  2366. FIND FDebst USE-INDEX Debst-k1
  2367. WHERE FDebst.Firma = GVFirma
  2368. AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  2369. FIND Wust USE-INDEX Wust-k1
  2370. WHERE Wust.CodeK = LDebst.MWST
  2371. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  2372. LVSprcd = Adresse.Sprcd.
  2373. DebInkl = FALSE.
  2374. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  2375. XTelnr = ''.
  2376. IF DebInkl THEN DO:
  2377. IF Adresse.Tel-2 <> '' THEN XTelnr = Adresse.Tel-2.
  2378. ELSE XTelnr = Adresse.Tel-1.
  2379. END.
  2380. ELSE DO:
  2381. IF Adresse.Tel-1 <> '' THEN XTelnr = Adresse.Tel-1.
  2382. ELSE XTelnr = Adresse.Tel-2.
  2383. END.
  2384. END.
  2385. F_Seite = VSeite.
  2386. F_Faknr = BAufko.Faknr.
  2387. DISPLAY F_Seite
  2388. F_Faknr WITH FRAME {&FRAME-NAME}.
  2389. VZeile = ''.
  2390. { v8/putstream.i BLiDruck.Listkzz }.
  2391. IF BAufko.Adresse[05] <> '' THEN DO:
  2392. DO ix = 1 TO 5:
  2393. SUBSTRING(VZeile,053) = BAufko.Adresse[ix].
  2394. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END.
  2395. ELSE DO: { v8/putstream.i "1" }. END.
  2396. END.
  2397. END.
  2398. ELSE DO:
  2399. DO ix = 7 TO 11:
  2400. SUBSTRING(VZeile,053) = Adresse.Anschrift[ix].
  2401. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END.
  2402. ELSE DO: { v8/putstream.i "1" }. END.
  2403. END.
  2404. END.
  2405. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20))
  2406. + STRING(BAufko.Aufnr,"z999999")
  2407. + " /"
  2408. + STRING(VSeite,"zz9").
  2409. { v8/putstreamf.i "1" }
  2410. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20))
  2411. + " "
  2412. + BSteuer.MWST_Nr.
  2413. { v8/putstream.i "1" }
  2414. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20))
  2415. + " "
  2416. + STRING(FDatum,"99.99.9999").
  2417. { v8/putstream.i "2" }
  2418. DO WHILE VSeite = 1.
  2419. RUN ABLADEVORSCHRIFT.
  2420. RUN VERSANDART.
  2421. RUN CHAUFFEUR.
  2422. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],21,20))
  2423. + " "
  2424. + BAufko.I_Best.
  2425. SUBSTRING(VZeile,061) = TRIM(SUBSTRING(FormText[08],21,20))
  2426. + STRING(BAufko.Gewicht,"zzz,zz9.999-").
  2427. { v8/putstream.i "1" }
  2428. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],41,20))
  2429. + " "
  2430. + STRING(BAufko.Auf_Datum,"99.99.9999").
  2431. SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[08],01,20))
  2432. + STRING(BAufko.Knr,"zz999999").
  2433. SUBSTRING(VZeile,061) = TRIM(SUBSTRING(FormText[08],41,20))
  2434. + " "
  2435. + XTelnr.
  2436. { v8/putstream.i "1" }
  2437. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[09],21,20))
  2438. + " "
  2439. + STRING(BAufko.Lief_Datum,"99.99.9999").
  2440. SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[09],01,20))
  2441. + " "
  2442. + XVersand
  2443. + " / "
  2444. + XChauffeur.
  2445. { v8/putstream.i "2" }
  2446. /* SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[22],01,20))
  2447. * + " "
  2448. * + XChauffeur.
  2449. * { v8/putstream.i "2" }
  2450. * */
  2451. IF XAblade <> '' THEN DO:
  2452. SUBSTRING(VZeile,001) = XAblade.
  2453. { v8/putstreamf.i "2" }
  2454. END.
  2455. XAuf_Text = BAufko.Auf_Text.
  2456. i1 = INDEX(XAuf_Text, CHR(10)).
  2457. i2 = 0.
  2458. DO WHILE i1 > 0:
  2459. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  2460. { v8/putstreamf.i "1" }
  2461. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  2462. i1 = INDEX(XAuf_Text, CHR(10)).
  2463. i2 = i2 + 1.
  2464. END.
  2465. IF XAuf_Text <> '' THEN DO:
  2466. SUBSTRING(VZeile,001) = XAuf_Text.
  2467. { v8/putstreamf.i "1" }
  2468. i2 = i2 + 1.
  2469. END.
  2470. IF i2 > 0 THEN DO:
  2471. { v8/putstream.i "1" }
  2472. END.
  2473. XAuf_Text = BAufko.Abh_Text.
  2474. i1 = INDEX(XAuf_Text, CHR(10)).
  2475. i2 = 0.
  2476. DO WHILE i1 > 0:
  2477. SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1).
  2478. { v8/putstreamf.i "1" }
  2479. XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1).
  2480. i1 = INDEX(XAuf_Text, CHR(10)).
  2481. i2 = i2 + 1.
  2482. END.
  2483. IF XAuf_Text <> '' THEN DO:
  2484. SUBSTRING(VZeile,001) = XAuf_Text.
  2485. { v8/putstreamf.i "1" }
  2486. i2 = i2 + 1.
  2487. END.
  2488. IF i2 > 0 THEN DO:
  2489. { v8/putstream.i "1" }
  2490. END.
  2491. LEAVE.
  2492. END.
  2493. IF LiKopf THEN DO:
  2494. SUBSTRING(VZeile,001) = FormText[03].
  2495. SUBSTRING(VZeile,071) = FormText[04].
  2496. { v8/putstream.i "1" }
  2497. SUBSTRING(VZeile,001) = FormText[05].
  2498. SUBSTRING(VZeile,071) = FormText[06].
  2499. StBreite = LENGTH(VZeile).
  2500. { v8/putstream.i "1" }
  2501. END.
  2502. ELSE DO:
  2503. { v8/putstream.i "1" }
  2504. END.
  2505. END PROCEDURE.
  2506. /* _UIB-CODE-BLOCK-END */
  2507. &ANALYZE-RESUME
  2508. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MEHRWERTSTEUER C-Win
  2509. PROCEDURE MEHRWERTSTEUER :
  2510. /*------------------------------------------------------------------------------
  2511. Purpose:
  2512. Parameters: <none>
  2513. Notes:
  2514. ------------------------------------------------------------------------------*/
  2515. VWpfl = 0.
  2516. VWust = 0.
  2517. Zuszz = 0.
  2518. DO ix = 1 TO 11:
  2519. IF BAufko.WPfl[ix] = 0 THEN NEXT.
  2520. VWpfl[ix] = BAufko.Wpfl[ix].
  2521. VWust[ix] = BAufko.Wust[ix].
  2522. Zuszz = Zuszz + 1.
  2523. END.
  2524. IF Zuszz > 0 THEN Zuszz + 4.
  2525. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO:
  2526. RUN VALUE(VKopfArt).
  2527. END.
  2528. DO ix = 1 TO 11:
  2529. IF VWpfl[ix] = 0 THEN NEXT.
  2530. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  2531. WHERE MWSTAns.MWST_Cd = ix
  2532. AND MWSTAns.Datum <= BAUfko.Kond_Datum NO-LOCK.
  2533. SUBSTRING(VZeile,027) = MWSTAns.Bez.
  2534. SUBSTRING(VZeile,065) = STRING(VWpfl[ix],"->>,>>9.99").
  2535. SUBSTRING(VZeile,083) = STRING(VWust[ix],"->>,>>9.99").
  2536. SUBSTRING(VZeile,094) = STRING(ix ,"z9").
  2537. { v8/putstream.i "1" }
  2538. VFak_Betr = VFak_Betr + VWust[ix].
  2539. END.
  2540. Rundbetr = VFak_Betr.
  2541. Rundcode = 1.
  2542. RUN "v8/runden.p".
  2543. VFak_Betr = Rundbetr.
  2544. SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026).
  2545. { v8/putstream.i "1" }
  2546. SUBSTRING(VZeile,027) = TRIM(FormText[16]).
  2547. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  2548. { v8/putstreamf.i "1" }
  2549. END PROCEDURE.
  2550. /* _UIB-CODE-BLOCK-END */
  2551. &ANALYZE-RESUME
  2552. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUE_SEITE C-Win
  2553. PROCEDURE NEUE_SEITE :
  2554. /*------------------------------------------------------------------------------
  2555. Purpose:
  2556. Parameters: <none>
  2557. Notes:
  2558. ------------------------------------------------------------------------------*/
  2559. DEF VAR A AS INT NO-UNDO.
  2560. DEF VAR B AS INT NO-UNDO.
  2561. DO WHILE VSeite > 0:
  2562. IF DOpen THEN DO:
  2563. PUT STREAM Out_Stream CHR(12).
  2564. LEAVE.
  2565. END.
  2566. A = BLiDruck.Listtzz.
  2567. DO B = VLine TO A:
  2568. VZNr = VZNr + 1.
  2569. CREATE XTermOut.
  2570. ASSIGN XTermOut.ZNr = VZNr
  2571. XTermOut.Zeile = ''.
  2572. END.
  2573. LEAVE.
  2574. END.
  2575. VLine = 0.
  2576. VSeite = VSeite + 1.
  2577. END PROCEDURE.
  2578. /* _UIB-CODE-BLOCK-END */
  2579. &ANALYZE-RESUME
  2580. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PP_DRUCKEN C-Win
  2581. PROCEDURE PP_DRUCKEN :
  2582. /*------------------------------------------------------------------------------
  2583. Purpose:
  2584. Parameters: <none>
  2585. Notes:
  2586. ------------------------------------------------------------------------------*/
  2587. DEF VAR xz AS CHAR FORMAT "x(300)".
  2588. DEF VAR X AS INT.
  2589. DEF VAR Y AS INT.
  2590. DEF VAR XX AS INT.
  2591. DEF VAR YY AS INT.
  2592. PUT STREAM Out_Stream CONTROL CHR(027) "*t300R".
  2593. PUT STREAM Out_Stream CONTROL CHR(027) "*r1A".
  2594. XX = 1340.
  2595. YY = 520.
  2596. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(Y) "y" STRING(X) "X".
  2597. /* RAHMEN */
  2598. X = XX + 0.
  2599. Y = YY + 0.
  2600. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X".
  2601. PUT STREAM Out_Stream CONTROL CHR(027) "*c500a1B".
  2602. PUT STREAM Out_Stream CONTROL CHR(027) "*c0P".
  2603. PUT STREAM Out_Stream CONTROL CHR(027) "*c5G".
  2604. PUT STREAM Out_Stream CONTROL CHR(027) "*c1a100B".
  2605. PUT STREAM Out_Stream CONTROL CHR(027) "*c0P".
  2606. PUT STREAM Out_Stream CONTROL CHR(027) "*c5G" CHR(10).
  2607. X = XX + 500.
  2608. Y = YY.
  2609. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X".
  2610. PUT STREAM Out_Stream CONTROL CHR(027) "*c1a100B".
  2611. PUT STREAM Out_Stream CONTROL CHR(027) "*c0P".
  2612. PUT STREAM Out_Stream CONTROL CHR(027) "*c5G".
  2613. X = XX.
  2614. Y = YY + 100.
  2615. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X".
  2616. PUT STREAM Out_Stream CONTROL CHR(027) "*c500a1B".
  2617. PUT STREAM Out_Stream CONTROL CHR(027) "*c0P".
  2618. PUT STREAM Out_Stream CONTROL CHR(027) "*c5G".
  2619. /* HORIZONTALLINIE */
  2620. X = XX + 0.
  2621. Y = YY + 110.
  2622. /*
  2623. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X".
  2624. PUT STREAM Out_Stream CONTROL CHR(027) "*c900a1B".
  2625. PUT STREAM Out_Stream CONTROL CHR(027) "*c0P".
  2626. PUT STREAM Out_Stream CONTROL CHR(027) "*c5G".
  2627. */
  2628. /* P.P. ILANZ DIE POST B-ECONOMY */
  2629. X = XX + 20.
  2630. Y = YY + 85.
  2631. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X".
  2632. PUT STREAM Out_Stream CONTROL CHR(027) "(s20v3b1p0s4148T".
  2633. PUT STREAM Out_Stream CONTROL "P.P.".
  2634. X = XX + 190.
  2635. Y = YY + 45.
  2636. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X".
  2637. PUT STREAM Out_Stream CONTROL CHR(027) "(s8v0b1p0s4148T".
  2638. PUT STREAM Out_Stream CONTROL "CH-7130".
  2639. X = XX + 700.
  2640. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X".
  2641. PUT STREAM Out_Stream CONTROL CHR(027) "(s8v0b3p0s4148T".
  2642. PUT STREAM Out_Stream CONTROL "DIE POST".
  2643. X = XX + 190.
  2644. Y = YY + 85.
  2645. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X".
  2646. PUT STREAM Out_Stream CONTROL CHR(027) "(s8v0b1p0s4148T".
  2647. PUT STREAM Out_Stream CONTROL "Ilanz".
  2648. X = XX + 510.
  2649. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X".
  2650. PUT STREAM Out_Stream CONTROL CHR(027) "(s8v0b3p0s4148T".
  2651. PUT STREAM Out_Stream CONTROL "B-ECONOMY".
  2652. /* GO AT HOME */
  2653. X = 0.
  2654. Y = 0.
  2655. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(Y) "y" STRING(X) "X".
  2656. PUT STREAM Out_Stream CONTROL CHR(027) "*rB" CHR(10).
  2657. PUT STREAM Out_Stream CONTROL SchriftInit.
  2658. END PROCEDURE.
  2659. /* _UIB-CODE-BLOCK-END */
  2660. &ANALYZE-RESUME
  2661. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PRUEFZIFFER C-Win
  2662. PROCEDURE PRUEFZIFFER :
  2663. /*------------------------------------------------------------------------------
  2664. Purpose:
  2665. Parameters: <none>
  2666. Notes:
  2667. ------------------------------------------------------------------------------*/
  2668. /* ------------------------------------------------------------------------- */
  2669. /* Prufziffer MODULO 10, Rekursiv (27 Stellig Ref.-Nr.) */
  2670. /* ------------------------------------------------------------------------- */
  2671. /* */
  2672. /* Uebergabe Variable: 1. String Betrag (12-stellig) */
  2673. /* 2. String Referenz (27-stellig) */
  2674. /* 3. String Teilnehmernummer ( 9-stellig) */
  2675. /* */
  2676. /* Erstellung der VESR-Codierzeile */
  2677. /* */
  2678. /*---------------------------------------------------------------------------*/
  2679. DEF INPUT-OUTPUT PARAMETER PZBetrag AS CHAR FORMAT "x(13)".
  2680. DEF INPUT-OUTPUT PARAMETER PZReferenz AS CHAR FORMAT "x(27)".
  2681. DEF INPUT-OUTPUT PARAMETER PZTNummer AS CHAR FORMAT "x(09)".
  2682. DEF OUTPUT PARAMETER VSZeile AS CHAR FORMAT "x(58)".
  2683. DEF VAR l1 AS INT.
  2684. DEF VAR l2 AS INT.
  2685. DEF VAR l3 AS INT.
  2686. DEF VAR PZ AS INT.
  2687. DEF VAR x1 AS INT.
  2688. DEF VAR x2 AS INT.
  2689. DEF VAR x3 AS INT.
  2690. DEF VAR VMOD10 AS CHAR FORMAT "x(11)" EXTENT 11.
  2691. VMOD10[01] = "09468271350".
  2692. VMOD10[02] = "94682713509".
  2693. VMOD10[03] = "46827135098".
  2694. VMOD10[04] = "68271350947".
  2695. VMOD10[05] = "82713509466".
  2696. VMOD10[06] = "27135094685".
  2697. VMOD10[07] = "71350946824".
  2698. VMOD10[08] = "13509468273".
  2699. VMOD10[09] = "35094682712".
  2700. VMOD10[10] = "50946827131".
  2701. l1 = 12.
  2702. l2 = 26.
  2703. l3 = 08.
  2704. DO WHILE SUBSTRING(PZBetrag,01,01) <> " ": /* Mit Betrag */
  2705. x2 = 1.
  2706. x1 = INT(SUBSTRING(PZBetrag ,01 ,01)).
  2707. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  2708. DO x3 = 2 TO 12:
  2709. x1 = INT(SUBSTRING(PZBetrag ,x3 ,01)).
  2710. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  2711. END.
  2712. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  2713. SUBSTRING(PZBetrag,13) = STRING(PZ,"9").
  2714. LEAVE.
  2715. END.
  2716. DO WHILE SUBSTRING(PZBetrag,01,01) = " ": /* Ohne Betrag */
  2717. x2 = 11.
  2718. x1 = INT(SUBSTRING(PZBetrag ,01 ,01)).
  2719. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  2720. DO x3 = 12 TO 12:
  2721. x1 = INT(SUBSTRING(PZBetrag ,x3 ,01)).
  2722. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  2723. END.
  2724. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  2725. SUBSTRING(PZBetrag,13) = STRING(PZ,"9").
  2726. LEAVE.
  2727. END.
  2728. DO WHILE l2 = 26:
  2729. x2 = 1.
  2730. x1 = INT(SUBSTRING(PZReferenz,01 ,01)).
  2731. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  2732. DO x3 = 2 TO 26:
  2733. x1 = INT(SUBSTRING(PZReferenz ,x3 ,01)).
  2734. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  2735. END.
  2736. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  2737. SUBSTRING(PZReferenz,27) = STRING(PZ,"9").
  2738. LEAVE.
  2739. END.
  2740. DO WHILE l3 = 08:
  2741. x2 = 1.
  2742. x1 = INT(SUBSTRING(PZTNummer ,01 ,01)).
  2743. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  2744. DO x3 = 2 TO 08:
  2745. x1 = INT(SUBSTRING(PZTNummer ,x3 ,01)).
  2746. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  2747. END.
  2748. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  2749. SUBSTRING(PZTNummer,09) = STRING(PZ,"9").
  2750. LEAVE.
  2751. END.
  2752. VSZeile = "".
  2753. SUBSTRING(VSZeile,01) = PZBetrag.
  2754. SUBSTRING(VSZeile,14) = ">".
  2755. SUBSTRING(VSZeile,15) = PZReferenz.
  2756. SUBSTRING(VSZeile,42) = "+ ".
  2757. SUBSTRING(VSZeile,44) = PZTNummer.
  2758. SUBSTRING(VSZeile,53) = ">".
  2759. SUBSTRING(VSZeile,58) = "H".
  2760. END PROCEDURE.
  2761. /* _UIB-CODE-BLOCK-END */
  2762. &ANALYZE-RESUME
  2763. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMELSUCHEN C-Win
  2764. PROCEDURE SAMMELSUCHEN :
  2765. /*------------------------------------------------------------------------------
  2766. Purpose:
  2767. Parameters: <none>
  2768. Notes:
  2769. ------------------------------------------------------------------------------*/
  2770. FIND FIRST SammFak WHERE SammFak.Knr = BAufko.Fak_Knr
  2771. AND SammFak.Samm_Nr = BAufko.Samm_Nr NO-ERROR.
  2772. IF AVAILABLE SammFak THEN RETURN.
  2773. FOR EACH Aufko USE-INDEX Aufko-k5
  2774. WHERE Aufko.Firma = BAufko.Firma
  2775. AND Aufko.Fak_Art = BAufko.Fak_Art
  2776. AND Aufko.Samm_Nr = BAufko.Samm_Nr :
  2777. IF Aufko.Auf_Sta < 4 THEN DO:
  2778. Aufko.Faknr = 0.
  2779. NEXT.
  2780. END.
  2781. CREATE SammFak.
  2782. ASSIGN SammFak.Knr = Aufko.Fak_Knr
  2783. SammFak.Aufnr = Aufko.Aufnr
  2784. SammFak.Samm_Nr = Aufko.Samm_Nr
  2785. SammFak.RID = RECID(Aufko).
  2786. END.
  2787. END PROCEDURE.
  2788. /* _UIB-CODE-BLOCK-END */
  2789. &ANALYZE-RESUME
  2790. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK C-Win
  2791. PROCEDURE SAMMFAK :
  2792. /*------------------------------------------------------------------------------
  2793. Purpose:
  2794. Parameters: <none>
  2795. Notes:
  2796. ------------------------------------------------------------------------------*/
  2797. Zuszz = 8.
  2798. LiKopf = TRUE.
  2799. FPreis = TRUE.
  2800. FBetrag = TRUE.
  2801. FRabatt = TRUE.
  2802. FUeber = FALSE.
  2803. FSamm = TRUE.
  2804. VKopfArt = 'SAMMFAK_KOPF'.
  2805. IF (BLiDruck.Listtzz - VLine - Zuszz ) < BLiDruck.Listfzz THEN DO:
  2806. TiDruck = TRUE.
  2807. END.
  2808. IF TiDruck THEN DO:
  2809. RUN VALUE(VKopfArt).
  2810. END.
  2811. ELSE DO:
  2812. { v8/putstream.i "2" }
  2813. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20))
  2814. + " "
  2815. + STRING(BAufko.Aufnr,"zzzzzzzzz9").
  2816. { v8/putstream.i "1" }
  2817. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],41,20))
  2818. + " "
  2819. + STRING(BAufko.Auf_Datum,"99.99.9999").
  2820. { v8/putstream.i "2" }
  2821. SUBSTRING(VZeile,001) = FormText[03].
  2822. SUBSTRING(VZeile,071) = FormText[04].
  2823. { v8/putstream.i "1" }
  2824. SUBSTRING(VZeile,001) = FormText[05].
  2825. SUBSTRING(VZeile,071) = FormText[06].
  2826. { v8/putstream.i "1" }
  2827. END.
  2828. LiefAdr = ''.
  2829. IF BAufko.Knr <> BAufko.Fak_Knr THEN DO:
  2830. FIND BAdresse USE-INDEX Adresse-k1
  2831. WHERE BAdresse.Firma = AdFirma
  2832. AND BAdresse.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  2833. LiefAdr = BAdresse.Anzeig_Br.
  2834. END.
  2835. IF LiefAdr <> '' THEN DO:
  2836. VZeile = LiefAdr.
  2837. { v8/putstreamf.i "1" }
  2838. END.
  2839. FOR EACH TAufze NO-LOCK
  2840. BY TAufze.Aufnr
  2841. BY TAufze.Sort1
  2842. BY TAufze.Sort2
  2843. BY TAufze.Sort3
  2844. BY TAufze.Artnr
  2845. BY TAufze.Inhalt
  2846. BY TAufze.Jahr
  2847. BY TAufze.Pos :
  2848. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO:
  2849. RUN VALUE(VKopfArt).
  2850. END.
  2851. FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK.
  2852. RUN ARTIKELZEILE.
  2853. VFak_Betr = VFak_Betr + Aufze.Net_Betr.
  2854. END.
  2855. VZeile = FILL(cWag, StBreite).
  2856. { v8/putstream.i "1" }
  2857. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[10],41,20)).
  2858. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  2859. { v8/putstreamf.i "1" }
  2860. LiKopf = FALSE.
  2861. RUN SUMMENRABATTE.
  2862. { v8/putstream.i "1" }
  2863. RUN GEBINDE_SALDO.
  2864. RUN GEBINDE_ABRECHNUNG.
  2865. DO ix = 1 TO 12:
  2866. GTWpfl[ix] = GTWpfl[ix] + BAufko.Wpfl[ix].
  2867. GTWust[ix] = GTWust[ix] + BAufko.Wust[ix].
  2868. END.
  2869. GTFak_Betr = GTFak_Betr + VFak_Betr.
  2870. GTSk_Ber = GTSk_Ber + BAufko.Sk_Ber.
  2871. RUN KOPF_MUTATION.
  2872. TiDruck = FALSE.
  2873. IF FLetzt THEN RUN SAMMFAK_ENDE.
  2874. END PROCEDURE.
  2875. /* _UIB-CODE-BLOCK-END */
  2876. &ANALYZE-RESUME
  2877. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_ENDE C-Win
  2878. PROCEDURE SAMMFAK_ENDE :
  2879. /*------------------------------------------------------------------------------
  2880. Purpose:
  2881. Parameters: <none>
  2882. Notes:
  2883. ------------------------------------------------------------------------------*/
  2884. SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026).
  2885. { v8/putstream.i "1" }
  2886. SUBSTRING(VZeile,027) = TRIM(SUBSTRING(FormText[14],01,20)).
  2887. SUBSTRING(VZeile,083) = STRING(GTFak_Betr,"->>,>>9.99").
  2888. { v8/putstreamf.i "1" }
  2889. SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026).
  2890. { v8/putstream.i "1" }
  2891. DO ix = 1 TO 11:
  2892. IF GTWpfl[ix] = 0 THEN NEXT.
  2893. GTFak_Betr = GTFak_Betr + GTWust[ix].
  2894. Zuszz = Zuszz + 1.
  2895. END.
  2896. IF Zuszz > 0 THEN Zuszz = Zuszz + 6.
  2897. IF (BLiDruck.Listtzz - VLine - Zuszz) <= BLiDruck.Listfzz THEN DO:
  2898. RUN VALUE(VKopfArt).
  2899. END.
  2900. DO ix = 1 TO 11:
  2901. IF GTWpfl[ix] = 0 THEN NEXT.
  2902. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  2903. WHERE MWSTAns.MWST_Cd = ix
  2904. AND MWSTAns.Datum <= BAufko.Kond_Datum NO-LOCK.
  2905. SUBSTRING(VZeile,027) = MWSTAns.Bez.
  2906. SUBSTRING(VZeile,065) = STRING(GTWpfl[ix],"->>,>>9.99").
  2907. SUBSTRING(VZeile,083) = STRING(GTWust[ix],"->>,>>9.99").
  2908. SUBSTRING(VZeile,094) = STRING(ix ,"z9").
  2909. { v8/putstream.i "1" }
  2910. END.
  2911. Rundbetr = GTFak_Betr.
  2912. Rundcode = 1.
  2913. RUN "v8/runden.p".
  2914. GTFak_Betr = Rundbetr.
  2915. SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026).
  2916. { v8/putstream.i "1" }
  2917. SUBSTRING(VZeile,027) = TRIM(FormText[16]).
  2918. SUBSTRING(VZeile,083) = STRING(GTFak_Betr,"->>,>>9.99").
  2919. { v8/putstreamf.i "1" }
  2920. SUBSTRING(VZeile,083) = FILL('=', StBreite - 082).
  2921. { v8/putstream.i "2" }
  2922. FIND Kondi USE-INDEX Kondi-k1
  2923. WHERE Kondi.Kond = BAufko.Kond
  2924. AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  2925. IF AVAILABLE Kondi THEN DO:
  2926. SUBSTRING(VZeile,001) = Kondi.KoText.
  2927. IF Kondi.Skonto[01] <> 0 THEN DO:
  2928. Rundbetr = GTSk_Ber * Kondi.Skonto[01] / 100.
  2929. Rundcode = 1.
  2930. RUN "v8/runden.p".
  2931. SUBSTRING(VZeile,083) = STRING(Rundbetr,"->>,>>9.99").
  2932. END.
  2933. END.
  2934. ELSE DO:
  2935. SUBSTRING(VZeile,001) = FILL('?', 30).
  2936. END.
  2937. { v8/putstream.i "2" }
  2938. RUN UMSATZVERTEILUNG.
  2939. VZeile = CHR(12).
  2940. { v8/putstream.i "1" }
  2941. Rundbetr = GTFak_Betr.
  2942. VesrKnr = BAufko.Fak_Knr.
  2943. VesrFnr = BAufko.Faknr.
  2944. IF VBesr = 2 THEN RUN VESR_DRUCK02.
  2945. ELSE RUN VESR_DRUCK.
  2946. END PROCEDURE.
  2947. /* _UIB-CODE-BLOCK-END */
  2948. &ANALYZE-RESUME
  2949. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_KOPF C-Win
  2950. PROCEDURE SAMMFAK_KOPF :
  2951. /*------------------------------------------------------------------------------
  2952. Purpose:
  2953. Parameters: <none>
  2954. Notes:
  2955. ------------------------------------------------------------------------------*/
  2956. RUN NEUE_SEITE.
  2957. IF VSeite = 1 THEN DO:
  2958. IF Laser THEN DO:
  2959. VZeile = DruckInit + SchriftInit.
  2960. CASE Schacht:
  2961. WHEN 1 THEN VZeile = VZeile + Schacht1.
  2962. WHEN 2 THEN VZeile = VZeile + Schacht2.
  2963. WHEN 3 THEN VZeile = VZeile + Schacht3.
  2964. WHEN 4 THEN VZeile = VZeile + Schacht4.
  2965. END CASE.
  2966. PUT STREAM Out_Stream CONTROL VZeile.
  2967. END.
  2968. RUN PP_DRUCKEN.
  2969. IF SFaknr = 0 THEN SFaknr = BAufko.Faknr.
  2970. REPEAT WHILE SFaknr = 0 TRANSACTION:
  2971. RUN "v8/steunr.p" ( INPUT 2, OUTPUT VFaknr ).
  2972. IF RETURN-VALUE <> '' THEN NEXT.
  2973. SFaknr = VFaknr.
  2974. RELEASE Aufko.
  2975. END.
  2976. FIND Adresse USE-INDEX Adresse-k1
  2977. WHERE Adresse.Firma = AdFirma
  2978. AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  2979. FIND LDebst USE-INDEX Debst-k1
  2980. WHERE LDebst.Firma = GVFirma
  2981. AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  2982. FIND FDebst USE-INDEX Debst-k1
  2983. WHERE FDebst.Firma = GVFirma
  2984. AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  2985. FIND Wust USE-INDEX Wust-k1
  2986. WHERE Wust.CodeK = LDebst.MWST
  2987. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  2988. LVSprcd = Adresse.Sprcd.
  2989. DebInkl = FALSE.
  2990. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  2991. END.
  2992. F_Seite = VSeite.
  2993. F_Faknr = SFaknr.
  2994. DISPLAY F_Seite
  2995. F_Faknr WITH FRAME {&FRAME-NAME}.
  2996. VZeile = ''.
  2997. { v8/putstream.i BLiDruck.Listkzz }.
  2998. DO ix = 6 TO 12:
  2999. SUBSTRING(VZeile,056) = Adresse.Anschrift[ix].
  3000. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END.
  3001. ELSE DO: { v8/putstream.i "1" }. END.
  3002. END.
  3003. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20))
  3004. + STRING(SFaknr,"z999999")
  3005. + " /"
  3006. + STRING(VSeite,"zz9").
  3007. { v8/putstreamf.i "1" }
  3008. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20))
  3009. + " "
  3010. + BSteuer.MWST_Nr.
  3011. { v8/putstream.i "1" }
  3012. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20)).
  3013. SUBSTRING(VZeile,012) = STRING(FDatum,"99.99.9999").
  3014. { v8/putstream.i "2" }
  3015. IF VSeite = 1 THEN DO:
  3016. END.
  3017. DO WHILE TiDruck.
  3018. SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[17],21,20))
  3019. + " "
  3020. + STRING(BAufko.Aufnr,"zzzzzzzzz9").
  3021. { v8/putstream.i "1" }
  3022. SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[07],41,20))
  3023. + " "
  3024. + STRING(BAufko.Auf_Datum,"99.99.9999").
  3025. SUBSTRING(VZeile,056) = TRIM(SUBSTRING(FormText[08],01,20))
  3026. + STRING(BAufko.Fak_Knr,"zz999999").
  3027. { v8/putstream.i "2" }
  3028. LEAVE.
  3029. END.
  3030. IF LiKopf THEN DO:
  3031. SUBSTRING(VZeile,001) = FormText[03].
  3032. SUBSTRING(VZeile,071) = FormText[04].
  3033. { v8/putstream.i "1" }
  3034. SUBSTRING(VZeile,001) = FormText[05].
  3035. SUBSTRING(VZeile,071) = FormText[06].
  3036. StBreite = LENGTH(VZeile).
  3037. { v8/putstream.i "1" }
  3038. END.
  3039. ELSE DO:
  3040. { v8/putstream.i "1" }
  3041. END.
  3042. IF VSeite > 1 AND
  3043. FUeber = TRUE THEN DO:
  3044. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[09],41,20)).
  3045. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  3046. { v8/putstreamf.i "2" }
  3047. END.
  3048. END PROCEDURE.
  3049. /* _UIB-CODE-BLOCK-END */
  3050. &ANALYZE-RESUME
  3051. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUMMENRABATTE C-Win
  3052. PROCEDURE SUMMENRABATTE :
  3053. /*------------------------------------------------------------------------------
  3054. Purpose:
  3055. Parameters: <none>
  3056. Notes:
  3057. ------------------------------------------------------------------------------*/
  3058. DEF VAR RText AS CHAR FORMAT "x(20)" NO-UNDO.
  3059. DEF VAR WText AS CHAR NO-UNDO.
  3060. DO WHILE FRabatt:
  3061. Zuszz = 0.
  3062. FOR EACH TRabSumm NO-LOCK:
  3063. IF TRabSumm.Auf_Rab <> 0 THEN Zuszz = Zuszz + 1.
  3064. IF TRabSumm.Abh_Rab <> 0 THEN Zuszz = Zuszz + 1.
  3065. END.
  3066. FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0 NO-LOCK:
  3067. Zuszz = Zuszz + 1.
  3068. END.
  3069. /* Receycling */
  3070. FOR EACH AufGKon USE-INDEX AufGKon-k1
  3071. WHERE AufGKon.Firma = BAufko.Firma
  3072. AND AufGKon.Aufnr = BAufko.Aufnr
  3073. AND AufGKon.Gebuehr <> 0
  3074. AND AufGKon.Betrag <> 0 NO-LOCK:
  3075. Zuszz = Zuszz + 1.
  3076. END.
  3077. IF Zuszz > 0 THEN Zuszz = Zuszz + 7.
  3078. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO:
  3079. RUN VALUE(VKopfArt).
  3080. END.
  3081. LEAVE.
  3082. END.
  3083. /* Auftragsrabatt ---------------------------------------------------- */
  3084. i5 = 0.
  3085. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
  3086. BY TRabSumm.Rab_Summ:
  3087. Rundbetr = TRabSumm.Auf_Rab.
  3088. VFak_Betr = VFak_Betr - Rundbetr.
  3089. IF NOT FRabatt THEN NEXT.
  3090. IF Rundbetr < 0 THEN RText = VZusText.
  3091. ELSE RText = VRabText.
  3092. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1
  3093. WHERE AufRabSu.Firma = BAufko.Firma
  3094. AND AufRabSu.Aufnr = BAufko.Aufnr
  3095. AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
  3096. IF AufRabSu.F_Proz_Betr THEN WText = "%".
  3097. ELSE WText = "Fr.".
  3098. RabWert = ABSOLUT(AufRabSu.F_Wert).
  3099. SUBSTRING(VZeile,036) = RText
  3100. + " "
  3101. + TRabSumm.Bez.
  3102. SUBSTRING(VZeile,055) = STRING(RabWert,"z9.99-")
  3103. + WText.
  3104. SUBSTRING(VZeile,083) = STRING(- Rundbetr,"->>,>>9.99").
  3105. { v8/putstream.i "1" }
  3106. i5 = i5 + 1.
  3107. END.
  3108. /* Abholrabatt ------------------------------------------------------- */
  3109. FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
  3110. BY TRabSumm.Rab_Summ:
  3111. Rundbetr = TRabSumm.Abh_Rab.
  3112. VFak_Betr = VFak_Betr - Rundbetr.
  3113. IF NOT FRabatt THEN NEXT.
  3114. IF Rundbetr < 0 THEN RText = VZusText.
  3115. ELSE RText = VRabText.
  3116. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1
  3117. WHERE AufRabSu.Firma = BAufko.Firma
  3118. AND AufRabSu.Aufnr = BAufko.Aufnr
  3119. AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
  3120. IF AufRabSu.A_Proz_Betr THEN WText = "%".
  3121. ELSE WText = "Fr.".
  3122. RabWert = ABSOLUT(AufRabSu.A_Wert).
  3123. SUBSTRING(VZeile,036) = RText
  3124. + " "
  3125. + TRabSumm.Bez.
  3126. SUBSTRING(VZeile,055) = STRING(RabWert,"z9.99-")
  3127. + WText.
  3128. SUBSTRING(VZeile,083) = STRING(- Rundbetr,"->>,>>9.99").
  3129. { v8/putstream.i "1" }
  3130. i5 = i5 + 1.
  3131. END.
  3132. /* Spezialpreis-Auftragsrabatte ---------------------------------------- */
  3133. FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0
  3134. BY TSpeRab.Rab_Grp:
  3135. Rundbetr = TSpeRab.Auf_Betr.
  3136. VFak_Betr = VFak_Betr - Rundbetr.
  3137. IF NOT FRabatt THEN NEXT.
  3138. FIND Tabel USE-INDEX Tabel-k1
  3139. WHERE Tabel.Firma = GVFirma
  3140. AND Tabel.RecArt = 'ARABGRP'
  3141. AND Tabel.CodeC = ''
  3142. AND Tabel.CodeI = TSpeRab.Rab_Grp
  3143. AND Tabel.Sprcd = 1 NO-LOCK.
  3144. IF Rundbetr < 0 THEN RText = VZusText.
  3145. ELSE RText = VRabText.
  3146. FIND FIRST AufSpRab USE-INDEX AufSpRab-k1
  3147. WHERE AufSpRab.Firma = BAufko.Firma
  3148. AND AufSpRab.Aufnr = BAufko.Aufnr
  3149. AND AufSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK.
  3150. IF AufSpRab.Auf_Proz_Betr THEN WText = "%".
  3151. ELSE WText = "Fr.".
  3152. RabWert = ABSOLUT(AufSpRab.Auf_Wert).
  3153. SUBSTRING(VZeile,036) = RText
  3154. + " "
  3155. + TRIM(Tabel.Bez1).
  3156. SUBSTRING(VZeile,055) = STRING(RabWert,"z9.99-")
  3157. + WText.
  3158. SUBSTRING(VZeile,083) = STRING(- Rundbetr,"->>,>>9.99").
  3159. { v8/putstream.i "1" }
  3160. i5 = i5 + 1.
  3161. END.
  3162. IF i5 > 0 THEN DO:
  3163. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[14],21,20)).
  3164. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  3165. { v8/putstreamf.i "1" }
  3166. END.
  3167. /* Recycling-Gebühren ------------------------------------------------ */
  3168. i5 = 0.
  3169. FOR EACH AufGKon USE-INDEX AufGKon-k1
  3170. WHERE AufGKon.Firma = BAufko.Firma
  3171. AND AufGKon.Aufnr = BAufko.Aufnr
  3172. AND AufGKon.Gebuehr <> 0
  3173. AND AufGKon.Betrag <> 0 NO-LOCK:
  3174. VFak_Betr = VFak_Betr + AufGKon.Betrag.
  3175. IF NOT FRabatt THEN NEXT.
  3176. VWC = AufGKon.MWSt_Cd.
  3177. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[11],41,20)).
  3178. SUBSTRING(VZeile,083) = STRING(AufGKon.Betrag ,"->>,>>9.99").
  3179. SUBSTRING(VZeile,094) = STRING(AufGKon.MWSt_Cd ,"z9").
  3180. { v8/putstream.i "1" }
  3181. i5 = i5 + 1.
  3182. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  3183. WHERE MWSTAns.MWST_Cd = VWC
  3184. AND MWSTAns.Datum <= FDatum NO-LOCK NO-ERROR.
  3185. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 9991
  3186. AND TUmsGrp.Mwst = MWSTAns.Ansatz NO-ERROR.
  3187. IF NOT AVAILABLE TUmsGrp THEN DO:
  3188. CREATE TUmsGrp.
  3189. ASSIGN TUmsGrp.Ums_Grp = 9991
  3190. TUmsGrp.Mwst = MWSTAns.Ansatz
  3191. TUmsGrp.Bez = 'Recycling-Gebühren'.
  3192. END.
  3193. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + AufGKon.Betrag.
  3194. END.
  3195. IF i5 > 0 THEN DO:
  3196. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[14],41,20)).
  3197. SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99").
  3198. { v8/putstreamf.i "1" }
  3199. END.
  3200. END PROCEDURE.
  3201. /* _UIB-CODE-BLOCK-END */
  3202. &ANALYZE-RESUME
  3203. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE UMSATZVERTEILUNG C-Win
  3204. PROCEDURE UMSATZVERTEILUNG :
  3205. /*------------------------------------------------------------------------------
  3206. Purpose:
  3207. Parameters: <none>
  3208. Notes:
  3209. ------------------------------------------------------------------------------*/
  3210. DEF VAR Total1 AS DEC NO-UNDO.
  3211. DEF VAR Total2 AS DEC NO-UNDO.
  3212. DEF VAR Total3 AS DEC NO-UNDO.
  3213. DEF VAR Brutto AS DEC NO-UNDO.
  3214. DEF VAR cDaten AS CHAR NO-UNDO.
  3215. DEF VAR fInkl AS LOG NO-UNDO.
  3216. /*
  3217. RUN FIND_PREISGRUPPE ( INPUT BAufko.Preis_Grp, OUTPUT cDaten ).
  3218. IF INTEGER(ENTRY(3, cDaten, CHR(01))) = 0 THEN fInkl = FALSE.
  3219. ELSE fInkl = TRUE.
  3220. */
  3221. fInkl = FALSE.
  3222. Zuszz = 0.
  3223. Ja = FALSE.
  3224. FOR EACH TUmsGrp NO-LOCK:
  3225. Zuszz = Zuszz + 1.
  3226. END.
  3227. IF Zuszz > 0 THEN DO:
  3228. Zuszz = Zuszz + 2.
  3229. Ja = TRUE.
  3230. END.
  3231. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO:
  3232. RUN VALUE(VKopfArt).
  3233. END.
  3234. IF Ja THEN DO:
  3235. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[15],41,20)).
  3236. { v8/putstreamf.i "1" }
  3237. END.
  3238. Total1 = 0.
  3239. Total2 = 0.
  3240. Total3 = 0.
  3241. FOR EACH TUmsGrp WHERE TUmsGrp.Ums_Betr <> 0 NO-LOCK
  3242. BY TUmsGrp.Ums_Grp :
  3243. IF fInkl THEN Rundbetr = TUmsGrp.Ums_Betr
  3244. * TUmsGrp.Mwst
  3245. / (100 + TUmsGrp.Mwst).
  3246. ELSE Rundbetr = TUmsGrp.Ums_Betr
  3247. * TUmsGrp.Mwst
  3248. / 100.
  3249. IF fInkl THEN Brutto = TUmsGrp.Ums_Betr.
  3250. ELSE Brutto = TUmsGrp.Ums_Betr + Rundbetr.
  3251. SUBSTRING(VZeile,001) = TUmsGrp.Bez.
  3252. SUBSTRING(VZeile,040) = BSteuer.Fwc03.
  3253. SUBSTRING(VZeile,050) = STRING(TUmsGrp.Ums_Betr,"->>>,>>9.99").
  3254. SUBSTRING(VZeile,065) = STRING(TUmsGrp.Mwst ,"z9.99%").
  3255. SUBSTRING(VZeile,071) = STRING(Rundbetr ,"->>>,>>9.99").
  3256. SUBSTRING(VZeile,082) = STRING(Brutto ,"->>>,>>9.99").
  3257. { v8/putstream.i "1" }
  3258. Total1 = Total1 + TUmsGrp.Ums_Betr.
  3259. Total2 = Total2 + Rundbetr.
  3260. Total3 = Total3 + Brutto.
  3261. END.
  3262. SUBSTRING(VZeile,050) = STRING(Total1,"->>>,>>9.99").
  3263. SUBSTRING(VZeile,071) = STRING(Total2,"->>>,>>9.99").
  3264. SUBSTRING(VZeile,082) = STRING(Total3,"->>>,>>9.99").
  3265. { v8/putstreamf.i "1" }
  3266. END PROCEDURE.
  3267. /* _UIB-CODE-BLOCK-END */
  3268. &ANALYZE-RESUME
  3269. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERSANDART C-Win
  3270. PROCEDURE VERSANDART :
  3271. /*------------------------------------------------------------------------------
  3272. Purpose:
  3273. Parameters: <none>
  3274. Notes:
  3275. ------------------------------------------------------------------------------*/
  3276. XVersand = ''.
  3277. FIND Tabel USE-INDEX Tabel-k1
  3278. WHERE Tabel.Firma = GVFirma
  3279. AND Tabel.RecArt = 'LIEFART'
  3280. AND Tabel.CodeC = ''
  3281. AND Tabel.CodeI = BAufko.Lief_Bed
  3282. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  3283. IF AVAILABLE Tabel THEN XVersand = Tabel.Bez1.
  3284. END PROCEDURE.
  3285. /* _UIB-CODE-BLOCK-END */
  3286. &ANALYZE-RESUME
  3287. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK C-Win
  3288. PROCEDURE VESR_DRUCK :
  3289. /*------------------------------------------------------------------------------
  3290. Purpose:
  3291. Parameters: <none>
  3292. Notes:
  3293. ------------------------------------------------------------------------------*/
  3294. IF VBesr = 0 THEN RETURN.
  3295. FIND Kondi USE-INDEX Kondi-k1
  3296. WHERE Kondi.Kond = BAufko.Kond
  3297. AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  3298. IF AVAILABLE Kondi THEN DO:
  3299. IF Kondi.Skonto[01] <> 0 THEN Rundbetr = 0.
  3300. END.
  3301. DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
  3302. DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
  3303. DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
  3304. DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
  3305. DEF VAR VSZeile AS CHAR FORMAT "x(58)".
  3306. DEF VAR VZeile AS CHAR FORMAT "x(58)".
  3307. DEF VAR XArt AS INT.
  3308. DEF VAR XAnz AS INT.
  3309. DEF VAR XBetr AS CHAR FORMAT "x(20)".
  3310. DEF VAR VESR_P AS CHAR FORMAT "x(02)".
  3311. DEF VAR VESR AS CHAR FORMAT "x(02)".
  3312. DEF VAR DruBetr AS DEC NO-UNDO.
  3313. DEF VAR XBetrag AS CHAR FORMAT "x(12)" NO-UNDO.
  3314. i1 = BLiDruck.Listtzz - VLine.
  3315. { v8/putstream.i i1 }
  3316. IF Rundbetr <= 0 THEN DruBetr = 0.
  3317. ELSE DruBetr = Rundbetr.
  3318. DO WHILE TRUE:
  3319. PZBetrag = ''.
  3320. XBetrag = ''.
  3321. IF DruBetr < 0 THEN DO:
  3322. PZBetrag = FILL('*', 13).
  3323. PZReferenz = FILL('*', 27).
  3324. PZTNummer = FILL('*', 09).
  3325. XBetrag = FILL('*', 12).
  3326. END.
  3327. ELSE DO:
  3328. IF DruBetr > 0 THEN DO:
  3329. PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
  3330. XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999").
  3331. END.
  3332. IF DruBetr = 0 THEN DO:
  3333. PZBetrag = " 04 ".
  3334. END.
  3335. PZReferenz = "211220000000"
  3336. + STRING(VesrKnr,"999999")
  3337. + "0"
  3338. + STRING(VesrFnr,"9999999")
  3339. + " ".
  3340. PZTNummer = "01005202".
  3341. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
  3342. INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
  3343. END.
  3344. FIND Adresse USE-INDEX Adresse-k1
  3345. WHERE Adresse.Firma = AdFirma
  3346. AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
  3347. VVesr = "".
  3348. SUBSTRING(VVesr[01],01) = "U B S".
  3349. SUBSTRING(VVesr[01],30) = "U B S".
  3350. SUBSTRING(VVesr[02],01) = "7130 Ilanz".
  3351. SUBSTRING(VVesr[02],30) = "7130 Ilanz".
  3352. SUBSTRING(VVesr[05],01) = "Oswald Getränke AG".
  3353. SUBSTRING(VVesr[05],30) = "Oswald Getränke AG".
  3354. SUBSTRING(VVesr[06],01) = "Via Santeri 76".
  3355. SUBSTRING(VVesr[06],30) = "Via Santeri 76".
  3356. SUBSTRING(VVesr[07],01) = "7130 Ilanz".
  3357. SUBSTRING(VVesr[07],30) = "7130 Ilanz".
  3358. SUBSTRING(VVesr[09],14) = "01-5202-5".
  3359. SUBSTRING(VVesr[09],43) = "01-5202-5".
  3360. SUBSTRING(VVesr[07],61) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  3361. SUBSTRING(VVesr[11],09) = STRING(XBetrag,"XXXXXXXXXX XX").
  3362. SUBSTRING(VVesr[11],40) = STRING(XBetrag,"XXXXXXXXXX XX").
  3363. SUBSTRING(VVesr[11],61) = Adresse.Anschrift[08].
  3364. SUBSTRING(VVesr[12],61) = Adresse.Anschrift[09].
  3365. SUBSTRING(VVesr[13],61) = Adresse.Anschrift[10].
  3366. SUBSTRING(VVesr[14],61) = Adresse.Anschrift[11].
  3367. SUBSTRING(VVesr[15],61) = Adresse.Anschrift[12].
  3368. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  3369. SUBSTRING(VVesr[13],04) = SUBSTRING(VZeile,01,14).
  3370. SUBSTRING(VVesr[14],01) = SUBSTRING(VZeile,16,17).
  3371. SUBSTRING(VVesr[15],01) = Adresse.Anschrift[09].
  3372. SUBSTRING(VVesr[16],01) = Adresse.Anschrift[10].
  3373. SUBSTRING(VVesr[17],01) = Adresse.Anschrift[11].
  3374. SUBSTRING(VVesr[18],01) = Adresse.Anschrift[12].
  3375. SUBSTRING(VVesr[19],27) = STRING(VSZeile,"x(53)").
  3376. SUBSTRING(VVesr[19],84) = "H".
  3377. VVesr[19] = BDrucker.Dru10cpi
  3378. + BDrucker.DruLQb
  3379. + CHR(27) + "k" + CHR(05)
  3380. + VVesr[19]
  3381. + CHR(27) + "k" + CHR(30)
  3382. + BDrucker.DruLQe
  3383. + BDrucker.Dru12cpi.
  3384. DO ix = 1 TO 19:
  3385. VZeile = VVesr[ix].
  3386. { v8/putstream.i "1" }
  3387. END.
  3388. LEAVE.
  3389. END.
  3390. END PROCEDURE.
  3391. /* _UIB-CODE-BLOCK-END */
  3392. &ANALYZE-RESUME
  3393. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK02 C-Win
  3394. PROCEDURE VESR_DRUCK02 :
  3395. /*------------------------------------------------------------------------------
  3396. Purpose:
  3397. Parameters: <none>
  3398. Notes:
  3399. ------------------------------------------------------------------------------*/
  3400. DEF VAR rRand AS INT NO-UNDO.
  3401. DEF VAR xx AS INT NO-UNDO.
  3402. DEF VAR yy AS INT NO-UNDO.
  3403. DEF VAR zPos AS CHAR NO-UNDO.
  3404. IF VBesr <> 2 THEN RETURN.
  3405. FIND Kondi USE-INDEX Kondi-k1
  3406. WHERE Kondi.Kond = BAufko.Kond
  3407. AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  3408. IF AVAILABLE Kondi THEN DO:
  3409. IF Kondi.Skonto[01] <> 0 THEN Rundbetr = 0.
  3410. END.
  3411. DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
  3412. DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
  3413. DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
  3414. DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
  3415. DEF VAR VSZeile AS CHAR FORMAT "x(58)".
  3416. DEF VAR VZeile AS CHAR FORMAT "x(58)".
  3417. DEF VAR XArt AS INT.
  3418. DEF VAR XAnz AS INT.
  3419. DEF VAR XBetr AS CHAR FORMAT "x(20)".
  3420. DEF VAR VESR_P AS CHAR FORMAT "x(02)".
  3421. DEF VAR VESR AS CHAR FORMAT "x(02)".
  3422. DEF VAR DruBetr AS DEC NO-UNDO.
  3423. DEF VAR XBetrag AS CHAR FORMAT "x(12)" NO-UNDO.
  3424. FIND DTabel USE-INDEX Tabel-k1
  3425. WHERE DTabel.Firma = GVFirma
  3426. AND DTabel.RecArt = 'FAKDRU'
  3427. AND DTabel.CodeC = 'BESR02'
  3428. AND DTabel.CodeI = 0
  3429. AND DTabel.Sprcd = 1 NO-LOCK NO-ERROR.
  3430. VZeile = ''.
  3431. CASE DTabel.Dec_3:
  3432. WHEN 1.0 THEN VZeile = VZeile + Schacht1.
  3433. WHEN 2.0 THEN VZeile = VZeile + Schacht2.
  3434. WHEN 3.0 THEN VZeile = VZeile + Schacht3.
  3435. WHEN 4.0 THEN VZeile = VZeile + Schacht4.
  3436. END CASE.
  3437. xx = 00.
  3438. yy = 2345.
  3439. VZeile = VZeile + CHR(27) + '*p' + STRING(yy) + 'y' + STRING(xx) + 'x'
  3440. + CHR(10).
  3441. i1 = 1.
  3442. PUT STREAM Out_Stream CONTROL VZeile.
  3443. IF Rundbetr <= 0 THEN DruBetr = 0.
  3444. ELSE DruBetr = Rundbetr.
  3445. DO WHILE TRUE:
  3446. PZBetrag = ''.
  3447. XBetrag = ''.
  3448. IF DruBetr < 0 THEN DO:
  3449. PZBetrag = FILL('*', 13).
  3450. PZReferenz = FILL('*', 27).
  3451. PZTNummer = FILL('*', 09).
  3452. XBetrag = FILL('*', 12).
  3453. END.
  3454. ELSE DO:
  3455. IF DruBetr > 0 THEN DO:
  3456. PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
  3457. XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999").
  3458. END.
  3459. IF DruBetr = 0 THEN DO:
  3460. PZBetrag = " 04 ".
  3461. END.
  3462. PZReferenz = "211220000000"
  3463. + STRING(VesrKnr,"999999")
  3464. + "0"
  3465. + STRING(VesrFnr,"9999999")
  3466. + " ".
  3467. PZTNummer = "01005202".
  3468. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
  3469. INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
  3470. END.
  3471. FIND Adresse USE-INDEX Adresse-k1
  3472. WHERE Adresse.Firma = AdFirma
  3473. AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
  3474. VVesr = "".
  3475. SUBSTRING(VVesr[01],01) = "U B S".
  3476. SUBSTRING(VVesr[01],30) = "U B S".
  3477. SUBSTRING(VVesr[02],01) = "7130 Ilanz".
  3478. SUBSTRING(VVesr[02],30) = "7130 Ilanz".
  3479. SUBSTRING(VVesr[05],01) = "Oswald Getränke AG".
  3480. SUBSTRING(VVesr[05],30) = "Oswald Getränke AG".
  3481. SUBSTRING(VVesr[06],01) = "Via Santeri 76".
  3482. SUBSTRING(VVesr[06],30) = "Via Santeri 76".
  3483. SUBSTRING(VVesr[07],01) = "7130 Ilanz".
  3484. SUBSTRING(VVesr[07],30) = "7130 Ilanz".
  3485. SUBSTRING(VVesr[09],14) = "01-5202-5".
  3486. SUBSTRING(VVesr[09],43) = "01-5202-5".
  3487. SUBSTRING(VVesr[07],65) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  3488. SUBSTRING(VVesr[11],09) = STRING(XBetrag,"XXXXXXXXXX XX").
  3489. SUBSTRING(VVesr[11],40) = STRING(XBetrag,"XXXXXXXXXX XX").
  3490. SUBSTRING(VVesr[11],63) = Adresse.Anschrift[08].
  3491. SUBSTRING(VVesr[12],63) = Adresse.Anschrift[09].
  3492. SUBSTRING(VVesr[13],63) = Adresse.Anschrift[10].
  3493. SUBSTRING(VVesr[14],63) = Adresse.Anschrift[11].
  3494. SUBSTRING(VVesr[15],63) = Adresse.Anschrift[12].
  3495. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  3496. SUBSTRING(VVesr[13],04) = SUBSTRING(VZeile,01,14).
  3497. SUBSTRING(VVesr[14],01) = SUBSTRING(VZeile,16,17).
  3498. SUBSTRING(VVesr[15],01) = Adresse.Anschrift[09].
  3499. SUBSTRING(VVesr[16],01) = Adresse.Anschrift[10].
  3500. SUBSTRING(VVesr[17],01) = Adresse.Anschrift[11].
  3501. SUBSTRING(VVesr[18],01) = Adresse.Anschrift[12].
  3502. SUBSTRING(VVesr[19],25) = STRING(VSZeile,"x(53)").
  3503. xx = 09.
  3504. yy = 3287.
  3505. zPos = CHR(27) + '*p' + STRING(yy) + 'y' + STRING(xx) + 'x'.
  3506. VVesr[19] = zPos
  3507. + CHR(27) + '(1O' + CHR(27) + '(s10h0b0s0p110T'
  3508. + VVesr[19].
  3509. /*
  3510. + SchriftInit.
  3511. */
  3512. rRand = VRand.
  3513. VRand = 0.
  3514. DO ix = 1 TO 19:
  3515. VZeile = VVesr[ix].
  3516. IF ix < 19 THEN VZeile = VZeile + CHR(10).
  3517. PUT STREAM Out_Stream CONTROL VZeile.
  3518. END.
  3519. xx = 0.
  3520. yy = 0.
  3521. zPos = CHR(27) + '*p' + STRING(yy) + 'y' + STRING(xx) + 'x' + SchriftInit.
  3522. PUT STREAM Out_Stream CONTROL zPos.
  3523. VRand = rRand.
  3524. LEAVE.
  3525. END.
  3526. END PROCEDURE.
  3527. /* _UIB-CODE-BLOCK-END */
  3528. &ANALYZE-RESUME
  3529. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WORKFILE C-Win
  3530. PROCEDURE WORKFILE :
  3531. /*------------------------------------------------------------------------------
  3532. Purpose:
  3533. Parameters: <none>
  3534. Notes:
  3535. ------------------------------------------------------------------------------*/
  3536. FIND BSchrift USE-INDEX Schrift-k1
  3537. WHERE BSchrift.Schname = BLiDruck.ListDru
  3538. AND BSchrift.Schbild = BLiDruck.ListBild NO-LOCK NO-ERROR.
  3539. FIND BDrucker USE-INDEX Drucker-k1
  3540. WHERE BDrucker.Drucker = BSchrift.Schdru NO-LOCK NO-ERROR.
  3541. DOpen = FALSE.
  3542. VTemp = ''.
  3543. IF BDrucker.Emul = 'TERMINAL' THEN DO:
  3544. FOR EACH XTermOut:
  3545. DELETE XTermOut.
  3546. END.
  3547. VZNr = 0.
  3548. RETURN.
  3549. END.
  3550. DO WHILE TRUE TRANSACTION:
  3551. FIND Tabel USE-INDEX Tabel-k1
  3552. WHERE Tabel.Firma = GVFirma
  3553. AND Tabel.RecArt = 'TEMPFILE'
  3554. AND Tabel.CodeI = 0
  3555. AND Tabel.CodeC = 'AUFTRAG'
  3556. AND Tabel.Sprcd = 1 NO-ERROR.
  3557. IF NOT AVAILABLE Tabel THEN DO:
  3558. CREATE Tabel.
  3559. ASSIGN Tabel.Firma = GVFirma
  3560. Tabel.RecArt = 'TEMPFILE'
  3561. Tabel.CodeI = 0
  3562. Tabel.CodeC = 'AUFTRAG'
  3563. Tabel.Sprcd = 1
  3564. Tabel.Bez1 = SESSION:TEMP-DIR.
  3565. END.
  3566. Tabel.Int_1 = Tabel.Int_1 + 1.
  3567. VTemp = Tabel.Bez1 + 'Faktura' + STRING(Tabel.Int_1) + '.tmp'.
  3568. RELEASE Tabel.
  3569. LEAVE.
  3570. END.
  3571. DOpen = TRUE.
  3572. END PROCEDURE.
  3573. /* _UIB-CODE-BLOCK-END */
  3574. &ANALYZE-RESUME
  3575. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ZAHLUNGSKONDITION C-Win
  3576. PROCEDURE ZAHLUNGSKONDITION :
  3577. /*------------------------------------------------------------------------------
  3578. Purpose:
  3579. Parameters: <none>
  3580. Notes:
  3581. ------------------------------------------------------------------------------*/
  3582. FIND Kondi USE-INDEX Kondi-k1
  3583. WHERE Kondi.Kond = BAufko.Kond
  3584. AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  3585. IF AVAILABLE Kondi THEN DO:
  3586. SUBSTRING(VZeile,001) = Kondi.KoText.
  3587. IF Kondi.Skonto[01] <> 0 THEN DO:
  3588. Rundbetr = BAufko.Sk_Ber * Kondi.Skonto[01] / 100.
  3589. IF DebInkl THEN DO:
  3590. Rundcode = 1.
  3591. RUN "v8/runden.p".
  3592. END.
  3593. SUBSTRING(VZeile,083) = STRING(Rundbetr,"->>,>>9.99").
  3594. END.
  3595. END.
  3596. ELSE DO:
  3597. SUBSTRING(VZeile,001) = FILL('?', 30).
  3598. END.
  3599. { v8/putstream.i "2" }
  3600. END PROCEDURE.
  3601. /* _UIB-CODE-BLOCK-END */
  3602. &ANALYZE-RESUME