c-p_huber-sk.w 208 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742
  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 DruckFlag AS LOG NO-UNDO.
  32. DEF VAR FDrucken AS LOG NO-UNDO.
  33. DEF VAR TRecid AS RECID NO-UNDO.
  34. DEF VAR RabText AS CHAR NO-UNDO.
  35. DEF VAR RabWert AS DEC NO-UNDO.
  36. DEF VAR VFak_Betr AS DEC DECIMALS 4 NO-UNDO.
  37. DEF VAR GTWpfl AS DEC EXTENT 12 NO-UNDO.
  38. DEF VAR DTWpfl AS DEC EXTENT 12 NO-UNDO.
  39. DEF VAR GTWust AS DEC EXTENT 12 NO-UNDO.
  40. DEF VAR DWpfl AS DEC EXTENT 12 NO-UNDO.
  41. DEF VAR GTFak_Betr AS DEC NO-UNDO.
  42. DEF VAR GTSk_Ber AS DEC NO-UNDO.
  43. DEF VAR SFaknr AS INT NO-UNDO.
  44. DEF VAR FLetzt AS LOG NO-UNDO.
  45. DEF VAR FErste AS LOG NO-UNDO.
  46. DEF VAR VZeile AS CHAR FORMAT "x(250)" NO-UNDO.
  47. DEF VAR RZeile AS CHAR FORMAT "x(250)" NO-UNDO.
  48. DEF VAR LiKopf AS LOG NO-UNDO.
  49. DEF VAR StBreite AS INT NO-UNDO.
  50. DEF VAR VWC AS INT NO-UNDO.
  51. DEF VAR VZTot AS DEC DECIMALS 4 NO-UNDO.
  52. DEF VAR FDatum AS DATE FORMAT "99.99.9999" NO-UNDO.
  53. DEF VAR VFaknr AS INT NO-UNDO.
  54. DEF VAR VesrKnr AS INT NO-UNDO.
  55. DEF VAR VesrFnr AS INT NO-UNDO.
  56. DEF VAR VBesr AS INT NO-UNDO.
  57. DEF VAR VRabText AS CHAR FORMAT "x(20)" NO-UNDO.
  58. DEF VAR VZusText AS CHAR FORMAT "x(20)" NO-UNDO.
  59. DEF VAR VEpzText AS CHAR FORMAT "x(20)" NO-UNDO.
  60. DEF VAR VTabTexte LIKE TabTexte.Inhalt NO-UNDO.
  61. DEF VAR XVersand AS CHAR NO-UNDO.
  62. DEF VAR XAblade AS CHAR NO-UNDO.
  63. DEF VAR XWirtesonntag AS CHAR NO-UNDO.
  64. DEF VAR XAuf_Text LIKE Aufko.Auf_Text NO-UNDO.
  65. DEF VAR XTelnr LIKE Aufko.Auf_Text NO-UNDO.
  66. DEF VAR VTemp AS CHAR FORMAT "x(100)" NO-UNDO.
  67. DEF VAR VDokart AS CHAR NO-UNDO.
  68. DEF VAR FPreis AS LOG NO-UNDO.
  69. DEF VAR WW AS DEC EXTENT 12 NO-UNDO.
  70. DEF VAR SK AS DEC EXTENT 12 NO-UNDO.
  71. DEF VAR VDetail AS DEC EXTENT 20 NO-UNDO.
  72. DEF VAR VNetto AS DEC EXTENT 20 NO-UNDO.
  73. DEF VAR VPreis_Grp AS INT NO-UNDO.
  74. DEF VAR VPreis AS DEC DECIMALS 4 NO-UNDO.
  75. DEF VAR VBetrag AS DEC DECIMALS 4 NO-UNDO.
  76. DEF VAR VAnkTot AS DEC DECIMALS 4 NO-UNDO.
  77. DEF VAR VDetTot AS DEC DECIMALS 4 NO-UNDO.
  78. DEF VAR VSchacht AS INT NO-UNDO.
  79. DEF VAR cTextArt AS CHAR NO-UNDO.
  80. DEF VAR fBatch AS LOG NO-UNDO.
  81. DEF VAR VKopf AS CHAR FORMAT "x(100)" EXTENT 20 NO-UNDO.
  82. DEF VAR VBesrKopf AS CHAR FORMAT "x(100)" EXTENT 20 NO-UNDO.
  83. DEF VAR iSeiZZ AS INT NO-UNDO.
  84. DEF VAR cSeiZeile AS CHAR NO-UNDO.
  85. DEF VAR cUSER AS CHAR NO-UNDO.
  86. DEF VAR cBenutzer AS CHAR NO-UNDO.
  87. DEF VAR FBetrag AS LOG NO-UNDO.
  88. DEF VAR FRabatt AS LOG NO-UNDO.
  89. DEF VAR FUeber AS LOG NO-UNDO.
  90. DEF VAR FSamm AS LOG NO-UNDO.
  91. DEF VAR FLagOrt AS LOG NO-UNDO.
  92. DEF VAR VKopfArt AS CHAR NO-UNDO.
  93. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  94. DEF VAR ExZeile AS INT NO-UNDO.
  95. DEF VAR lRuestText AS LOG NO-UNDO.
  96. DEF VAR iLauf AS INT NO-UNDO.
  97. DEF VAR lViper AS LOG INIT TRUE NO-UNDO.
  98. DEF VAR iZaehler AS INT NO-UNDO.
  99. DEF VAR cTray AS CHAR EXTENT 10 NO-UNDO.
  100. DEF VAR iCodeI AS INT NO-UNDO.
  101. DEF VAR VSchachtOrig AS INT NO-UNDO.
  102. DEF VAR VSchachtKopi AS INT NO-UNDO.
  103. DEF VAR VSchachtBesr AS INT NO-UNDO.
  104. DEF VAR FormText AS CHAR FORMAT "x(80)" EXTENT 40.
  105. DEF BUFFER BAufko FOR Savko.
  106. DEF BUFFER XAufko FOR Savko.
  107. DEF BUFFER BAufze FOR Savze.
  108. DEF BUFFER BAufGebKo FOR SavGebKo.
  109. DEF BUFFER FDebst FOR Debst.
  110. DEF BUFFER LDebst FOR Debst.
  111. DEF BUFFER BTabel FOR Tabel.
  112. DEF BUFFER TFakart FOR Tabel.
  113. DEF BUFFER TAufsta FOR Tabel.
  114. DEF BUFFER BAdresse FOR Adresse.
  115. DEF BUFFER LAdresse FOR Adresse.
  116. DEF BUFFER Aufko FOR Savko.
  117. DEF BUFFER Aufze FOR Savze.
  118. DEF BUFFER AufGebKo FOR SavGebKo.
  119. DEF BUFFER AufGKon FOR SavGKon.
  120. DEF BUFFER AufRabSu FOR SavRabSu.
  121. DEF BUFFER AufSpRab FOR SavSpRab.
  122. DEF VAR DebInkl AS LOG NO-UNDO.
  123. DEF VAR VWg_Grp AS INT INIT 0 NO-UNDO.
  124. DEF VAR VProd_Grp AS INT INIT 0 NO-UNDO.
  125. DEF VAR VArt_Grp AS INT INIT 0 NO-UNDO.
  126. DEF VAR AArtnr AS INT INIT 0 NO-UNDO.
  127. DEF VAR AInhalt AS INT INIT 0 NO-UNDO.
  128. DEF VAR AJahr AS INT INIT 0 NO-UNDO.
  129. DEF TEMP-TABLE tAdresse NO-UNDO LIKE Adresse.
  130. DEF TEMP-TABLE tAufze FIELD Aufnr AS INT
  131. FIELD Sort1 AS CHAR
  132. FIELD Sort2 AS CHAR
  133. FIELD Sort3 AS CHAR
  134. FIELD Artnr AS INT
  135. FIELD Inhalt AS INT
  136. FIELD Jahr AS INT
  137. FIELD Pos AS INT
  138. FIELD Zeile AS RECID
  139. FIELD Preis AS DEC DECIMALS 4
  140. FIELD Aktion AS LOG
  141. FIELD LagOrt AS CHAR
  142. FIELD MGeli AS DEC
  143. FIELD MRuek AS DEC
  144. INDEX tSavze-k1 IS PRIMARY
  145. Aufnr
  146. Sort1
  147. Sort2
  148. Sort3.
  149. DEF TEMP-TABLE TGebKto FIELD Sort_Cd AS CHAR
  150. FIELD Geb_Cd AS CHAR
  151. FIELD Bez AS CHAR
  152. FIELD Preis AS DEC
  153. FIELD A_Anz AS DEC
  154. FIELD A_Betrag AS DEC
  155. FIELD E_Anz AS DEC
  156. FIELD E_Betrag AS DEC
  157. FIELD MWST_Art AS INT
  158. FIELD MWST_Cd AS INT.
  159. DEF TEMP-TABLE TRabSumm FIELD Rab_Summ AS INT
  160. FIELD Bez AS CHAR
  161. FIELD F_Rab_Art AS INT
  162. FIELD F_Wert AS DEC DECIMALS 4
  163. FIELD A_Rab_Art AS INT
  164. FIELD A_Wert AS DEC DECIMALS 4
  165. FIELD Auf_Rab AS DEC DECIMALS 4
  166. FIELD Abh_Rab AS DEC DECIMALS 4.
  167. DEF TEMP-TABLE TUmsGrp FIELD Ums_Grp AS INT
  168. FIELD Mwst AS INT
  169. FIELD Ansatz AS DEC
  170. FIELD Bez AS CHAR
  171. FIELD Ums_Betr AS DEC DECIMALS 4.
  172. DEF TEMP-TABLE TGebuehr FIELD MWST_Cd AS INT
  173. FIELD Anz AS DEC
  174. FIELD Betrag AS DEC.
  175. DEF TEMP-TABLE SAMMFAK FIELD Knr AS INT
  176. FIELD Samm_Nr AS INT
  177. FIELD Aufnr AS INT
  178. FIELD RID AS RECID.
  179. DEF TEMP-TABLE TSpeRab FIELD Rab_Grp AS INT
  180. FIELD Auf_Betr AS DEC DECIMALS 4.
  181. DEF TEMP-TABLE TFiliale FIELD Fak_Knr AS INT
  182. FIELD Lie_Knr AS INT
  183. FIELD Det_Preis AS DEC DECIMALS 4
  184. FIELD Net_Preis AS DEC DECIMALS 4
  185. FIELD MWST_Cd AS INT
  186. FIELD Faknr AS INT.
  187. DEF TEMP-TABLE TMonat FIELD Lie_Knr AS INT
  188. FIELD Artnr AS INT
  189. FIELD Inhalt AS INT
  190. FIELD Jahr AS INT
  191. FIELD Det_Preis AS DEC DECIMALS 4
  192. FIELD Net_Preis AS DEC DECIMALS 4
  193. FIELD MWST_Cd AS INT
  194. FIELD Faknr AS INT
  195. FIELD Fak_Knr AS INT.
  196. DEF TEMP-TABLE TMonGeb FIELD Knr AS INT
  197. FIELD MWST_Cd AS INT
  198. FIELD Betrag AS DEC DECIMALS 4.
  199. DEF TEMP-TABLE tTexte FIELD Pos AS INT
  200. FIELD cText1 AS CHAR
  201. FIELD cText2 AS CHAR
  202. FIELD iRecid AS RECID.
  203. DEF TEMP-TABLE tRueckst LIKE tAufze.
  204. DEF TEMP-TABLE tViper NO-UNDO
  205. FIELD cGruppe AS CHAR
  206. FIELD cName AS CHAR
  207. FIELD iHoehe AS INT
  208. FIELD iBreite AS INT
  209. FIELD cInhalt AS CHAR.
  210. DEF VAR cvpr_Dokument AS CHAR NO-UNDO.
  211. DEF VAR iArtZeile AS INT NO-UNDO.
  212. DEF VAR iVPagePos AS INT NO-UNDO.
  213. DEF VAR iVGroupPos AS INT NO-UNDO.
  214. DEF VAR iVMaxPos AS INT INIT 2650 NO-UNDO.
  215. DEF TEMP-TABLE tTabTexte
  216. FIELD cRecArt AS CHAR
  217. FIELD iZeile AS INT
  218. FIELD cFeld1 AS CHAR
  219. FIELD cFeld2 AS CHAR
  220. FIELD cFeld3 AS CHAR
  221. FIELD iFeld1 AS INT
  222. FIELD iFeld2 AS INT
  223. FIELD iFeld3 AS INT
  224. INDEX tTabTexte-k1 IS PRIMARY
  225. cRecArt
  226. iZeile.
  227. DEF TEMP-TABLE tDrucker NO-UNDO
  228. FIELD cDrucker AS CHAR.
  229. DEF TEMP-TABLE tDokument
  230. FIELD cGruppe AS CHAR
  231. FIELD iZeile AS INT
  232. FIELD cFeld AS CHAR
  233. FIELD cInhalt AS CHAR
  234. INDEX tDokument-k1 IS PRIMARY
  235. cGruppe
  236. iZeile
  237. cFeld.
  238. DEF BUFFER XSchrift FOR Schrift.
  239. DEF BUFFER XDrucker FOR Drucker.
  240. DEF TEMP-TABLE tPdf
  241. FIELD cDokName AS CHAR.
  242. DEF VAR VTempVESR AS CHAR FORMAT "x(100)" NO-UNDO.
  243. DEF VAR XSchacht AS INT NO-UNDO.
  244. DEF STREAM VIn_Stream.
  245. DEF STREAM VOut_Stream.
  246. /* ---------- Globale Variablen ---------------------------------- */
  247. { v8/globvar.i " " " " "SHARED" }
  248. { v8/debivar.i " " " " "SHARED" }
  249. { v8/artivar.i " " " " "SHARED" }
  250. { v8/contvar.i " " " " "SHARED" }
  251. { v8/listtitv.i "NEW" "SHARED" }
  252. { v8/aufkototv.i "NEW" "SHARED" }
  253. { windows.i }
  254. /* _UIB-CODE-BLOCK-END */
  255. &ANALYZE-RESUME
  256. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  257. /* ******************** Preprocessor Definitions ******************** */
  258. &Scoped-define PROCEDURE-TYPE Window
  259. &Scoped-define DB-AWARE no
  260. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  261. &Scoped-define FRAME-NAME DEFAULT-FRAME
  262. /* Standard List Definitions */
  263. &Scoped-Define ENABLED-OBJECTS RECT-1 F_Drucker E_Adresse F_Schrift F_Tzz ~
  264. F_Kzz F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite F_Papier ~
  265. Btn_Drucken Btn_Abbrechen
  266. &Scoped-Define DISPLAYED-OBJECTS F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz ~
  267. F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite F_Papier
  268. /* Custom List Definitions */
  269. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  270. &Scoped-define List-1 F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz ~
  271. F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite F_Papier
  272. /* _UIB-PREPROCESSOR-BLOCK-END */
  273. &ANALYZE-RESUME
  274. /* *********************** Control Definitions ********************** */
  275. /* Define the widget handle for the window */
  276. DEFINE VAR C-Win AS WIDGET-HANDLE NO-UNDO.
  277. /* Definitions of the field level widgets */
  278. DEFINE BUTTON Btn_Abbrechen
  279. LABEL "&Abbrechen"
  280. SIZE 15 BY 1.
  281. DEFINE BUTTON Btn_Drucken
  282. LABEL "&Drucken"
  283. SIZE 15 BY 1.
  284. DEFINE VARIABLE E_Adresse AS CHARACTER
  285. VIEW-AS EDITOR MAX-CHARS 1000
  286. SIZE 45 BY 6.19
  287. BGCOLOR 15 NO-UNDO.
  288. DEFINE VARIABLE F_Aufnr AS INTEGER FORMAT "zzzzzz9":U INITIAL 0
  289. LABEL "Auftragsnummer"
  290. VIEW-AS FILL-IN NATIVE
  291. SIZE 13 BY 1
  292. BGCOLOR 15 NO-UNDO.
  293. DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U
  294. LABEL "Fakturadatum"
  295. VIEW-AS FILL-IN NATIVE
  296. SIZE 16 BY 1
  297. BGCOLOR 15 NO-UNDO.
  298. DEFINE VARIABLE F_Dokart AS CHARACTER FORMAT "x(50)":U
  299. LABEL "Dokumentart"
  300. VIEW-AS FILL-IN NATIVE
  301. SIZE 28 BY 1
  302. BGCOLOR 15 NO-UNDO.
  303. DEFINE VARIABLE F_Drucker AS CHARACTER FORMAT "x(50)":U
  304. LABEL "Drucker"
  305. VIEW-AS FILL-IN NATIVE
  306. SIZE 40 BY 1
  307. BGCOLOR 15 NO-UNDO.
  308. DEFINE VARIABLE F_Faknr AS INTEGER FORMAT "zzzzzzz":U INITIAL 0
  309. LABEL "Fakturanummer"
  310. VIEW-AS FILL-IN NATIVE
  311. SIZE 13 BY 1
  312. BGCOLOR 15 NO-UNDO.
  313. DEFINE VARIABLE F_Fzz AS INTEGER FORMAT "zz9":U INITIAL 0
  314. LABEL "Leere Fusszeilen"
  315. VIEW-AS FILL-IN NATIVE
  316. SIZE 7 BY 1
  317. BGCOLOR 15 NO-UNDO.
  318. DEFINE VARIABLE F_KOPIE AS INTEGER FORMAT "zz9":U INITIAL 0
  319. LABEL "Anz. Kopien"
  320. VIEW-AS FILL-IN NATIVE
  321. SIZE 7 BY 1
  322. BGCOLOR 15 NO-UNDO.
  323. DEFINE VARIABLE F_Kzz AS INTEGER FORMAT "zz9":U INITIAL 0
  324. LABEL "Leere Kopfzeilen"
  325. VIEW-AS FILL-IN NATIVE
  326. SIZE 7 BY 1
  327. BGCOLOR 15 NO-UNDO.
  328. DEFINE VARIABLE F_Papier AS CHARACTER FORMAT "x(50)":U
  329. LABEL "Auftragspapier"
  330. VIEW-AS FILL-IN NATIVE
  331. SIZE 45 BY 1
  332. BGCOLOR 15 NO-UNDO.
  333. DEFINE VARIABLE F_Schrift AS CHARACTER FORMAT "x(50)":U
  334. LABEL "Schriftbild"
  335. VIEW-AS FILL-IN NATIVE
  336. SIZE 40 BY 1
  337. BGCOLOR 15 NO-UNDO.
  338. DEFINE VARIABLE F_Seite AS INTEGER FORMAT "zz9":U INITIAL 0
  339. LABEL "Seite"
  340. VIEW-AS FILL-IN NATIVE
  341. SIZE 7 BY 1
  342. BGCOLOR 15 NO-UNDO.
  343. DEFINE VARIABLE F_Tzz AS INTEGER FORMAT "zz9":U INITIAL 0
  344. LABEL "Total Zeilen"
  345. VIEW-AS FILL-IN NATIVE
  346. SIZE 7 BY 1
  347. BGCOLOR 15 NO-UNDO.
  348. DEFINE RECTANGLE RECT-1
  349. EDGE-PIXELS 3 GRAPHIC-EDGE NO-FILL
  350. SIZE 116 BY 12.14.
  351. /* ************************ Frame Definitions *********************** */
  352. DEFINE FRAME DEFAULT-FRAME
  353. F_Drucker AT ROW 2 COL 21 COLON-ALIGNED
  354. E_Adresse AT ROW 2 COL 70 NO-LABEL NO-TAB-STOP
  355. F_Schrift AT ROW 3 COL 21 COLON-ALIGNED
  356. F_Tzz AT ROW 4 COL 21 COLON-ALIGNED
  357. F_Kzz AT ROW 5 COL 21 COLON-ALIGNED
  358. F_Fzz AT ROW 6 COL 21 COLON-ALIGNED
  359. F_Aufnr AT ROW 7 COL 21 COLON-ALIGNED
  360. F_KOPIE AT ROW 7 COL 53 COLON-ALIGNED
  361. F_Faknr AT ROW 8 COL 21 COLON-ALIGNED
  362. F_Datum AT ROW 9 COL 21 COLON-ALIGNED
  363. F_Dokart AT ROW 9 COL 68 COLON-ALIGNED
  364. F_Seite AT ROW 9 COL 106 COLON-ALIGNED
  365. F_Papier AT ROW 10 COL 68 COLON-ALIGNED
  366. Btn_Drucken AT ROW 11.52 COL 70
  367. Btn_Abbrechen AT ROW 11.52 COL 100
  368. RECT-1 AT ROW 1.48 COL 3
  369. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  370. SIDE-LABELS NO-UNDERLINE THREE-D
  371. AT COL 1 ROW 1
  372. SIZE 126.41 BY 13.85
  373. DEFAULT-BUTTON Btn_Drucken CANCEL-BUTTON Btn_Abbrechen.
  374. /* *********************** Procedure Settings ************************ */
  375. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  376. /* Settings for THIS-PROCEDURE
  377. Type: Window
  378. Allow: Basic,Browse,DB-Fields,Window,Query
  379. Other Settings: COMPILE
  380. Temp-Tables and Buffers:
  381. TABLE: XTermOut T "NEW SHARED" NO-UNDO AnaDat TermOut
  382. END-TABLES.
  383. */
  384. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  385. /* ************************* Create Window ************************** */
  386. &ANALYZE-SUSPEND _CREATE-WINDOW
  387. IF SESSION:DISPLAY-TYPE = "GUI":U THEN
  388. CREATE WINDOW C-Win ASSIGN
  389. HIDDEN = YES
  390. TITLE = "Drucken von Auftragsdokumenten"
  391. HEIGHT = 12.86
  392. WIDTH = 120.6
  393. MAX-HEIGHT = 26.57
  394. MAX-WIDTH = 203
  395. VIRTUAL-HEIGHT = 26.57
  396. VIRTUAL-WIDTH = 203
  397. RESIZE = yes
  398. SCROLL-BARS = no
  399. STATUS-AREA = no
  400. BGCOLOR = ?
  401. FGCOLOR = ?
  402. KEEP-FRAME-Z-ORDER = yes
  403. THREE-D = yes
  404. MESSAGE-AREA = no
  405. SENSITIVE = yes.
  406. ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
  407. /* END WINDOW DEFINITION */
  408. &ANALYZE-RESUME
  409. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  410. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  411. /* SETTINGS FOR WINDOW C-Win
  412. VISIBLE,,RUN-PERSISTENT */
  413. /* SETTINGS FOR FRAME DEFAULT-FRAME
  414. FRAME-NAME */
  415. /* SETTINGS FOR EDITOR E_Adresse IN FRAME DEFAULT-FRAME
  416. 1 */
  417. ASSIGN
  418. E_Adresse:RETURN-INSERTED IN FRAME DEFAULT-FRAME = TRUE
  419. E_Adresse:READ-ONLY IN FRAME DEFAULT-FRAME = TRUE.
  420. /* SETTINGS FOR FILL-IN F_Aufnr IN FRAME DEFAULT-FRAME
  421. 1 */
  422. /* SETTINGS FOR FILL-IN F_Datum IN FRAME DEFAULT-FRAME
  423. 1 */
  424. /* SETTINGS FOR FILL-IN F_Dokart IN FRAME DEFAULT-FRAME
  425. 1 */
  426. /* SETTINGS FOR FILL-IN F_Drucker IN FRAME DEFAULT-FRAME
  427. 1 */
  428. /* SETTINGS FOR FILL-IN F_Faknr IN FRAME DEFAULT-FRAME
  429. 1 */
  430. /* SETTINGS FOR FILL-IN F_Fzz IN FRAME DEFAULT-FRAME
  431. 1 */
  432. /* SETTINGS FOR FILL-IN F_KOPIE IN FRAME DEFAULT-FRAME
  433. 1 */
  434. /* SETTINGS FOR FILL-IN F_Kzz IN FRAME DEFAULT-FRAME
  435. 1 */
  436. /* SETTINGS FOR FILL-IN F_Papier IN FRAME DEFAULT-FRAME
  437. 1 */
  438. /* SETTINGS FOR FILL-IN F_Schrift IN FRAME DEFAULT-FRAME
  439. 1 */
  440. /* SETTINGS FOR FILL-IN F_Seite IN FRAME DEFAULT-FRAME
  441. 1 */
  442. /* SETTINGS FOR FILL-IN F_Tzz IN FRAME DEFAULT-FRAME
  443. 1 */
  444. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win)
  445. THEN C-Win:HIDDEN = no.
  446. /* _RUN-TIME-ATTRIBUTES-END */
  447. &ANALYZE-RESUME
  448. /* ************************ Control Triggers ************************ */
  449. &Scoped-define SELF-NAME C-Win
  450. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win
  451. ON END-ERROR OF C-Win /* Drucken von Auftragsdokumenten */
  452. OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
  453. /* This case occurs when the user presses the "Esc" key.
  454. In a persistently run window, just ignore this. If we did not, the
  455. application would exit. */
  456. IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
  457. END.
  458. /* _UIB-CODE-BLOCK-END */
  459. &ANALYZE-RESUME
  460. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win
  461. ON WINDOW-CLOSE OF C-Win /* Drucken von Auftragsdokumenten */
  462. DO:
  463. RETURN NO-APPLY.
  464. END.
  465. /* _UIB-CODE-BLOCK-END */
  466. &ANALYZE-RESUME
  467. &Scoped-define SELF-NAME Btn_Abbrechen
  468. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Abbrechen C-Win
  469. ON CHOOSE OF Btn_Abbrechen IN FRAME DEFAULT-FRAME /* Abbrechen */
  470. DO:
  471. DruckFlag = FALSE.
  472. END.
  473. /* _UIB-CODE-BLOCK-END */
  474. &ANALYZE-RESUME
  475. &Scoped-define SELF-NAME Btn_Drucken
  476. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Drucken C-Win
  477. ON CHOOSE OF Btn_Drucken IN FRAME DEFAULT-FRAME /* Drucken */
  478. DO:
  479. DruckFlag = TRUE.
  480. END.
  481. /* _UIB-CODE-BLOCK-END */
  482. &ANALYZE-RESUME
  483. &Scoped-define SELF-NAME E_Adresse
  484. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL E_Adresse C-Win
  485. ON ENTRY OF E_Adresse IN FRAME DEFAULT-FRAME
  486. DO:
  487. APPLY 'TAB' TO SELF.
  488. RETURN NO-APPLY.
  489. END.
  490. /* _UIB-CODE-BLOCK-END */
  491. &ANALYZE-RESUME
  492. &Scoped-define SELF-NAME F_Aufnr
  493. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Aufnr C-Win
  494. ON ENTRY OF F_Aufnr IN FRAME DEFAULT-FRAME /* Auftragsnummer */
  495. DO:
  496. APPLY 'TAB' TO SELF.
  497. RETURN NO-APPLY.
  498. END.
  499. /* _UIB-CODE-BLOCK-END */
  500. &ANALYZE-RESUME
  501. &Scoped-define SELF-NAME F_Datum
  502. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum C-Win
  503. ON ENTRY OF F_Datum IN FRAME DEFAULT-FRAME /* Fakturadatum */
  504. DO:
  505. APPLY 'TAB' TO SELF.
  506. RETURN NO-APPLY.
  507. END.
  508. /* _UIB-CODE-BLOCK-END */
  509. &ANALYZE-RESUME
  510. &Scoped-define SELF-NAME F_Dokart
  511. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Dokart C-Win
  512. ON ENTRY OF F_Dokart IN FRAME DEFAULT-FRAME /* Dokumentart */
  513. DO:
  514. APPLY 'TAB' TO SELF.
  515. RETURN NO-APPLY.
  516. END.
  517. /* _UIB-CODE-BLOCK-END */
  518. &ANALYZE-RESUME
  519. &Scoped-define SELF-NAME F_Drucker
  520. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Drucker C-Win
  521. ON ENTRY OF F_Drucker IN FRAME DEFAULT-FRAME /* Drucker */
  522. DO:
  523. APPLY 'TAB' TO SELF.
  524. RETURN NO-APPLY.
  525. END.
  526. /* _UIB-CODE-BLOCK-END */
  527. &ANALYZE-RESUME
  528. &Scoped-define SELF-NAME F_Faknr
  529. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Faknr C-Win
  530. ON ENTRY OF F_Faknr IN FRAME DEFAULT-FRAME /* Fakturanummer */
  531. DO:
  532. APPLY 'TAB' TO SELF.
  533. RETURN NO-APPLY.
  534. END.
  535. /* _UIB-CODE-BLOCK-END */
  536. &ANALYZE-RESUME
  537. &Scoped-define SELF-NAME F_Fzz
  538. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Fzz C-Win
  539. ON ENTRY OF F_Fzz IN FRAME DEFAULT-FRAME /* Leere Fusszeilen */
  540. DO:
  541. APPLY 'TAB' TO SELF.
  542. RETURN NO-APPLY.
  543. END.
  544. /* _UIB-CODE-BLOCK-END */
  545. &ANALYZE-RESUME
  546. &Scoped-define SELF-NAME F_Kzz
  547. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Kzz C-Win
  548. ON ENTRY OF F_Kzz IN FRAME DEFAULT-FRAME /* Leere Kopfzeilen */
  549. DO:
  550. APPLY 'TAB' TO SELF.
  551. RETURN NO-APPLY.
  552. END.
  553. /* _UIB-CODE-BLOCK-END */
  554. &ANALYZE-RESUME
  555. &Scoped-define SELF-NAME F_Papier
  556. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Papier C-Win
  557. ON ENTRY OF F_Papier IN FRAME DEFAULT-FRAME /* Auftragspapier */
  558. DO:
  559. APPLY 'TAB' TO SELF.
  560. RETURN NO-APPLY.
  561. END.
  562. /* _UIB-CODE-BLOCK-END */
  563. &ANALYZE-RESUME
  564. &Scoped-define SELF-NAME F_Schrift
  565. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Schrift C-Win
  566. ON ENTRY OF F_Schrift IN FRAME DEFAULT-FRAME /* Schriftbild */
  567. DO:
  568. APPLY 'TAB' TO SELF.
  569. RETURN NO-APPLY.
  570. END.
  571. /* _UIB-CODE-BLOCK-END */
  572. &ANALYZE-RESUME
  573. &Scoped-define SELF-NAME F_Seite
  574. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Seite C-Win
  575. ON ENTRY OF F_Seite IN FRAME DEFAULT-FRAME /* Seite */
  576. DO:
  577. APPLY 'TAB' TO SELF.
  578. RETURN NO-APPLY.
  579. END.
  580. /* _UIB-CODE-BLOCK-END */
  581. &ANALYZE-RESUME
  582. &Scoped-define SELF-NAME F_Tzz
  583. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Tzz C-Win
  584. ON ENTRY OF F_Tzz IN FRAME DEFAULT-FRAME /* Total Zeilen */
  585. DO:
  586. APPLY 'TAB' TO SELF.
  587. RETURN NO-APPLY.
  588. END.
  589. /* _UIB-CODE-BLOCK-END */
  590. &ANALYZE-RESUME
  591. &UNDEFINE SELF-NAME
  592. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK C-Win
  593. /* *************************** Main Block *************************** */
  594. /* Set CURRENT-WINDOW: this will parent dialog-boxes and frames. */
  595. ASSIGN CURRENT-WINDOW = {&WINDOW-NAME}
  596. THIS-PROCEDURE:CURRENT-WINDOW = {&WINDOW-NAME}.
  597. ON CLOSE OF THIS-PROCEDURE RUN disable_UI.
  598. PAUSE 0 BEFORE-HIDE.
  599. /* ASSIGN cTray[01] = '261' */
  600. /* cTray[02] = '260' */
  601. /* cTray[03] = '259' */
  602. /* cTray[04] = '258' */
  603. /* cTray[05] = '257'. */
  604. /* ASSIGN cTray[01] = '259' */
  605. /* cTray[02] = '260' */
  606. /* cTray[03] = '261' */
  607. /* cTray[04] = '258' */
  608. /* cTray[05] = '257'. */
  609. MAIN-BLOCK:
  610. DO ON ERROR UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK
  611. ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK:
  612. RUN enable_UI.
  613. FDrucken = TRUE.
  614. DruckFlag = TRUE.
  615. cUSER = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR.
  616. cBenutzer = DYNAMIC-FUNCTION('getBenutzer':U) NO-ERROR.
  617. FIND BSteuer USE-INDEX Steuer-k1
  618. WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR.
  619. { vpr.i INIT }
  620. { vpr.i START }
  621. EMPTY TEMP-TABLE tPDF.
  622. iCodeI = -1.
  623. VERARBEITEN:
  624. DO WHILE FDrucken:
  625. FIND FIRST Tabel NO-LOCK USE-INDEX Tabel-k1
  626. WHERE Tabel.Firma = GVFirma
  627. AND Tabel.RecArt = 'AUFDRUCK'
  628. AND Tabel.CodeC = cUSER
  629. AND Tabel.CodeI > iCodeI
  630. AND Tabel.Bez1 = '' NO-ERROR.
  631. IF NOT AVAILABLE Tabel THEN DO:
  632. FIND FIRST Tabel NO-LOCK USE-INDEX Tabel-k1
  633. WHERE Tabel.Firma = GVFirma
  634. AND Tabel.RecArt = 'AUFDRUCK'
  635. AND Tabel.CodeC = cBenutzer
  636. AND Tabel.CodeI > iCodeI
  637. AND Tabel.Bez1 = '' NO-ERROR.
  638. END.
  639. IF NOT AVAILABLE Tabel THEN DO:
  640. FDrucken = FALSE.
  641. NEXT.
  642. END.
  643. TRecid = RECID(Tabel).
  644. iCodeI = Tabel.CodeI.
  645. REPEAT TRANSACTION:
  646. FIND BTabel EXCLUSIVE-LOCK
  647. WHERE RECID(BTabel) = TRecid NO-WAIT NO-ERROR.
  648. IF AVAILABLE BTabel THEN DO:
  649. BTabel.Bez1 = 'A'.
  650. RELEASE BTabel.
  651. LEAVE.
  652. END.
  653. IF LOCKED BTabel THEN DO:
  654. PAUSE 1 NO-MESSAGE.
  655. RELEASE BTabel.
  656. NEXT VERARBEITEN.
  657. END.
  658. TRecid = 0.
  659. LEAVE.
  660. END.
  661. IF TRecid = 0 THEN NEXT.
  662. FIND Tabel WHERE RECID(Tabel) = TRecid NO-LOCK.
  663. RUN DRUCKEN.
  664. IF RETURN-VALUE <> '' AND
  665. RETURN-VALUE <> 'ERROR' THEN NEXT.
  666. REPEAT TRANSACTION:
  667. FIND BTabel WHERE RECID(BTabel) = TRecid NO-ERROR.
  668. DELETE BTabel.
  669. RELEASE BTabel.
  670. LEAVE.
  671. END.
  672. RELEASE Tabel.
  673. RELEASE BTabel.
  674. END.
  675. DYNAMIC-FUNCTION('setBatch':U, FALSE) NO-ERROR.
  676. REPEAT TRANSACTION:
  677. FOR EACH Tabel NO-LOCK USE-INDEX Tabel-k1
  678. WHERE Tabel.Firma = GVFirma
  679. AND Tabel.RecArt = 'AUFDRUCK'
  680. AND Tabel.CodeC = cUSER
  681. AND Tabel.Bez1 = 'A':
  682. TRecid = RECID(Tabel).
  683. FIND BTabel WHERE RECID(BTabel) = TRecid NO-ERROR.
  684. BTabel.Bez1 = ''.
  685. RELEASE bTabel.
  686. END.
  687. FOR EACH Tabel NO-LOCK USE-INDEX Tabel-k1
  688. WHERE Tabel.Firma = GVFirma
  689. AND Tabel.RecArt = 'AUFDRUCK'
  690. AND Tabel.CodeC = cBenutzer
  691. AND Tabel.Bez1 = 'A':
  692. TRecid = RECID(Tabel).
  693. FIND BTabel WHERE RECID(BTabel) = TRecid NO-ERROR.
  694. BTabel.Bez1 = ''.
  695. RELEASE bTabel.
  696. END.
  697. RELEASE Tabel.
  698. RELEASE bTabel.
  699. LEAVE.
  700. END.
  701. { vpr.i STOP }
  702. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  703. APPLY 'CLOSE' TO THIS-PROCEDURE.
  704. RETURN.
  705. END.
  706. PROCEDURE ShellExecuteA EXTERNAL "shell32.dll" :
  707. DEFINE INPUT PARAMETER lphwnd AS LONG.
  708. DEFINE INPUT PARAMETER lpOperation AS CHAR.
  709. DEFINE INPUT PARAMETER lpFile AS CHAR.
  710. DEFINE INPUT PARAMETER lpParameters AS CHAR.
  711. DEFINE INPUT PARAMETER lpDirectory AS CHAR.
  712. DEFINE INPUT PARAMETER nShowCmd AS LONG.
  713. DEFINE RETURN PARAMETER hInstance AS LONG.
  714. END PROCEDURE.
  715. /* _UIB-CODE-BLOCK-END */
  716. &ANALYZE-RESUME
  717. /* ********************** Internal Procedures *********************** */
  718. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ABLADEVORSCHRIFT C-Win
  719. PROCEDURE ABLADEVORSCHRIFT :
  720. /*------------------------------------------------------------------------------
  721. Purpose:
  722. Parameters: <none>
  723. Notes:
  724. ------------------------------------------------------------------------------*/
  725. XAblade = ''.
  726. FIND Tabel USE-INDEX Tabel-k1
  727. WHERE Tabel.Firma = GVFirma
  728. AND Tabel.RecArt = 'ABLAD'
  729. AND Tabel.CodeC = ''
  730. AND Tabel.CodeI = BAufko.Ablad_Vor
  731. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  732. IF NOT AVAILABLE Tabel THEN DO:
  733. XAblade = BAufko.Ablad_Vor_Text.
  734. RETURN.
  735. END.
  736. IF LENGTH(Tabel.Bez1) > 4 THEN XAblade = Tabel.Bez1.
  737. IF BAufko.Ablad_Vor_Text <> '' THEN DO:
  738. IF XAblade <> '' THEN XAblade = XAblade + " / ".
  739. XAblade = XAblade + BAufko.Ablad_Vor_Text.
  740. END.
  741. END PROCEDURE.
  742. /* _UIB-CODE-BLOCK-END */
  743. &ANALYZE-RESUME
  744. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE C-Win
  745. PROCEDURE ARTIKELZEILE :
  746. /*------------------------------------------------------------------------------
  747. Purpose:
  748. Parameters: <none>
  749. Notes:
  750. ------------------------------------------------------------------------------*/
  751. DO WHILE Aufze.Artnr = 0:
  752. SUBSTRING(VZeile,015) = STRING(Aufze.Bez1,"x(30)").
  753. { v8/putstream.i "1" }
  754. IF Aufze.Bez2 <> '' THEN DO:
  755. VZeile = RZeile.
  756. SUBSTRING(VZeile,015) = STRING(Aufze.Bez2,"x(30)").
  757. { v8/putstream.i "1" }
  758. END.
  759. RETURN.
  760. END.
  761. FIND Artst OF Aufze NO-LOCK.
  762. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  763. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
  764. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  765. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  766. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  767. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  768. SUBSTRING(VZeile,008) = STRING(Aufze.Artnr ,"999999").
  769. SUBSTRING(VZeile,015) = STRING(Aufze.Bez1 ,"x(30)").
  770. SUBSTRING(VZeile,045) = STRING(KGebinde.KBez,"x(08)").
  771. IF Aufze.VGeb_Me <> 0 THEN DO:
  772. SUBSTRING(VZeile,053) = STRING(Aufze.VGeb_Me,"->>9x ")
  773. + STRING(VGebinde.KBez,"x(06)").
  774. END.
  775. SUBSTRING(VZeile,066) = STRING(Aufze.MGeli ,"->>>9").
  776. IF Aufze.Alk_Gehalt <> 0 THEN DO:
  777. SUBSTRING(VZeile,038) = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  778. END.
  779. IF Aufze.Jahr > 9 THEN DO:
  780. SUBSTRING(VZeile,041) = ' '
  781. + SUBSTRING(STRING(Aufze.Jahr,"9999"),03).
  782. END.
  783. IF FPreis THEN DO:
  784. SUBSTRING(VZeile,072) = STRING(Aufze.Preis ,"zz9.999").
  785. SUBSTRING(VZeile,081) = STRING(Aufze.Bru_Betr ,"->>,>>9.99").
  786. SUBSTRING(VZeile,092) = STRING(Aufze.WuCd ,"z9").
  787. END.
  788. { v8/putstream.i "1" }
  789. IF Aufze.Bez2 <> '' THEN DO:
  790. SUBSTRING(VZeile,015) = STRING(Aufze.Bez2,"x(30)").
  791. { v8/putstream.i "1" }
  792. END.
  793. IF Aufze.Aktion THEN DO:
  794. SUBSTRING(VZeile,015) = STRING(Aufze.Aktion_Text,"x(30)").
  795. { v8/putstream.i "1" }
  796. END.
  797. DO WHILE FPreis:
  798. IF Aufze.Rab_Betr = 0 THEN LEAVE.
  799. RabWert = ABSOLUTE(Aufze.Rab_Wert).
  800. IF Aufze.Rab_Art = 3 THEN RabText = VEpzText.
  801. ELSE DO:
  802. IF Aufze.Rab_Betr < 0 THEN RabText = VZusText.
  803. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText.
  804. END.
  805. SUBSTRING(VZeile,015) = TRIM(RabText).
  806. IF Aufze.Rab_Art = 1
  807. THEN SUBSTRING(VZeile,035) = STRING(RabWert,"->9.9 %").
  808. IF Aufze.Rab_Art = 2 OR
  809. Aufze.Rab_Art = 3
  810. THEN SUBSTRING(VZeile,035) = STRING(RabWert,"-9.99 Fr.").
  811. SUBSTRING(VZeile,081) = STRING(- Aufze.Rab_Betr ,"->>,>>9.99").
  812. { v8/putstream.i "1" }
  813. LEAVE.
  814. END.
  815. DO WHILE FPreis:
  816. IF Aufze.Zus_Betr = 0 THEN LEAVE.
  817. RabWert = ABSOLUTE(Aufze.Zus_Wert).
  818. IF Aufze.Zus_Art = 3 THEN RabText = VEpzText.
  819. ELSE DO:
  820. IF Aufze.Zus_Betr < 0 THEN RabText = VRabText.
  821. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText.
  822. END.
  823. SUBSTRING(VZeile,015) = TRIM(RabText).
  824. IF Aufze.Zus_Art = 1
  825. THEN SUBSTRING(VZeile,035) = STRING(RabWert,"->9.9 %").
  826. IF Aufze.Zus_Art = 2 OR
  827. Aufze.Zus_Art = 3
  828. THEN SUBSTRING(VZeile,035) = STRING(RabWert,"-9.99 Fr.").
  829. SUBSTRING(VZeile,081) = STRING(+ Aufze.Zus_Betr ,"->>,>>9.99").
  830. { v8/putstream.i "1" }
  831. LEAVE.
  832. END.
  833. /* ---- Summengruppen-Total -------------------------------------------- */
  834. IF Aufze.Rab_Su_Grp <> 0 THEN DO:
  835. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR.
  836. IF AVAILABLE TRabSumm THEN DO:
  837. TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab.
  838. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab.
  839. END.
  840. END.
  841. /* ---- Warengruppen-Totale -------------------------------------------- */
  842. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp
  843. AND TUmsGrp.MWst = Aufze.WuCd NO-ERROR.
  844. IF NOT AVAILABLE TUmsGrp THEN DO:
  845. FIND WarenGrp USE-INDEX WarenGrp-k1
  846. WHERE WarenGrp.Firma = GVFirma
  847. AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR.
  848. CREATE TUmsGrp.
  849. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp
  850. TUmsGrp.Mwst = Aufze.WuCd.
  851. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
  852. ELSE TUmsGrp.Bez = "??????????".
  853. END.
  854. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
  855. + Aufze.Net_Betr
  856. - Aufze.Auf_Rab
  857. - Aufze.Abh_Rab.
  858. RETURN.
  859. END PROCEDURE.
  860. /* _UIB-CODE-BLOCK-END */
  861. &ANALYZE-RESUME
  862. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_NEU C-Win
  863. PROCEDURE ARTIKELZEILE_NEU :
  864. /*------------------------------------------------------------------------------
  865. Purpose:
  866. Parameters: <none>
  867. Notes:
  868. ------------------------------------------------------------------------------*/
  869. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  870. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
  871. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  872. DO WHILE Aufze.Artnr = 0:
  873. SUBSTRING(VZeile,044) = STRING(Aufze.Bez1,"x(30)").
  874. { v8/putstream.i "1" }
  875. IF Aufze.Bez2 <> '' THEN DO:
  876. VZeile = RZeile.
  877. SUBSTRING(VZeile,044) = STRING(Aufze.Bez2,"x(30)").
  878. { v8/putstream.i "1" }
  879. END.
  880. RETURN.
  881. END.
  882. FIND Artst OF Aufze NO-LOCK.
  883. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  884. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
  885. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  886. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  887. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  888. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  889. SUBSTRING(VZeile,008) = STRING(KGebinde.KBez,"x(10)").
  890. IF Aufze.VGeb_Me <> 0 THEN DO:
  891. SUBSTRING(VZeile,019) = STRING(Aufze.VGeb_Me,'->>>')
  892. + 'x '
  893. + STRING(VGebinde.KBez,'x(10)').
  894. END.
  895. SUBSTRING(VZeile,035) = STRING(Aufze.MGeli ,"->>,>>9").
  896. SUBSTRING(VZeile,044) = STRING(Aufze.Bez1 ,"x(30)").
  897. IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,073) = STRING(Aufze.Jahr,"9999").
  898. IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,078) = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  899. SUBSTRING(VZeile,086) = STRING(Aufze.Artnr ,"999999").
  900. IF FPreis THEN DO:
  901. SUBSTRING(VZeile,095) = STRING(Aufze.Preis ,">,>>9.999").
  902. SUBSTRING(VZeile,104) = STRING(Aufze.Bru_Betr ,"->>>,>>9.99").
  903. SUBSTRING(VZeile,116) = STRING(Aufze.WuCd ,"z9").
  904. END.
  905. VZeile = SUBSTRING(VZeile,001,018)
  906. + BDrucker.Drufettb
  907. + SUBSTRING(VZeile,019,016)
  908. + BDrucker.Drufette
  909. + SUBSTRING(VZeile,035).
  910. { v8/putstream.i "1" }
  911. IF Aufze.Bez2 <> '' THEN DO:
  912. SUBSTRING(VZeile,044) = STRING(Aufze.Bez2,"x(30)").
  913. { v8/putstream.i "1" }
  914. END.
  915. IF Aufze.Aktion THEN DO:
  916. SUBSTRING(VZeile,044) = STRING(Aufze.Aktion_Text,"x(30)").
  917. { v8/putstream.i "1" }
  918. END.
  919. DO WHILE FPreis:
  920. IF Aufze.Rab_Betr = 0 THEN LEAVE.
  921. RabWert = ABSOLUTE(Aufze.Rab_Wert).
  922. IF Aufze.Rab_Art = 3 THEN RabText = VEpzText.
  923. ELSE DO:
  924. IF Aufze.Rab_Betr < 0 THEN RabText = VZusText.
  925. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText.
  926. END.
  927. SUBSTRING(VZeile,044) = TRIM(RabText).
  928. IF Aufze.Rab_Art = 1
  929. THEN SUBSTRING(VZeile,099) = STRING(RabWert,"->9.9%").
  930. IF Aufze.Rab_Art = 2 OR
  931. Aufze.Rab_Art = 3
  932. THEN SUBSTRING(VZeile,099) = STRING(RabWert,"-9.99").
  933. SUBSTRING(VZeile,104) = STRING(- Aufze.Rab_Betr ,"->>>,>>9.99").
  934. { v8/putstream.i "1" }
  935. LEAVE.
  936. END.
  937. DO WHILE FPreis:
  938. IF Aufze.Zus_Betr = 0 THEN LEAVE.
  939. RabWert = ABSOLUTE(Aufze.Zus_Wert).
  940. IF Aufze.Zus_Art = 3 THEN RabText = VEpzText.
  941. ELSE DO:
  942. IF Aufze.Zus_Betr < 0 THEN RabText = VRabText.
  943. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText.
  944. END.
  945. SUBSTRING(VZeile,044) = TRIM(RabText).
  946. IF Aufze.Zus_Art = 1
  947. THEN SUBSTRING(VZeile,099) = STRING(RabWert,"->9.9%").
  948. IF Aufze.Zus_Art = 2 OR
  949. Aufze.Zus_Art = 3
  950. THEN SUBSTRING(VZeile,099) = STRING(RabWert,"-9.99").
  951. SUBSTRING(VZeile,104) = STRING(+ Aufze.Zus_Betr ,"->>>,>>9.99").
  952. { v8/putstream.i "1" }
  953. LEAVE.
  954. END.
  955. /* ---- Summengruppen-Total -------------------------------------------- */
  956. IF Aufze.Rab_Su_Grp <> 0 THEN DO:
  957. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR.
  958. IF AVAILABLE TRabSumm THEN DO:
  959. TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab.
  960. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab.
  961. END.
  962. END.
  963. /* ---- Warengruppen-Totale -------------------------------------------- */
  964. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp
  965. AND TUmsGrp.MWst = Aufze.WuCd NO-ERROR.
  966. IF NOT AVAILABLE TUmsGrp THEN DO:
  967. FIND WarenGrp USE-INDEX WarenGrp-k1
  968. WHERE WarenGrp.Firma = GVFirma
  969. AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR.
  970. CREATE TUmsGrp.
  971. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp
  972. TUmsGrp.Mwst = Aufze.WuCd.
  973. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
  974. ELSE TUmsGrp.Bez = "??????????".
  975. END.
  976. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
  977. + Aufze.Net_Betr
  978. - Aufze.Auf_Rab
  979. - Aufze.Abh_Rab.
  980. IF Aufze.MRuek > 0 THEN DO:
  981. CREATE tRueckst.
  982. BUFFER-COPY tAufze TO tRueckst.
  983. END.
  984. END PROCEDURE.
  985. /* _UIB-CODE-BLOCK-END */
  986. &ANALYZE-RESUME
  987. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_RUECKSTAND C-Win
  988. PROCEDURE ARTIKELZEILE_RUECKSTAND :
  989. /*------------------------------------------------------------------------------
  990. Purpose:
  991. Parameters: <none>
  992. Notes:
  993. ------------------------------------------------------------------------------*/
  994. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  995. FIND tRueckst WHERE RECID(tRueckst) = ipRecid NO-LOCK.
  996. FIND Aufze WHERE RECID(Aufze) = tRueckst.Zeile NO-LOCK.
  997. FIND Artst OF Aufze NO-LOCK.
  998. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  999. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  1000. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  1001. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  1002. SUBSTRING(VZeile,008) = STRING(KGebinde.KBez,"x(10)").
  1003. IF Aufze.VGeb_Ru <> 0 THEN DO:
  1004. SUBSTRING(VZeile,019) = STRING(Aufze.VGeb_Ru,'->>>')
  1005. + 'x '
  1006. + STRING(VGebinde.KBez,'x(10)').
  1007. END.
  1008. SUBSTRING(VZeile,035) = STRING(Aufze.MRuek ,"->>,>>9").
  1009. SUBSTRING(VZeile,044) = STRING(Aufze.Bez1 ,"x(30)").
  1010. IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,073) = STRING(Aufze.Jahr,"9999").
  1011. IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,078) = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  1012. SUBSTRING(VZeile,086) = STRING(Aufze.Artnr ,"999999").
  1013. VZeile = SUBSTRING(VZeile,001,018)
  1014. + BDrucker.Drufettb
  1015. + SUBSTRING(VZeile,019,016)
  1016. + BDrucker.Drufette
  1017. + SUBSTRING(VZeile,035).
  1018. { v8/putstream.i "1" }
  1019. IF Aufze.Bez2 <> '' THEN DO:
  1020. SUBSTRING(VZeile,044) = STRING(Aufze.Bez2,"x(30)").
  1021. { v8/putstream.i "1" }
  1022. END.
  1023. IF Aufze.Aktion THEN DO:
  1024. SUBSTRING(VZeile,044) = STRING(Aufze.Aktion_Text,"x(30)").
  1025. { v8/putstream.i "1" }
  1026. END.
  1027. END PROCEDURE.
  1028. /* _UIB-CODE-BLOCK-END */
  1029. &ANALYZE-RESUME
  1030. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_SAMMFAK C-Win
  1031. PROCEDURE ARTIKELZEILE_SAMMFAK :
  1032. /*------------------------------------------------------------------------------
  1033. Purpose:
  1034. Parameters: <none>
  1035. Notes:
  1036. ------------------------------------------------------------------------------*/
  1037. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  1038. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
  1039. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  1040. DO WHILE Aufze.Artnr = 0:
  1041. SUBSTRING(VZeile,042) = STRING(Aufze.Bez1,"x(30)").
  1042. { v8/putstream.i "1" }
  1043. IF Aufze.Bez2 <> '' THEN DO:
  1044. VZeile = RZeile.
  1045. SUBSTRING(VZeile,042) = STRING(Aufze.Bez2,"x(30)").
  1046. { v8/putstream.i "1" }
  1047. END.
  1048. RETURN.
  1049. END.
  1050. FIND Artst OF Aufze NO-LOCK.
  1051. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  1052. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
  1053. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  1054. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  1055. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  1056. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  1057. SUBSTRING(VZeile,006) = STRING(KGebinde.KBez,"x(10)").
  1058. IF Aufze.VGeb_Me <> 0 THEN DO:
  1059. SUBSTRING(VZeile,017) = STRING(Aufze.VGeb_Me,'->>>')
  1060. + 'x '
  1061. + STRING(VGebinde.KBez,'x(10)').
  1062. END.
  1063. SUBSTRING(VZeile,033) = STRING(Aufze.MGeli ,"->>,>>9").
  1064. SUBSTRING(VZeile,042) = STRING(Aufze.Bez1 ,"x(30)").
  1065. IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,073) = STRING(Aufze.Jahr,"9999").
  1066. IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,078) = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  1067. SUBSTRING(VZeile,086) = STRING(Aufze.Artnr ,"999999").
  1068. IF FPreis THEN DO:
  1069. SUBSTRING(VZeile,093) = STRING(Aufze.Preis ,">,>>9.999").
  1070. SUBSTRING(VZeile,102) = STRING(Aufze.Bru_Betr ,"->>>,>>9.99").
  1071. SUBSTRING(VZeile,114) = STRING(Aufze.WuCd ,"z9").
  1072. END.
  1073. VZeile = SUBSTRING(VZeile,001,018)
  1074. + BDrucker.Drufettb
  1075. + SUBSTRING(VZeile,019,016)
  1076. + BDrucker.Drufette
  1077. + SUBSTRING(VZeile,035).
  1078. { v8/putstream.i "1" }
  1079. IF Aufze.Bez2 <> '' THEN DO:
  1080. SUBSTRING(VZeile,042) = STRING(Aufze.Bez2,"x(30)").
  1081. { v8/putstream.i "1" }
  1082. END.
  1083. IF Aufze.Aktion THEN DO:
  1084. SUBSTRING(VZeile,042) = STRING(Aufze.Aktion_Text,"x(30)").
  1085. { v8/putstream.i "1" }
  1086. END.
  1087. DO WHILE FPreis:
  1088. IF Aufze.Rab_Betr = 0 THEN LEAVE.
  1089. RabWert = ABSOLUTE(Aufze.Rab_Wert).
  1090. IF Aufze.Rab_Art = 3 THEN RabText = VEpzText.
  1091. ELSE DO:
  1092. IF Aufze.Rab_Betr < 0 THEN RabText = VZusText.
  1093. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText.
  1094. END.
  1095. SUBSTRING(VZeile,042) = TRIM(RabText).
  1096. IF Aufze.Rab_Art = 1
  1097. THEN SUBSTRING(VZeile,097) = STRING(RabWert,"->9.9%").
  1098. IF Aufze.Rab_Art = 2 OR
  1099. Aufze.Rab_Art = 3
  1100. THEN SUBSTRING(VZeile,097) = STRING(RabWert,"-9.99").
  1101. SUBSTRING(VZeile,102) = STRING(- Aufze.Rab_Betr ,"->>>,>>9.99").
  1102. { v8/putstream.i "1" }
  1103. LEAVE.
  1104. END.
  1105. DO WHILE FPreis:
  1106. IF Aufze.Zus_Betr = 0 THEN LEAVE.
  1107. RabWert = ABSOLUTE(Aufze.Zus_Wert).
  1108. IF Aufze.Zus_Art = 3 THEN RabText = VEpzText.
  1109. ELSE DO:
  1110. IF Aufze.Zus_Betr < 0 THEN RabText = VRabText.
  1111. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText.
  1112. END.
  1113. SUBSTRING(VZeile,042) = TRIM(RabText).
  1114. IF Aufze.Zus_Art = 1
  1115. THEN SUBSTRING(VZeile,097) = STRING(RabWert,"->9.9%").
  1116. IF Aufze.Zus_Art = 2 OR
  1117. Aufze.Zus_Art = 3
  1118. THEN SUBSTRING(VZeile,097) = STRING(RabWert,"-9.99").
  1119. SUBSTRING(VZeile,102) = STRING(+ Aufze.Zus_Betr ,"->>>,>>9.99").
  1120. { v8/putstream.i "1" }
  1121. LEAVE.
  1122. END.
  1123. /* ---- Summengruppen-Total -------------------------------------------- */
  1124. IF Aufze.Rab_Su_Grp <> 0 THEN DO:
  1125. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR.
  1126. IF AVAILABLE TRabSumm THEN DO:
  1127. TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab.
  1128. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab.
  1129. END.
  1130. END.
  1131. /* ---- Warengruppen-Totale -------------------------------------------- */
  1132. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp
  1133. AND TUmsGrp.MWst = Aufze.WuCd NO-ERROR.
  1134. IF NOT AVAILABLE TUmsGrp THEN DO:
  1135. FIND WarenGrp USE-INDEX WarenGrp-k1
  1136. WHERE WarenGrp.Firma = GVFirma
  1137. AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR.
  1138. CREATE TUmsGrp.
  1139. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp
  1140. TUmsGrp.Mwst = Aufze.WuCd.
  1141. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
  1142. ELSE TUmsGrp.Bez = "??????????".
  1143. END.
  1144. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
  1145. + Aufze.Net_Betr
  1146. - Aufze.Auf_Rab
  1147. - Aufze.Abh_Rab.
  1148. END PROCEDURE.
  1149. /* _UIB-CODE-BLOCK-END */
  1150. &ANALYZE-RESUME
  1151. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BAR-CODE-39 C-Win
  1152. PROCEDURE BAR-CODE-39 :
  1153. /*------------------------------------------------------------------------------
  1154. Purpose:
  1155. Parameters: <none>
  1156. Notes:
  1157. ------------------------------------------------------------------------------*/
  1158. DEF INPUT PARAMETER ipWert AS CHAR NO-UNDO.
  1159. DEF INPUT PARAMETER ipCodeArt AS CHAR NO-UNDO.
  1160. DEF OUTPUT PARAMETER opBarCode AS CHAR NO-UNDO.
  1161. DEF VAR clr AS LOG INIT TRUE NO-UNDO.
  1162. DEF VAR wk AS CHAR NO-UNDO.
  1163. DEF VAR drw AS CHAR NO-UNDO.
  1164. DEF VAR cDir AS CHAR NO-UNDO.
  1165. DEF VAR k AS CHAR NO-UNDO.
  1166. DEF VAR att AS CHAR NO-UNDO.
  1167. DEF VAR kod AS CHAR NO-UNDO
  1168. INIT "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.Ø *$/+%".
  1169. att =
  1170. "100100001001100001101100000000110001100110000001110000000100101100100100"
  1171. + "001100100000110100100001001001001001101001000000011001100011000001011000"
  1172. + "000001101100001100001001100000011100100000011001000011101000010000010011"
  1173. + "100010010001010010000000111100000110001000110000010110110000001011000001"
  1174. + "111000000010010001110010000011010000010000101110000100011000100010010100"
  1175. + "010101000010100010010001010000101010".
  1176. DEF VAR i AS INT NO-UNDO.
  1177. DEF VAR j AS INT NO-UNDO.
  1178. DEF VAR l AS INT NO-UNDO.
  1179. DEF VAR brd AS INT NO-UNDO.
  1180. DEF VAR jst AS INT NO-UNDO.
  1181. ASSIGN i = (IF SUBSTRING (ipCodeArt, 1, 1) = "P" THEN 1 ELSE 2)
  1182. opBarCode = "~E&f0S~E*c100G"
  1183. drw = SUBSTRING("ab" , i, 1)
  1184. + SUBSTRING(ipCodeArt, 6)
  1185. + SUBSTRING("ba" , i, 1)
  1186. + "P"
  1187. cDir = SUBSTRING("XY", i, 1)
  1188. k = "*" + ipWert + "*" .
  1189. DO i = 1 TO LENGTH(k):
  1190. ASSIGN j = INDEX(kod, SUBSTRING (k, i, 1)) * 9 - 8
  1191. wk = SUBSTRING (att, j, 9) + "0" .
  1192. DO l = 1 TO 10:
  1193. ASSIGN brd = IF SUBSTRING(wk,l,1) = "0" THEN 2 ELSE 4
  1194. opBarCode = opBarCode
  1195. + (IF clr THEN "~E*c" + SUBSTRING (ipCodeArt, brd, 2) + drw
  1196. ELSE "~E*p+" + STRING(INTEGER(SUBSTRING(ipCodeArt, brd, 2))
  1197. + jst) + cDir)
  1198. jst = integer (SUBSTRING (ipCodeArt, brd, 2))
  1199. clr = NOT clr.
  1200. END. /* of looping 1 to 10 */
  1201. END. /* of going through string 'k' */
  1202. ASSIGN opBarCode = opBarCode + "~E&f1S"
  1203. wk = "".
  1204. /*
  1205. DEF INPUT PARAMETER ipWert AS CHAR NO-UNDO.
  1206. DEF INPUT PARAMETER ipCodeArt AS CHAR NO-UNDO.
  1207. DEF OUTPUT PARAMETER opBarCode AS CHAR NO-UNDO.
  1208. DEF VAR clr AS LOG INIT TRUE NO-UNDO.
  1209. DEF VAR wk AS CHAR NO-UNDO.
  1210. DEF VAR drw AS CHAR NO-UNDO.
  1211. DEF VAR cDir AS CHAR NO-UNDO.
  1212. DEF VAR k AS CHAR NO-UNDO.
  1213. DEF VAR att AS CHAR NO-UNDO.
  1214. DEF VAR kod AS CHAR NO-UNDO
  1215. INIT "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.Ï *$/+%".
  1216. att =
  1217. "100100001001100001101100000000110001100110000001110000000100101100100100"
  1218. + "001100100000110100100001001001001001101001000000011001100011000001011000"
  1219. + "000001101100001100001001100000011100100000011001000011101000010000010011"
  1220. + "100010010001010010000000111100000110001000110000010110110000001011000001"
  1221. + "111000000010010001110010000011010000010000101110000100011000100010010100"
  1222. + "010101000010100010010001010000101010".
  1223. DEF VAR i AS INT NO-UNDO.
  1224. DEF VAR j AS INT NO-UNDO.
  1225. DEF VAR l AS INT NO-UNDO.
  1226. DEF VAR brd AS INT NO-UNDO.
  1227. DEF VAR jst AS INT NO-UNDO.
  1228. ASSIGN i = IF SUBSTRING (ipCodeArt, 1, 1) = "P" THEN 1 ELSE 2
  1229. opBarCode = "~E&f0S~E*c100G"
  1230. drw = SUBSTRING("ab" , i, 1)
  1231. + SUBSTRING(ipCodeArt, 6)
  1232. + SUBSTRING("ba" , i, 1)
  1233. + "P"
  1234. cDir = SUBSTRING("XY", i, 1)
  1235. k = "*" + ipWert + "*" .
  1236. DO i = 1 TO LENGTH(k):
  1237. ASSIGN j = INDEX(kod, SUBSTRING (k, i, 1)) * 9 - 8
  1238. wk = SUBSTRING (att, j, 9) + "0" .
  1239. DO l = 1 TO 10:
  1240. ASSIGN brd = IF SUBSTRING(wk,l,1) = "0" THEN 2 ELSE 4
  1241. opBarCode = opBarCode
  1242. + (IF clr THEN "~E*c" + SUBSTRING (ipCodeArt, brd, 2) + drw
  1243. ELSE "~E*p+" + STRING(INTEGER(SUBSTRING(ipCodeArt, brd, 2))
  1244. + jst) + cDir)
  1245. jst = integer (SUBSTRING (ipCodeArt, brd, 2))
  1246. clr = NOT clr.
  1247. END. /* of looping 1 to 10 */
  1248. END. /* of going through string 'k' */
  1249. ASSIGN opBarCode = opBarCode + "~E&f1S"
  1250. wk = "".
  1251. */
  1252. END PROCEDURE.
  1253. /* _UIB-CODE-BLOCK-END */
  1254. &ANALYZE-RESUME
  1255. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI C-Win _DEFAULT-DISABLE
  1256. PROCEDURE disable_UI :
  1257. /*------------------------------------------------------------------------------
  1258. Purpose: DISABLE the User Interface
  1259. Parameters: <none>
  1260. Notes: Here we clean-up the user-interface by deleting
  1261. dynamic widgets we have created and/or hide
  1262. frames. This procedure is usually called when
  1263. we are ready to "clean-up" after running.
  1264. ------------------------------------------------------------------------------*/
  1265. /* Delete the WINDOW we created */
  1266. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win)
  1267. THEN DELETE WIDGET C-Win.
  1268. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  1269. END PROCEDURE.
  1270. /* _UIB-CODE-BLOCK-END */
  1271. &ANALYZE-RESUME
  1272. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE C-Win
  1273. PROCEDURE DRUCKAUSGABE :
  1274. /*------------------------------------------------------------------------------
  1275. Purpose:
  1276. Parameters: <none>
  1277. Notes:
  1278. ------------------------------------------------------------------------------*/
  1279. DEF VAR AnzKopien AS INT NO-UNDO.
  1280. DEF VAR sRecid AS RECID NO-UNDO.
  1281. DEF VAR iSize AS INT NO-UNDO.
  1282. IF BAufko.AlsOfferte THEN RETURN.
  1283. AnzKopien = F_Kopie.
  1284. IF AnzKopien = 0 THEN AnzKopien = 1.
  1285. DO VCopy = 1 TO AnzKopien:
  1286. sRecid = RECID(BSchrift).
  1287. VSchacht = BLiDruck.Schacht.
  1288. IF VSchacht > 0 THEN DO:
  1289. IF VCopy < AnzKopien THEN VSchacht = 3.
  1290. IF VCopy = AnzKopien THEN VSchacht = 2.
  1291. END.
  1292. IF VDokArt = 'SammFak' THEN DO:
  1293. IF VCopy = AnzKopien THEN DO:
  1294. FIND FIRST Schrift NO-LOCK
  1295. WHERE Schrift.Schname = '\\SBSHUBER\GEMIS SCHACHT-2'.
  1296. sRecid = RECID(Schrift).
  1297. SESSION:PRINTER-NAME = Schrift.Schname.
  1298. VSchacht = 0.
  1299. END.
  1300. ELSE DO:
  1301. FIND FIRST Schrift NO-LOCK
  1302. WHERE Schrift.Schname = '\\SBSHUBER\GEMIS SCHACHT-5'.
  1303. sRecid = RECID(Schrift).
  1304. SESSION:PRINTER-NAME = Schrift.Schname.
  1305. VSchacht = 3.
  1306. END.
  1307. END.
  1308. iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, VTemp ,
  1309. sRecid ,
  1310. VSchacht ,
  1311. 240 , /* Blockgrösse */
  1312. 'ibm850' ,
  1313. 1 ). /* Anzahl Kopien */
  1314. IF iSize = 0 THEN DO:
  1315. MESSAGE 'Druckvorgang gescheitert !!! '
  1316. VIEW-AS ALERT-BOX ERROR.
  1317. END.
  1318. ETIME(TRUE).
  1319. DO WHILE ETIME(FALSE) < 250:
  1320. END.
  1321. END.
  1322. END PROCEDURE.
  1323. /* _UIB-CODE-BLOCK-END */
  1324. &ANALYZE-RESUME
  1325. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE_VESR C-Win
  1326. PROCEDURE DRUCKAUSGABE_VESR :
  1327. /*------------------------------------------------------------------------------
  1328. Purpose:
  1329. Parameters: <none>
  1330. Notes:
  1331. ------------------------------------------------------------------------------*/
  1332. IF BAufko.AlsOfferte THEN RETURN.
  1333. IF BAufko.Auf_Tot <= 0 THEN RETURN.
  1334. IF NOT AVAILABLE XSchrift THEN RETURN.
  1335. IF NOT AVAILABLE XDrucker THEN RETURN.
  1336. IF XDrucker.Emul = 'TERMINAL' THEN RETURN.
  1337. DEF VAR sRecid AS RECID NO-UNDO.
  1338. DEF VAR iSize AS INT NO-UNDO.
  1339. DEF VAR ja AS LOG NO-UNDO.
  1340. sRecid = RECID(XSchrift).
  1341. IF VBesr = 04 OR
  1342. VBesr = 02 THEN DO:
  1343. ja = DYNAMIC-FUNCTION('loadOCRBFont':U, XSchrift.Schname).
  1344. IF NOT ja THEN DO:
  1345. MESSAGE 'OCRB-Font konnte nicht geladen werden !!! '
  1346. VIEW-AS ALERT-BOX ERROR.
  1347. END.
  1348. VSchacht = 4.
  1349. END.
  1350. ELSE DO:
  1351. VSchacht = 0.
  1352. END.
  1353. iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, VTempVESR ,
  1354. sRecid ,
  1355. VSchacht ,
  1356. 300 , /* Blockgrösse */
  1357. 'ibm850' ,
  1358. 1 ).
  1359. IF iSize = 0 THEN DO:
  1360. MESSAGE 'Druckvorgang gescheitert !!! '
  1361. VIEW-AS ALERT-BOX ERROR.
  1362. END.
  1363. ETIME(TRUE).
  1364. DO WHILE ETIME(FALSE) < 250:
  1365. END.
  1366. END PROCEDURE.
  1367. /* _UIB-CODE-BLOCK-END */
  1368. &ANALYZE-RESUME
  1369. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN C-Win
  1370. PROCEDURE DRUCKEN :
  1371. /*------------------------------------------------------------------------------
  1372. Purpose:
  1373. Parameters: <none>
  1374. Notes:
  1375. ------------------------------------------------------------------------------*/
  1376. DEF VAR iSortZeile AS INT NO-UNDO.
  1377. DEF VAR iAbPos AS INT NO-UNDO.
  1378. DEF VAR iPlusMinus AS INT NO-UNDO.
  1379. DEF VAR hbAufko AS HANDLE NO-UNDO.
  1380. DEF VAR htTabTexte AS HANDLE NO-UNDO.
  1381. DEF VAR cDruckers AS CHAR NO-UNDO.
  1382. DEF VAR xDrucker AS CHAR NO-UNDO.
  1383. DO WITH FRAME {&FRAME-NAME}:
  1384. DEF VAR XFakArt AS INT NO-UNDO.
  1385. DEF VAR XAufSta AS INT NO-UNDO.
  1386. DEF VAR ARecid AS RECID NO-UNDO.
  1387. DEF VAR BRecid AS RECID NO-UNDO.
  1388. DEF VAR CRecid AS RECID NO-UNDO.
  1389. DEF VAR cLagOrt AS CHAR NO-UNDO.
  1390. DEF VAR xLagOrt AS CHAR NO-UNDO.
  1391. DEF VAR cGeschoss AS CHAR NO-UNDO.
  1392. DEF VAR kGeschoss AS CHAR INIT 'zz' NO-UNDO.
  1393. FIND Tabel NO-LOCK WHERE RECID(Tabel) = TRecid.
  1394. ARecid = Tabel.Int_1.
  1395. BRecid = Tabel.Int_2.
  1396. CRecid = Tabel.Int_3.
  1397. VBesr = Tabel.Dec_1.
  1398. VSchacht = Tabel.Dec_3.
  1399. VDokArt = Tabel.Bez2.
  1400. F_DokArt = Tabel.Bez2.
  1401. fBatch = DYNAMIC-FUNCTION('getBatch':U) NO-ERROR.
  1402. cLagOrt = ''.
  1403. IF Tabel.BezL <> '' THEN DO:
  1404. DO ix = 1 TO NUM-ENTRIES(Tabel.BezL, ';'):
  1405. CASE ix:
  1406. WHEN 1 THEN VSchachtOrig = INTEGER(ENTRY(ix, Tabel.BezL, ';')).
  1407. WHEN 2 THEN VSchachtKopi = INTEGER(ENTRY(ix, Tabel.BezL, ';')).
  1408. WHEN 3 THEN VSchachtBesr = INTEGER(ENTRY(ix, Tabel.BezL, ';')).
  1409. WHEN 4 THEN VBesr = INTEGER(ENTRY(ix, Tabel.BezL, ';')).
  1410. END CASE.
  1411. END.
  1412. END.
  1413. FIND BSteuer WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR.
  1414. FIND BListen WHERE RECID(BListen) = ARecid NO-LOCK NO-ERROR.
  1415. FIND BLiDruck WHERE RECID(BLiDruck) = BRecid NO-LOCK NO-ERROR.
  1416. FIND BAufko WHERE RECID(BAufko) = CRecid NO-LOCK NO-ERROR.
  1417. IF NOT AVAILABLE BAufko THEN RETURN ''.
  1418. hbAufko = BUFFER BAufko:HANDLE.
  1419. htTabTexte = TEMP-TABLE tTabTexte:DEFAULT-BUFFER-HANDLE.
  1420. RUN CREATE_TABTEXTE ( INPUT hbAufko, INPUT-OUTPUT htTabTexte ).
  1421. IF BAufko.AlsOfferte THEN DO:
  1422. ASSIGN F_DokArt = 'EXCEL_OFFERTE'
  1423. fBatch = FALSE.
  1424. END.
  1425. F_Aufnr = BAufko.Aufnr.
  1426. F_Faknr = BAufko.Faknr.
  1427. F_Datum = BAufko.Fak_Datum.
  1428. IF F_Datum = ? THEN F_Datum = TODAY.
  1429. IF BAufko.Auf_Sta = 0 THEN VDokArt = 'RUESTSCHEIN'.
  1430. IF BAufko.AlsOfferte THEN VDokArt = 'EXCEL_OFFERTE'.
  1431. FDatum = F_Datum.
  1432. VSort = BListen.Sort.
  1433. IF NOT bAufko.AlsOfferte THEN DO:
  1434. F_Drucker = BLiDruck.ListDru.
  1435. F_Schrift = BLiDruck.ListBild.
  1436. F_TZZ = BLiDruck.Listtzz.
  1437. F_KZZ = BLiDruck.Listkzz.
  1438. F_FZZ = BLiDruck.Listfzz.
  1439. F_KOPIE = BLiDruck.ListCopy.
  1440. DISPLAY {&List-1}.
  1441. END.
  1442. /* ------------------------------------------------------ */
  1443. /* Test auf Windows-Printers */
  1444. /* ------------------------------------------------------ */
  1445. EMPTY TEMP-TABLE tDrucker.
  1446. cDruckers = SESSION:GET-PRINTERS().
  1447. DO ix = 1 TO NUM-ENTRIES(cDruckers, ','):
  1448. CREATE tDrucker.
  1449. ASSIGN tDrucker.cDrucker = ENTRY(ix, cDruckers, ',').
  1450. END.
  1451. FIND FIRST tDrucker
  1452. WHERE tDrucker.cDrucker = F_Drucker NO-ERROR.
  1453. IF NOT AVAILABLE tDrucker AND
  1454. NOT bAufko.AlsOfferte THEN DO:
  1455. IF fBatch THEN DO:
  1456. REPEAT TRANSACTION:
  1457. FIND Tabel WHERE RECID(Tabel) = tRecid.
  1458. ASSIGN Tabel.Bez1 = ''.
  1459. RELEASE Tabel.
  1460. LEAVE.
  1461. END.
  1462. RETURN 'KeinDrucker'.
  1463. END.
  1464. ja = TRUE.
  1465. MESSAGE 'Der gewünschte Drucker "' F_Drucker '" ist nicht verfügbar ' SKIP
  1466. 'Bitte wählen Sie einen Drucker aus <Ja> oder brechen Sie den Druck ab <Nein>'
  1467. VIEW-AS ALERT-BOX INFORMATION BUTTONS YES-NO
  1468. UPDATE ja.
  1469. IF NOT Ja THEN RETURN 'KeinDrucker'.
  1470. SYSTEM-DIALOG PRINTER-SETUP
  1471. NUM-COPIES F_Kopie
  1472. PORTRAIT
  1473. UPDATE ja.
  1474. IF NOT Ja THEN RETURN 'KeinDrucker'.
  1475. xDrucker = SESSION:PRINTER-NAME.
  1476. FIND FIRST Schrift NO-LOCK
  1477. WHERE Schrift.Schname = xDrucker
  1478. AND Schrift.SchBild = 'VIPER' NO-ERROR.
  1479. IF NOT AVAILABLE Schrift THEN DO:
  1480. REPEAT TRANSACTION:
  1481. CREATE Schrift.
  1482. ASSIGN Schrift.Schname = xDrucker
  1483. Schrift.Schbild = 'VIPER'
  1484. Schrift.Schdru = 'VIPER'.
  1485. RELEASE Schrift.
  1486. LEAVE.
  1487. END.
  1488. END.
  1489. FIND FIRST Drucker NO-LOCK
  1490. WHERE Drucker.Drucker = 'VIPER' NO-ERROR.
  1491. IF NOT AVAILABLE Drucker THEN DO:
  1492. REPEAT TRANSACTION:
  1493. CREATE Drucker.
  1494. ASSIGN Drucker.Drucker = 'VIPER'
  1495. Drucker.Emul = 'POSTSCRIPT'.
  1496. RELEASE Drucker.
  1497. LEAVE.
  1498. END.
  1499. END.
  1500. FIND FIRST HilfsTab NO-LOCK USE-INDEX HilfsTab-k1
  1501. WHERE HilfsTab.Firma = GVFirma
  1502. AND HilfsTab.Sort_1 = cBenutzer
  1503. AND HilfsTab.Sort_2 = F_DokArt NO-ERROR.
  1504. IF NOT AVAILABLE HilfsTab THEN DO:
  1505. REPEAT TRANSACTION:
  1506. CREATE HilfsTab.
  1507. ASSIGN HilfsTab.Firma = GVFirma
  1508. HilfsTab.Sort_1 = cBenutzer
  1509. HilfsTab.Sort_2 = F_DokArt
  1510. HilfsTab.Zeichen_1 = xDrucker
  1511. HilfsTab.Zeichen_2 = 'VIPER'
  1512. HilfsTab.Zahl[01] = 0
  1513. HilfsTab.Zahl[02] = 0
  1514. HilfsTab.Zahl[03] = 0
  1515. HilfsTab.Zahl[04] = 1
  1516. HilfsTab.Zahl[05] = 0
  1517. HilfsTab.Zahl[06] = 0
  1518. HilfsTab.Zahl[07] = 0
  1519. HilfsTab.Zahl[08] = 0.
  1520. LEAVE.
  1521. END.
  1522. END.
  1523. ELSE DO:
  1524. IF HilfsTab.Zeichen_1 <> xDrucker THEN DO:
  1525. REPEAT TRANSACTION:
  1526. FIND CURRENT HilfsTab.
  1527. ASSIGN HilfsTab.Zeichen_1 = xDrucker.
  1528. RELEASE HilfsTab.
  1529. LEAVE.
  1530. END.
  1531. END.
  1532. END.
  1533. ASSIGN F_Drucker = xDrucker
  1534. F_Schrift = 'VIPER'
  1535. F_TZZ = 0
  1536. F_KZZ = 0
  1537. F_FZZ = 0
  1538. F_KOPIE = 1.
  1539. DISPLAY {&List-1}.
  1540. END.
  1541. ELSE IF NOT bAufko.AlsOfferte THEN SESSION:PRINTER-NAME = F_Drucker.
  1542. F_Drucker = SESSION:PRINTER-NAME.
  1543. DISPLAY F_Drucker.
  1544. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'FAKART' NO-ERROR.
  1545. /*
  1546. IF AVAILABLE tTabTexte THEN F_Dokart = tTabTexte.cFeld1.
  1547. */
  1548. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'AUFSTATUS' NO-ERROR.
  1549. IF AVAILABLE tTabTexte THEN F_Papier = tTabTexte.cFeld1.
  1550. FIND Adresse USE-INDEX Adresse-k1
  1551. WHERE Adresse.Firma = AdFirma
  1552. AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  1553. E_Adresse = ''.
  1554. IF BAufko.Adresse[05] <> '' THEN DO:
  1555. E_Adresse = CHR(10)
  1556. + CHR(10)
  1557. + BAufko.Adresse[01] + CHR(10)
  1558. + BAufko.Adresse[02] + CHR(10)
  1559. + BAufko.Adresse[03] + CHR(10)
  1560. + BAufko.Adresse[04] + CHR(10)
  1561. + BAufko.Adresse[05].
  1562. END.
  1563. ELSE DO:
  1564. E_Adresse = Adresse.Anschrift[03] + CHR(10) +
  1565. Adresse.Anschrift[04] + CHR(10) +
  1566. Adresse.Anschrift[05] + CHR(10) +
  1567. Adresse.Anschrift[06] + CHR(10) +
  1568. Adresse.Anschrift[07] + CHR(10) +
  1569. Adresse.Anschrift[08] + CHR(10) +
  1570. Adresse.Anschrift[09] + CHR(10) +
  1571. Adresse.Anschrift[10].
  1572. END.
  1573. DISPLAY {&List-1}.
  1574. F_DokArt:BGCOLOR = 14.
  1575. F_Papier:BGCOLOR = 14.
  1576. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'FAKART' NO-ERROR.
  1577. IF NOT fBatch AND
  1578. NOT BAufko.AlsOfferte THEN DO:
  1579. IF tTabTexte.iFeld3 <> 4 OR
  1580. VDokArt BEGINS 'Ruest' THEN DO:
  1581. APPLY 'ENTRY' TO Btn_Drucken.
  1582. WAIT-FOR CHOOSE OF Btn_Drucken OR
  1583. CHOOSE OF Btn_Abbrechen.
  1584. END.
  1585. END.
  1586. IF NOT DruckFlag THEN DO:
  1587. REPEAT TRANSACTION:
  1588. FIND BListen WHERE RECID(BListen) = ARecid.
  1589. BListen.Listfl = ''.
  1590. RELEASE BListen.
  1591. LEAVE.
  1592. END.
  1593. RETURN ''.
  1594. END.
  1595. ASSIGN {&List-1}.
  1596. RUN LIBILD.
  1597. EMPTY TEMP-TABLE SAMMFAK.
  1598. IF BAufko.Samm_Nr <> 0 AND
  1599. NOT VDokArt BEGINS 'Ruest' THEN DO:
  1600. RUN SAMMELSUCHEN.
  1601. END.
  1602. ELSE DO:
  1603. CREATE SAMMFAK.
  1604. ASSIGN SAMMFAK.Knr = BAufko.Fak_Knr
  1605. SAMMFAK.Aufnr = BAufko.Aufnr
  1606. SAMMFAK.Samm_Nr = BAufko.Aufnr
  1607. SAMMFAK.RID = RECID(BAufko).
  1608. END.
  1609. VTemp = ''.
  1610. VTempVESR = ''.
  1611. IF NOT bAufko.AlsOfferte THEN RUN WORKFILE.
  1612. IF DOpen = TRUE THEN OUTPUT STREAM Out_Stream TO VALUE(VTemp).
  1613. IF VDokArt BEGINS 'Samm' THEN iLauf = F_Kopie.
  1614. ELSE iLauf = 1.
  1615. DO iZaehler = 1 TO iLauf:
  1616. FOR EACH SAMMFAK BREAK BY SAMMFAK.Knr
  1617. BY SAMMFAK.Samm_Nr
  1618. BY SAMMFAK.Aufnr :
  1619. FIND BAufko WHERE RECID(BAufko) = SAMMFAK.RID NO-LOCK NO-ERROR.
  1620. F_Aufnr = BAufko.Aufnr.
  1621. DISPLAY F_Aufnr WITH FRAME {&FRAME-NAME}.
  1622. VWg_Grp = 0.
  1623. VProd_Grp = 0.
  1624. VArt_Grp = 0.
  1625. VFak_Betr = 0.
  1626. VPreis_Grp = BAufko.Preis_Grp.
  1627. FErste = FALSE.
  1628. EMPTY TEMP-TABLE tAufze.
  1629. EMPTY TEMP-TABLE tRueckst.
  1630. EMPTY TEMP-TABLE TGebKto.
  1631. EMPTY TEMP-TABLE TRabSumm.
  1632. EMPTY TEMP-TABLE TSpeRab.
  1633. EMPTY TEMP-TABLE TGebuehr.
  1634. EMPTY TEMP-TABLE tTexte .
  1635. IF FIRST-OF ( SAMMFAK.Samm_Nr ) THEN DO:
  1636. EMPTY TEMP-TABLE TUmsGrp.
  1637. EMPTY TEMP-TABLE TFiliale.
  1638. EMPTY TEMP-TABLE TMonat.
  1639. EMPTY TEMP-TABLE TMonGeb.
  1640. ASSIGN GTWpfl = 0
  1641. GTWust = 0
  1642. DTWpfl = 0
  1643. GTFak_Betr = 0
  1644. GTSk_Ber = 0
  1645. SFaknr = 0
  1646. FLetzt = FALSE
  1647. FErste = TRUE
  1648. TiDruck = TRUE
  1649. VSeite = 0
  1650. VDetail = 0
  1651. iSortZeile = 9999
  1652. cLagOrt = ''
  1653. cGeschoss = ''.
  1654. END.
  1655. RUN FUELLEN_tAufze ( BAufko.Aufnr ).
  1656. xLagOrt = ''.
  1657. FOR EACH tAufze USE-INDEX tSavze-k1
  1658. WHERE tAufze.Artnr > 0:
  1659. FIND Artst NO-LOCK
  1660. WHERE Artst.Firma = GVFirma
  1661. AND Artst.Artnr = tAufze.Artnr
  1662. AND Artst.Inhalt = tAufze.Inhalt
  1663. AND Artst.Jahr = tAufze.Jahr .
  1664. FIND bAufze NO-LOCK WHERE RECID(bAufze) = tAufze.Zeile.
  1665. ASSIGN VWg_Grp = Artst.Wg_Grp
  1666. VProd_Grp = Artst.Prod_Grp
  1667. VArt_Grp = Artst.Art_Grp
  1668. AArtnr = Artst.Artnr
  1669. AInhalt = Artst.Inhalt.
  1670. /* Spezial-Auftrags-Rabatt -------------------------------------------- */
  1671. IF bAufze.Auf_Sp_Grp > 0 THEN DO:
  1672. FIND FIRST TSpeRab WHERE TSpeRab.Rab_Grp = bAufze.Auf_Sp_Grp NO-ERROR.
  1673. IF NOT AVAILABLE TSpeRab THEN DO:
  1674. CREATE TSpeRab.
  1675. ASSIGN TSpeRab.Rab_Grp = bAufze.Auf_Sp_Grp.
  1676. END.
  1677. TSpeRab.Auf_Betr = TSpeRab.Auf_Betr + bAufze.Auf_Sp_Rab.
  1678. END.
  1679. /* Summengruppen-Totale ------------------------------------------------ */
  1680. DO WHILE bAufze.Rab_Su_Grp > 0:
  1681. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = bAufze.Rab_Su_Grp NO-ERROR.
  1682. IF NOT AVAILABLE TRabSumm THEN DO:
  1683. FIND FIRST RabSumm USE-INDEX RabSumm-k1
  1684. WHERE RabSumm.Firma = GVFirma
  1685. AND RabSumm.Rab_Summ = bAufze.Rab_Su_Grp
  1686. NO-LOCK NO-ERROR.
  1687. IF NOT AVAILABLE RabSumm THEN LEAVE.
  1688. CREATE TRabSumm.
  1689. ASSIGN TRabSumm.Rab_Summ = bAufze.Rab_Su_Grp
  1690. TRabSumm.Bez = RabSumm.Bez
  1691. TRabSumm.Auf_Rab = 0
  1692. TRabSumm.Abh_Rab = 0.
  1693. END.
  1694. LEAVE.
  1695. END.
  1696. END.
  1697. IF FIRST-OF( SAMMFAK.Samm_Nr ) THEN VSeite = 0.
  1698. IF LAST-OF ( SAMMFAK.Samm_Nr ) THEN FLetzt = TRUE.
  1699. RUN VALUE(VDokArt).
  1700. IF RETURN-VALUE = 'ERROR' THEN RETURN ''.
  1701. IF NOT FLetzt THEN NEXT.
  1702. END. /* FOR EACH SAMMFAK */
  1703. END. /* ENDE iZaehler/iLauf */
  1704. IF DOpen THEN OUTPUT STREAM Out_Stream CLOSE.
  1705. DOpen = FALSE.
  1706. IF VDokArt <> 'Lieferschein' AND
  1707. VDokArt <> 'Lieferpreis' AND
  1708. VDokArt <> 'Faktura' AND
  1709. VDokArt <> 'LieferFak' AND
  1710. VDokArt <> 'FestFaktura' AND
  1711. VDokArt <> 'SammFak' THEN RUN DRUCKAUSGABE.
  1712. IF VTemp <> '' THEN OS-DELETE VALUE(VTemp).
  1713. IF VTempVESR <> '' THEN DO:
  1714. RUN DRUCKAUSGABE_VESR.
  1715. OS-DELETE VALUE(VTempVESR) NO-ERROR.
  1716. END.
  1717. REPEAT TRANSACTION:
  1718. FIND BListen WHERE RECID(BListen) = ARecid.
  1719. BListen.Listfl = ''.
  1720. RELEASE BListen.
  1721. LEAVE.
  1722. END.
  1723. END. /* DO WITH FRAME */
  1724. RETURN ''.
  1725. END PROCEDURE.
  1726. /* _UIB-CODE-BLOCK-END */
  1727. &ANALYZE-RESUME
  1728. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI C-Win _DEFAULT-ENABLE
  1729. PROCEDURE enable_UI :
  1730. /*------------------------------------------------------------------------------
  1731. Purpose: ENABLE the User Interface
  1732. Parameters: <none>
  1733. Notes: Here we display/view/enable the widgets in the
  1734. user-interface. In addition, OPEN all queries
  1735. associated with each FRAME and BROWSE.
  1736. These statements here are based on the "Other
  1737. Settings" section of the widget Property Sheets.
  1738. ------------------------------------------------------------------------------*/
  1739. DISPLAY F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_Aufnr F_KOPIE
  1740. F_Faknr F_Datum F_Dokart F_Seite F_Papier
  1741. WITH FRAME DEFAULT-FRAME IN WINDOW C-Win.
  1742. ENABLE RECT-1 F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_Aufnr F_KOPIE
  1743. F_Faknr F_Datum F_Dokart F_Seite F_Papier Btn_Drucken Btn_Abbrechen
  1744. WITH FRAME DEFAULT-FRAME IN WINDOW C-Win.
  1745. {&OPEN-BROWSERS-IN-QUERY-DEFAULT-FRAME}
  1746. VIEW C-Win.
  1747. END PROCEDURE.
  1748. /* _UIB-CODE-BLOCK-END */
  1749. &ANALYZE-RESUME
  1750. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA C-Win
  1751. PROCEDURE FAKTURA :
  1752. /*------------------------------------------------------------------------------
  1753. Purpose:
  1754. Parameters: <none>
  1755. Notes:
  1756. ------------------------------------------------------------------------------*/
  1757. DEF VAR cPDFName AS CHAR INIT '' NO-UNDO.
  1758. DEF VAR xString AS CHAR NO-UNDO.
  1759. DEF VAR lFirst AS LOG NO-UNDO.
  1760. DEF VAR cString AS CHAR NO-UNDO.
  1761. VSeite = 0.
  1762. VFak_Betr = 0.
  1763. FPreis = TRUE.
  1764. RUN VIPER_INIT ( 'Faktura' ).
  1765. IF RETURN-VALUE = 'ERROR' THEN RETURN 'ERROR'.
  1766. RUN vpr_SetPrinterAttrib('copies=2').
  1767. RUN FAKTURA_KOPF.
  1768. iArtZeile = 0.
  1769. iVPagePos = vpr_getPageVPos() + 20.
  1770. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
  1771. FOR EACH tAufze NO-LOCK
  1772. BY tAufze.Aufnr
  1773. BY tAufze.Sort1
  1774. BY tAufze.LagOrt
  1775. BY tAufze.Sort2
  1776. BY tAufze.Pos :
  1777. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  1778. RUN VIPER_ARTIKELZEILE ( RECID(tAufze) ).
  1779. VFak_Betr = VFak_Betr + Aufze.Net_Betr.
  1780. END.
  1781. iArtZeile = iArtZeile + 1.
  1782. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
  1783. iArtZeile = iArtZeile + 1.
  1784. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(SUBSTRING(FormText[15],21,20)) ).
  1785. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
  1786. iArtZeile = iArtZeile + 1.
  1787. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', ' ' ).
  1788. RUN VIPER_AUSGABE_ARTIKELZEILE.
  1789. /* Auftragsrabatt ---------------------------------------------------- */
  1790. iArtZeile = 0.
  1791. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
  1792. BY TRabSumm.Rab_Summ:
  1793. Rundbetr = TRabSumm.Auf_Rab.
  1794. VFak_Betr = VFak_Betr - Rundbetr.
  1795. iArtZeile = iArtZeile + 1.
  1796. xString = TRIM(SUBSTRING(FormText[11],01,20))
  1797. + " "
  1798. + TRabSumm.Bez.
  1799. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  1800. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
  1801. END.
  1802. /* Abholrabatt ------------------------------------------------------- */
  1803. FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
  1804. BY TRabSumm.Rab_Summ:
  1805. Rundbetr = TRabSumm.Abh_Rab.
  1806. VFak_Betr = VFak_Betr - Rundbetr.
  1807. iArtZeile = iArtZeile + 1.
  1808. xString = TRIM(SUBSTRING(FormText[15],01,20))
  1809. + " "
  1810. + TRabSumm.Bez.
  1811. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  1812. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
  1813. END.
  1814. IF iArtZeile > 0 THEN DO:
  1815. iArtZeile = iArtZeile + 1.
  1816. xString = TRIM(SUBSTRING(FormText[14],21,20)).
  1817. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  1818. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
  1819. iArtZeile = iArtZeile + 1.
  1820. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
  1821. END.
  1822. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
  1823. /* Recycling-Gebuehren ----------------------------------------------- */
  1824. iArtZeile = 0.
  1825. FOR EACH AufGKon USE-INDEX SavGKon-k1
  1826. WHERE AufGKon.Firma = BAufko.Firma
  1827. AND AufGKon.Aufnr = BAufko.Aufnr
  1828. AND AufGKon.Gebuehr <> 0
  1829. AND AufGKon.Betrag <> 0 NO-LOCK:
  1830. FIND GebKonto OF AufGKon NO-LOCK NO-ERROR.
  1831. IF NOT AVAILABLE GebKonto THEN xString = TRIM(SUBSTRING(FormText[11],41,20)).
  1832. ELSE xString = GebKonto.Bez.
  1833. VWC = AufGKon.MWST_Cd.
  1834. VFak_Betr = VFak_Betr + AufGKon.Betrag.
  1835. iArtZeile = iArtZeile + 1.
  1836. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  1837. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(AufGKon.Betrag,'->>>,>>9.99')) ).
  1838. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC', STRING(AufGKon.MWSt_Cd,'z9') ).
  1839. END.
  1840. IF iArtZeile > 0 THEN DO:
  1841. iArtZeile = iArtZeile + 1.
  1842. xString = TRIM(SUBSTRING(FormText[14],41,20)).
  1843. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  1844. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
  1845. iArtZeile = iArtZeile + 1.
  1846. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
  1847. END.
  1848. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
  1849. /* Gebinde Aus- und Eingänge ---------------------------------------- */
  1850. FOR EACH AufGKon USE-INDEX SavGKon-k1
  1851. WHERE AufGKon.Firma = BAufko.Firma
  1852. AND AufGKon.Aufnr = BAufko.Aufnr
  1853. AND AufGKon.Depot <> 0
  1854. AND (AufGKon.Eingang <> 0 OR
  1855. AufGKon.Ausgang <> 0) NO-LOCK:
  1856. FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR.
  1857. IF NOT AVAILABLE TGebKto THEN DO:
  1858. FIND GebKonto USE-INDEX GebKonto-k1
  1859. WHERE GebKonto.Firma = AufGKon.Firma
  1860. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK.
  1861. CREATE TGebKto.
  1862. ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd
  1863. TGebKto.Geb_Cd = GebKonto.Geb_Cd
  1864. TGebKto.Bez = GebKonto.Bez
  1865. TGebKto.Preis = AufGKon.Depot
  1866. TGebKto.MWST_Cd = AufGKon.MWSt_Cd.
  1867. END.
  1868. TGebKto.A_Anz = TGebKto.A_Anz + AufGKon.Ausgang.
  1869. TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis.
  1870. TGebKto.E_Anz = TGebKto.E_Anz + AufGKon.Eingang.
  1871. TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis.
  1872. END.
  1873. /* Gebindelieferungen ------------------------------------------------ */
  1874. VZTot = 0.
  1875. iArtZeile = 0.
  1876. FOR EACH AufGKon USE-INDEX SavGKon-k1
  1877. WHERE AufGKon.Firma = BAufko.Firma
  1878. AND AufGKon.Aufnr = BAufko.Aufnr
  1879. AND AufGKon.Depot <> 0
  1880. AND (AufGKon.Eingang <> 0 OR
  1881. AufGKon.Ausgang <> 0) NO-LOCK
  1882. BREAK BY AufgKon.Firma
  1883. BY AufGKon.Aufnr:
  1884. FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1
  1885. WHERE GebKonto.Firma = GVFirma
  1886. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd.
  1887. i1 = AufGKon.Ausgang - AufGKon.Eingang.
  1888. Rundbetr = AufGKon.Betrag.
  1889. VWC = AufGKon.MWSt_Cd.
  1890. VZTot = VZTot + Rundbetr.
  1891. iArtZeile = iArtZeile + 1.
  1892. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'Gebindetext' , GebKonto.Bez ).
  1893. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeGel' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ).
  1894. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeRet' , TRIM(STRING(AufGKon.Eingang,"->>,>>9")) ).
  1895. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeSaldo', TRIM(STRING(i1 ,"->>,>>9")) ).
  1896. IF FPreis THEN
  1897. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeBetr' , TRIM(STRING(Rundbetr ,"->>,>>9.99")) ).
  1898. END.
  1899. IF iArtZeile > 0 AND
  1900. FPreis THEN RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeTot' , TRIM(STRING(VZTot ,"->>>,>>9.99")) ).
  1901. VFak_Betr = VFak_Betr + VZTot.
  1902. IF iArtZeile > 0 THEN RUN VIPER_AUSGABE_GRUPPE ('Gebindeabrechnung').
  1903. /* Auftragstext ------------------------------------------------------ */
  1904. XAuf_Text = BAufko.Auf_Text.
  1905. IF XAuf_Text <> '' THEN DO:
  1906. iVPagePos = vpr_getPageVPos() + 20.
  1907. RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ).
  1908. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
  1909. RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ).
  1910. RUN vpr_flushGroup ('Zusatztext').
  1911. END.
  1912. END.
  1913. /* Mehrwertsteuer ---------------------------------------------------- */
  1914. VWpfl = 0.
  1915. VWust = 0.
  1916. i1 = 2.
  1917. DO ix = 1 TO 11:
  1918. IF BAufko.WPfl[ix] = 0 THEN NEXT.
  1919. VWpfl[ix] = BAufko.Wpfl[ix].
  1920. VWust[ix] = BAufko.Wust[ix].
  1921. VFak_Betr = VFak_Betr + VWust[ix].
  1922. i1 = i1 + 1.
  1923. END.
  1924. iVPagePos = vpr_getPageVPos().
  1925. IF (iVPagePos + (i1 * 40)) > iVMaxPos THEN DO:
  1926. RUN VIPER_NEUE_SEITE.
  1927. RUN VIPER_ADRESSE ('').
  1928. END.
  1929. iArtZeile = 1.
  1930. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , ' ' ).
  1931. DO ix = 1 TO 11:
  1932. IF VWpfl[ix] = 0 THEN NEXT.
  1933. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  1934. WHERE MWSTAns.MWST_Cd = ix
  1935. AND MWSTAns.Datum <= BAufko.Kond_Datum NO-LOCK.
  1936. iArtZeile = iArtZeile + 1.
  1937. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , MWStAns.Bez ).
  1938. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstPfl' , TRIM(STRING(VWpfl[ix],"->>,>>9.99")) ).
  1939. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBetr', TRIM(STRING(VWust[ix],"->>>,>>9.99")) ).
  1940. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstCd' , TRIM(STRING(ix ,"->>,>>9")) ).
  1941. END.
  1942. RUN VIPER_AUSGABE_GRUPPE ( 'Mehrwertsteuer' ).
  1943. /* Rechnungsbetrag --------------------------------------------------- */
  1944. Rundbetr = VFak_Betr.
  1945. Rundcode = 1.
  1946. RUN "v8/runden.p".
  1947. VFak_Betr = Rundbetr.
  1948. iArtZeile = 1.
  1949. RUN VIPER_CREATE_DOKUMENT ( 'RechnungsTotal', iArtZeile, 'EndBetrag', TRIM(STRING(VFak_Betr,"->>>,>>9.99")) ).
  1950. RUN VIPER_AUSGABE_GRUPPE ( 'RechnungsTotal' ).
  1951. /* Zahlungskondition ------------------------------------------------- */
  1952. FIND Kondi USE-INDEX Kondi-k1
  1953. WHERE Kondi.Kond = BAufko.Kond
  1954. AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  1955. IF AVAILABLE Kondi THEN DO:
  1956. iArtZeile = 1.
  1957. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Zahkond', Kondi.KoText ).
  1958. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Faellig', STRING((FDatum + Kondi.Faellig),"99.99.9999") ).
  1959. IF Kondi.Skonto[01] <> 0 THEN DO:
  1960. Rundbetr = BAufko.Sk_Ber * Kondi.Skonto[01] / 100.
  1961. Rundcode = 1.
  1962. RUN "v8/runden.p".
  1963. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Skonto', TRIM(STRING(Rundbetr,"->>>,>>9.99")) ).
  1964. END.
  1965. END.
  1966. ELSE DO:
  1967. iArtZeile = 1.
  1968. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Zahkond', FILL('?', 29) ).
  1969. END.
  1970. VFak_Betr = VFak_Betr - BAufko.Bar_Betr - BAufko.Bar_Skonto.
  1971. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Netto', TRIM(STRING(VFak_Betr,"->>>,>>9.99")) ).
  1972. RUN VIPER_AUSGABE_GRUPPE ( 'Kondition' ).
  1973. VesrKnr = BAufko.Fak_Knr.
  1974. VesrFnr = BAufko.Faknr.
  1975. IF VFak_Betr = 0 THEN Rundbetr = -1.
  1976. ELSE Rundbetr = VFak_Betr.
  1977. IF AVAILABLE Kondi AND
  1978. Kondi.Skonto[01] <> 0 THEN Rundbetr = 0.
  1979. /* ------------------------------------------------------ */
  1980. /* Druckausgabe */
  1981. /* ------------------------------------------------------ */
  1982. RUN vpr_EndDoc.
  1983. IF SESSION:PRINTER-NAME <> F_Drucker THEN DO:
  1984. RUN vpr_printerDialog ( OUTPUT ja ).
  1985. IF NOT ja THEN RETURN.
  1986. END.
  1987. ELSE DO:
  1988. RUN vpr_selectPrinter(SESSION:PRINTER-NAME).
  1989. END.
  1990. RUN vpr_SetPrinterAttrib ('duplex=1').
  1991. RUN vpr_printDoc (0, 0).
  1992. cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_Kopie_&3',
  1993. STRING(BAufko.Knr ,'999999'),
  1994. STRING(BAufko.Faknr,'9999999'),
  1995. cvpr_Dokument).
  1996. cPDFName = REPLACE(cvpr_Dokument, '.vpr', '.pdf').
  1997. RUN vpr_printPDF (0, 0, INPUT-OUTPUT cPDFName ).
  1998. RUN vpr_SaveDoc ( cvpr_Dokument ).
  1999. VesrKnr = BAufko.Fak_Knr.
  2000. VesrFnr = BAufko.Faknr.
  2001. VBesr = 4.
  2002. IF VDokArt = 'FESTFAKTURA' THEN VBesr = 0.
  2003. IF BAufko.Auf_Tot > 0 THEN DO:
  2004. CASE VBesr:
  2005. WHEN 1 THEN RUN VESR_DRUCK01.
  2006. WHEN 2 THEN RUN VESR_DRUCK02.
  2007. WHEN 3 THEN RUN VESR_DRUCK03.
  2008. WHEN 4 THEN RUN VESR_DRUCK04.
  2009. END CASE.
  2010. END.
  2011. END PROCEDURE.
  2012. /* _UIB-CODE-BLOCK-END */
  2013. &ANALYZE-RESUME
  2014. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA_KOPF C-Win
  2015. PROCEDURE FAKTURA_KOPF :
  2016. /*------------------------------------------------------------------------------
  2017. Purpose:
  2018. Parameters: <none>
  2019. Notes:
  2020. ------------------------------------------------------------------------------*/
  2021. DEF VAR kk AS INT NO-UNDO.
  2022. DEF VAR xString AS CHAR NO-UNDO.
  2023. RUN VIPER_NEUE_SEITE.
  2024. IF VSeite = 1 THEN DO:
  2025. SFaknr = BAufko.Faknr.
  2026. FIND Adresse USE-INDEX Adresse-k1
  2027. WHERE Adresse.Firma = AdFirma
  2028. AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  2029. FIND LDebst USE-INDEX Debst-k1
  2030. WHERE LDebst.Firma = GVFirma
  2031. AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  2032. FIND FDebst USE-INDEX Debst-k1
  2033. WHERE FDebst.Firma = GVFirma
  2034. AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  2035. FIND Wust USE-INDEX Wust-k1
  2036. WHERE Wust.CodeK = LDebst.MWST
  2037. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  2038. LVSprcd = Adresse.Sprcd.
  2039. DebInkl = FALSE.
  2040. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  2041. VBesrKopf = ''.
  2042. IF BAufko.Adresse[05] <> '' THEN DO:
  2043. i1 = 6.
  2044. DO ix = 1 TO 5:
  2045. CREATE tDokument.
  2046. ASSIGN tDokument.cGruppe = 'KOPF'
  2047. tDokument.iZeile = 1
  2048. tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99')
  2049. tDokument.cInhalt = BAufko.Adresse[ix].
  2050. i1 = i1 + 1.
  2051. VBesrKopf[i1] = BAufko.Adresse[ix].
  2052. END.
  2053. END.
  2054. ELSE DO:
  2055. DO ix = 5 TO 11:
  2056. CREATE tDokument.
  2057. ASSIGN tDokument.cGruppe = 'KOPF'
  2058. tDokument.iZeile = 1
  2059. tDokument.cFeld = 'Adresse_' + STRING(ix,'99')
  2060. tDokument.cInhalt = Adresse.Anschrift[ix].
  2061. VBesrKopf[ix] = Adresse.Anschrift[ix].
  2062. END.
  2063. END.
  2064. CREATE tDokument.
  2065. ASSIGN tDokument.cGruppe = 'KOPF'
  2066. tDokument.iZeile = 1
  2067. tDokument.cFeld = 'Ort_Datum'
  2068. tDokument.cInhalt = TRIM(SUBSTRING(FormText[07],01,20))
  2069. + " "
  2070. + STRING(FDatum,"99.99.9999").
  2071. CREATE tDokument.
  2072. ASSIGN tDokument.cGruppe = 'KOPF'
  2073. tDokument.iZeile = 1
  2074. tDokument.cFeld = 'T_Dokument'
  2075. tDokument.cInhalt = (IF BAufko.Auf_Tot >= 0
  2076. THEN TRIM(SUBSTRING(FormText[02],01,20))
  2077. ELSE TRIM(SUBSTRING(FormText[02],21,20))).
  2078. CREATE tDokument.
  2079. ASSIGN tDokument.cGruppe = 'KOPF'
  2080. tDokument.iZeile = 1
  2081. tDokument.cFeld = 'Aufnr'
  2082. tDokument.cInhalt = STRING(SFaknr,'z999999').
  2083. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR.
  2084. CREATE tDokument.
  2085. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  2086. tDokument.iZeile = 1
  2087. tDokument.cFeld = 'Ablade'
  2088. tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld3 ELSE ' ').
  2089. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'WISO' NO-ERROR.
  2090. CREATE tDokument.
  2091. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  2092. tDokument.iZeile = 1
  2093. tDokument.cFeld = 'WirteSo'
  2094. tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld3 ELSE ' ').
  2095. CREATE tDokument.
  2096. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  2097. tDokument.iZeile = 1
  2098. tDokument.cFeld = 'Auf_Datum'
  2099. tDokument.cInhalt = STRING(BAufko.Auf_Datum,'99.99.9999').
  2100. CREATE tDokument.
  2101. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  2102. tDokument.iZeile = 1
  2103. tDokument.cFeld = 'Lief_Datum'
  2104. tDokument.cInhalt = STRING(BAufko.Lief_Datum,'99.99.9999').
  2105. CREATE tDokument.
  2106. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  2107. tDokument.iZeile = 1
  2108. tDokument.cFeld = 'U_Ref'
  2109. tDokument.cInhalt = BAufko.U_Ref.
  2110. CREATE tDokument.
  2111. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  2112. tDokument.iZeile = 1
  2113. tDokument.cFeld = 'Knr'
  2114. tDokument.cInhalt = STRING(BAufko.Knr,'999999').
  2115. CREATE tDokument.
  2116. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  2117. tDokument.iZeile = 1
  2118. tDokument.cFeld = 'Telefon'
  2119. tDokument.cInhalt = (IF Adresse.Tel-1 <> '' THEN Adresse.Tel-1 ELSE Adresse.Tel-2).
  2120. CREATE tDokument.
  2121. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  2122. tDokument.iZeile = 1
  2123. tDokument.cFeld = 'Gewicht'
  2124. tDokument.cInhalt = TRIM(STRING(BAufko.Gewicht,'->>>,>>9.999')).
  2125. END.
  2126. RUN VIPER_ADRESSE ( xString ).
  2127. IF VSeite = 1 AND
  2128. BAufko.Abh_Text <> '' THEN DO:
  2129. XAuf_Text = BAufko.Abh_Text.
  2130. iVPagePos = vpr_getPageVPos() + 20.
  2131. RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ).
  2132. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
  2133. RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ).
  2134. RUN vpr_flushGroup ('Zusatztext').
  2135. END.
  2136. END.
  2137. END PROCEDURE.
  2138. /* _UIB-CODE-BLOCK-END */
  2139. &ANALYZE-RESUME
  2140. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FESTFAKTURA C-Win
  2141. PROCEDURE FESTFAKTURA :
  2142. /*------------------------------------------------------------------------------
  2143. Purpose:
  2144. Parameters: <none>
  2145. Notes:
  2146. ------------------------------------------------------------------------------*/
  2147. FPreis = TRUE.
  2148. RUN FAKTURA.
  2149. END PROCEDURE.
  2150. /* _UIB-CODE-BLOCK-END */
  2151. &ANALYZE-RESUME
  2152. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_tAufze C-Win
  2153. PROCEDURE FUELLEN_tAufze :
  2154. /*------------------------------------------------------------------------------
  2155. Purpose:
  2156. Parameters: <none>
  2157. Notes:
  2158. ------------------------------------------------------------------------------*/
  2159. DEF INPUT PARAMETER ipAufnr AS INT NO-UNDO.
  2160. DEF VAR minPos AS INT NO-UNDO.
  2161. DEF VAR maxPos AS INT NO-UNDO.
  2162. DEF VAR jPlatz AS INT NO-UNDO.
  2163. DEF VAR cLagOrt AS CHAR NO-UNDO.
  2164. DEF VAR iRuestArt AS INT NO-UNDO.
  2165. DEF VAR iPlusMinus AS INT NO-UNDO.
  2166. DEF VAR lArtikel AS LOG NO-UNDO.
  2167. EMPTY TEMP-TABLE tAufze.
  2168. EMPTY TEMP-TABLE tRueckst.
  2169. FIND Steuer NO-LOCK
  2170. WHERE Steuer.Firma = GVFirma NO-ERROR.
  2171. IF AVAILABLE Steuer THEN iRuestArt = Steuer.RuestArt.
  2172. ASSIGN minPos = 0
  2173. maxPos = 9999.
  2174. /* Kommentar zu Beginn eines Auftrages */
  2175. lArtikel = FALSE.
  2176. FOR EACH Aufze NO-LOCK
  2177. WHERE Aufze.Firma = GVFirma
  2178. AND Aufze.Aufnr = ipAufnr
  2179. AND Aufze.Pos > minPos:
  2180. IF Aufze.Artnr > 0 THEN DO:
  2181. lArtikel = TRUE.
  2182. LEAVE.
  2183. END.
  2184. iPlusMinus = (IF Aufze.MGeli < 0 THEN 1 ELSE 0).
  2185. minPos = Aufze.Pos.
  2186. CREATE tAufze.
  2187. ASSIGN tAufze.Aufnr = Aufze.Aufnr
  2188. tAufze.Artnr = Aufze.Artnr
  2189. tAufze.Inhalt = Aufze.Inhalt
  2190. tAufze.Jahr = Aufze.Jahr
  2191. tAufze.Pos = Aufze.Pos
  2192. tAufze.Zeile = RECID(Aufze)
  2193. tAufze.Aktion = Aufze.Aktion
  2194. tAufze.Preis = Aufze.Preis
  2195. tAufze.MGeli = Aufze.MGeli
  2196. tAufze.MRuek = Aufze.MRuek.
  2197. ASSIGN tAufze.Sort1 = STRING(0,'99')
  2198. tAufze.Sort2 = ''
  2199. tAufze.Sort3 = STRING(tAufze.Artnr ,'999999')
  2200. + STRING(tAufze.Inhalt,'9999')
  2201. + STRING(tAufze.Jahr ,'9999')
  2202. + STRING(iPlusMinus ,'9')
  2203. + STRING(tAufze.Pos ,'9999').
  2204. tAufze.LagOrt = ''.
  2205. END.
  2206. /* Kommentar am Ende eines Auftrages */
  2207. IF lArtikel THEN DO:
  2208. FOR EACH Aufze NO-LOCK
  2209. WHERE Aufze.Firma = GVFirma
  2210. AND Aufze.Aufnr = ipAufnr
  2211. BY Aufze.Pos DESCENDING:
  2212. IF Aufze.Artnr > 0 THEN LEAVE.
  2213. iPlusMinus = (IF Aufze.MGeli < 0 THEN 1 ELSE 0).
  2214. maxPos = Aufze.Pos.
  2215. CREATE tAufze.
  2216. ASSIGN tAufze.Aufnr = Aufze.Aufnr
  2217. tAufze.Artnr = Aufze.Artnr
  2218. tAufze.Inhalt = Aufze.Inhalt
  2219. tAufze.Jahr = Aufze.Jahr
  2220. tAufze.Pos = Aufze.Pos
  2221. tAufze.Zeile = RECID(Aufze)
  2222. tAufze.Aktion = Aufze.Aktion
  2223. tAufze.Preis = Aufze.Preis
  2224. tAufze.MGeli = Aufze.MGeli
  2225. tAufze.MRuek = Aufze.MRuek.
  2226. ASSIGN tAufze.Sort1 = STRING(0,'99')
  2227. tAufze.Sort2 = ''
  2228. tAufze.Sort3 = STRING(tAufze.Artnr ,'999999')
  2229. + STRING(tAufze.Inhalt,'9999')
  2230. + STRING(tAufze.Jahr ,'9999')
  2231. + STRING(iPlusMinus ,'9')
  2232. + STRING(tAufze.Pos ,'9999').
  2233. tAufze.LagOrt = ''.
  2234. END.
  2235. END.
  2236. /* Artikelzeilen nach Ruestplatz und Ort */
  2237. cLagOrt = ''.
  2238. FOR EACH Aufze NO-LOCK
  2239. WHERE Aufze.Firma = GVFirma
  2240. AND Aufze.Aufnr = ipAufnr
  2241. AND Aufze.Pos > minPos
  2242. AND Aufze.Pos < MaxPos
  2243. BY Aufze.Pos DESCENDING:
  2244. IF Aufze.Artnr > 0 THEN DO:
  2245. FIND ArtLager NO-LOCK
  2246. WHERE ArtLager.Firma = Aufze.Firma
  2247. AND ArtLager.Artnr = Aufze.Artnr
  2248. AND ArtLager.Inhalt = Aufze.Inhalt
  2249. AND ArtLager.Jahr = Aufze.Jahr
  2250. AND ArtLager.Lager = Aufze.Lager.
  2251. cLagOrt = ArtLager.Ort.
  2252. END.
  2253. iPlusMinus = (IF Aufze.MGeli < 0 THEN 1 ELSE 0).
  2254. FIND LAST RuestPlatz USE-INDEX RuestPlatz-k2
  2255. WHERE RuestPlatz.Firma = Aufze.Firma
  2256. AND RuestPlatz.RuestArt = iRuestArt
  2257. AND RuestPlatz.abLagOrt <= cLagOrt NO-ERROR.
  2258. IF NOT AVAILABLE RuestPlatz THEN jPlatz = 90.
  2259. ELSE jPlatz = RuestPlatz.Platz.
  2260. CREATE tAufze.
  2261. ASSIGN tAufze.Aufnr = Aufze.Aufnr
  2262. tAufze.Artnr = Aufze.Artnr
  2263. tAufze.Inhalt = Aufze.Inhalt
  2264. tAufze.Jahr = Aufze.Jahr
  2265. tAufze.Pos = Aufze.Pos
  2266. tAufze.Zeile = RECID(Aufze)
  2267. tAufze.Aktion = Aufze.Aktion
  2268. tAufze.Preis = Aufze.Preis
  2269. tAufze.MGeli = Aufze.MGeli
  2270. tAufze.MRuek = Aufze.MRuek.
  2271. ASSIGN tAufze.Sort1 = STRING(jPlatz,'99')
  2272. tAufze.Sort2 = cLagOrt
  2273. tAufze.Sort3 = STRING(tAufze.Artnr ,'999999')
  2274. + STRING(tAufze.Inhalt,'9999')
  2275. + STRING(tAufze.Jahr ,'9999')
  2276. + STRING(iPlusMinus ,'9')
  2277. + STRING(tAufze.Pos ,'9999').
  2278. tAufze.LagOrt = cLagort.
  2279. IF tAufze.MRuek > 0 THEN DO:
  2280. CREATE tRueckst.
  2281. BUFFER-COPY tAufze TO tRueckst.
  2282. END.
  2283. IF tAufze.Artnr > 0 AND
  2284. tAufze.MGeli = 0 THEN DELETE tAufze.
  2285. END.
  2286. END PROCEDURE.
  2287. /* _UIB-CODE-BLOCK-END */
  2288. &ANALYZE-RESUME
  2289. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_SALDO C-Win
  2290. PROCEDURE GEBINDE_SALDO :
  2291. /*------------------------------------------------------------------------------
  2292. Purpose:
  2293. Parameters: <none>
  2294. Notes:
  2295. ------------------------------------------------------------------------------*/
  2296. FOR EACH AufGKon USE-INDEX SavGKon-k1
  2297. WHERE AufGKon.Firma = BAufko.Firma
  2298. AND AufGKon.Aufnr = BAufko.Aufnr
  2299. AND AufGKon.Depot <> 0
  2300. AND AufGKon.Betrag <> 0 NO-LOCK:
  2301. FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR.
  2302. IF NOT AVAILABLE TGebKto THEN DO:
  2303. FIND GebKonto USE-INDEX GebKonto-k1
  2304. WHERE GebKonto.Firma = AufGKon.Firma
  2305. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK.
  2306. CREATE TGebKto.
  2307. ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd
  2308. TGebKto.Geb_Cd = GebKonto.Geb_Cd
  2309. TGebKto.Bez = GebKonto.Bez
  2310. TGebKto.Preis = AufGKon.Depot
  2311. TGebKto.MWST_Cd = AufGKon.MWSt_Cd.
  2312. END.
  2313. TGebKto.A_Anz = TGebKto.A_Anz + AufGKon.Ausgang.
  2314. TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis.
  2315. TGebKto.E_Anz = TGebKto.E_Anz + AufGKon.Eingang.
  2316. TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis.
  2317. END.
  2318. END PROCEDURE.
  2319. /* _UIB-CODE-BLOCK-END */
  2320. &ANALYZE-RESUME
  2321. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIBILD C-Win
  2322. PROCEDURE LIBILD :
  2323. /*------------------------------------------------------------------------------
  2324. Purpose:
  2325. Parameters: <none>
  2326. Notes:
  2327. ------------------------------------------------------------------------------*/
  2328. DEF VAR VProgName AS CHAR NO-UNDO.
  2329. DEF VAR cDocArt AS CHAR NO-UNDO.
  2330. CASE VDokArt:
  2331. WHEN 'FESTFAKTURA' THEN cDocArt = 'FAKTURA'.
  2332. OTHERWISE cDocArt = VDokArt.
  2333. END CASE.
  2334. VProgName = BSteuer.Fwc10 + ":" + cDocArt.
  2335. FormText = "".
  2336. FOR EACH LiBild NO-LOCK USE-INDEX LiBild-k1
  2337. WHERE LiBild.Sprcd = GVSprcd
  2338. AND LiBild.Prog = VProgname
  2339. AND LiBild.Tenr > 0
  2340. ix = 1 TO 40:
  2341. FormText[ix] = LiBild.Litext.
  2342. END.
  2343. Fuell = SUBSTRING(FormText[01],01,01).
  2344. Breite = INTEGER(SUBSTRING(FormText[01],02,03)).
  2345. VRand = INTEGER(SUBSTRING(FormText[01],68,03)).
  2346. Dattxt = SUBSTRING(FormText[01],05,10).
  2347. Seitxt = SUBSTRING(FormText[01],15,10).
  2348. Zeitxt = SUBSTRING(FormText[01],25,10).
  2349. Firtxt = SUBSTRING(FormText[01],35,10).
  2350. Jahtxt = SUBSTRING(FormText[01],45,10).
  2351. Ueber1 = "".
  2352. Ueber2 = "".
  2353. Ueber3 = "".
  2354. ap = 1.
  2355. XDruDat = ?.
  2356. VRabText = TRIM(SUBSTRING(FormText[21],01,20)).
  2357. VZusText = TRIM(SUBSTRING(FormText[21],21,20)).
  2358. VEpzText = TRIM(SUBSTRING(FormText[21],41,20)).
  2359. SUBSTRING(VZeile,001) = FormText[05].
  2360. SUBSTRING(VZeile,071) = FormText[06].
  2361. StBreite = LENGTH(VZeile).
  2362. /*
  2363. RZeile = FILL('|', Breite).
  2364. SUBSTRING(RZeile,001) = STRING(' ',"x(06)").
  2365. SUBSTRING(RZeile,008) = STRING(' ',"x(03)").
  2366. SUBSTRING(RZeile,012) = STRING(' ',"x(08)").
  2367. SUBSTRING(RZeile,021) = STRING(' ',"x(05)").
  2368. SUBSTRING(RZeile,027) = STRING(' ',"x(08)").
  2369. SUBSTRING(RZeile,036) = STRING(' ',"x(35)").
  2370. SUBSTRING(RZeile,072) = STRING(' ',"x(02)").
  2371. SUBSTRING(RZeile,075) = STRING(' ',"x(07)").
  2372. SUBSTRING(RZeile,083) = STRING(' ',"x(10)").
  2373. SUBSTRING(RZeile,094) = STRING(' ',"x(02)").
  2374. RZeile = SUBSTRING(RZeile,01,StBreite).
  2375. */
  2376. VZeile = ''.
  2377. END PROCEDURE.
  2378. /* _UIB-CODE-BLOCK-END */
  2379. &ANALYZE-RESUME
  2380. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK C-Win
  2381. PROCEDURE LIEFERFAK :
  2382. /*------------------------------------------------------------------------------
  2383. Purpose:
  2384. Parameters: <none>
  2385. Notes:
  2386. ------------------------------------------------------------------------------*/
  2387. DEF VAR cPDFName AS CHAR INIT '' NO-UNDO.
  2388. DEF VAR xString AS CHAR NO-UNDO.
  2389. DEF VAR lFirst AS LOG NO-UNDO.
  2390. DEF VAR cString AS CHAR NO-UNDO.
  2391. VSeite = 0.
  2392. VFak_Betr = 0.
  2393. FPreis = TRUE.
  2394. RUN VIPER_INIT ( 'LieferFak' ).
  2395. IF RETURN-VALUE = 'ERROR' THEN RETURN 'ERROR'.
  2396. RUN vpr_SetPrinterAttrib('copies=2').
  2397. RUN LIEFERFAK_KOPF.
  2398. iArtZeile = 0.
  2399. iVPagePos = vpr_getPageVPos() + 50.
  2400. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
  2401. FOR EACH tAufze NO-LOCK
  2402. BY tAufze.Aufnr
  2403. BY tAufze.Sort1
  2404. BY tAufze.LagOrt
  2405. BY tAufze.Sort2
  2406. BY tAufze.Pos :
  2407. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  2408. RUN VIPER_ARTIKELZEILE ( RECID(tAufze) ).
  2409. VFak_Betr = VFak_Betr + Aufze.Net_Betr.
  2410. END.
  2411. IF FPreis = TRUE THEN DO:
  2412. iArtZeile = iArtZeile + 1.
  2413. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
  2414. iArtZeile = iArtZeile + 1.
  2415. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(SUBSTRING(FormText[15],21,20)) ).
  2416. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
  2417. END.
  2418. iArtZeile = iArtZeile + 1.
  2419. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', ' ' ).
  2420. RUN VIPER_AUSGABE_ARTIKELZEILE.
  2421. /* Auftragsrabatt ---------------------------------------------------- */
  2422. iArtZeile = 0.
  2423. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
  2424. BY TRabSumm.Rab_Summ:
  2425. Rundbetr = TRabSumm.Auf_Rab.
  2426. VFak_Betr = VFak_Betr - Rundbetr.
  2427. iArtZeile = iArtZeile + 1.
  2428. xString = TRIM(SUBSTRING(FormText[11],01,20))
  2429. + " "
  2430. + TRabSumm.Bez.
  2431. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  2432. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
  2433. END.
  2434. /* Abholrabatt ------------------------------------------------------- */
  2435. FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
  2436. BY TRabSumm.Rab_Summ:
  2437. Rundbetr = TRabSumm.Abh_Rab.
  2438. VFak_Betr = VFak_Betr - Rundbetr.
  2439. iArtZeile = iArtZeile + 1.
  2440. xString = TRIM(SUBSTRING(FormText[15],01,20))
  2441. + " "
  2442. + TRabSumm.Bez.
  2443. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  2444. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
  2445. END.
  2446. IF iArtZeile > 0 THEN DO:
  2447. iArtZeile = iArtZeile + 1.
  2448. xString = TRIM(SUBSTRING(FormText[14],21,20)).
  2449. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  2450. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
  2451. iArtZeile = iArtZeile + 1.
  2452. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
  2453. END.
  2454. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
  2455. /* Recycling-Gebuehren ----------------------------------------------- */
  2456. iArtZeile = 0.
  2457. FOR EACH AufGKon USE-INDEX SavGKon-k1
  2458. WHERE AufGKon.Firma = BAufko.Firma
  2459. AND AufGKon.Aufnr = BAufko.Aufnr
  2460. AND AufGKon.Gebuehr <> 0
  2461. AND AufGKon.Betrag <> 0 NO-LOCK:
  2462. FIND GebKonto OF AufGKon NO-LOCK NO-ERROR.
  2463. IF NOT AVAILABLE GebKonto THEN xString = TRIM(SUBSTRING(FormText[11],41,20)).
  2464. ELSE xString = GebKonto.Bez.
  2465. VWC = AufGKon.MWST_Cd.
  2466. VFak_Betr = VFak_Betr + AufGKon.Betrag.
  2467. iArtZeile = iArtZeile + 1.
  2468. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  2469. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(AufGKon.Betrag,'->>>,>>9.999')) ).
  2470. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC', STRING(AufGKon.MWSt_Cd,'z9') ).
  2471. END.
  2472. IF iArtZeile > 0 THEN DO:
  2473. iArtZeile = iArtZeile + 1.
  2474. xString = TRIM(SUBSTRING(FormText[14],41,20)).
  2475. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  2476. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.999')) ).
  2477. iArtZeile = iArtZeile + 1.
  2478. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
  2479. END.
  2480. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
  2481. /* Gebinde Aus- und Eingänge ---------------------------------------- */
  2482. FOR EACH AufGKon USE-INDEX SavGKon-k1
  2483. WHERE AufGKon.Firma = BAufko.Firma
  2484. AND AufGKon.Aufnr = BAufko.Aufnr
  2485. AND AufGKon.Depot <> 0
  2486. AND AufGKon.Betrag <> 0 NO-LOCK:
  2487. FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR.
  2488. IF NOT AVAILABLE TGebKto THEN DO:
  2489. FIND GebKonto USE-INDEX GebKonto-k1
  2490. WHERE GebKonto.Firma = AufGKon.Firma
  2491. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK.
  2492. CREATE TGebKto.
  2493. ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd
  2494. TGebKto.Geb_Cd = GebKonto.Geb_Cd
  2495. TGebKto.Bez = GebKonto.Bez
  2496. TGebKto.Preis = AufGKon.Depot
  2497. TGebKto.MWST_Cd = AufGKon.MWSt_Cd.
  2498. END.
  2499. TGebKto.A_Anz = TGebKto.A_Anz + AufGKon.Ausgang.
  2500. TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis.
  2501. TGebKto.E_Anz = TGebKto.E_Anz + AufGKon.Eingang.
  2502. TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis.
  2503. END.
  2504. /* Gebindelieferungen ------------------------------------------------ */
  2505. VZTot = 0.
  2506. iArtZeile = 0.
  2507. FOR EACH AufGKon USE-INDEX SavGKon-k1
  2508. WHERE AufGKon.Firma = BAufko.Firma
  2509. AND AufGKon.Aufnr = BAufko.Aufnr
  2510. AND AufGKon.Depot <> 0
  2511. AND (AufGKon.Eingang <> 0 OR
  2512. AufGKon.Ausgang <> 0) NO-LOCK
  2513. BREAK BY AufgKon.Firma
  2514. BY AufGKon.Aufnr:
  2515. FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1
  2516. WHERE GebKonto.Firma = GVFirma
  2517. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd.
  2518. i1 = AufGKon.Ausgang - AufGKon.Eingang.
  2519. Rundbetr = AufGKon.Betrag.
  2520. VWC = AufGKon.MWSt_Cd.
  2521. VZTot = VZTot + Rundbetr.
  2522. iArtZeile = iArtZeile + 1.
  2523. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'Gebindetext' , GebKonto.Bez ).
  2524. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeGel' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ).
  2525. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeRet' , TRIM(STRING(AufGKon.Eingang,"->>,>>9")) ).
  2526. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeSaldo', TRIM(STRING(i1 ,"->>,>>9")) ).
  2527. IF FPreis THEN
  2528. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeBetr' , TRIM(STRING(Rundbetr ,"->>,>>9.999")) ).
  2529. END.
  2530. IF FPreis AND
  2531. iArtZeile > 0 THEN RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeTot' , TRIM(STRING(VZTot,"->>,>>9.999")) ).
  2532. VFak_Betr = VFak_Betr + VZTot.
  2533. IF iArtZeile > 0 THEN RUN VIPER_AUSGABE_GRUPPE ('Gebindeabrechnung').
  2534. /* Auftragstext ------------------------------------------------------ */
  2535. XAuf_Text = BAufko.Auf_Text.
  2536. IF XAuf_Text <> '' THEN DO:
  2537. iVPagePos = vpr_getPageVPos() + 20.
  2538. RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ).
  2539. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
  2540. RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ).
  2541. RUN vpr_flushGroup ('Zusatztext').
  2542. END.
  2543. END.
  2544. /* Mehrwertsteuer ---------------------------------------------------- */
  2545. VWpfl = 0.
  2546. VWust = 0.
  2547. i1 = 2.
  2548. DO ix = 1 TO 11:
  2549. IF BAufko.WPfl[ix] = 0 THEN NEXT.
  2550. VWpfl[ix] = BAufko.Wpfl[ix].
  2551. VWust[ix] = BAufko.Wust[ix].
  2552. VFak_Betr = VFak_Betr + VWust[ix].
  2553. i1 = i1 + 1.
  2554. END.
  2555. iVPagePos = vpr_getPageVPos().
  2556. iVGroupPos = vpr_getGroupVPos('Gebindetabelle').
  2557. IF iVPagePos > (iVGroupPos - (i1 * 40)) THEN DO:
  2558. RUN VIPER_NEUE_SEITE.
  2559. RUN VIPER_ADRESSE ('').
  2560. END.
  2561. iArtZeile = 0.
  2562. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', 1, 'MwstBez' , ' ' ).
  2563. DO ix = 1 TO 11:
  2564. IF VWpfl[ix] = 0 THEN NEXT.
  2565. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  2566. WHERE MWSTAns.MWST_Cd = ix
  2567. AND MWSTAns.Datum <= BAufko.Kond_Datum NO-LOCK.
  2568. iArtZeile = iArtZeile + 1.
  2569. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , MWStAns.Bez ).
  2570. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstPfl' , TRIM(STRING(VWpfl[ix],"->>,>>9.99")) ).
  2571. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBetr', TRIM(STRING(VWust[ix],"->>>,>>9.99")) ).
  2572. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstCd' , TRIM(STRING(ix ,"->>,>>9")) ).
  2573. END.
  2574. RUN VIPER_AUSGABE_GRUPPE ( 'Mehrwertsteuer' ).
  2575. /* Rechnungsbetrag --------------------------------------------------- */
  2576. Rundbetr = VFak_Betr.
  2577. Rundcode = 1.
  2578. RUN "v8/runden.p".
  2579. VFak_Betr = Rundbetr.
  2580. iArtZeile = 1.
  2581. RUN VIPER_CREATE_DOKUMENT ( 'RechnungsTotal', iArtZeile, 'EndBetrag', TRIM(STRING(VFak_Betr,"->>>,>>9.99")) ).
  2582. RUN VIPER_AUSGABE_GRUPPE ( 'RechnungsTotal' ).
  2583. /* ------ RUECKSTAENDE ---------------------------------------------------- */
  2584. DO WHILE TRUE:
  2585. FIND FIRST tRueckst NO-ERROR.
  2586. IF NOT AVAILABLE tRueckst THEN LEAVE.
  2587. iVPagePos = vpr_getPageVPos() + 150.
  2588. IF iVPagePos > iVMaxPos THEN DO:
  2589. RUN VIPER_NEUE_SEITE.
  2590. RUN VIPER_ADRESSE ('').
  2591. END.
  2592. cString = 'Rückstände bitte neu bestellen'.
  2593. iVPagePos = vpr_getPageVPos() + 50.
  2594. RUN vpr_setGroupVPos ('Rueckstand', iVPagePos ).
  2595. RUN vpr_setCellText ('RueckTitel', 'Rueckstand', cString ).
  2596. RUN vpr_flushGroup ('Rueckstand').
  2597. iArtZeile = 1.
  2598. FOR EACH tRueckst:
  2599. RUN VIPER_RUECKSTAND ( RECID(tRueckst) ).
  2600. END.
  2601. RUN VIPER_AUSGABE_ARTIKELZEILE.
  2602. LEAVE.
  2603. END.
  2604. /* Gebinderücknahmetabelle ------------------------------------------- */
  2605. iVPagePos = vpr_getPageVPos().
  2606. iVGroupPos = vpr_getGroupVPos('Gebindetabelle').
  2607. IF iVPagePos < iVGroupPos THEN RUN vpr_flushGroup('Gebindetabelle').
  2608. ELSE DO:
  2609. RUN VIPER_NEUE_SEITE.
  2610. RUN VIPER_ADRESSE ('').
  2611. RUN vpr_flushGroup('Gebindetabelle').
  2612. END.
  2613. /* ------------------------------------------------------ */
  2614. /* Druckausgabe */
  2615. /* ------------------------------------------------------ */
  2616. RUN vpr_EndDoc.
  2617. IF SESSION:PRINTER-NAME <> F_Drucker THEN DO:
  2618. RUN vpr_printerDialog ( OUTPUT ja ).
  2619. IF NOT ja THEN RETURN.
  2620. END.
  2621. ELSE DO:
  2622. RUN vpr_selectPrinter(SESSION:PRINTER-NAME).
  2623. END.
  2624. RUN vpr_printDoc (0, 0).
  2625. cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_Kopie_&3',
  2626. STRING(BAufko.Knr ,'999999'),
  2627. STRING(BAufko.Aufnr,'999999'),
  2628. cvpr_Dokument).
  2629. cPDFName = REPLACE(cvpr_Dokument, '.vpr', '.pdf').
  2630. RUN vpr_printPDF (0, 0, INPUT-OUTPUT cPDFName ).
  2631. RUN vpr_SaveDoc ( cvpr_Dokument ).
  2632. VesrKnr = BAufko.Fak_Knr.
  2633. VesrFnr = BAufko.Faknr.
  2634. VBesr = 4.
  2635. Rundbetr = 0.
  2636. CASE VBesr:
  2637. WHEN 1 THEN RUN VESR_DRUCK01.
  2638. WHEN 2 THEN RUN VESR_DRUCK02.
  2639. WHEN 3 THEN RUN VESR_DRUCK03.
  2640. WHEN 4 THEN RUN VESR_DRUCK04.
  2641. END CASE.
  2642. END PROCEDURE.
  2643. /* _UIB-CODE-BLOCK-END */
  2644. &ANALYZE-RESUME
  2645. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK_KOPF C-Win
  2646. PROCEDURE LIEFERFAK_KOPF :
  2647. /*------------------------------------------------------------------------------
  2648. Purpose:
  2649. Parameters: <none>
  2650. Notes:
  2651. ------------------------------------------------------------------------------*/
  2652. DEF VAR kk AS INT NO-UNDO.
  2653. DEF VAR xString AS CHAR NO-UNDO.
  2654. DEF VAR cText AS CHAR NO-UNDO.
  2655. RUN VIPER_NEUE_SEITE.
  2656. IF VSeite = 1 THEN DO:
  2657. SFaknr = BAufko.Faknr.
  2658. FIND Adresse USE-INDEX Adresse-k1
  2659. WHERE Adresse.Firma = AdFirma
  2660. AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  2661. FIND LDebst USE-INDEX Debst-k1
  2662. WHERE LDebst.Firma = GVFirma
  2663. AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  2664. FIND FDebst USE-INDEX Debst-k1
  2665. WHERE FDebst.Firma = GVFirma
  2666. AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  2667. FIND Wust USE-INDEX Wust-k1
  2668. WHERE Wust.CodeK = LDebst.MWST
  2669. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  2670. LVSprcd = Adresse.Sprcd.
  2671. DebInkl = FALSE.
  2672. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  2673. VBesrKopf = ''.
  2674. IF BAufko.Adresse[05] <> '' THEN DO:
  2675. i1 = 6.
  2676. DO ix = 1 TO 5:
  2677. CREATE tDokument.
  2678. ASSIGN tDokument.cGruppe = 'KOPF'
  2679. tDokument.iZeile = 1
  2680. tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99')
  2681. tDokument.cInhalt = BAufko.Adresse[ix].
  2682. i1 = i1 + 1.
  2683. VBesrKopf[i1] = BAufko.Adresse[ix].
  2684. END.
  2685. END.
  2686. ELSE DO:
  2687. DO ix = 5 TO 11:
  2688. CREATE tDokument.
  2689. ASSIGN tDokument.cGruppe = 'KOPF'
  2690. tDokument.iZeile = 1
  2691. tDokument.cFeld = 'Adresse_' + STRING(ix,'99')
  2692. tDokument.cInhalt = Adresse.Anschrift[ix].
  2693. VBesrKopf[ix] = Adresse.Anschrift[ix].
  2694. END.
  2695. END.
  2696. CREATE tDokument.
  2697. ASSIGN tDokument.cGruppe = 'KOPF'
  2698. tDokument.iZeile = 1
  2699. tDokument.cFeld = 'Ort_Datum'
  2700. tDokument.cInhalt = TRIM(SUBSTRING(FormText[07],01,20))
  2701. + " "
  2702. + STRING(FDatum,"99.99.9999").
  2703. CREATE tDokument.
  2704. ASSIGN tDokument.cGruppe = 'KOPF'
  2705. tDokument.iZeile = 1
  2706. tDokument.cFeld = 'T_Dokument'
  2707. tDokument.cInhalt = (IF BAufko.Auf_Tot >= 0
  2708. THEN TRIM(SUBSTRING(FormText[02],01,20))
  2709. ELSE TRIM(SUBSTRING(FormText[02],21,20))).
  2710. CREATE tDokument.
  2711. ASSIGN tDokument.cGruppe = 'KOPF'
  2712. tDokument.iZeile = 1
  2713. tDokument.cFeld = 'Aufnr'
  2714. tDokument.cInhalt = STRING(SFaknr,'z999999').
  2715. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR.
  2716. CREATE tDokument.
  2717. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  2718. tDokument.iZeile = 1
  2719. tDokument.cFeld = 'Ablade'
  2720. tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld3 ELSE ' ').
  2721. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'FAHRER' NO-ERROR.
  2722. CREATE tDokument.
  2723. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  2724. tDokument.iZeile = 1
  2725. tDokument.cFeld = 'Chauffeur'
  2726. tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld1 ELSE ' ').
  2727. CREATE tDokument.
  2728. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  2729. tDokument.iZeile = 1
  2730. tDokument.cFeld = 'Auf_Datum'
  2731. tDokument.cInhalt = STRING(BAufko.Auf_Datum,'99.99.9999').
  2732. CREATE tDokument.
  2733. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  2734. tDokument.iZeile = 1
  2735. tDokument.cFeld = 'Lief_Datum'
  2736. tDokument.cInhalt = STRING(BAufko.Lief_Datum,'99.99.9999').
  2737. CREATE tDokument.
  2738. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  2739. tDokument.iZeile = 1
  2740. tDokument.cFeld = 'U_Ref'
  2741. tDokument.cInhalt = BAufko.U_Ref.
  2742. CREATE tDokument.
  2743. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  2744. tDokument.iZeile = 1
  2745. tDokument.cFeld = 'Knr'
  2746. tDokument.cInhalt = STRING(BAufko.Knr,'999999').
  2747. cText = ''.
  2748. cText = (IF Adresse.Tel-1 <> '' THEN Adresse.Tel-1 ELSE Adresse.Tel-2).
  2749. IF Adresse.Natel <> '' THEN cText = cText
  2750. + (IF cText = '' THEN '' ELSE ' / ')
  2751. + Adresse.Natel.
  2752. CREATE tDokument.
  2753. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  2754. tDokument.iZeile = 1
  2755. tDokument.cFeld = 'Telefon'
  2756. tDokument.cInhalt = cText.
  2757. CREATE tDokument.
  2758. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  2759. tDokument.iZeile = 1
  2760. tDokument.cFeld = 'Gewicht'
  2761. tDokument.cInhalt = TRIM(STRING(BAufko.Gewicht,'->>>,>>9.999')).
  2762. END.
  2763. RUN VIPER_ADRESSE ( xString ).
  2764. IF VSeite = 1 AND
  2765. BAufko.Abh_Text <> '' THEN DO:
  2766. XAuf_Text = BAufko.Abh_Text.
  2767. iVPagePos = vpr_getPageVPos() + 20.
  2768. RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ).
  2769. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
  2770. RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ).
  2771. RUN vpr_flushGroup ('Zusatztext').
  2772. END.
  2773. END.
  2774. END PROCEDURE.
  2775. /* _UIB-CODE-BLOCK-END */
  2776. &ANALYZE-RESUME
  2777. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUE_SEITE C-Win
  2778. PROCEDURE NEUE_SEITE :
  2779. /*------------------------------------------------------------------------------
  2780. Purpose:
  2781. Parameters: <none>
  2782. Notes:
  2783. ------------------------------------------------------------------------------*/
  2784. DEF VAR A AS INT NO-UNDO.
  2785. DEF VAR B AS INT NO-UNDO.
  2786. IF VSeite = 0 THEN DO:
  2787. EMPTY TEMP-TABLE tDokument.
  2788. END.
  2789. DO WHILE VSeite > 0:
  2790. IF DOpen THEN DO:
  2791. PUT STREAM Out_Stream CONTROL CHR(12).
  2792. LEAVE.
  2793. END.
  2794. A = BLiDruck.Listtzz.
  2795. DO B = VLine TO A:
  2796. VZNr = VZNr + 1.
  2797. CREATE XTermOut.
  2798. ASSIGN XTermOut.ZNr = VZNr
  2799. XTermOut.Zeile = ''.
  2800. END.
  2801. LEAVE.
  2802. END.
  2803. VLine = 0.
  2804. VSeite = VSeite + 1.
  2805. END PROCEDURE.
  2806. /* _UIB-CODE-BLOCK-END */
  2807. &ANALYZE-RESUME
  2808. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PRUEFZIFFER C-Win
  2809. PROCEDURE PRUEFZIFFER :
  2810. /*------------------------------------------------------------------------------
  2811. Purpose:
  2812. Parameters: <none>
  2813. Notes:
  2814. ------------------------------------------------------------------------------*/
  2815. /* ------------------------------------------------------------------------- */
  2816. /* Prufziffer MODULO 10, Rekursiv (27 Stellig Ref.-Nr.) */
  2817. /* ------------------------------------------------------------------------- */
  2818. /* */
  2819. /* Uebergabe Variable: 1. String Betrag (12-stellig) */
  2820. /* 2. String Referenz (27-stellig) */
  2821. /* 3. String Teilnehmernummer ( 9-stellig) */
  2822. /* */
  2823. /* Erstellung der VESR-Codierzeile */
  2824. /* */
  2825. /*---------------------------------------------------------------------------*/
  2826. DEF INPUT-OUTPUT PARAMETER PZBetrag AS CHAR FORMAT "x(13)".
  2827. DEF INPUT-OUTPUT PARAMETER PZReferenz AS CHAR FORMAT "x(27)".
  2828. DEF INPUT-OUTPUT PARAMETER PZTNummer AS CHAR FORMAT "x(09)".
  2829. DEF OUTPUT PARAMETER VSZeile AS CHAR FORMAT "x(58)".
  2830. DEF VAR l1 AS INT.
  2831. DEF VAR l2 AS INT.
  2832. DEF VAR l3 AS INT.
  2833. DEF VAR PZ AS INT.
  2834. DEF VAR x1 AS INT.
  2835. DEF VAR x2 AS INT.
  2836. DEF VAR x3 AS INT.
  2837. DEF VAR VMOD10 AS CHAR FORMAT "x(11)" EXTENT 11.
  2838. VMOD10[01] = "09468271350".
  2839. VMOD10[02] = "94682713509".
  2840. VMOD10[03] = "46827135098".
  2841. VMOD10[04] = "68271350947".
  2842. VMOD10[05] = "82713509466".
  2843. VMOD10[06] = "27135094685".
  2844. VMOD10[07] = "71350946824".
  2845. VMOD10[08] = "13509468273".
  2846. VMOD10[09] = "35094682712".
  2847. VMOD10[10] = "50946827131".
  2848. l1 = 12.
  2849. l2 = 26.
  2850. l3 = 08.
  2851. DO WHILE SUBSTRING(PZBetrag,01,01) <> " ": /* Mit Betrag */
  2852. x2 = 1.
  2853. x1 = INT(SUBSTRING(PZBetrag ,01 ,01)).
  2854. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  2855. DO x3 = 2 TO 12:
  2856. x1 = INT(SUBSTRING(PZBetrag ,x3 ,01)).
  2857. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  2858. END.
  2859. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  2860. SUBSTRING(PZBetrag,13) = STRING(PZ,"9").
  2861. LEAVE.
  2862. END.
  2863. DO WHILE SUBSTRING(PZBetrag,01,01) = " ": /* Ohne Betrag */
  2864. x2 = 11.
  2865. x1 = INT(SUBSTRING(PZBetrag ,01 ,01)).
  2866. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  2867. DO x3 = 12 TO 12:
  2868. x1 = INT(SUBSTRING(PZBetrag ,x3 ,01)).
  2869. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  2870. END.
  2871. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  2872. SUBSTRING(PZBetrag,13) = STRING(PZ,"9").
  2873. LEAVE.
  2874. END.
  2875. DO WHILE l2 = 26:
  2876. x2 = 1.
  2877. x1 = INT(SUBSTRING(PZReferenz,01 ,01)).
  2878. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  2879. DO x3 = 2 TO 26:
  2880. x1 = INT(SUBSTRING(PZReferenz ,x3 ,01)).
  2881. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  2882. END.
  2883. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  2884. SUBSTRING(PZReferenz,27) = STRING(PZ,"9").
  2885. LEAVE.
  2886. END.
  2887. DO WHILE l3 = 08:
  2888. x2 = 1.
  2889. x1 = INT(SUBSTRING(PZTNummer ,01 ,01)).
  2890. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  2891. DO x3 = 2 TO 08:
  2892. x1 = INT(SUBSTRING(PZTNummer ,x3 ,01)).
  2893. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  2894. END.
  2895. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  2896. SUBSTRING(PZTNummer,09) = STRING(PZ,"9").
  2897. LEAVE.
  2898. END.
  2899. VSZeile = "".
  2900. SUBSTRING(VSZeile,01) = PZBetrag.
  2901. SUBSTRING(VSZeile,14) = ">".
  2902. SUBSTRING(VSZeile,15) = PZReferenz.
  2903. SUBSTRING(VSZeile,42) = "+ ".
  2904. SUBSTRING(VSZeile,44) = PZTNummer.
  2905. SUBSTRING(VSZeile,53) = ">".
  2906. /*
  2907. SUBSTRING(VSZeile,58) = "H".
  2908. */
  2909. END PROCEDURE.
  2910. /* _UIB-CODE-BLOCK-END */
  2911. &ANALYZE-RESUME
  2912. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMELSUCHEN C-Win
  2913. PROCEDURE SAMMELSUCHEN :
  2914. /*------------------------------------------------------------------------------
  2915. Purpose:
  2916. Parameters: <none>
  2917. Notes:
  2918. ------------------------------------------------------------------------------*/
  2919. DEF BUFFER sAufko FOR Aufko.
  2920. FIND FIRST SAMMFAK
  2921. WHERE SAMMFAK.Knr = BAufko.Fak_Knr
  2922. AND SAMMFAK.Samm_Nr = BAufko.Samm_Nr NO-ERROR.
  2923. IF AVAILABLE SAMMFAK THEN RETURN.
  2924. REPEAT TRANSACTION:
  2925. FOR EACH Aufko NO-LOCK USE-INDEX Savko-k5
  2926. WHERE Aufko.Firma = BAufko.Firma
  2927. AND Aufko.Fak_Art = BAufko.Fak_Art
  2928. AND Aufko.Samm_Nr = BAufko.Samm_Nr :
  2929. CREATE SAMMFAK.
  2930. ASSIGN SAMMFAK.Knr = Aufko.Fak_Knr
  2931. SAMMFAK.Aufnr = Aufko.Aufnr
  2932. SAMMFAK.Samm_Nr = Aufko.Samm_Nr
  2933. SAMMFAK.RID = RECID(Aufko).
  2934. END.
  2935. LEAVE.
  2936. END.
  2937. END PROCEDURE.
  2938. /* _UIB-CODE-BLOCK-END */
  2939. &ANALYZE-RESUME
  2940. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK C-Win
  2941. PROCEDURE SAMMFAK :
  2942. /*------------------------------------------------------------------------------
  2943. Purpose:
  2944. Parameters: <none>
  2945. Notes:
  2946. ------------------------------------------------------------------------------*/
  2947. DEF VAR xString AS CHAR NO-UNDO.
  2948. DEF VAR lFirst AS LOG NO-UNDO.
  2949. DEF VAR cLAdresse AS CHAR NO-UNDO.
  2950. DEF VAR RText AS CHAR NO-UNDO.
  2951. DEF VAR WText AS CHAR NO-UNDO.
  2952. VFak_Betr = 0.
  2953. FPreis = TRUE.
  2954. IF VSeite = 0 THEN RUN VIPER_INIT ( 'SammFak' ).
  2955. RUN SAMMFAK_KOPF.
  2956. iVPagePos = vpr_getPageVPos() + 20.
  2957. RUN vpr_setGroupVPos ( 'FetteZeile', iVPagePos ).
  2958. iArtZeile = 1.
  2959. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', TRIM(SUBSTRING(FormText[18],01,20)) ).
  2960. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_2_Fett', TRIM(STRING(BAufko.Aufnr,"zzzzzzzzz9")) ).
  2961. iArtZeile = iArtZeile + 1.
  2962. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', TRIM(SUBSTRING(FormText[17],21,20)) ).
  2963. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_2_Fett', TRIM(STRING(BAufko.Auf_Datum,"99.99.9999")) ).
  2964. iArtZeile = iArtZeile + 1.
  2965. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', ' ' ).
  2966. DO WHILE TRUE:
  2967. lFirst = TRUE.
  2968. cLAdresse = ''.
  2969. IF BAufko.Knr = BAufko.Fak_Knr AND
  2970. NOT FDebst.Passant THEN LEAVE.
  2971. DO ix = 1 TO 5:
  2972. IF BAufko.Adresse[ix] = '' THEN NEXT.
  2973. iArtZeile = iArtZeile + 1.
  2974. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', BAufko.Adresse[ix] ).
  2975. lFirst = FALSE.
  2976. END.
  2977. IF NOT lFirst THEN LEAVE.
  2978. IF BAufko.Knr = BAufko.Fak_Knr THEN LEAVE.
  2979. FIND LAdresse NO-LOCK
  2980. WHERE LAdresse.Firma = AdFirma
  2981. AND LAdresse.Knr = BAufko.Knr NO-ERROR.
  2982. IF NOT AVAILABLE LAdresse THEN LEAVE.
  2983. DO ix = 1 TO 12:
  2984. IF LAdresse.Anschrift[ix] = '' THEN NEXT.
  2985. iArtZeile = iArtZeile + 1.
  2986. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', LAdresse.Anschrift[ix] ).
  2987. lFirst = FALSE.
  2988. END.
  2989. LEAVE.
  2990. END.
  2991. IF NOT lFirst THEN DO:
  2992. iArtZeile = iArtZeile + 1.
  2993. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', ' ' ).
  2994. END.
  2995. RUN VIPER_AUSGABE_GRUPPE ( 'FetteZeile' ).
  2996. iArtZeile = 0.
  2997. iVPagePos = vpr_getPageVPos().
  2998. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
  2999. FOR EACH tAufze NO-LOCK
  3000. BY tAufze.Aufnr
  3001. BY tAufze.Sort1
  3002. BY tAufze.LagOrt
  3003. BY tAufze.Sort2
  3004. BY tAufze.Pos :
  3005. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  3006. RUN VIPER_ARTIKELZEILE ( RECID(tAufze) ).
  3007. VFak_Betr = VFak_Betr + Aufze.Net_Betr.
  3008. END.
  3009. iArtZeile = iArtZeile + 1.
  3010. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , TRIM(SUBSTRING(FormText[10],41,20)) ).
  3011. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
  3012. iArtZeile = iArtZeile + 1.
  3013. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , ' ' ).
  3014. RUN VIPER_AUSGABE_ARTIKELZEILE.
  3015. /* Auftragsrabatt ---------------------------------------------------- */
  3016. iArtZeile = 0.
  3017. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
  3018. BY TRabSumm.Rab_Summ:
  3019. Rundbetr = TRabSumm.Auf_Rab.
  3020. VFak_Betr = VFak_Betr - Rundbetr.
  3021. IF Rundbetr < 0 THEN RText = VZusText.
  3022. ELSE RText = VRabText.
  3023. xString = RText
  3024. + " "
  3025. + TRabSumm.Bez.
  3026. iArtZeile = iArtZeile + 1.
  3027. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  3028. FIND FIRST AufRabSu NO-LOCK USE-INDEX SavRabSu-k1
  3029. WHERE AufRabSu.Firma = BAufko.Firma
  3030. AND AufRabSu.Aufnr = BAufko.Aufnr
  3031. AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
  3032. RabWert = ABSOLUT(AufRabSu.F_Wert).
  3033. IF AufRabSu.F_Proz_Betr THEN WText = "%".
  3034. ELSE WText = "Fr.".
  3035. xString = STRING(RabWert,"z9.99-")
  3036. + WText.
  3037. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', xString ).
  3038. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
  3039. END.
  3040. /* Abholrabatt ------------------------------------------------------- */
  3041. FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
  3042. BY TRabSumm.Rab_Summ:
  3043. Rundbetr = TRabSumm.Abh_Rab.
  3044. VFak_Betr = VFak_Betr - Rundbetr.
  3045. IF Rundbetr < 0 THEN RText = VZusText.
  3046. ELSE RText = VRabText.
  3047. xString = RText
  3048. + " "
  3049. + TRabSumm.Bez.
  3050. iArtZeile = iArtZeile + 1.
  3051. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  3052. FIND FIRST AufRabSu NO-LOCK USE-INDEX SavRabSu-k1
  3053. WHERE AufRabSu.Firma = BAufko.Firma
  3054. AND AufRabSu.Aufnr = BAufko.Aufnr
  3055. AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
  3056. RabWert = ABSOLUT(AufRabSu.A_Wert).
  3057. IF AufRabSu.A_Proz_Betr THEN WText = "%".
  3058. ELSE WText = "Fr.".
  3059. xString = STRING(RabWert,"z9.99-")
  3060. + WText.
  3061. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', xString ).
  3062. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
  3063. END.
  3064. /* Spezialpreis-Auftragsrabatte ---------------------------------------- */
  3065. FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0
  3066. BY TSpeRab.Rab_Grp:
  3067. FIND Tabel USE-INDEX Tabel-k1
  3068. WHERE Tabel.Firma = GVFirma
  3069. AND Tabel.RecArt = 'ARABGRP'
  3070. AND Tabel.CodeC = ''
  3071. AND Tabel.CodeI = TSpeRab.Rab_Grp
  3072. AND Tabel.Sprcd = 1 NO-LOCK.
  3073. Rundbetr = TSpeRab.Auf_Betr.
  3074. VFak_Betr = VFak_Betr - Rundbetr.
  3075. IF Rundbetr < 0 THEN RText = VZusText.
  3076. ELSE RText = VRabText.
  3077. xString = RText
  3078. + " "
  3079. + Tabel.Bez1.
  3080. iArtZeile = iArtZeile + 1.
  3081. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  3082. FIND FIRST AufSpRab USE-INDEX SavSpRab-k1
  3083. WHERE AufSpRab.Firma = BAufko.Firma
  3084. AND AufSpRab.Aufnr = BAufko.Aufnr
  3085. AND AufSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK.
  3086. RabWert = ABSOLUT(AufSpRab.Auf_Wert).
  3087. IF AufSpRab.Auf_Proz_Betr THEN WText = "%".
  3088. ELSE WText = "Fr.".
  3089. xString = STRING(RabWert,"z9.99-")
  3090. + WText.
  3091. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', xString ).
  3092. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
  3093. END.
  3094. IF iArtZeile > 0 THEN DO:
  3095. iArtZeile = iArtZeile + 1.
  3096. xString = TRIM(SUBSTRING(FormText[14],21,20)).
  3097. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  3098. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
  3099. END.
  3100. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
  3101. /* Recycling-Gebuehren ----------------------------------------------- */
  3102. iArtZeile = 0.
  3103. FOR EACH AufGKon USE-INDEX SavGKon-k1
  3104. WHERE AufGKon.Firma = BAufko.Firma
  3105. AND AufGKon.Aufnr = BAufko.Aufnr
  3106. AND AufGKon.Gebuehr <> 0
  3107. AND AufGKon.Betrag <> 0 NO-LOCK:
  3108. FIND GebKonto OF AufGKon NO-LOCK NO-ERROR.
  3109. IF NOT AVAILABLE GebKonto THEN xString = TRIM(SUBSTRING(FormText[11],41,20)).
  3110. ELSE xString = GebKonto.Bez.
  3111. VWC = AufGKon.MWST_Cd.
  3112. VFak_Betr = VFak_Betr + AufGKon.Betrag.
  3113. FIND LAST MwstAns NO-LOCK
  3114. WHERE MwstAns.Mwst_Cd = VWC
  3115. AND MwstAns.Datum <= BAufko.Fak_Datum NO-ERROR.
  3116. iArtZeile = iArtZeile + 1.
  3117. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  3118. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(AufGKon.Betrag,'->>>,>>9.999')) ).
  3119. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC', STRING(AufGKon.MWSt_Cd,'z9') ).
  3120. FIND FIRST TUmsGrp
  3121. WHERE TUmsGrp.Ums_Grp = 1000
  3122. AND TUmsGrp.Mwst = VWC
  3123. AND TUmsGrp.Ansatz = MwstAns.Ansatz NO-ERROR.
  3124. IF NOT AVAILABLE TUmsGrp THEN DO:
  3125. FIND WarenGrp USE-INDEX WarenGrp-k1
  3126. WHERE WarenGrp.Firma = GVFirma
  3127. AND WarenGrp.Wgr = 1000 NO-LOCK NO-ERROR.
  3128. CREATE TUmsGrp.
  3129. ASSIGN TUmsGrp.Ums_Grp = 1000
  3130. TUmsGrp.Mwst = VWC
  3131. TUmsGrp.Ansatz = MwstAns.Ansatz
  3132. TUmsGrp.Bez = (IF AVAILABLE WarenGrp THEN WarenGrp.Bez1 ELSE 'Recyclinggebühren').
  3133. END.
  3134. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + AufGKon.Betrag.
  3135. END.
  3136. IF iArtZeile > 0 THEN DO:
  3137. iArtZeile = iArtZeile + 1.
  3138. xString = TRIM(SUBSTRING(FormText[14],41,20)).
  3139. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  3140. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.999')) ).
  3141. END.
  3142. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
  3143. /* Gebindelieferungen ------------------------------------------------ */
  3144. VZTot = 0.
  3145. iArtZeile = 0.
  3146. FOR EACH AufGKon USE-INDEX SavGKon-k1
  3147. WHERE AufGKon.Firma = BAufko.Firma
  3148. AND AufGKon.Aufnr = BAufko.Aufnr
  3149. AND AufGKon.Depot <> 0
  3150. AND (AufGKon.Eingang <> 0 OR
  3151. AufGKon.Ausgang <> 0) NO-LOCK:
  3152. VWC = AufGKon.MWSt_Cd.
  3153. FIND LAST MwstAns NO-LOCK
  3154. WHERE MwstAns.Mwst_Cd = VWC
  3155. AND MwstAns.Datum <= BAufko.Fak_Datum NO-ERROR.
  3156. FIND FIRST TUmsGrp
  3157. WHERE TUmsGrp.Ums_Grp = 1001
  3158. AND TUmsGrp.Mwst = VWC
  3159. AND TUmsGrp.Ansatz = MwstAns.Ansatz NO-ERROR.
  3160. IF NOT AVAILABLE TUmsGrp THEN DO:
  3161. FIND WarenGrp NO-LOCK USE-INDEX WarenGrp-k1
  3162. WHERE WarenGrp.Firma = GVFirma
  3163. AND WarenGrp.Wgr = 1001 NO-ERROR.
  3164. CREATE TUmsGrp.
  3165. ASSIGN TUmsGrp.Ums_Grp = 1001
  3166. TUmsGrp.Mwst = VWC
  3167. TUmsGrp.Ansatz = MwstAns.Ansatz
  3168. TUmsGrp.Bez = (IF AVAILABLE WarenGrp THEN WarenGrp.Bez1 ELSE 'Gebindesaldo').
  3169. END.
  3170. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + AufGKon.Betrag.
  3171. FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1
  3172. WHERE GebKonto.Firma = GVFirma
  3173. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd.
  3174. i1 = AufGKon.Ausgang - AufGKon.Eingang.
  3175. Rundbetr = AufGKon.Betrag.
  3176. VZTot = VZTot + Rundbetr.
  3177. iArtZeile = iArtZeile + 1.
  3178. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'Gebindetext' , GebKonto.Bez ).
  3179. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeGel' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ).
  3180. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeRet' , TRIM(STRING(AufGKon.Eingang,"->>,>>9")) ).
  3181. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeSaldo', TRIM(STRING(i1 ,"->>,>>9")) ).
  3182. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeBetr' , TRIM(STRING(Rundbetr ,"->>,>>9.999")) ).
  3183. END.
  3184. IF iArtZeile > 0 THEN RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeTot' , TRIM(STRING(VZTot,"->>,>>9.999")) ).
  3185. VFak_Betr = VFak_Betr + VZTot.
  3186. IF iArtZeile > 0 THEN RUN VIPER_AUSGABE_GRUPPE ('Gebindeabrechnung').
  3187. DO ix = 1 TO 12:
  3188. GTWpfl[ix] = GTWpfl[ix] + BAufko.Wpfl[ix].
  3189. GTWust[ix] = GTWust[ix] + BAufko.Wust[ix].
  3190. END.
  3191. GTFak_Betr = GTFak_Betr + VFak_Betr.
  3192. GTSk_Ber = GTSk_Ber + BAufko.Sk_Ber.
  3193. iArtZeile = 1.
  3194. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett' , TRIM(SUBSTRING(FormText[15],21,20)) ).
  3195. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Betrag_Fett', TRIM(STRING(VFak_Betr,"->>>,>>9.99")) ).
  3196. IF FLetzt THEN DO:
  3197. iArtZeile = iArtZeile + 1.
  3198. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett' , ' ' ).
  3199. iArtZeile = iArtZeile + 1.
  3200. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett' , TRIM(SUBSTRING(FormText[14],01,20)) ).
  3201. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Betrag_Fett', TRIM(STRING(GTFak_Betr,"->>>,>>9.999")) ).
  3202. END.
  3203. iArtZeile = iArtZeile + 1.
  3204. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett' , ' ' ).
  3205. RUN VIPER_AUSGABE_GRUPPE ( 'FetteZeile' ).
  3206. /* Kopfmutation -------------------------------------------------- */
  3207. TiDruck = FALSE.
  3208. IF FLetzt THEN RUN SAMMFAK_ENDE.
  3209. END PROCEDURE.
  3210. /* _UIB-CODE-BLOCK-END */
  3211. &ANALYZE-RESUME
  3212. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_ENDE C-Win
  3213. PROCEDURE SAMMFAK_ENDE :
  3214. /*------------------------------------------------------------------------------
  3215. Purpose:
  3216. Parameters: <none>
  3217. Notes:
  3218. ------------------------------------------------------------------------------*/
  3219. DEF VAR cPDFName AS CHAR INIT '' NO-UNDO.
  3220. DEF VAR iSpace AS INT INIT 0 NO-UNDO.
  3221. DEF VAR iPos AS INT NO-UNDO.
  3222. DEF VAR iKopie AS INT NO-UNDO.
  3223. iPos = vpr_getPageVPos().
  3224. iArtZeile = 1.
  3225. iSpace = iSpace + 40.
  3226. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , ' ' ).
  3227. DO ix = 1 TO 11:
  3228. IF GTWpfl[ix] = 0 THEN NEXT.
  3229. GTFak_Betr = GTFak_Betr + GTWust[ix].
  3230. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  3231. WHERE MWSTAns.MWST_Cd = ix
  3232. AND MWSTAns.Datum <= BAufko.Kond_Datum NO-LOCK.
  3233. iArtZeile = iArtZeile + 1.
  3234. iSpace = iSpace + 40.
  3235. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , MWStAns.Bez ).
  3236. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstPfl' , TRIM(STRING(GTWpfl[ix],"->>,>>9.99")) ).
  3237. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBetr', TRIM(STRING(GTWust[ix],"->>>,>>9.99")) ).
  3238. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstCd' , TRIM(STRING(ix ,">>9")) ).
  3239. END.
  3240. IF (iSpace + iPos + 80) >= iVMaxPos THEN DO:
  3241. RUN vpr_NewPage.
  3242. RUN vpr_InitGroups('').
  3243. IF iZaehler = iLauf THEN RUN vpr_initGraphObj.
  3244. VSeite = VSeite + 1.
  3245. RUN VIPER_ADRESSE (VDokArt).
  3246. END.
  3247. RUN VIPER_AUSGABE_GRUPPE ( 'Mehrwertsteuer' ).
  3248. Rundbetr = GTFak_Betr.
  3249. Rundcode = 1.
  3250. RUN "v8/runden.p".
  3251. GTFak_Betr = Rundbetr.
  3252. iArtZeile = 1.
  3253. RUN VIPER_CREATE_DOKUMENT ( 'RechnungsTotal', iArtZeile, 'EndBetrag' , TRIM(STRING(GTFak_Betr,"->,>>>,>>9.99")) ).
  3254. RUN VIPER_AUSGABE_GRUPPE ( 'RechnungsTotal' ).
  3255. iArtZeile = 1.
  3256. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , TRIM(SUBSTRING(Helptext[15],41,20)) ).
  3257. FOR EACH TUmsGrp NO-LOCK
  3258. BY TUmsGrp.Ums_Grp
  3259. BY TUmsGrp.Mwst :
  3260. iArtZeile = iArtZeile + 1.
  3261. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , TUmsGrp.Bez ).
  3262. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Alk%' , BSteuer.Fwc03 ).
  3263. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis' , TRIM(STRING(TUmsGrp.Ums_Betr,"->>>,>>9.99")) ).
  3264. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(TUmsGrp.Ansatz ,">9.99%")) ).
  3265. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC' , TRIM(STRING(TUmsGrp.Mwst ,"z9")) ).
  3266. END.
  3267. RUN VIPER_AUSGABE_GRUPPE ( 'ArtikelZeile1' ).
  3268. /* Zahlungskondition ------------------------------------------------- */
  3269. FIND Kondi USE-INDEX Kondi-k1
  3270. WHERE Kondi.Kond = BAufko.Kond
  3271. AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  3272. IF AVAILABLE Kondi THEN DO:
  3273. iArtZeile = 1.
  3274. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Zahkond', Kondi.KoText ).
  3275. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Faellig', STRING((FDatum + Kondi.Faellig),"99.99.9999") ).
  3276. IF Kondi.Skonto[01] <> 0 THEN DO:
  3277. Rundbetr = GTSk_Ber * Kondi.Skonto[01] / 100.
  3278. Rundcode = 1.
  3279. RUN "v8/runden.p".
  3280. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Skonto', TRIM(STRING(Rundbetr,"->>>,>>9.99")) ).
  3281. END.
  3282. END.
  3283. ELSE DO:
  3284. iArtZeile = 1.
  3285. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Zahkond', FILL('?', 29) ).
  3286. END.
  3287. VFak_Betr = VFak_Betr - BAufko.Bar_Betr - BAufko.Bar_Skonto.
  3288. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Netto', TRIM(STRING(GTFak_Betr,"->>>,>>9.99")) ).
  3289. RUN VIPER_AUSGABE_GRUPPE ( 'Kondition' ).
  3290. IF GTFak_Betr = 0 THEN Rundbetr = -1.
  3291. ELSE Rundbetr = GTFak_Betr.
  3292. VesrKnr = BAufko.Fak_Knr.
  3293. VesrFnr = BAufko.Faknr.
  3294. IF AVAILABLE Kondi AND
  3295. Kondi.Skonto[01] <> 0 THEN Rundbetr = 0.
  3296. /* Abschluss und Druck ----------------------------------------------- */
  3297. IF iZaehler < iLauf THEN RETURN.
  3298. IF VBesr > 0 THEN RUN VIPER_BESR ( 'BESR' ).
  3299. /* ------------------------------------------------------ */
  3300. /* Druckausgabe */
  3301. /* ------------------------------------------------------ */
  3302. RUN vpr_EndDoc.
  3303. IF SESSION:PRINTER-NAME <> F_Drucker THEN DO:
  3304. RUN vpr_printerDialog ( OUTPUT ja ).
  3305. IF NOT ja THEN RETURN.
  3306. END.
  3307. ELSE DO:
  3308. RUN vpr_selectPrinter(SESSION:PRINTER-NAME).
  3309. END.
  3310. RUN vpr_SetPrinterAttrib('copies=1').
  3311. RUN vpr_printDoc (0, 0).
  3312. cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_Kopie_&3',
  3313. STRING(BAufko.Knr ,'999999'),
  3314. STRING(BAufko.Faknr,'999999'),
  3315. cvpr_Dokument).
  3316. cPDFName = REPLACE(cvpr_Dokument, '.vpr', '.pdf').
  3317. IF iZaehler = iLauf THEN DO:
  3318. IF iZaehler = 1 THEN RUN vpr_SaveDoc ( cvpr_Dokument ).
  3319. RUN vpr_printPDF (0, 0, INPUT-OUTPUT cPDFName ).
  3320. END.
  3321. END PROCEDURE.
  3322. /* _UIB-CODE-BLOCK-END */
  3323. &ANALYZE-RESUME
  3324. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_KOPF C-Win
  3325. PROCEDURE SAMMFAK_KOPF :
  3326. /*------------------------------------------------------------------------------
  3327. Purpose:
  3328. Parameters: <none>
  3329. Notes:
  3330. ------------------------------------------------------------------------------*/
  3331. DEF VAR kk AS INT NO-UNDO.
  3332. DEF VAR xString AS CHAR NO-UNDO.
  3333. DEF VAR iSeite AS INT NO-UNDO.
  3334. iSeite = VSeite.
  3335. RUN VIPER_NEUE_SEITE.
  3336. IF VSeite = 1 AND
  3337. VSeite > iSeite THEN DO:
  3338. SFaknr = BAufko.Faknr.
  3339. FIND Adresse USE-INDEX Adresse-k1
  3340. WHERE Adresse.Firma = AdFirma
  3341. AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  3342. FIND LDebst USE-INDEX Debst-k1
  3343. WHERE LDebst.Firma = GVFirma
  3344. AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  3345. FIND FDebst USE-INDEX Debst-k1
  3346. WHERE FDebst.Firma = GVFirma
  3347. AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  3348. FIND Wust USE-INDEX Wust-k1
  3349. WHERE Wust.CodeK = LDebst.MWST
  3350. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  3351. LVSprcd = Adresse.Sprcd.
  3352. DebInkl = FALSE.
  3353. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  3354. VBesrKopf = ''.
  3355. IF BAufko.Adresse[05] <> '' THEN DO:
  3356. i1 = 6.
  3357. DO ix = 1 TO 5:
  3358. CREATE tDokument.
  3359. ASSIGN tDokument.cGruppe = 'KOPF'
  3360. tDokument.iZeile = 1
  3361. tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99')
  3362. tDokument.cInhalt = BAufko.Adresse[ix].
  3363. i1 = i1 + 1.
  3364. VBesrKopf[i1] = BAufko.Adresse[ix].
  3365. END.
  3366. END.
  3367. ELSE DO:
  3368. DO ix = 5 TO 11:
  3369. CREATE tDokument.
  3370. ASSIGN tDokument.cGruppe = 'KOPF'
  3371. tDokument.iZeile = 1
  3372. tDokument.cFeld = 'Adresse_' + STRING(ix,'99')
  3373. tDokument.cInhalt = Adresse.Anschrift[ix].
  3374. VBesrKopf[ix] = Adresse.Anschrift[ix].
  3375. END.
  3376. END.
  3377. CREATE tDokument.
  3378. ASSIGN tDokument.cGruppe = 'KOPF'
  3379. tDokument.iZeile = 1
  3380. tDokument.cFeld = 'Ort_Datum'
  3381. tDokument.cInhalt = TRIM(SUBSTRING(FormText[07],01,20))
  3382. + " "
  3383. + STRING(FDatum,"99.99.9999").
  3384. CREATE tDokument.
  3385. ASSIGN tDokument.cGruppe = 'KOPF'
  3386. tDokument.iZeile = 1
  3387. tDokument.cFeld = 'T_Dokument'
  3388. tDokument.cInhalt = (IF BAufko.Auf_Tot >= 0
  3389. THEN TRIM(SUBSTRING(FormText[02],01,20))
  3390. ELSE TRIM(SUBSTRING(FormText[02],21,20))).
  3391. CREATE tDokument.
  3392. ASSIGN tDokument.cGruppe = 'KOPF'
  3393. tDokument.iZeile = 1
  3394. tDokument.cFeld = 'Aufnr'
  3395. tDokument.cInhalt = STRING(SFaknr,'z999999').
  3396. CREATE tDokument.
  3397. ASSIGN tDokument.cGruppe = 'KOPF'
  3398. tDokument.iZeile = 1
  3399. tDokument.cFeld = 'Knr'
  3400. tDokument.cInhalt = STRING(BAufko.Fak_Knr,'999999').
  3401. END.
  3402. IF VSeite > iSeite THEN RUN VIPER_ADRESSE ( VDokArt ).
  3403. END PROCEDURE.
  3404. /* _UIB-CODE-BLOCK-END */
  3405. &ANALYZE-RESUME
  3406. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUMMENRABATTE C-Win
  3407. PROCEDURE SUMMENRABATTE :
  3408. /*------------------------------------------------------------------------------
  3409. Purpose:
  3410. Parameters: <none>
  3411. Notes:
  3412. ------------------------------------------------------------------------------*/
  3413. DEF VAR RText AS CHAR FORMAT "x(20)" NO-UNDO.
  3414. DEF VAR WText AS CHAR NO-UNDO.
  3415. /* Auftragsrabatte --------------------------------------------------- */
  3416. i5 = 0.
  3417. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
  3418. BY TRabSumm.Rab_Summ:
  3419. Rundbetr = TRabSumm.Auf_Rab.
  3420. IF Rundbetr < 0 THEN RText = VZusText.
  3421. ELSE RText = VRabText.
  3422. FIND FIRST AufRabSu NO-LOCK USE-INDEX SavRabSu-k1
  3423. WHERE AufRabSu.Firma = BAufko.Firma
  3424. AND AufRabSu.Aufnr = BAufko.Aufnr
  3425. AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
  3426. IF AufRabSu.F_Proz_Betr THEN WText = "%".
  3427. ELSE WText = "Fr.".
  3428. RabWert = ABSOLUT(AufRabSu.F_Wert).
  3429. SUBSTRING(VZeile,042) = RText
  3430. + " "
  3431. + TRabSumm.Bez.
  3432. SUBSTRING(VZeile,096) = STRING(RabWert,"z9.99-")
  3433. + WText.
  3434. SUBSTRING(VZeile,102) = STRING(- Rundbetr,"->>>,>>9.99").
  3435. { v8/putstream.i "1" }
  3436. VFak_Betr = VFak_Betr - Rundbetr.
  3437. i5 = i5 + 1.
  3438. END.
  3439. /* Abholrabatt ------------------------------------------------------- */
  3440. FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
  3441. BY TRabSumm.Rab_Summ:
  3442. Rundbetr = TRabSumm.Abh_Rab.
  3443. IF Rundbetr < 0 THEN RText = VZusText.
  3444. ELSE RText = VRabText.
  3445. FIND FIRST AufRabSu NO-LOCK USE-INDEX SavRabSu-k1
  3446. WHERE AufRabSu.Firma = BAufko.Firma
  3447. AND AufRabSu.Aufnr = BAufko.Aufnr
  3448. AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
  3449. IF AufRabSu.A_Proz_Betr THEN WText = "%".
  3450. ELSE WText = "Fr.".
  3451. RabWert = ABSOLUT(AufRabSu.A_Wert).
  3452. SUBSTRING(VZeile,042) = RText
  3453. + " "
  3454. + TRabSumm.Bez.
  3455. SUBSTRING(VZeile,096) = STRING(RabWert,"z9.99-")
  3456. + WText.
  3457. SUBSTRING(VZeile,102) = STRING(- Rundbetr,"->>>,>>9.99").
  3458. { v8/putstream.i "1" }
  3459. VFak_Betr = VFak_Betr - Rundbetr.
  3460. i5 = i5 + 1.
  3461. END.
  3462. /* ---------------------------------------------------------------------- */
  3463. /* Spezialpreis-Auftragsrabatte ---------------------------------------- */
  3464. FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0
  3465. BY TSpeRab.Rab_Grp:
  3466. FIND Tabel USE-INDEX Tabel-k1
  3467. WHERE Tabel.Firma = GVFirma
  3468. AND Tabel.RecArt = 'ARABGRP'
  3469. AND Tabel.CodeC = ''
  3470. AND Tabel.CodeI = TSpeRab.Rab_Grp
  3471. AND Tabel.Sprcd = 1 NO-LOCK.
  3472. Rundbetr = TSpeRab.Auf_Betr.
  3473. IF Rundbetr < 0 THEN RText = VZusText.
  3474. ELSE RText = VRabText.
  3475. FIND FIRST AufSpRab USE-INDEX SavSpRab-k1
  3476. WHERE AufSpRab.Firma = BAufko.Firma
  3477. AND AufSpRab.Aufnr = BAufko.Aufnr
  3478. AND AufSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK.
  3479. IF AufSpRab.Auf_Proz_Betr THEN WText = "%".
  3480. ELSE WText = "Fr.".
  3481. RabWert = ABSOLUT(AufSpRab.Auf_Wert).
  3482. SUBSTRING(VZeile,042) = RText
  3483. + " "
  3484. + TRIM(Tabel.Bez1).
  3485. SUBSTRING(VZeile,096) = STRING(RabWert,"z9.99-")
  3486. + WText.
  3487. SUBSTRING(VZeile,102) = STRING(- Rundbetr,"->>>,>>9.99").
  3488. { v8/putstream.i "1" }
  3489. VFak_Betr = VFak_Betr - Rundbetr.
  3490. i5 = i5 + 1.
  3491. END.
  3492. IF i5 > 0 THEN DO:
  3493. SUBSTRING(VZeile,042) = TRIM(SUBSTRING(FormText[14],21,20)).
  3494. SUBSTRING(VZeile,102) = STRING(VFak_Betr,"->>>,>>9.99").
  3495. { v8/putstreamf.i "1" }
  3496. END.
  3497. END PROCEDURE.
  3498. /* _UIB-CODE-BLOCK-END */
  3499. &ANALYZE-RESUME
  3500. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERSANDART C-Win
  3501. PROCEDURE VERSANDART :
  3502. /*------------------------------------------------------------------------------
  3503. Purpose:
  3504. Parameters: <none>
  3505. Notes:
  3506. ------------------------------------------------------------------------------*/
  3507. XVersand = ''.
  3508. FIND Tabel USE-INDEX Tabel-k1
  3509. WHERE Tabel.Firma = GVFirma
  3510. AND Tabel.RecArt = 'LIEFART'
  3511. AND Tabel.CodeC = ''
  3512. AND Tabel.CodeI = BAufko.Lief_Bed
  3513. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  3514. IF AVAILABLE Tabel THEN XVersand = Tabel.Bez1.
  3515. END PROCEDURE.
  3516. /* _UIB-CODE-BLOCK-END */
  3517. &ANALYZE-RESUME
  3518. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK C-Win
  3519. PROCEDURE VESR_DRUCK :
  3520. /*------------------------------------------------------------------------------
  3521. Purpose:
  3522. Parameters: <none>
  3523. Notes:
  3524. ------------------------------------------------------------------------------*/
  3525. IF VBesr = 0 THEN RETURN.
  3526. DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
  3527. DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
  3528. DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
  3529. DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
  3530. DEF VAR VSZeile AS CHAR FORMAT "x(58)".
  3531. DEF VAR VZeile AS CHAR FORMAT "x(58)".
  3532. DEF VAR XArt AS INT.
  3533. DEF VAR XAnz AS INT.
  3534. DEF VAR XBetr AS CHAR FORMAT "x(20)".
  3535. DEF VAR VESR_P AS CHAR FORMAT "x(02)".
  3536. DEF VAR VESR AS CHAR FORMAT "x(02)".
  3537. DEF VAR XBetrag AS CHAR FORMAT "x(12)".
  3538. DO WHILE TRUE:
  3539. { v8/putstream.i "15" }
  3540. PZBetrag = ''.
  3541. IF Rundbetr < 0 THEN DO:
  3542. PZBetrag = FILL('*', 13).
  3543. PZReferenz = FILL('*', 27).
  3544. PZTNummer = FILL('*', 09).
  3545. XBetrag = FILL('*', 12).
  3546. END.
  3547. ELSE DO:
  3548. IF Rundbetr > 0
  3549. THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
  3550. IF Rundbetr = 0
  3551. THEN PZBetrag = " 04 ".
  3552. PZReferenz = "92876000000"
  3553. + STRING(VesrKnr,"999999")
  3554. + STRING(VesrFnr,"9999999")
  3555. + "00".
  3556. PZTNummer = "01004578".
  3557. XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999").
  3558. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
  3559. INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
  3560. END.
  3561. SUBSTRING(VZeile,061) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  3562. { v8/putstream.i "2" }
  3563. FIND Adresse USE-INDEX Adresse-k1
  3564. WHERE Adresse.Firma = AdFirma
  3565. AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
  3566. VVesr = "".
  3567. IF Rundbetr <> 0 THEN DO:
  3568. SUBSTRING(VVesr[01],02) = STRING(XBetrag,"XXXXXXXXXX XX").
  3569. SUBSTRING(VVesr[01],31) = STRING(XBetrag,"XXXXXXXXXX XX").
  3570. END.
  3571. SUBSTRING(VVesr[01],61) = Adresse.Anschrift[07].
  3572. SUBSTRING(VVesr[02],61) = Adresse.Anschrift[08].
  3573. SUBSTRING(VVesr[03],61) = Adresse.Anschrift[09].
  3574. SUBSTRING(VVesr[04],61) = Adresse.Anschrift[10].
  3575. SUBSTRING(VVesr[05],61) = Adresse.Anschrift[11].
  3576. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  3577. SUBSTRING(VVesr[03],04) = SUBSTRING(VZeile,01,14).
  3578. SUBSTRING(VVesr[04],01) = SUBSTRING(VZeile,16,17).
  3579. SUBSTRING(VVesr[05],01) = Adresse.Anschrift[08].
  3580. SUBSTRING(VVesr[06],01) = Adresse.Anschrift[09].
  3581. SUBSTRING(VVesr[07],01) = Adresse.Anschrift[10].
  3582. SUBSTRING(VVesr[08],01) = Adresse.Anschrift[11].
  3583. SUBSTRING(VVesr[09],25) = STRING(VSZeile,"x(53)").
  3584. SUBSTRING(VVesr[09],82) = "H".
  3585. VVesr[09] = BDrucker.Dru10cpi
  3586. + BDrucker.DruLQb
  3587. + CHR(27) + "k" + CHR(05)
  3588. + VVesr[09]
  3589. + CHR(27) + "k" + CHR(00)
  3590. + BDrucker.DruLQe
  3591. + BDrucker.Dru12cpi.
  3592. DO ix = 1 TO 10:
  3593. VZeile = VVesr[ix].
  3594. { v8/putstream.i "1" }
  3595. END.
  3596. LEAVE.
  3597. END.
  3598. END PROCEDURE.
  3599. /* _UIB-CODE-BLOCK-END */
  3600. &ANALYZE-RESUME
  3601. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK01 C-Win
  3602. PROCEDURE VESR_DRUCK01 :
  3603. /*------------------------------------------------------------------------------
  3604. Purpose:
  3605. Parameters: <none>
  3606. Notes:
  3607. ------------------------------------------------------------------------------*/
  3608. DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
  3609. DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
  3610. DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
  3611. DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
  3612. DEF VAR VSZeile AS CHAR FORMAT "x(58)".
  3613. DEF VAR VZeile AS CHAR FORMAT "x(58)".
  3614. DEF VAR XArt AS INT.
  3615. DEF VAR XAnz AS INT.
  3616. DEF VAR XBetr AS CHAR FORMAT "x(20)".
  3617. DEF VAR VESR_P AS CHAR FORMAT "x(02)".
  3618. DEF VAR VESR AS CHAR FORMAT "x(02)".
  3619. DEF VAR XBetrag AS CHAR FORMAT "x(12)".
  3620. DO WHILE TRUE:
  3621. { v8/putstream.i "15" }
  3622. PZBetrag = ''.
  3623. IF Rundbetr < 0 THEN DO:
  3624. PZBetrag = FILL('*', 13).
  3625. PZReferenz = FILL('*', 27).
  3626. PZTNummer = FILL('*', 09).
  3627. XBetrag = FILL('*', 12).
  3628. END.
  3629. ELSE DO:
  3630. IF Rundbetr > 0
  3631. THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
  3632. IF Rundbetr = 0
  3633. THEN PZBetrag = " 04 ".
  3634. PZReferenz = "92876000000"
  3635. + STRING(VesrKnr,"999999")
  3636. + STRING(VesrFnr,"9999999")
  3637. + "00".
  3638. PZTNummer = "01004578".
  3639. XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999").
  3640. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
  3641. INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
  3642. END.
  3643. SUBSTRING(VZeile,061) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  3644. { v8/putstream.i "2" }
  3645. FIND Adresse USE-INDEX Adresse-k1
  3646. WHERE Adresse.Firma = AdFirma
  3647. AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
  3648. VVesr = "".
  3649. IF Rundbetr <> 0 THEN DO:
  3650. SUBSTRING(VVesr[01],02) = STRING(XBetrag,"XXXXXXXXXX XX").
  3651. SUBSTRING(VVesr[01],31) = STRING(XBetrag,"XXXXXXXXXX XX").
  3652. END.
  3653. SUBSTRING(VVesr[01],61) = Adresse.Anschrift[07].
  3654. SUBSTRING(VVesr[02],61) = Adresse.Anschrift[08].
  3655. SUBSTRING(VVesr[03],61) = Adresse.Anschrift[09].
  3656. SUBSTRING(VVesr[04],61) = Adresse.Anschrift[10].
  3657. SUBSTRING(VVesr[05],61) = Adresse.Anschrift[11].
  3658. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  3659. SUBSTRING(VVesr[03],04) = SUBSTRING(VZeile,01,14).
  3660. SUBSTRING(VVesr[04],01) = SUBSTRING(VZeile,16,17).
  3661. SUBSTRING(VVesr[05],01) = Adresse.Anschrift[08].
  3662. SUBSTRING(VVesr[06],01) = Adresse.Anschrift[09].
  3663. SUBSTRING(VVesr[07],01) = Adresse.Anschrift[10].
  3664. SUBSTRING(VVesr[08],01) = Adresse.Anschrift[11].
  3665. SUBSTRING(VVesr[09],25) = STRING(VSZeile,"x(53)").
  3666. SUBSTRING(VVesr[09],82) = "H".
  3667. VVesr[09] = BDrucker.Dru10cpi
  3668. + BDrucker.DruLQb
  3669. + CHR(27) + "k" + CHR(05)
  3670. + VVesr[09]
  3671. + CHR(27) + "k" + CHR(00)
  3672. + BDrucker.DruLQe
  3673. + BDrucker.Dru12cpi.
  3674. DO ix = 1 TO 10:
  3675. VZeile = VVesr[ix].
  3676. { v8/putstream.i "1" }
  3677. END.
  3678. LEAVE.
  3679. END.
  3680. END PROCEDURE.
  3681. /* _UIB-CODE-BLOCK-END */
  3682. &ANALYZE-RESUME
  3683. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK02 C-Win
  3684. PROCEDURE VESR_DRUCK02 :
  3685. /*------------------------------------------------------------------------------
  3686. Purpose:
  3687. Parameters: <none>
  3688. Notes:
  3689. ------------------------------------------------------------------------------*/
  3690. DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
  3691. DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
  3692. DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
  3693. DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
  3694. DEF VAR VSZeile AS CHAR FORMAT "x(58)".
  3695. DEF VAR VZeile AS CHAR FORMAT "x(58)".
  3696. DEF VAR XArt AS INT.
  3697. DEF VAR XAnz AS INT.
  3698. DEF VAR XBetr AS CHAR FORMAT "x(20)".
  3699. DEF VAR VESR_P AS CHAR FORMAT "x(02)".
  3700. DEF VAR VESR AS CHAR FORMAT "x(02)".
  3701. DEF VAR XBetrag AS CHAR FORMAT "x(12)".
  3702. FIND Tabel USE-INDEX Tabel-k1
  3703. WHERE Tabel.Firma = GVFirma
  3704. AND Tabel.RecArt = 'FAKDRU'
  3705. AND Tabel.CodeC = 'BESR02'
  3706. AND Tabel.CodeI = 0
  3707. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  3708. IF NOT AVAILABLE Tabel THEN RETURN.
  3709. FIND XSchrift USE-INDEX Schrift-k1
  3710. WHERE XSchrift.Schname = Tabel.Bez1
  3711. AND XSchrift.Schbild = Tabel.Bez2 NO-LOCK NO-ERROR.
  3712. IF NOT AVAILABLE XSchrift THEN RETURN.
  3713. FIND XDrucker USE-INDEX Drucker-k1
  3714. WHERE XDrucker.Drucker = XSchrift.Schdru NO-LOCK NO-ERROR.
  3715. IF NOT AVAILABLE XDrucker THEN RETURN.
  3716. VTempVESR = VTemp + "VESR".
  3717. XSchacht = Tabel.Dec_3.
  3718. OUTPUT STREAM VOut_Stream TO VALUE(VTempVESR).
  3719. DO WHILE TRUE:
  3720. VVesr = ''.
  3721. SUBSTRING(VVesr[03],001) = 'Bank Zimmerberg AG'.
  3722. SUBSTRING(VVesr[03],028) = 'Bank Zimmerberg AG'.
  3723. SUBSTRING(VVesr[04],001) = '8810 Horgen '.
  3724. SUBSTRING(VVesr[04],028) = '8810 Horgen '.
  3725. VVesr[03] = XDrucker.dru12cpi + VVesr[03].
  3726. SUBSTRING(VVesr[07],001) = 'Huber Getränkehandlung AG'.
  3727. SUBSTRING(VVesr[07],028) = 'Huber Getränkehandlung AG'.
  3728. SUBSTRING(VVesr[07],094) = ''.
  3729. SUBSTRING(VVesr[08],001) = 'Allmendstrasse 91'.
  3730. SUBSTRING(VVesr[08],028) = 'Allmendstrasse 91'.
  3731. SUBSTRING(VVesr[09],001) = '8041 Zürich'.
  3732. SUBSTRING(VVesr[09],028) = '8041 Zürich'.
  3733. VVesr[07] = XDrucker.dru12cpi + VVesr[07].
  3734. PZBetrag = ''.
  3735. XBetrag = ''.
  3736. IF Rundbetr < 0 THEN DO:
  3737. PZBetrag = FILL('*', 13).
  3738. PZReferenz = FILL('*', 27).
  3739. PZTNummer = FILL('*', 09).
  3740. XBetrag = FILL('*', 12).
  3741. END.
  3742. ELSE DO:
  3743. IF Rundbetr > 0
  3744. THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
  3745. IF Rundbetr = 0
  3746. THEN PZBetrag = " 04 ".
  3747. PZReferenz = "80401100000"
  3748. + STRING(VesrKnr,"999999")
  3749. + STRING(VesrFnr,"9999999")
  3750. + "00".
  3751. PZTNummer = "01007648".
  3752. IF Rundbetr > 0
  3753. THEN XBetrag = STRING((Rundbetr * 100),"zzzzzz999").
  3754. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
  3755. INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
  3756. END.
  3757. SUBSTRING(VVesr[11],013) = ' 01-7648-2'.
  3758. SUBSTRING(VVesr[11],042) = ' 01-7648-2'.
  3759. SUBSTRING(VVesr[09],059) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  3760. SUBSTRING(VVesr[13],02) = STRING(XBetrag,"X X X X X X X X X").
  3761. SUBSTRING(VVesr[13],26) = STRING(XBetrag,"X X X X X X X X X").
  3762. VVesr[13] = XDrucker.dru10cpi + VVesr[13] + XDrucker.dru12cpi.
  3763. FIND Adresse USE-INDEX Adresse-k1
  3764. WHERE Adresse.Firma = AdFirma
  3765. AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
  3766. SUBSTRING(VVesr[14],59) = Adresse.Anschrift[07].
  3767. SUBSTRING(VVesr[15],59) = Adresse.Anschrift[08].
  3768. SUBSTRING(VVesr[16],59) = Adresse.Anschrift[09].
  3769. SUBSTRING(VVesr[17],59) = Adresse.Anschrift[10].
  3770. SUBSTRING(VVesr[18],59) = Adresse.Anschrift[11].
  3771. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  3772. SUBSTRING(VVesr[15],04) = SUBSTRING(VZeile,01,14).
  3773. SUBSTRING(VVesr[16],01) = SUBSTRING(VZeile,16,17).
  3774. SUBSTRING(VVesr[17],01) = SUBSTRING(Adresse.Anschrift[08],01,25).
  3775. SUBSTRING(VVesr[18],01) = SUBSTRING(Adresse.Anschrift[09],01,25).
  3776. SUBSTRING(VVesr[19],01) = SUBSTRING(Adresse.Anschrift[10],01,25).
  3777. SUBSTRING(VVesr[20],01) = SUBSTRING(Adresse.Anschrift[11],01,25).
  3778. SUBSTRING(VVesr[21],01) = 'H'.
  3779. SUBSTRING(VVesr[21],26) = STRING(VSZeile,"x(53)").
  3780. VVesr[21] = XDrucker.DruInvB
  3781. + VVesr[21]
  3782. + XDrucker.DruInvE.
  3783. VZeile = FILL(CHR(10), Tabel.Int_2).
  3784. PUT STREAM VOut_Stream CONTROL VZeile.
  3785. PUT STREAM VOut_Stream CONTROL CHR(27) '='.
  3786. DO ix = 1 TO 15:
  3787. VZeile = ''.
  3788. VZeile = VBesrKopf[ix] + CHR(10).
  3789. PUT STREAM VOut_Stream CONTROL VZeile.
  3790. END.
  3791. VZeile = FILL(CHR(10), 20).
  3792. PUT STREAM VOut_Stream CONTROL VZeile.
  3793. DO ix = 1 TO 21:
  3794. VZeile = VVesr[ix] + CHR(10).
  3795. PUT STREAM VOut_Stream CONTROL VZeile.
  3796. END.
  3797. LEAVE.
  3798. END.
  3799. OUTPUT STREAM VOut_Stream CLOSE.
  3800. END PROCEDURE.
  3801. /* _UIB-CODE-BLOCK-END */
  3802. &ANALYZE-RESUME
  3803. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK03 C-Win
  3804. PROCEDURE VESR_DRUCK03 :
  3805. /*------------------------------------------------------------------------------
  3806. Purpose:
  3807. Parameters: <none>
  3808. Notes:
  3809. ------------------------------------------------------------------------------*/
  3810. DEF VAR VVESR AS CHAR FORMAT "x(99)" EXTENT 25.
  3811. DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
  3812. DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
  3813. DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
  3814. DEF VAR VSZeile AS CHAR FORMAT "x(58)".
  3815. DEF VAR VZeile AS CHAR FORMAT "x(58)".
  3816. DEF VAR XArt AS INT.
  3817. DEF VAR XAnz AS INT.
  3818. DEF VAR XBetr AS CHAR FORMAT "x(20)".
  3819. DEF VAR VESR_P AS CHAR FORMAT "x(02)".
  3820. DEF VAR VESR AS CHAR FORMAT "x(02)".
  3821. DEF VAR XBetrag AS CHAR FORMAT "x(12)".
  3822. DEF VAR ii AS INT NO-UNDO.
  3823. DO WHILE TRUE:
  3824. { v8/putstream.i "07" }
  3825. VZeile = ''.
  3826. SUBSTRING(VZeile,01) = 'Bank Zimmerberg AG'.
  3827. SUBSTRING(VZeile,29) = 'Bank Zimmerberg AG'.
  3828. { v8/putstream.i "01" }
  3829. SUBSTRING(VZeile,01) = '8810 Horgen '.
  3830. SUBSTRING(VZeile,29) = '8810 Horgen '.
  3831. { v8/putstream.i "02" }
  3832. SUBSTRING(VZeile,01) = 'Huber Getränkehandlung AG'.
  3833. SUBSTRING(VZeile,29) = 'Huber Getränkehandlung AG'.
  3834. { v8/putstream.i "01" }
  3835. SUBSTRING(VZeile,01) = 'Allmendstrasse 91'.
  3836. SUBSTRING(VZeile,29) = 'Allmendstrasse 91'.
  3837. { v8/putstream.i "01" }
  3838. SUBSTRING(VZeile,01) = '8041 Zürich'.
  3839. SUBSTRING(VZeile,29) = '8041 Zürich'.
  3840. { v8/putstream.i "1" }
  3841. PZBetrag = ''.
  3842. IF Rundbetr < 0 THEN DO:
  3843. PZBetrag = FILL('*', 13).
  3844. PZReferenz = FILL('*', 27).
  3845. PZTNummer = FILL('*', 09).
  3846. XBetrag = FILL('*', 12).
  3847. END.
  3848. ELSE DO:
  3849. IF Rundbetr > 0
  3850. THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
  3851. IF Rundbetr = 0
  3852. THEN PZBetrag = " 04 ".
  3853. PZReferenz = "80401100000"
  3854. + STRING(VesrKnr,"999999")
  3855. + STRING(VesrFnr,"9999999")
  3856. + "00".
  3857. PZTNummer = "01007648".
  3858. XBetrag = STRING((Rundbetr * 100),"zzzzzz999").
  3859. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
  3860. INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
  3861. END.
  3862. SUBSTRING(VZeile,061) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  3863. { v8/putstream.i "2" }
  3864. SUBSTRING(VZeile,12) = '01-7648-2'.
  3865. SUBSTRING(VZeile,43) = '01-7648-2'.
  3866. { v8/putstream.i "2" }
  3867. IF Rundbetr <> 0 THEN DO:
  3868. DO ii = 9 TO 1 BY -1:
  3869. IF SUBSTRING(XBetrag,ii,01) <> '' THEN NEXT.
  3870. SUBSTRING(XBetrag,ii) = '-'.
  3871. LEAVE.
  3872. END.
  3873. SUBSTRING(VZeile,01) = STRING(XBetrag," X X X X X X X X X").
  3874. SUBSTRING(VZeile,25) = STRING(XBetrag," X X X X X X X X X").
  3875. END.
  3876. VZeile = BDrucker.Dru10cpi + VZeile + BDrucker.Dru12cpi.
  3877. { v8/putstream.i "1" }
  3878. FIND Adresse USE-INDEX Adresse-k1
  3879. WHERE Adresse.Firma = AdFirma
  3880. AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
  3881. VVesr = "".
  3882. SUBSTRING(VVesr[01],61) = Adresse.Anschrift[07].
  3883. SUBSTRING(VVesr[02],61) = Adresse.Anschrift[08].
  3884. SUBSTRING(VVesr[03],61) = Adresse.Anschrift[09].
  3885. SUBSTRING(VVesr[04],61) = Adresse.Anschrift[10].
  3886. SUBSTRING(VVesr[05],61) = Adresse.Anschrift[11].
  3887. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  3888. SUBSTRING(VVesr[02],10) = SUBSTRING(VZeile,01,14).
  3889. SUBSTRING(VVesr[03],07) = SUBSTRING(VZeile,16,17).
  3890. SUBSTRING(VVesr[04],01) = Adresse.Anschrift[08].
  3891. SUBSTRING(VVesr[05],01) = Adresse.Anschrift[09].
  3892. SUBSTRING(VVesr[06],01) = Adresse.Anschrift[10].
  3893. SUBSTRING(VVesr[07],01) = Adresse.Anschrift[11].
  3894. SUBSTRING(VVesr[08],25) = STRING(VSZeile,"x(53)").
  3895. /*
  3896. SUBSTRING(VVesr[08],82) = "H".
  3897. */
  3898. VVesr[08] = BDrucker.Dru10cpi
  3899. + BDrucker.DruLQb
  3900. + CHR(27) + "k" + CHR(05)
  3901. + VVesr[08]
  3902. + CHR(27) + "k" + '0'
  3903. + BDrucker.DruLQe
  3904. + BDrucker.Dru12cpi.
  3905. DO ix = 1 TO 10:
  3906. VZeile = VVesr[ix].
  3907. { v8/putstream.i "1" }
  3908. END.
  3909. LEAVE.
  3910. END.
  3911. END PROCEDURE.
  3912. /* _UIB-CODE-BLOCK-END */
  3913. &ANALYZE-RESUME
  3914. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK04 C-Win
  3915. PROCEDURE VESR_DRUCK04 :
  3916. /*------------------------------------------------------------------------------
  3917. Purpose:
  3918. Parameters: <none>
  3919. Notes:
  3920. ------------------------------------------------------------------------------*/
  3921. DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
  3922. DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
  3923. DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
  3924. DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
  3925. DEF VAR VSZeile AS CHAR FORMAT "x(58)".
  3926. DEF VAR VZeile AS CHAR FORMAT "x(58)".
  3927. DEF VAR XArt AS INT.
  3928. DEF VAR XAnz AS INT.
  3929. DEF VAR XBetr AS CHAR FORMAT "x(20)".
  3930. DEF VAR VESR_P AS CHAR FORMAT "x(02)".
  3931. DEF VAR VESR AS CHAR FORMAT "x(02)".
  3932. DEF VAR XBetrag AS CHAR FORMAT "x(12)".
  3933. FIND Tabel USE-INDEX Tabel-k1
  3934. WHERE Tabel.Firma = GVFirma
  3935. AND Tabel.RecArt = 'FAKDRU'
  3936. AND Tabel.CodeC = 'BESR02'
  3937. AND Tabel.CodeI = 0
  3938. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  3939. IF NOT AVAILABLE Tabel THEN RETURN.
  3940. FIND XSchrift USE-INDEX Schrift-k1
  3941. WHERE XSchrift.Schname = Tabel.Bez1
  3942. AND XSchrift.Schbild = Tabel.Bez2 NO-LOCK NO-ERROR.
  3943. IF NOT AVAILABLE XSchrift THEN RETURN.
  3944. FIND XDrucker USE-INDEX Drucker-k1
  3945. WHERE XDrucker.Drucker = XSchrift.Schdru NO-LOCK NO-ERROR.
  3946. IF NOT AVAILABLE XDrucker THEN RETURN.
  3947. VTempVESR = VTemp + "VESR".
  3948. XSchacht = Tabel.Dec_3.
  3949. OUTPUT STREAM VOut_Stream TO VALUE(VTempVESR).
  3950. DO WHILE TRUE:
  3951. VVesr = ''.
  3952. SUBSTRING(VVesr[03],001) = 'Bank Zimmerberg AG'.
  3953. SUBSTRING(VVesr[03],028) = 'Bank Zimmerberg AG'.
  3954. SUBSTRING(VVesr[04],001) = '8810 Horgen '.
  3955. SUBSTRING(VVesr[04],028) = '8810 Horgen '.
  3956. VVesr[03] = XDrucker.dru12cpi + VVesr[03].
  3957. SUBSTRING(VVesr[07],001) = 'Huber Getränkehandlung AG'.
  3958. SUBSTRING(VVesr[07],028) = 'Huber Getränkehandlung AG'.
  3959. SUBSTRING(VVesr[07],094) = ''.
  3960. SUBSTRING(VVesr[08],001) = 'Allmendstrasse 91'.
  3961. SUBSTRING(VVesr[08],028) = 'Allmendstrasse 91'.
  3962. SUBSTRING(VVesr[09],001) = '8041 Zürich'.
  3963. SUBSTRING(VVesr[09],028) = '8041 Zürich'.
  3964. VVesr[07] = XDrucker.dru12cpi + VVesr[07].
  3965. PZBetrag = ''.
  3966. XBetrag = ''.
  3967. IF Rundbetr < 0 THEN DO:
  3968. PZBetrag = FILL('*', 13).
  3969. PZReferenz = FILL('*', 27).
  3970. PZTNummer = FILL('*', 09).
  3971. XBetrag = FILL('*', 12).
  3972. END.
  3973. ELSE DO:
  3974. IF Rundbetr > 0
  3975. THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
  3976. IF Rundbetr = 0
  3977. THEN PZBetrag = " 04 ".
  3978. PZReferenz = "80401100000"
  3979. + STRING(VesrKnr,"999999")
  3980. + STRING(VesrFnr,"9999999")
  3981. + "00".
  3982. PZTNummer = "01007648".
  3983. IF Rundbetr > 0
  3984. THEN XBetrag = STRING((Rundbetr * 100),"zzzzzz999").
  3985. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
  3986. INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
  3987. END.
  3988. SUBSTRING(VVesr[11],013) = ' 01-7648-2'.
  3989. SUBSTRING(VVesr[11],042) = ' 01-7648-2'.
  3990. SUBSTRING(VVesr[09],059) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  3991. SUBSTRING(VVesr[13],02) = STRING(XBetrag,"X X X X X X X X X").
  3992. SUBSTRING(VVesr[13],26) = STRING(XBetrag,"X X X X X X X X X").
  3993. VVesr[13] = XDrucker.dru10cpi + VVesr[13] + XDrucker.dru12cpi.
  3994. FIND Adresse USE-INDEX Adresse-k1
  3995. WHERE Adresse.Firma = AdFirma
  3996. AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
  3997. SUBSTRING(VVesr[14],59) = Adresse.Anschrift[07].
  3998. SUBSTRING(VVesr[15],59) = Adresse.Anschrift[08].
  3999. SUBSTRING(VVesr[16],59) = Adresse.Anschrift[09].
  4000. SUBSTRING(VVesr[17],59) = Adresse.Anschrift[10].
  4001. SUBSTRING(VVesr[18],59) = Adresse.Anschrift[11].
  4002. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  4003. SUBSTRING(VVesr[15],04) = SUBSTRING(VZeile,01,14).
  4004. SUBSTRING(VVesr[16],01) = SUBSTRING(VZeile,16,17).
  4005. SUBSTRING(VVesr[17],01) = SUBSTRING(Adresse.Anschrift[08],01,25).
  4006. SUBSTRING(VVesr[18],01) = SUBSTRING(Adresse.Anschrift[09],01,25).
  4007. SUBSTRING(VVesr[19],01) = SUBSTRING(Adresse.Anschrift[10],01,25).
  4008. SUBSTRING(VVesr[20],01) = SUBSTRING(Adresse.Anschrift[11],01,25).
  4009. SUBSTRING(VVesr[21],01) = 'H'.
  4010. SUBSTRING(VVesr[21],26) = STRING(VSZeile,"x(53)").
  4011. VVesr[21] = XDrucker.DruInvB
  4012. + VVesr[21]
  4013. + XDrucker.DruInvE.
  4014. VZeile = FILL(CHR(10), Tabel.Int_2).
  4015. PUT STREAM VOut_Stream CONTROL VZeile.
  4016. /* Halbe Zeilenschaltung -------------------------
  4017. PUT STREAM VOut_Stream CONTROL CHR(27) '='.
  4018. */
  4019. DO ix = 1 TO 15:
  4020. VZeile = ''.
  4021. VZeile = ' ' + VBesrKopf[ix] + CHR(10).
  4022. PUT STREAM VOut_Stream CONTROL VZeile.
  4023. END.
  4024. VZeile = FILL(CHR(10), 20).
  4025. PUT STREAM VOut_Stream CONTROL VZeile.
  4026. DO ix = 1 TO 21:
  4027. VZeile = VVesr[ix] + (IF ix < 21 THEN CHR(10) ELSE '').
  4028. PUT STREAM VOut_Stream CONTROL VZeile.
  4029. END.
  4030. LEAVE.
  4031. END.
  4032. OUTPUT STREAM VOut_Stream CLOSE.
  4033. END PROCEDURE.
  4034. /* _UIB-CODE-BLOCK-END */
  4035. &ANALYZE-RESUME
  4036. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK05 C-Win
  4037. PROCEDURE VESR_DRUCK05 :
  4038. /*------------------------------------------------------------------------------
  4039. Purpose:
  4040. Parameters: <none>
  4041. Notes:
  4042. ------------------------------------------------------------------------------*/
  4043. DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
  4044. DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
  4045. DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
  4046. DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
  4047. DEF VAR VSZeile AS CHAR FORMAT "x(58)".
  4048. DEF VAR VZeile AS CHAR FORMAT "x(58)".
  4049. DEF VAR XArt AS INT.
  4050. DEF VAR XAnz AS INT.
  4051. DEF VAR XBetr AS CHAR FORMAT "x(20)".
  4052. DEF VAR VESR_P AS CHAR FORMAT "x(02)".
  4053. DEF VAR VESR AS CHAR FORMAT "x(02)".
  4054. DEF VAR XBetrag AS CHAR FORMAT "x(12)".
  4055. DEF VAR ii AS INT NO-UNDO.
  4056. DO WHILE TRUE:
  4057. { v8/putstream.i "07" }
  4058. VZeile = ''.
  4059. SUBSTRING(VZeile,01) = 'Bank Zimmerberg AG'.
  4060. SUBSTRING(VZeile,29) = 'Bank Zimmerberg AG'.
  4061. { v8/putstream.i "01" }
  4062. SUBSTRING(VZeile,01) = '8810 Horgen '.
  4063. SUBSTRING(VZeile,29) = '8810 Horgen '.
  4064. { v8/putstream.i "02" }
  4065. SUBSTRING(VZeile,01) = 'Huber Getränkehandlung AG'.
  4066. SUBSTRING(VZeile,29) = 'Huber Getränkehandlung AG'.
  4067. { v8/putstream.i "01" }
  4068. SUBSTRING(VZeile,01) = 'Allmendstrasse 91'.
  4069. SUBSTRING(VZeile,29) = 'Allmendstrasse 91'.
  4070. { v8/putstream.i "01" }
  4071. SUBSTRING(VZeile,01) = '8041 Zürich'.
  4072. SUBSTRING(VZeile,29) = '8041 Zürich'.
  4073. { v8/putstream.i "1" }
  4074. PZBetrag = ''.
  4075. IF Rundbetr < 0 THEN DO:
  4076. PZBetrag = FILL('*', 13).
  4077. PZReferenz = FILL('*', 27).
  4078. PZTNummer = FILL('*', 09).
  4079. XBetrag = FILL('*', 12).
  4080. END.
  4081. ELSE DO:
  4082. IF Rundbetr > 0
  4083. THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
  4084. IF Rundbetr = 0
  4085. THEN PZBetrag = " 04 ".
  4086. PZReferenz = "80401100000"
  4087. + STRING(VesrKnr,"999999")
  4088. + STRING(VesrFnr,"9999999")
  4089. + "00".
  4090. PZTNummer = "01007648".
  4091. XBetrag = STRING((Rundbetr * 100),"zzzzzz999").
  4092. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
  4093. INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
  4094. END.
  4095. SUBSTRING(VZeile,061) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  4096. { v8/putstream.i "2" }
  4097. SUBSTRING(VZeile,12) = '01-7648-2'.
  4098. SUBSTRING(VZeile,43) = '01-7648-2'.
  4099. { v8/putstream.i "2" }
  4100. IF Rundbetr <> 0 THEN DO:
  4101. DO ii = 9 TO 1 BY -1:
  4102. IF SUBSTRING(XBetrag,ii,01) <> '' THEN NEXT.
  4103. SUBSTRING(XBetrag,ii) = '-'.
  4104. LEAVE.
  4105. END.
  4106. SUBSTRING(VZeile,01) = STRING(XBetrag," X X X X X X X X X").
  4107. SUBSTRING(VZeile,25) = STRING(XBetrag," X X X X X X X X X").
  4108. END.
  4109. VZeile = BDrucker.Dru10cpi + VZeile + BDrucker.Dru12cpi.
  4110. { v8/putstream.i "1" }
  4111. FIND Adresse USE-INDEX Adresse-k1
  4112. WHERE Adresse.Firma = AdFirma
  4113. AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
  4114. VVesr = "".
  4115. SUBSTRING(VVesr[01],61) = Adresse.Anschrift[07].
  4116. SUBSTRING(VVesr[02],61) = Adresse.Anschrift[08].
  4117. SUBSTRING(VVesr[03],61) = Adresse.Anschrift[09].
  4118. SUBSTRING(VVesr[04],61) = Adresse.Anschrift[10].
  4119. SUBSTRING(VVesr[05],61) = Adresse.Anschrift[11].
  4120. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  4121. SUBSTRING(VVesr[02],10) = SUBSTRING(VZeile,01,14).
  4122. SUBSTRING(VVesr[03],07) = SUBSTRING(VZeile,16,17).
  4123. SUBSTRING(VVesr[04],01) = Adresse.Anschrift[08].
  4124. SUBSTRING(VVesr[05],01) = Adresse.Anschrift[09].
  4125. SUBSTRING(VVesr[06],01) = Adresse.Anschrift[10].
  4126. SUBSTRING(VVesr[07],01) = Adresse.Anschrift[11].
  4127. SUBSTRING(VVesr[08],25) = STRING(VSZeile,"x(53)").
  4128. SUBSTRING(VVesr[08],82) = "H".
  4129. VVesr[08] = BDrucker.DruLQb
  4130. + BDrucker.DruLQe
  4131. + BDrucker.Dru12cpi.
  4132. DO ix = 1 TO 10:
  4133. VZeile = VVesr[ix].
  4134. { v8/putstream.i "1" }
  4135. END.
  4136. LEAVE.
  4137. END.
  4138. END PROCEDURE.
  4139. /* _UIB-CODE-BLOCK-END */
  4140. &ANALYZE-RESUME
  4141. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_ADRESSE C-Win
  4142. PROCEDURE VIPER_ADRESSE :
  4143. /*------------------------------------------------------------------------------
  4144. Purpose:
  4145. Parameters: <none>
  4146. Notes:
  4147. ------------------------------------------------------------------------------*/
  4148. DEF INPUT PARAMETER ipString AS CHAR NO-UNDO.
  4149. DEF VAR cZellen AS CHAR NO-UNDO.
  4150. DEF VAR cWerte AS CHAR NO-UNDO.
  4151. FIND FIRST tDokument
  4152. WHERE tDokument.cGruppe = 'KOPF'
  4153. AND tDokument.iZeile = 1
  4154. AND tDokument.cFeld = 'Seite' NO-ERROR.
  4155. IF NOT AVAILABLE tDokument THEN DO:
  4156. CREATE tDokument.
  4157. ASSIGN tDokument.cGruppe = 'KOPF'
  4158. tDokument.iZeile = 1
  4159. tDokument.cFeld = 'Seite'.
  4160. END.
  4161. tDokument.cInhalt = STRING(VSeite,'z9').
  4162. cZellen = ''.
  4163. cWerte = ''.
  4164. FOR EACH tDokument
  4165. WHERE tDokument.cGruppe = 'Kopf'
  4166. BREAK BY tDokument.cGruppe
  4167. BY tDokument.cFeld:
  4168. cWerte = cWerte
  4169. + tDokument.cInhalt.
  4170. cZellen = cZellen
  4171. + tDokument.cFeld.
  4172. IF NOT LAST-OF ( tDokument.cGruppe ) THEN ASSIGN cWerte = cWerte + CHR(01)
  4173. cZellen = cZellen + ','.
  4174. END.
  4175. RUN vpr_SetDelimiter (CHR(01)).
  4176. RUN vpr_setGroupText ('Kopf', cZellen, cWerte).
  4177. RUN vpr_FlushGroup ('Kopf').
  4178. IF VSeite = 1 AND
  4179. ipString <> 'SammFak' THEN DO:
  4180. cZellen = ''.
  4181. cWerte = ''.
  4182. FOR EACH tDokument
  4183. WHERE tDokument.cGruppe = 'KopfDetail'
  4184. BREAK BY tDokument.cGruppe
  4185. BY tDokument.cFeld:
  4186. cWerte = cWerte
  4187. + tDokument.cInhalt.
  4188. cZellen = cZellen
  4189. + tDokument.cFeld.
  4190. IF NOT LAST-OF ( tDokument.cGruppe ) THEN ASSIGN cWerte = cWerte + CHR(01)
  4191. cZellen = cZellen + ','.
  4192. END.
  4193. RUN vpr_SetDelimiter (CHR(01)).
  4194. RUN vpr_setGroupText ('KopfDetail', cZellen, cWerte).
  4195. RUN vpr_FlushGroup ('KopfDetail').
  4196. END.
  4197. RUN vpr_FlushGroup ('Fusstext').
  4198. RUN vpr_FlushGroup ('Ueberschrift').
  4199. END PROCEDURE.
  4200. /* _UIB-CODE-BLOCK-END */
  4201. &ANALYZE-RESUME
  4202. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_ARTIKELZEILE C-Win
  4203. PROCEDURE VIPER_ARTIKELZEILE :
  4204. /*------------------------------------------------------------------------------
  4205. Purpose:
  4206. Parameters: <none>
  4207. Notes:
  4208. ------------------------------------------------------------------------------*/
  4209. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  4210. DEF VAR cString AS CHAR NO-UNDO.
  4211. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
  4212. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  4213. iArtZeile = iArtZeile + 1.
  4214. DO WHILE Aufze.Artnr = 0:
  4215. cString = Aufze.Bez1.
  4216. IF Aufze.Bez1 <> '' THEN DO:
  4217. cString = cString
  4218. + (IF cString = '' THEN '' ELSE CHR(10))
  4219. + Aufze.Bez2.
  4220. END.
  4221. CREATE tDokument.
  4222. ASSIGN tDokument.cGruppe = 'ArtikelZeile1'
  4223. tDokument.iZeile = iArtZeile
  4224. tDokument.cFeld = 'Bez1'
  4225. tDokument.cInhalt = cString.
  4226. RETURN.
  4227. END.
  4228. FIND Artst OF Aufze NO-LOCK.
  4229. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  4230. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
  4231. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  4232. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  4233. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  4234. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  4235. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'KGebinde', KGebinde.Kbez ).
  4236. IF Aufze.VGeb_Me <> 0 THEN DO:
  4237. cString = STRING(Aufze.VGeb_Me,'->>>>')
  4238. + 'x '
  4239. + VGebinde.KBez.
  4240. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'VGebinde', cString ).
  4241. END.
  4242. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Menge', STRING(Aufze.MGeli,'->>,>>9') ).
  4243. cString = Aufze.Bez1.
  4244. IF Aufze.Bez2 <> '' THEN DO:
  4245. cString = cString
  4246. + (IF cString = '' THEN '' ELSE CHR(10))
  4247. + Aufze.Bez2.
  4248. END.
  4249. IF Aufze.Aktion THEN DO:
  4250. cString = cString
  4251. + (IF cString = '' THEN '' ELSE CHR(10))
  4252. + Aufze.Aktion_Text.
  4253. END.
  4254. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', cString ).
  4255. IF Aufze.Jahr > 9 THEN DO:
  4256. cString = STRING(Aufze.Jahr,"9999").
  4257. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'JG', cString ).
  4258. END.
  4259. IF Aufze.Alk_Gehalt <> 0 THEN DO:
  4260. cString = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  4261. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Alk%', cString ).
  4262. END.
  4263. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', STRING(Aufze.Artnr,"999999") ).
  4264. IF FPreis THEN DO:
  4265. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis' , STRING(Aufze.Preis ,'>,>>9.99') ).
  4266. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', STRING(Aufze.Bru_Betr,'->>>,>>9.99') ).
  4267. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC' , STRING(Aufze.WuCd ,'z9') ).
  4268. END.
  4269. DO WHILE FPreis:
  4270. IF Aufze.Rab_Betr = 0 THEN LEAVE.
  4271. iArtZeile = iArtZeile + 1.
  4272. RabWert = ABSOLUTE(Aufze.Rab_Wert).
  4273. IF Aufze.Rab_Art = 3 THEN RabText = VEpzText.
  4274. ELSE DO:
  4275. IF Aufze.Rab_Betr < 0 THEN RabText = VZusText.
  4276. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText.
  4277. END.
  4278. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(RabText) ).
  4279. IF Aufze.Rab_Art = 1 THEN cString = STRING(RabWert,"->9.9%").
  4280. IF Aufze.Rab_Art = 2 OR
  4281. Aufze.Rab_Art = 3 THEN cString = STRING(RabWert,"-9.99").
  4282. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis', cString ).
  4283. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Aufze.Rab_Betr,"->>>,>>9.99")) ).
  4284. LEAVE.
  4285. END.
  4286. DO WHILE FPreis:
  4287. IF Aufze.Zus_Betr = 0 THEN LEAVE.
  4288. iArtZeile = iArtZeile + 1.
  4289. RabWert = ABSOLUTE(Aufze.Zus_Wert).
  4290. IF Aufze.Zus_Art = 3 THEN RabText = VEpzText.
  4291. ELSE DO:
  4292. IF Aufze.Zus_Betr < 0 THEN RabText = VRabText.
  4293. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText.
  4294. END.
  4295. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(RabText) ).
  4296. IF Aufze.Zus_Art = 1 THEN cString = STRING(RabWert,"->9.9%").
  4297. IF Aufze.Zus_Art = 2 OR
  4298. Aufze.Zus_Art = 3 THEN cString = STRING(RabWert,"-9.99").
  4299. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis', cString ).
  4300. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(+ Aufze.Zus_Betr,"->>>,>>9.99")) ).
  4301. LEAVE.
  4302. END.
  4303. /* ---- Summengruppen-Total -------------------------------------------- */
  4304. IF Aufze.Rab_Su_Grp <> 0 THEN DO:
  4305. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR.
  4306. IF AVAILABLE TRabSumm THEN DO:
  4307. TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab.
  4308. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab.
  4309. END.
  4310. END.
  4311. /* ---- Warengruppen-Totale -------------------------------------------- */
  4312. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp
  4313. AND TUmsGrp.MWst = Aufze.WuCd
  4314. AND TUmsGrp.Ansatz = Aufze.Mwst% NO-ERROR.
  4315. IF NOT AVAILABLE TUmsGrp THEN DO:
  4316. FIND WarenGrp NO-LOCK USE-INDEX WarenGrp-k1
  4317. WHERE WarenGrp.Firma = GVFirma
  4318. AND WarenGrp.Wgr = Artst.Wg_Grp NO-ERROR.
  4319. CREATE TUmsGrp.
  4320. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp
  4321. TUmsGrp.Mwst = Aufze.WuCd
  4322. TUmsGrp.Ansatz = Aufze.MWST%.
  4323. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
  4324. ELSE TUmsGrp.Bez = "??????????".
  4325. END.
  4326. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
  4327. + Aufze.Net_Betr
  4328. - Aufze.Auf_Rab
  4329. - Aufze.Abh_Rab.
  4330. /*
  4331. RUN VIPER_AUSGABE_GRUPPE ( 'ArtikelZeile1' ).
  4332. */
  4333. END PROCEDURE.
  4334. /* _UIB-CODE-BLOCK-END */
  4335. &ANALYZE-RESUME
  4336. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_AUSGABE_ARTIKELZEILE C-Win
  4337. PROCEDURE VIPER_AUSGABE_ARTIKELZEILE :
  4338. /*------------------------------------------------------------------------------
  4339. Purpose:
  4340. Parameters: <none>
  4341. Notes:
  4342. ------------------------------------------------------------------------------*/
  4343. DEF VAR cZellen AS CHAR NO-UNDO.
  4344. DEF VAR cWerte AS CHAR NO-UNDO.
  4345. DEF VAR iPos AS INT NO-UNDO.
  4346. FOR EACH tDokument
  4347. WHERE tDokument.cGruppe = 'ArtikelZeile1'
  4348. BREAK BY tDokument.cGruppe
  4349. BY tDokument.iZeile:
  4350. IF FIRST-OF ( tDokument.cGruppe ) THEN DO:
  4351. iVPagePos = vpr_getPageVPos() + 20.
  4352. RUN vpr_setPageVPos ( iVPagePos ).
  4353. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
  4354. END.
  4355. IF FIRST-OF ( tDokument.iZeile ) THEN DO:
  4356. cZellen = ''.
  4357. cWerte = ''.
  4358. END.
  4359. cWerte = cWerte
  4360. + tDokument.cInhalt.
  4361. cZellen = cZellen
  4362. + tDokument.cFeld.
  4363. IF NOT LAST-OF ( tDokument.iZeile ) THEN DO:
  4364. ASSIGN cWerte = cWerte + CHR(01)
  4365. cZellen = cZellen + ','.
  4366. NEXT.
  4367. END.
  4368. RUN vpr_SetDelimiter (CHR(01)).
  4369. RUN vpr_setGroupText ('ArtikelZeile1', cZellen, cWerte).
  4370. iVPagePos = vpr_getPageVPos().
  4371. iPos = iVPagePos + vpr_getGroupHeight('ArtikelZeile1').
  4372. IF iPos > iVMaxPos THEN DO:
  4373. RUN VIPER_NEUE_SEITE.
  4374. RUN VIPER_ADRESSE ('').
  4375. iVPagePos = vpr_getPageVPos() + 20.
  4376. RUN vpr_setPageVPos ( iVPagePos ).
  4377. RUN vpr_setGroupText ('ArtikelZeile1', cZellen, cWerte).
  4378. END.
  4379. RUN vpr_FlushGroup ('ArtikelZeile1').
  4380. iVPagePos = vpr_getPageVPos().
  4381. IF LAST-OF ( tDokument.cGruppe ) THEN LEAVE.
  4382. iVPagePos = vpr_getPageVPos().
  4383. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
  4384. END.
  4385. FOR EACH tDokument
  4386. WHERE tDokument.cGruppe = 'ArtikelZeile1':
  4387. DELETE tDokument.
  4388. END.
  4389. END PROCEDURE.
  4390. /* _UIB-CODE-BLOCK-END */
  4391. &ANALYZE-RESUME
  4392. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_AUSGABE_GRUPPE C-Win
  4393. PROCEDURE VIPER_AUSGABE_GRUPPE :
  4394. /*------------------------------------------------------------------------------
  4395. Purpose:
  4396. Parameters: <none>
  4397. Notes:
  4398. ------------------------------------------------------------------------------*/
  4399. DEF INPUT PARAMETER ipGruppe AS CHAR NO-UNDO.
  4400. DEF VAR cZellen AS CHAR NO-UNDO.
  4401. DEF VAR cWerte AS CHAR NO-UNDO.
  4402. DEF VAR iSpace AS INT NO-UNDO.
  4403. iSpace = vpr_getPageVPos().
  4404. FOR EACH tDokument NO-LOCK
  4405. WHERE tDokument.cGruppe = ipGruppe
  4406. BREAK BY tDokument.cGruppe
  4407. BY tDokument.iZeile:
  4408. IF FIRST-OF ( tDokument.iZeile ) THEN iSpace = iSpace + 40.
  4409. END.
  4410. IF iSpace > iVMaxPos THEN DO:
  4411. RUN vpr_NewPage.
  4412. RUN vpr_InitGroups('').
  4413. IF iZaehler = iLauf THEN RUN vpr_initGraphObj.
  4414. VSeite = VSeite + 1.
  4415. RUN VIPER_ADRESSE (VDokArt).
  4416. END.
  4417. iVPagePos = vpr_getPageVPos().
  4418. CASE ipGruppe:
  4419. WHEN 'Gebindeabrechnung' THEN DO:
  4420. iVPagePos = iVPagePos + 20.
  4421. RUN vpr_setGroupVPos ( 'GebindeabrechnungTitel', iVPagePos ).
  4422. RUN vpr_FlushGroup ( 'GebindeabrechnungTitel').
  4423. iVPagePos = vpr_getPageVPos().
  4424. END.
  4425. OTHERWISE DO:
  4426. END.
  4427. END CASE.
  4428. FOR EACH tDokument
  4429. WHERE tDokument.cGruppe = ipGruppe
  4430. BREAK BY tDokument.cGruppe
  4431. BY tDokument.iZeile:
  4432. IF FIRST-OF ( tDokument.cGruppe ) THEN DO:
  4433. IF ipGruppe <> 'Kondition' AND
  4434. ipGruppe <> 'BESR' AND
  4435. ipGruppe <> 'ADRESSE' THEN DO:
  4436. iVPagePos = vpr_getPageVPos().
  4437. RUN vpr_setGroupVPos ( ipGruppe, iVPagePos ).
  4438. END.
  4439. END.
  4440. IF FIRST-OF ( tDokument.iZeile ) THEN DO:
  4441. cZellen = ''.
  4442. cWerte = ''.
  4443. END.
  4444. cWerte = cWerte
  4445. + tDokument.cInhalt.
  4446. cZellen = cZellen
  4447. + tDokument.cFeld.
  4448. IF NOT LAST-OF ( tDokument.iZeile ) THEN DO:
  4449. ASSIGN cWerte = cWerte + CHR(01)
  4450. cZellen = cZellen + ','.
  4451. NEXT.
  4452. END.
  4453. RUN vpr_SetDelimiter (CHR(01)).
  4454. RUN vpr_setGroupText (ipGruppe, cZellen, cWerte).
  4455. RUN vpr_FlushGroup (ipGruppe).
  4456. END.
  4457. FOR EACH tDokument
  4458. WHERE tDokument.cGruppe = ipGruppe:
  4459. DELETE tDokument.
  4460. END.
  4461. END PROCEDURE.
  4462. /* _UIB-CODE-BLOCK-END */
  4463. &ANALYZE-RESUME
  4464. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_BESR C-Win
  4465. PROCEDURE VIPER_BESR :
  4466. /*------------------------------------------------------------------------------
  4467. Purpose:
  4468. Parameters: <none>
  4469. Notes:
  4470. ------------------------------------------------------------------------------*/
  4471. DEF INPUT PARAMETER ipDokument AS CHAR NO-UNDO.
  4472. DEF VAR ix AS INT NO-UNDO.
  4473. DEF VAR cFeld AS CHAR NO-UNDO.
  4474. DEF VAR cInhalt AS CHAR NO-UNDO.
  4475. DEF VAR cVorlage AS CHAR NO-UNDO.
  4476. DEF VAR iKopfZeile AS INT NO-UNDO.
  4477. DEF VAR PZBetrag AS CHAR NO-UNDO.
  4478. DEF VAR PZReferenz AS CHAR NO-UNDO.
  4479. DEF VAR PZTNNummer AS CHAR NO-UNDO.
  4480. DEF VAR cReferenz AS CHAR NO-UNDO.
  4481. DEF VAR cInstall AS CHAR NO-UNDO.
  4482. IF Rundbetr < 0 THEN RETURN.
  4483. RUN vpr_NewPage.
  4484. cInstall = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR.
  4485. cVorlage = cInstall + '/' + ipDokument + '.vfr'.
  4486. RUN vpr_LoadVFR (cVorlage).
  4487. RUN vpr_ActivateReport (ipDokument).
  4488. RUN vpr_SetDocAttrib ( "PAPERSIZE=A4").
  4489. RUN vpr_InitGroups ("").
  4490. RUN vpr_initGraphObj.
  4491. IF VSchachtBesr > 0 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtBesr ).
  4492. RUN vpr_SetGroupAttrib ("ADRESSE", "Fixed=true").
  4493. RUN vpr_SetGroupAttrib ("BESR" , "Fixed=true").
  4494. FIND Adresse NO-LOCK USE-INDEX Adresse-k1
  4495. WHERE Adresse.Firma = AdFirma
  4496. AND Adresse.Knr = BAufko.Fak_Knr NO-ERROR.
  4497. iKopfZeile = 1.
  4498. VBesrKopf = ''.
  4499. IF BAufko.Adresse[05] <> '' THEN DO:
  4500. i1 = 6.
  4501. DO ix = 1 TO 5:
  4502. CREATE tDokument.
  4503. ASSIGN tDokument.cGruppe = 'ADRESSE'
  4504. tDokument.iZeile = 1
  4505. tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99')
  4506. tDokument.cInhalt = BAufko.Adresse[ix].
  4507. i1 = i1 + 1.
  4508. VBesrKopf[i1] = BAufko.Adresse[ix].
  4509. END.
  4510. END.
  4511. ELSE DO:
  4512. DO ix = 6 TO 11:
  4513. CREATE tDokument.
  4514. ASSIGN tDokument.cGruppe = 'ADRESSE'
  4515. tDokument.iZeile = 1
  4516. tDokument.cFeld = 'Adresse_' + STRING(ix,'99')
  4517. tDokument.cInhalt = Adresse.Anschrift[ix].
  4518. VBesrKopf[ix] = Adresse.Anschrift[ix].
  4519. END.
  4520. END.
  4521. DO ix = 6 TO 11:
  4522. CREATE tDokument.
  4523. ASSIGN tDokument.cGruppe = 'BESR'
  4524. tDokument.iZeile = 1
  4525. tDokument.cFeld = 'Adresse_R_' + STRING(ix,'99')
  4526. tDokument.cInhalt = VBesrKopf[ix].
  4527. IF ix < 7 THEN NEXT.
  4528. CREATE tDokument.
  4529. ASSIGN tDokument.cGruppe = 'BESR'
  4530. tDokument.iZeile = 1
  4531. tDokument.cFeld = 'Adresse_L_' + STRING(ix,'99')
  4532. tDokument.cInhalt = VBesrKopf[ix].
  4533. END.
  4534. IF Rundbetr > 0.00 THEN DO:
  4535. cFeld = STRING(Rundbetr,'zzzzzz9.99').
  4536. cFeld = REPLACE(cFeld, '.', ' ').
  4537. cFeld = STRING(cFeld,'X X X X X X X X X X').
  4538. END.
  4539. ELSE cFeld = ''.
  4540. RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Betrag_L', cFeld ).
  4541. RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Betrag_R', cFeld ).
  4542. IF Rundbetr > 0 THEN PZBetrag = '01' + STRING(Rundbetr * 100,'9999999999 ').
  4543. ELSE PZBetrag = ' 04 '.
  4544. PZReferenz = '80401100000'
  4545. + STRING(bAufko.Fak_Knr,'999999')
  4546. + '0'
  4547. + STRING(bAufko.Faknr ,'999999')
  4548. + '00'.
  4549. PZTNNummer = '01007648'.
  4550. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag, INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNNummer, OUTPUT cReferenz ).
  4551. RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Referenz_OCRB', cReferenz ).
  4552. RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Referenz_R', STRING(PZReferenz,'XX XXXXX XXXXX XXXXX XXXXX XXXXX') ).
  4553. RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Referenz_L', STRING(PZReferenz,'XX XXXXX XXXXX XXXXX XXXXX XXXXX') ).
  4554. RUN VIPER_AUSGABE_GRUPPE ( 'ADRESSE' ).
  4555. RUN VIPER_AUSGABE_GRUPPE ( 'BESR' ).
  4556. END PROCEDURE.
  4557. /* _UIB-CODE-BLOCK-END */
  4558. &ANALYZE-RESUME
  4559. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_CREATE_DOKUMENT C-Win
  4560. PROCEDURE VIPER_CREATE_DOKUMENT :
  4561. /*------------------------------------------------------------------------------
  4562. Purpose:
  4563. Parameters: <none>
  4564. Notes:
  4565. ------------------------------------------------------------------------------*/
  4566. DEF INPUT PARAMETER ipGruppe AS CHAR NO-UNDO.
  4567. DEF INPUT PARAMETER ipZeile AS INT NO-UNDO.
  4568. DEF INPUT PARAMETER ipFeld AS CHAR NO-UNDO.
  4569. DEF INPUT PARAMETER ipInhalt AS CHAR NO-UNDO.
  4570. CREATE tDokument.
  4571. ASSIGN tDokument.cGruppe = ipGruppe
  4572. tDokument.iZeile = ipZeile
  4573. tDokument.cFeld = ipFeld
  4574. tDokument.cInhalt = ipInhalt.
  4575. END PROCEDURE.
  4576. /* _UIB-CODE-BLOCK-END */
  4577. &ANALYZE-RESUME
  4578. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_INIT C-Win
  4579. PROCEDURE VIPER_INIT :
  4580. /*------------------------------------------------------------------------------
  4581. Purpose:
  4582. Parameters: <none>
  4583. Notes:
  4584. ------------------------------------------------------------------------------*/
  4585. DEF INPUT PARAMETER ipDokument AS CHAR NO-UNDO.
  4586. DEF VAR cVorlage AS CHAR NO-UNDO.
  4587. DEF VAR cZellen AS CHAR NO-UNDO.
  4588. DEF VAR cZelle AS CHAR NO-UNDO.
  4589. DEF VAR cGruppe AS CHAR NO-UNDO.
  4590. DEF VAR ii AS INT NO-UNDO.
  4591. DEF VAR cInstall AS CHAR NO-UNDO.
  4592. cInstall = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR.
  4593. IF NOT ipDokument BEGINS 'Samm' THEN DO:
  4594. cVorlage = cInstall + '/' + ipDokument + '.vfr'.
  4595. cvpr_Dokument = ipDokument + '.vpr'.
  4596. RUN vpr_LoadVFR (cVorlage).
  4597. RUN vpr_ActivateReport (ipDokument).
  4598. RUN vpr_SelectPrinter (F_Drucker).
  4599. RUN vpr_setPrinterAttrib("duplex=1").
  4600. RUN vpr_ResetDoc.
  4601. RUN vpr_SetDocAttrib ( "PAPERSIZE=A4").
  4602. RUN vpr_SetPreviewMode ('Direct').
  4603. RUN vpr_setDocTitle ( ipDokument ).
  4604. RUN vpr_InitGroups ("").
  4605. RUN vpr_initGraphObj.
  4606. END.
  4607. ELSE DO:
  4608. IF iZaehler = 1 THEN DO:
  4609. cVorlage = cInstall + '/' + ipDokument + '.vfr'.
  4610. cvpr_Dokument = ipDokument + '.vpr'.
  4611. RUN vpr_LoadVFR (cVorlage).
  4612. RUN vpr_ActivateReport (ipDokument).
  4613. RUN vpr_SelectPrinter (F_Drucker).
  4614. RUN vpr_setPrinterAttrib("duplex=1").
  4615. RUN vpr_ResetDoc.
  4616. RUN vpr_SetDocAttrib ( "PAPERSIZE=A4").
  4617. RUN vpr_SetPreviewMode ('Direct').
  4618. RUN vpr_setDocTitle ( ipDokument ).
  4619. IF VSchachtOrig > 0 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtOrig ).
  4620. END.
  4621. ELSE DO:
  4622. RUN vpr_NewPage.
  4623. IF VSchachtKopi > 0 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtKopi ).
  4624. END.
  4625. RUN vpr_InitGroups("").
  4626. IF iZaehler = iLauf THEN RUN vpr_InitGraphObj.
  4627. END.
  4628. RUN vpr_SetGroupAttrib ("Kopf" , "Fixed=true").
  4629. RUN vpr_SetGroupAttrib ("Fusstext" , "Fixed=true").
  4630. RUN vpr_SetGroupAttrib ("Kondition", "Fixed=true").
  4631. CASE ipDokument:
  4632. WHEN 'Faktura' OR
  4633. WHEN 'SammFak' THEN iVMaxPos = 2600.
  4634. OTHERWISE iVMaxPos = 2650.
  4635. END CASE.
  4636. END PROCEDURE.
  4637. /* _UIB-CODE-BLOCK-END */
  4638. &ANALYZE-RESUME
  4639. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_NEUE_SEITE C-Win
  4640. PROCEDURE VIPER_NEUE_SEITE :
  4641. /*------------------------------------------------------------------------------
  4642. Purpose:
  4643. Parameters: <none>
  4644. Notes:
  4645. ------------------------------------------------------------------------------*/
  4646. DEF VAR iPos AS INT NO-UNDO.
  4647. DO WHILE TRUE:
  4648. IF VSeite = 0 THEN DO:
  4649. RUN vpr_InitGroups('').
  4650. IF iZaehler = iLauf THEN RUN vpr_initGraphObj.
  4651. VSeite = VSeite + 1.
  4652. LEAVE.
  4653. END.
  4654. IF VDokArt = 'SammFak' THEN DO:
  4655. iPos = vpr_getPageVPos().
  4656. IF (iPos + 160) < iVMaxPos THEN DO:
  4657. iPos = iPos + 20.
  4658. RUN vpr_setPageVPos ( iPos ).
  4659. LEAVE.
  4660. END.
  4661. END.
  4662. RUN vpr_NewPage.
  4663. RUN vpr_InitGroups('').
  4664. IF iZaehler = 1 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtOrig ).
  4665. ELSE RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtKopi ).
  4666. IF iZaehler = iLauf THEN RUN vpr_initGraphObj.
  4667. VSeite = VSeite + 1.
  4668. LEAVE.
  4669. END.
  4670. END PROCEDURE.
  4671. /* _UIB-CODE-BLOCK-END */
  4672. &ANALYZE-RESUME
  4673. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_RUECKSTAND C-Win
  4674. PROCEDURE VIPER_RUECKSTAND :
  4675. /*------------------------------------------------------------------------------
  4676. Purpose:
  4677. Parameters: <none>
  4678. Notes:
  4679. ------------------------------------------------------------------------------*/
  4680. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  4681. DEF VAR cString AS CHAR NO-UNDO.
  4682. FIND tRueckst WHERE RECID(tRueckst) = ipRecid NO-LOCK.
  4683. FIND Aufze WHERE RECID(Aufze) = tRueckst.Zeile NO-LOCK.
  4684. iArtZeile = iArtZeile + 1.
  4685. DO WHILE Aufze.Artnr = 0:
  4686. CREATE tDokument.
  4687. ASSIGN tDokument.cGruppe = 'ArtikelZeile1'
  4688. tDokument.iZeile = iArtZeile
  4689. tDokument.cFeld = 'Bez1'
  4690. tDokument.cInhalt = Aufze.Bez1.
  4691. IF Aufze.Bez2 <> '' THEN DO:
  4692. iArtZeile = iArtZeile + 1.
  4693. CREATE tDokument.
  4694. ASSIGN tDokument.cGruppe = 'ArtikelZeile1'
  4695. tDokument.iZeile = iArtZeile
  4696. tDokument.cFeld = 'Bez1'
  4697. tDokument.cInhalt = Aufze.Bez2.
  4698. END.
  4699. RETURN.
  4700. END.
  4701. FIND Artst OF Aufze NO-LOCK.
  4702. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  4703. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  4704. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  4705. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  4706. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'KGebinde', KGebinde.Kbez ).
  4707. IF Aufze.VGeb_Ru <> 0 THEN DO:
  4708. cString = STRING(Aufze.VGeb_Ru,'->>>>')
  4709. + 'x '
  4710. + VGebinde.KBez.
  4711. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'VGebinde', cString ).
  4712. END.
  4713. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Menge', STRING(Aufze.MRuek,'->>,>>9') ).
  4714. cString = Aufze.Bez1.
  4715. IF Aufze.Bez2 <> '' THEN cString = cString
  4716. + (IF cString = '' THEN '' ELSE CHR(10))
  4717. + Aufze.Bez2.
  4718. IF Aufze.Aktion THEN cString = cString
  4719. + (IF cString = '' THEN '' ELSE CHR(10))
  4720. + Aufze.Aktion_Text.
  4721. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', cString ).
  4722. IF Aufze.Jahr > 9 THEN DO:
  4723. cString = STRING(Aufze.Jahr,"9999").
  4724. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'JG', cString ).
  4725. END.
  4726. IF Aufze.Alk_Gehalt <> 0 THEN DO:
  4727. cString = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  4728. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Alk%', cString ).
  4729. END.
  4730. /*
  4731. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', STRING(Aufze.Artnr,"999999") ).
  4732. IF FPreis THEN DO:
  4733. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis', STRING(Aufze.Preis,'>,>>9.999') ).
  4734. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', STRING(Aufze.Bru_Betr ,'->>>,>>9.99') ).
  4735. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC', STRING(Aufze.WuCd,'z9') ).
  4736. END.
  4737. */
  4738. RUN VIPER_AUSGABE_GRUPPE ( 'ArtikelZeile1' ).
  4739. END PROCEDURE.
  4740. /* _UIB-CODE-BLOCK-END */
  4741. &ANALYZE-RESUME
  4742. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WIRTESONNTAG C-Win
  4743. PROCEDURE WIRTESONNTAG :
  4744. /*------------------------------------------------------------------------------
  4745. Purpose:
  4746. Parameters: <none>
  4747. Notes:
  4748. ------------------------------------------------------------------------------*/
  4749. XWirtesonntag = ''.
  4750. FIND Tabel USE-INDEX Tabel-k1
  4751. WHERE Tabel.Firma = GVFirma
  4752. AND Tabel.RecArt = 'WISO'
  4753. AND Tabel.CodeC = ''
  4754. AND Tabel.CodeI = BAufko.Wirt_So
  4755. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  4756. IF NOT AVAILABLE Tabel THEN DO:
  4757. XWirtesonntag = BAufko.Wirt_So_Text.
  4758. RETURN.
  4759. END.
  4760. IF LENGTH(Tabel.Bez1) > 4 THEN XWirtesonntag = Tabel.Bez1.
  4761. IF BAufko.Wirt_So_Text <> '' THEN DO:
  4762. IF XWirtesonntag <> '' THEN XWirtesonntag = XWirtesonntag + " / ".
  4763. XWirtesonntag = XWirtesonntag + BAufko.Wirt_So_Text.
  4764. END.
  4765. END PROCEDURE.
  4766. /* _UIB-CODE-BLOCK-END */
  4767. &ANALYZE-RESUME
  4768. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WORKFILE C-Win
  4769. PROCEDURE WORKFILE :
  4770. /*------------------------------------------------------------------------------
  4771. Purpose:
  4772. Parameters: <none>
  4773. Notes:
  4774. ------------------------------------------------------------------------------*/
  4775. FIND BSchrift NO-LOCK USE-INDEX Schrift-k1
  4776. WHERE BSchrift.Schname = BLiDruck.ListDru
  4777. AND BSchrift.Schbild = BLiDruck.ListBild NO-ERROR.
  4778. FIND BDrucker NO-LOCK USE-INDEX Drucker-k1
  4779. WHERE BDrucker.Drucker = BSchrift.Schdru NO-ERROR.
  4780. DOpen = FALSE.
  4781. VTemp = ''.
  4782. IF AVAILABLE bDrucker THEN DO:
  4783. IF BDrucker.Emul = 'TERMINAL' THEN DO:
  4784. FOR EACH XTermOut:
  4785. DELETE XTermOut.
  4786. END.
  4787. VZNr = 0.
  4788. RETURN.
  4789. END.
  4790. END.
  4791. lViper = TRUE.
  4792. CASE VDokArt:
  4793. WHEN 'RUESTSCHEIN' THEN lViper = FALSE.
  4794. WHEN 'BESR' THEN lViper = FALSE.
  4795. WHEN 'PALETTEN' OR
  4796. WHEN 'LADEPAPIER' THEN lViper = FALSE.
  4797. WHEN 'BESR02' OR
  4798. WHEN 'BESR04' THEN lViper = FALSE.
  4799. END.
  4800. IF lViper THEN RETURN.
  4801. DO WHILE TRUE TRANSACTION:
  4802. FIND Tabel USE-INDEX Tabel-k1
  4803. WHERE Tabel.Firma = GVFirma
  4804. AND Tabel.RecArt = 'TEMPFILE'
  4805. AND Tabel.CodeI = 0
  4806. AND Tabel.CodeC = 'AUFTRAG'
  4807. AND Tabel.Sprcd = 1 NO-ERROR.
  4808. IF NOT AVAILABLE Tabel THEN DO:
  4809. CREATE Tabel.
  4810. ASSIGN Tabel.Firma = GVFirma
  4811. Tabel.RecArt = 'TEMPFILE'
  4812. Tabel.CodeI = 0
  4813. Tabel.CodeC = 'AUFTRAG'
  4814. Tabel.Sprcd = 1.
  4815. END.
  4816. ASSIGN Tabel.Bez1 = SESSION:TEMP-DIR
  4817. Tabel.Int_1 = Tabel.Int_1 + 1.
  4818. VTemp = Tabel.Bez1 + 'Faktura' + STRING(Tabel.Int_1) + '.tmp'.
  4819. RELEASE Tabel.
  4820. LEAVE.
  4821. END.
  4822. DOpen = TRUE.
  4823. END PROCEDURE.
  4824. /* _UIB-CODE-BLOCK-END */
  4825. &ANALYZE-RESUME