| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742 |
- &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI
- &ANALYZE-RESUME
- /* Connected Databases
- anadat PROGRESS
- */
- &Scoped-define WINDOW-NAME C-Win
- /* Temp-Table and Buffer definitions */
- DEFINE NEW SHARED TEMP-TABLE XTermOut NO-UNDO LIKE TermOut.
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS C-Win
- /*------------------------------------------------------------------------
- File:
- Description:
- Input Parameters:
- <none>
- Output Parameters:
- <none>
- Author:
- Created:
- ------------------------------------------------------------------------*/
- /* This .W file was created with the Progress UIB. */
- /*----------------------------------------------------------------------*/
- /* Create an unnamed pool to store all the widgets created
- by this procedure. This is a good default which assures
- that this procedure's triggers and internal procedures
- will execute in this procedure's storage, and that proper
- cleanup will occur on deletion of the procedure. */
- CREATE WIDGET-POOL.
- /* *************************** Definitions ************************** */
- /* Parameters Definitions --- */
- /* Local Variable Definitions --- */
- DEF VAR DruckFlag AS LOG NO-UNDO.
- DEF VAR FDrucken AS LOG NO-UNDO.
- DEF VAR TRecid AS RECID NO-UNDO.
- DEF VAR RabText AS CHAR NO-UNDO.
- DEF VAR RabWert AS DEC NO-UNDO.
- DEF VAR VFak_Betr AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR GTWpfl AS DEC EXTENT 12 NO-UNDO.
- DEF VAR DTWpfl AS DEC EXTENT 12 NO-UNDO.
- DEF VAR GTWust AS DEC EXTENT 12 NO-UNDO.
- DEF VAR DWpfl AS DEC EXTENT 12 NO-UNDO.
- DEF VAR GTFak_Betr AS DEC NO-UNDO.
- DEF VAR GTSk_Ber AS DEC NO-UNDO.
- DEF VAR SFaknr AS INT NO-UNDO.
- DEF VAR FLetzt AS LOG NO-UNDO.
- DEF VAR FErste AS LOG NO-UNDO.
- DEF VAR VZeile AS CHAR FORMAT "x(250)" NO-UNDO.
- DEF VAR RZeile AS CHAR FORMAT "x(250)" NO-UNDO.
- DEF VAR LiKopf AS LOG NO-UNDO.
- DEF VAR StBreite AS INT NO-UNDO.
- DEF VAR VWC AS INT NO-UNDO.
- DEF VAR VZTot AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR FDatum AS DATE FORMAT "99.99.9999" NO-UNDO.
- DEF VAR VFaknr AS INT NO-UNDO.
- DEF VAR VesrKnr AS INT NO-UNDO.
- DEF VAR VesrFnr AS INT NO-UNDO.
- DEF VAR VBesr AS INT NO-UNDO.
- DEF VAR VRabText AS CHAR FORMAT "x(20)" NO-UNDO.
- DEF VAR VZusText AS CHAR FORMAT "x(20)" NO-UNDO.
- DEF VAR VEpzText AS CHAR FORMAT "x(20)" NO-UNDO.
- DEF VAR VTabTexte LIKE TabTexte.Inhalt NO-UNDO.
- DEF VAR XVersand AS CHAR NO-UNDO.
- DEF VAR XAblade AS CHAR NO-UNDO.
- DEF VAR XWirtesonntag AS CHAR NO-UNDO.
- DEF VAR XAuf_Text LIKE Aufko.Auf_Text NO-UNDO.
- DEF VAR XTelnr LIKE Aufko.Auf_Text NO-UNDO.
- DEF VAR VTemp AS CHAR FORMAT "x(100)" NO-UNDO.
- DEF VAR VDokart AS CHAR NO-UNDO.
- DEF VAR FPreis AS LOG NO-UNDO.
- DEF VAR WW AS DEC EXTENT 12 NO-UNDO.
- DEF VAR SK AS DEC EXTENT 12 NO-UNDO.
- DEF VAR VDetail AS DEC EXTENT 20 NO-UNDO.
- DEF VAR VNetto AS DEC EXTENT 20 NO-UNDO.
- DEF VAR VPreis_Grp AS INT NO-UNDO.
- DEF VAR VPreis AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR VBetrag AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR VAnkTot AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR VDetTot AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR VSchacht AS INT NO-UNDO.
- DEF VAR cTextArt AS CHAR NO-UNDO.
- DEF VAR fBatch AS LOG NO-UNDO.
- DEF VAR VKopf AS CHAR FORMAT "x(100)" EXTENT 20 NO-UNDO.
- DEF VAR VBesrKopf AS CHAR FORMAT "x(100)" EXTENT 20 NO-UNDO.
- DEF VAR iSeiZZ AS INT NO-UNDO.
- DEF VAR cSeiZeile AS CHAR NO-UNDO.
- DEF VAR cUSER AS CHAR NO-UNDO.
- DEF VAR cBenutzer AS CHAR NO-UNDO.
- DEF VAR FBetrag AS LOG NO-UNDO.
- DEF VAR FRabatt AS LOG NO-UNDO.
- DEF VAR FUeber AS LOG NO-UNDO.
- DEF VAR FSamm AS LOG NO-UNDO.
- DEF VAR FLagOrt AS LOG NO-UNDO.
- DEF VAR VKopfArt AS CHAR NO-UNDO.
- DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
- DEF VAR ExZeile AS INT NO-UNDO.
- DEF VAR lRuestText AS LOG NO-UNDO.
- DEF VAR iLauf AS INT NO-UNDO.
- DEF VAR lViper AS LOG INIT TRUE NO-UNDO.
- DEF VAR iZaehler AS INT NO-UNDO.
- DEF VAR cTray AS CHAR EXTENT 10 NO-UNDO.
- DEF VAR iCodeI AS INT NO-UNDO.
- DEF VAR VSchachtOrig AS INT NO-UNDO.
- DEF VAR VSchachtKopi AS INT NO-UNDO.
- DEF VAR VSchachtBesr AS INT NO-UNDO.
- DEF VAR FormText AS CHAR FORMAT "x(80)" EXTENT 40.
- DEF BUFFER BAufko FOR Savko.
- DEF BUFFER XAufko FOR Savko.
- DEF BUFFER BAufze FOR Savze.
- DEF BUFFER BAufGebKo FOR SavGebKo.
- DEF BUFFER FDebst FOR Debst.
- DEF BUFFER LDebst FOR Debst.
- DEF BUFFER BTabel FOR Tabel.
- DEF BUFFER TFakart FOR Tabel.
- DEF BUFFER TAufsta FOR Tabel.
- DEF BUFFER BAdresse FOR Adresse.
- DEF BUFFER LAdresse FOR Adresse.
- DEF BUFFER Aufko FOR Savko.
- DEF BUFFER Aufze FOR Savze.
- DEF BUFFER AufGebKo FOR SavGebKo.
- DEF BUFFER AufGKon FOR SavGKon.
- DEF BUFFER AufRabSu FOR SavRabSu.
- DEF BUFFER AufSpRab FOR SavSpRab.
- DEF VAR DebInkl AS LOG NO-UNDO.
- DEF VAR VWg_Grp AS INT INIT 0 NO-UNDO.
- DEF VAR VProd_Grp AS INT INIT 0 NO-UNDO.
- DEF VAR VArt_Grp AS INT INIT 0 NO-UNDO.
- DEF VAR AArtnr AS INT INIT 0 NO-UNDO.
- DEF VAR AInhalt AS INT INIT 0 NO-UNDO.
- DEF VAR AJahr AS INT INIT 0 NO-UNDO.
- DEF TEMP-TABLE tAdresse NO-UNDO LIKE Adresse.
- DEF TEMP-TABLE tAufze FIELD Aufnr AS INT
- FIELD Sort1 AS CHAR
- FIELD Sort2 AS CHAR
- FIELD Sort3 AS CHAR
- FIELD Artnr AS INT
- FIELD Inhalt AS INT
- FIELD Jahr AS INT
- FIELD Pos AS INT
- FIELD Zeile AS RECID
- FIELD Preis AS DEC DECIMALS 4
- FIELD Aktion AS LOG
- FIELD LagOrt AS CHAR
- FIELD MGeli AS DEC
- FIELD MRuek AS DEC
- INDEX tSavze-k1 IS PRIMARY
- Aufnr
- Sort1
- Sort2
- Sort3.
- DEF TEMP-TABLE TGebKto FIELD Sort_Cd AS CHAR
- FIELD Geb_Cd AS CHAR
- FIELD Bez AS CHAR
- FIELD Preis AS DEC
- FIELD A_Anz AS DEC
- FIELD A_Betrag AS DEC
- FIELD E_Anz AS DEC
- FIELD E_Betrag AS DEC
- FIELD MWST_Art AS INT
- FIELD MWST_Cd AS INT.
-
- DEF TEMP-TABLE TRabSumm FIELD Rab_Summ AS INT
- FIELD Bez AS CHAR
- FIELD F_Rab_Art AS INT
- FIELD F_Wert AS DEC DECIMALS 4
- FIELD A_Rab_Art AS INT
- FIELD A_Wert AS DEC DECIMALS 4
- FIELD Auf_Rab AS DEC DECIMALS 4
- FIELD Abh_Rab AS DEC DECIMALS 4.
- DEF TEMP-TABLE TUmsGrp FIELD Ums_Grp AS INT
- FIELD Mwst AS INT
- FIELD Ansatz AS DEC
- FIELD Bez AS CHAR
- FIELD Ums_Betr AS DEC DECIMALS 4.
-
- DEF TEMP-TABLE TGebuehr FIELD MWST_Cd AS INT
- FIELD Anz AS DEC
- FIELD Betrag AS DEC.
- DEF TEMP-TABLE SAMMFAK FIELD Knr AS INT
- FIELD Samm_Nr AS INT
- FIELD Aufnr AS INT
- FIELD RID AS RECID.
- DEF TEMP-TABLE TSpeRab FIELD Rab_Grp AS INT
- FIELD Auf_Betr AS DEC DECIMALS 4.
-
- DEF TEMP-TABLE TFiliale FIELD Fak_Knr AS INT
- FIELD Lie_Knr AS INT
- FIELD Det_Preis AS DEC DECIMALS 4
- FIELD Net_Preis AS DEC DECIMALS 4
- FIELD MWST_Cd AS INT
- FIELD Faknr AS INT.
- DEF TEMP-TABLE TMonat FIELD Lie_Knr AS INT
- FIELD Artnr AS INT
- FIELD Inhalt AS INT
- FIELD Jahr AS INT
- FIELD Det_Preis AS DEC DECIMALS 4
- FIELD Net_Preis AS DEC DECIMALS 4
- FIELD MWST_Cd AS INT
- FIELD Faknr AS INT
- FIELD Fak_Knr AS INT.
-
- DEF TEMP-TABLE TMonGeb FIELD Knr AS INT
- FIELD MWST_Cd AS INT
- FIELD Betrag AS DEC DECIMALS 4.
- DEF TEMP-TABLE tTexte FIELD Pos AS INT
- FIELD cText1 AS CHAR
- FIELD cText2 AS CHAR
- FIELD iRecid AS RECID.
-
- DEF TEMP-TABLE tRueckst LIKE tAufze.
- DEF TEMP-TABLE tViper NO-UNDO
- FIELD cGruppe AS CHAR
- FIELD cName AS CHAR
- FIELD iHoehe AS INT
- FIELD iBreite AS INT
- FIELD cInhalt AS CHAR.
-
- DEF VAR cvpr_Dokument AS CHAR NO-UNDO.
- DEF VAR iArtZeile AS INT NO-UNDO.
- DEF VAR iVPagePos AS INT NO-UNDO.
- DEF VAR iVGroupPos AS INT NO-UNDO.
- DEF VAR iVMaxPos AS INT INIT 2650 NO-UNDO.
- DEF TEMP-TABLE tTabTexte
- FIELD cRecArt AS CHAR
- FIELD iZeile AS INT
- FIELD cFeld1 AS CHAR
- FIELD cFeld2 AS CHAR
- FIELD cFeld3 AS CHAR
- FIELD iFeld1 AS INT
- FIELD iFeld2 AS INT
- FIELD iFeld3 AS INT
-
- INDEX tTabTexte-k1 IS PRIMARY
- cRecArt
- iZeile.
- DEF TEMP-TABLE tDrucker NO-UNDO
- FIELD cDrucker AS CHAR.
-
- DEF TEMP-TABLE tDokument
- FIELD cGruppe AS CHAR
- FIELD iZeile AS INT
- FIELD cFeld AS CHAR
- FIELD cInhalt AS CHAR
-
- INDEX tDokument-k1 IS PRIMARY
- cGruppe
- iZeile
- cFeld.
- DEF BUFFER XSchrift FOR Schrift.
- DEF BUFFER XDrucker FOR Drucker.
- DEF TEMP-TABLE tPdf
- FIELD cDokName AS CHAR.
- DEF VAR VTempVESR AS CHAR FORMAT "x(100)" NO-UNDO.
- DEF VAR XSchacht AS INT NO-UNDO.
- DEF STREAM VIn_Stream.
- DEF STREAM VOut_Stream.
- /* ---------- Globale Variablen ---------------------------------- */
- { v8/globvar.i " " " " "SHARED" }
- { v8/debivar.i " " " " "SHARED" }
- { v8/artivar.i " " " " "SHARED" }
- { v8/contvar.i " " " " "SHARED" }
- { v8/listtitv.i "NEW" "SHARED" }
- { v8/aufkototv.i "NEW" "SHARED" }
- { windows.i }
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
- /* ******************** Preprocessor Definitions ******************** */
- &Scoped-define PROCEDURE-TYPE Window
- &Scoped-define DB-AWARE no
- /* Name of designated FRAME-NAME and/or first browse and/or first query */
- &Scoped-define FRAME-NAME DEFAULT-FRAME
- /* Standard List Definitions */
- &Scoped-Define ENABLED-OBJECTS RECT-1 F_Drucker E_Adresse F_Schrift F_Tzz ~
- F_Kzz F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite F_Papier ~
- Btn_Drucken Btn_Abbrechen
- &Scoped-Define DISPLAYED-OBJECTS F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz ~
- F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite F_Papier
- /* Custom List Definitions */
- /* List-1,List-2,List-3,List-4,List-5,List-6 */
- &Scoped-define List-1 F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz ~
- F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite F_Papier
- /* _UIB-PREPROCESSOR-BLOCK-END */
- &ANALYZE-RESUME
- /* *********************** Control Definitions ********************** */
- /* Define the widget handle for the window */
- DEFINE VAR C-Win AS WIDGET-HANDLE NO-UNDO.
- /* Definitions of the field level widgets */
- DEFINE BUTTON Btn_Abbrechen
- LABEL "&Abbrechen"
- SIZE 15 BY 1.
- DEFINE BUTTON Btn_Drucken
- LABEL "&Drucken"
- SIZE 15 BY 1.
- DEFINE VARIABLE E_Adresse AS CHARACTER
- VIEW-AS EDITOR MAX-CHARS 1000
- SIZE 45 BY 6.19
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Aufnr AS INTEGER FORMAT "zzzzzz9":U INITIAL 0
- LABEL "Auftragsnummer"
- VIEW-AS FILL-IN NATIVE
- SIZE 13 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U
- LABEL "Fakturadatum"
- VIEW-AS FILL-IN NATIVE
- SIZE 16 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Dokart AS CHARACTER FORMAT "x(50)":U
- LABEL "Dokumentart"
- VIEW-AS FILL-IN NATIVE
- SIZE 28 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Drucker AS CHARACTER FORMAT "x(50)":U
- LABEL "Drucker"
- VIEW-AS FILL-IN NATIVE
- SIZE 40 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Faknr AS INTEGER FORMAT "zzzzzzz":U INITIAL 0
- LABEL "Fakturanummer"
- VIEW-AS FILL-IN NATIVE
- SIZE 13 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Fzz AS INTEGER FORMAT "zz9":U INITIAL 0
- LABEL "Leere Fusszeilen"
- VIEW-AS FILL-IN NATIVE
- SIZE 7 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_KOPIE AS INTEGER FORMAT "zz9":U INITIAL 0
- LABEL "Anz. Kopien"
- VIEW-AS FILL-IN NATIVE
- SIZE 7 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Kzz AS INTEGER FORMAT "zz9":U INITIAL 0
- LABEL "Leere Kopfzeilen"
- VIEW-AS FILL-IN NATIVE
- SIZE 7 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Papier AS CHARACTER FORMAT "x(50)":U
- LABEL "Auftragspapier"
- VIEW-AS FILL-IN NATIVE
- SIZE 45 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Schrift AS CHARACTER FORMAT "x(50)":U
- LABEL "Schriftbild"
- VIEW-AS FILL-IN NATIVE
- SIZE 40 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Seite AS INTEGER FORMAT "zz9":U INITIAL 0
- LABEL "Seite"
- VIEW-AS FILL-IN NATIVE
- SIZE 7 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Tzz AS INTEGER FORMAT "zz9":U INITIAL 0
- LABEL "Total Zeilen"
- VIEW-AS FILL-IN NATIVE
- SIZE 7 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE RECTANGLE RECT-1
- EDGE-PIXELS 3 GRAPHIC-EDGE NO-FILL
- SIZE 116 BY 12.14.
- /* ************************ Frame Definitions *********************** */
- DEFINE FRAME DEFAULT-FRAME
- F_Drucker AT ROW 2 COL 21 COLON-ALIGNED
- E_Adresse AT ROW 2 COL 70 NO-LABEL NO-TAB-STOP
- F_Schrift AT ROW 3 COL 21 COLON-ALIGNED
- F_Tzz AT ROW 4 COL 21 COLON-ALIGNED
- F_Kzz AT ROW 5 COL 21 COLON-ALIGNED
- F_Fzz AT ROW 6 COL 21 COLON-ALIGNED
- F_Aufnr AT ROW 7 COL 21 COLON-ALIGNED
- F_KOPIE AT ROW 7 COL 53 COLON-ALIGNED
- F_Faknr AT ROW 8 COL 21 COLON-ALIGNED
- F_Datum AT ROW 9 COL 21 COLON-ALIGNED
- F_Dokart AT ROW 9 COL 68 COLON-ALIGNED
- F_Seite AT ROW 9 COL 106 COLON-ALIGNED
- F_Papier AT ROW 10 COL 68 COLON-ALIGNED
- Btn_Drucken AT ROW 11.52 COL 70
- Btn_Abbrechen AT ROW 11.52 COL 100
- RECT-1 AT ROW 1.48 COL 3
- WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
- SIDE-LABELS NO-UNDERLINE THREE-D
- AT COL 1 ROW 1
- SIZE 126.41 BY 13.85
- DEFAULT-BUTTON Btn_Drucken CANCEL-BUTTON Btn_Abbrechen.
- /* *********************** Procedure Settings ************************ */
- &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
- /* Settings for THIS-PROCEDURE
- Type: Window
- Allow: Basic,Browse,DB-Fields,Window,Query
- Other Settings: COMPILE
- Temp-Tables and Buffers:
- TABLE: XTermOut T "NEW SHARED" NO-UNDO AnaDat TermOut
- END-TABLES.
- */
- &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
- /* ************************* Create Window ************************** */
- &ANALYZE-SUSPEND _CREATE-WINDOW
- IF SESSION:DISPLAY-TYPE = "GUI":U THEN
- CREATE WINDOW C-Win ASSIGN
- HIDDEN = YES
- TITLE = "Drucken von Auftragsdokumenten"
- HEIGHT = 12.86
- WIDTH = 120.6
- MAX-HEIGHT = 26.57
- MAX-WIDTH = 203
- VIRTUAL-HEIGHT = 26.57
- VIRTUAL-WIDTH = 203
- RESIZE = yes
- SCROLL-BARS = no
- STATUS-AREA = no
- BGCOLOR = ?
- FGCOLOR = ?
- KEEP-FRAME-Z-ORDER = yes
- THREE-D = yes
- MESSAGE-AREA = no
- SENSITIVE = yes.
- ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
- /* END WINDOW DEFINITION */
- &ANALYZE-RESUME
- /* *********** Runtime Attributes and AppBuilder Settings *********** */
- &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
- /* SETTINGS FOR WINDOW C-Win
- VISIBLE,,RUN-PERSISTENT */
- /* SETTINGS FOR FRAME DEFAULT-FRAME
- FRAME-NAME */
- /* SETTINGS FOR EDITOR E_Adresse IN FRAME DEFAULT-FRAME
- 1 */
- ASSIGN
- E_Adresse:RETURN-INSERTED IN FRAME DEFAULT-FRAME = TRUE
- E_Adresse:READ-ONLY IN FRAME DEFAULT-FRAME = TRUE.
- /* SETTINGS FOR FILL-IN F_Aufnr IN FRAME DEFAULT-FRAME
- 1 */
- /* SETTINGS FOR FILL-IN F_Datum IN FRAME DEFAULT-FRAME
- 1 */
- /* SETTINGS FOR FILL-IN F_Dokart IN FRAME DEFAULT-FRAME
- 1 */
- /* SETTINGS FOR FILL-IN F_Drucker IN FRAME DEFAULT-FRAME
- 1 */
- /* SETTINGS FOR FILL-IN F_Faknr IN FRAME DEFAULT-FRAME
- 1 */
- /* SETTINGS FOR FILL-IN F_Fzz IN FRAME DEFAULT-FRAME
- 1 */
- /* SETTINGS FOR FILL-IN F_KOPIE IN FRAME DEFAULT-FRAME
- 1 */
- /* SETTINGS FOR FILL-IN F_Kzz IN FRAME DEFAULT-FRAME
- 1 */
- /* SETTINGS FOR FILL-IN F_Papier IN FRAME DEFAULT-FRAME
- 1 */
- /* SETTINGS FOR FILL-IN F_Schrift IN FRAME DEFAULT-FRAME
- 1 */
- /* SETTINGS FOR FILL-IN F_Seite IN FRAME DEFAULT-FRAME
- 1 */
- /* SETTINGS FOR FILL-IN F_Tzz IN FRAME DEFAULT-FRAME
- 1 */
- IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win)
- THEN C-Win:HIDDEN = no.
- /* _RUN-TIME-ATTRIBUTES-END */
- &ANALYZE-RESUME
-
- /* ************************ Control Triggers ************************ */
- &Scoped-define SELF-NAME C-Win
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win
- ON END-ERROR OF C-Win /* Drucken von Auftragsdokumenten */
- OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
- /* This case occurs when the user presses the "Esc" key.
- In a persistently run window, just ignore this. If we did not, the
- application would exit. */
- IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win
- ON WINDOW-CLOSE OF C-Win /* Drucken von Auftragsdokumenten */
- DO:
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME Btn_Abbrechen
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Abbrechen C-Win
- ON CHOOSE OF Btn_Abbrechen IN FRAME DEFAULT-FRAME /* Abbrechen */
- DO:
- DruckFlag = FALSE.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME Btn_Drucken
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Drucken C-Win
- ON CHOOSE OF Btn_Drucken IN FRAME DEFAULT-FRAME /* Drucken */
- DO:
- DruckFlag = TRUE.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME E_Adresse
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL E_Adresse C-Win
- ON ENTRY OF E_Adresse IN FRAME DEFAULT-FRAME
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Aufnr
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Aufnr C-Win
- ON ENTRY OF F_Aufnr IN FRAME DEFAULT-FRAME /* Auftragsnummer */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Datum
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum C-Win
- ON ENTRY OF F_Datum IN FRAME DEFAULT-FRAME /* Fakturadatum */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Dokart
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Dokart C-Win
- ON ENTRY OF F_Dokart IN FRAME DEFAULT-FRAME /* Dokumentart */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Drucker
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Drucker C-Win
- ON ENTRY OF F_Drucker IN FRAME DEFAULT-FRAME /* Drucker */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Faknr
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Faknr C-Win
- ON ENTRY OF F_Faknr IN FRAME DEFAULT-FRAME /* Fakturanummer */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Fzz
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Fzz C-Win
- ON ENTRY OF F_Fzz IN FRAME DEFAULT-FRAME /* Leere Fusszeilen */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Kzz
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Kzz C-Win
- ON ENTRY OF F_Kzz IN FRAME DEFAULT-FRAME /* Leere Kopfzeilen */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Papier
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Papier C-Win
- ON ENTRY OF F_Papier IN FRAME DEFAULT-FRAME /* Auftragspapier */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Schrift
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Schrift C-Win
- ON ENTRY OF F_Schrift IN FRAME DEFAULT-FRAME /* Schriftbild */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Seite
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Seite C-Win
- ON ENTRY OF F_Seite IN FRAME DEFAULT-FRAME /* Seite */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Tzz
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Tzz C-Win
- ON ENTRY OF F_Tzz IN FRAME DEFAULT-FRAME /* Total Zeilen */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &UNDEFINE SELF-NAME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK C-Win
- /* *************************** Main Block *************************** */
- /* Set CURRENT-WINDOW: this will parent dialog-boxes and frames. */
- ASSIGN CURRENT-WINDOW = {&WINDOW-NAME}
- THIS-PROCEDURE:CURRENT-WINDOW = {&WINDOW-NAME}.
- ON CLOSE OF THIS-PROCEDURE RUN disable_UI.
- PAUSE 0 BEFORE-HIDE.
- /* ASSIGN cTray[01] = '261' */
- /* cTray[02] = '260' */
- /* cTray[03] = '259' */
- /* cTray[04] = '258' */
- /* cTray[05] = '257'. */
- /* ASSIGN cTray[01] = '259' */
- /* cTray[02] = '260' */
- /* cTray[03] = '261' */
- /* cTray[04] = '258' */
- /* cTray[05] = '257'. */
- MAIN-BLOCK:
- DO ON ERROR UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK
- ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK:
-
- RUN enable_UI.
-
- FDrucken = TRUE.
- DruckFlag = TRUE.
- cUSER = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR.
- cBenutzer = DYNAMIC-FUNCTION('getBenutzer':U) NO-ERROR.
-
- FIND BSteuer USE-INDEX Steuer-k1
- WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR.
- { vpr.i INIT }
- { vpr.i START }
-
- EMPTY TEMP-TABLE tPDF.
- iCodeI = -1.
- VERARBEITEN:
- DO WHILE FDrucken:
- FIND FIRST Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = GVFirma
- AND Tabel.RecArt = 'AUFDRUCK'
- AND Tabel.CodeC = cUSER
- AND Tabel.CodeI > iCodeI
- AND Tabel.Bez1 = '' NO-ERROR.
- IF NOT AVAILABLE Tabel THEN DO:
- FIND FIRST Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = GVFirma
- AND Tabel.RecArt = 'AUFDRUCK'
- AND Tabel.CodeC = cBenutzer
- AND Tabel.CodeI > iCodeI
- AND Tabel.Bez1 = '' NO-ERROR.
- END.
- IF NOT AVAILABLE Tabel THEN DO:
- FDrucken = FALSE.
- NEXT.
- END.
- TRecid = RECID(Tabel).
- iCodeI = Tabel.CodeI.
-
- REPEAT TRANSACTION:
- FIND BTabel EXCLUSIVE-LOCK
- WHERE RECID(BTabel) = TRecid NO-WAIT NO-ERROR.
- IF AVAILABLE BTabel THEN DO:
- BTabel.Bez1 = 'A'.
- RELEASE BTabel.
- LEAVE.
- END.
- IF LOCKED BTabel THEN DO:
- PAUSE 1 NO-MESSAGE.
- RELEASE BTabel.
- NEXT VERARBEITEN.
- END.
- TRecid = 0.
- LEAVE.
- END.
- IF TRecid = 0 THEN NEXT.
- FIND Tabel WHERE RECID(Tabel) = TRecid NO-LOCK.
- RUN DRUCKEN.
- IF RETURN-VALUE <> '' AND
- RETURN-VALUE <> 'ERROR' THEN NEXT.
-
- REPEAT TRANSACTION:
- FIND BTabel WHERE RECID(BTabel) = TRecid NO-ERROR.
- DELETE BTabel.
- RELEASE BTabel.
- LEAVE.
- END.
- RELEASE Tabel.
- RELEASE BTabel.
- END.
- DYNAMIC-FUNCTION('setBatch':U, FALSE) NO-ERROR.
-
- REPEAT TRANSACTION:
- FOR EACH Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = GVFirma
- AND Tabel.RecArt = 'AUFDRUCK'
- AND Tabel.CodeC = cUSER
- AND Tabel.Bez1 = 'A':
- TRecid = RECID(Tabel).
- FIND BTabel WHERE RECID(BTabel) = TRecid NO-ERROR.
- BTabel.Bez1 = ''.
- RELEASE bTabel.
- END.
- FOR EACH Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = GVFirma
- AND Tabel.RecArt = 'AUFDRUCK'
- AND Tabel.CodeC = cBenutzer
- AND Tabel.Bez1 = 'A':
- TRecid = RECID(Tabel).
- FIND BTabel WHERE RECID(BTabel) = TRecid NO-ERROR.
- BTabel.Bez1 = ''.
- RELEASE bTabel.
- END.
- RELEASE Tabel.
- RELEASE bTabel.
- LEAVE.
- END.
- { vpr.i STOP }
- APPLY 'GO' TO FRAME {&FRAME-NAME}.
- APPLY 'CLOSE' TO THIS-PROCEDURE.
- RETURN.
- END.
- PROCEDURE ShellExecuteA EXTERNAL "shell32.dll" :
- DEFINE INPUT PARAMETER lphwnd AS LONG.
- DEFINE INPUT PARAMETER lpOperation AS CHAR.
- DEFINE INPUT PARAMETER lpFile AS CHAR.
- DEFINE INPUT PARAMETER lpParameters AS CHAR.
- DEFINE INPUT PARAMETER lpDirectory AS CHAR.
- DEFINE INPUT PARAMETER nShowCmd AS LONG.
- DEFINE RETURN PARAMETER hInstance AS LONG.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ********************** Internal Procedures *********************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ABLADEVORSCHRIFT C-Win
- PROCEDURE ABLADEVORSCHRIFT :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- XAblade = ''.
- FIND Tabel USE-INDEX Tabel-k1
- WHERE Tabel.Firma = GVFirma
- AND Tabel.RecArt = 'ABLAD'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = BAufko.Ablad_Vor
- AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Tabel THEN DO:
- XAblade = BAufko.Ablad_Vor_Text.
- RETURN.
- END.
-
- IF LENGTH(Tabel.Bez1) > 4 THEN XAblade = Tabel.Bez1.
- IF BAufko.Ablad_Vor_Text <> '' THEN DO:
- IF XAblade <> '' THEN XAblade = XAblade + " / ".
- XAblade = XAblade + BAufko.Ablad_Vor_Text.
- END.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE C-Win
- PROCEDURE ARTIKELZEILE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DO WHILE Aufze.Artnr = 0:
- SUBSTRING(VZeile,015) = STRING(Aufze.Bez1,"x(30)").
- { v8/putstream.i "1" }
- IF Aufze.Bez2 <> '' THEN DO:
- VZeile = RZeile.
- SUBSTRING(VZeile,015) = STRING(Aufze.Bez2,"x(30)").
- { v8/putstream.i "1" }
- END.
- RETURN.
- END.
-
- FIND Artst OF Aufze NO-LOCK.
-
- FIND GGebinde WHERE GGebinde.Firma = GVFirma
- AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
- FIND VGebinde WHERE VGebinde.Firma = GVFirma
- AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
- FIND KGebinde WHERE KGebinde.Firma = GVFirma
- AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
- SUBSTRING(VZeile,008) = STRING(Aufze.Artnr ,"999999").
- SUBSTRING(VZeile,015) = STRING(Aufze.Bez1 ,"x(30)").
- SUBSTRING(VZeile,045) = STRING(KGebinde.KBez,"x(08)").
- IF Aufze.VGeb_Me <> 0 THEN DO:
- SUBSTRING(VZeile,053) = STRING(Aufze.VGeb_Me,"->>9x ")
- + STRING(VGebinde.KBez,"x(06)").
- END.
- SUBSTRING(VZeile,066) = STRING(Aufze.MGeli ,"->>>9").
-
- IF Aufze.Alk_Gehalt <> 0 THEN DO:
- SUBSTRING(VZeile,038) = STRING(Aufze.Alk_Gehalt,"zz9.9%").
- END.
- IF Aufze.Jahr > 9 THEN DO:
- SUBSTRING(VZeile,041) = ' '
- + SUBSTRING(STRING(Aufze.Jahr,"9999"),03).
- END.
- IF FPreis THEN DO:
- SUBSTRING(VZeile,072) = STRING(Aufze.Preis ,"zz9.999").
- SUBSTRING(VZeile,081) = STRING(Aufze.Bru_Betr ,"->>,>>9.99").
- SUBSTRING(VZeile,092) = STRING(Aufze.WuCd ,"z9").
- END.
- { v8/putstream.i "1" }
-
- IF Aufze.Bez2 <> '' THEN DO:
- SUBSTRING(VZeile,015) = STRING(Aufze.Bez2,"x(30)").
- { v8/putstream.i "1" }
- END.
-
- IF Aufze.Aktion THEN DO:
- SUBSTRING(VZeile,015) = STRING(Aufze.Aktion_Text,"x(30)").
- { v8/putstream.i "1" }
- END.
- DO WHILE FPreis:
- IF Aufze.Rab_Betr = 0 THEN LEAVE.
-
- RabWert = ABSOLUTE(Aufze.Rab_Wert).
- IF Aufze.Rab_Art = 3 THEN RabText = VEpzText.
- ELSE DO:
- IF Aufze.Rab_Betr < 0 THEN RabText = VZusText.
- IF Aufze.Rab_Betr > 0 THEN RabText = VRabText.
- END.
- SUBSTRING(VZeile,015) = TRIM(RabText).
-
- IF Aufze.Rab_Art = 1
- THEN SUBSTRING(VZeile,035) = STRING(RabWert,"->9.9 %").
-
- IF Aufze.Rab_Art = 2 OR
- Aufze.Rab_Art = 3
- THEN SUBSTRING(VZeile,035) = STRING(RabWert,"-9.99 Fr.").
-
- SUBSTRING(VZeile,081) = STRING(- Aufze.Rab_Betr ,"->>,>>9.99").
- { v8/putstream.i "1" }
- LEAVE.
- END.
-
- DO WHILE FPreis:
- IF Aufze.Zus_Betr = 0 THEN LEAVE.
-
- RabWert = ABSOLUTE(Aufze.Zus_Wert).
- IF Aufze.Zus_Art = 3 THEN RabText = VEpzText.
- ELSE DO:
- IF Aufze.Zus_Betr < 0 THEN RabText = VRabText.
- IF Aufze.Zus_Betr > 0 THEN RabText = VZusText.
- END.
- SUBSTRING(VZeile,015) = TRIM(RabText).
-
- IF Aufze.Zus_Art = 1
- THEN SUBSTRING(VZeile,035) = STRING(RabWert,"->9.9 %").
-
- IF Aufze.Zus_Art = 2 OR
- Aufze.Zus_Art = 3
- THEN SUBSTRING(VZeile,035) = STRING(RabWert,"-9.99 Fr.").
-
- SUBSTRING(VZeile,081) = STRING(+ Aufze.Zus_Betr ,"->>,>>9.99").
- { v8/putstream.i "1" }
- LEAVE.
- END.
-
- /* ---- Summengruppen-Total -------------------------------------------- */
-
- IF Aufze.Rab_Su_Grp <> 0 THEN DO:
- FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR.
- IF AVAILABLE TRabSumm THEN DO:
- TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab.
- TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab.
- END.
- END.
-
- /* ---- Warengruppen-Totale -------------------------------------------- */
-
- FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp
- AND TUmsGrp.MWst = Aufze.WuCd NO-ERROR.
- IF NOT AVAILABLE TUmsGrp THEN DO:
- FIND WarenGrp USE-INDEX WarenGrp-k1
- WHERE WarenGrp.Firma = GVFirma
- AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR.
- CREATE TUmsGrp.
- ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp
- TUmsGrp.Mwst = Aufze.WuCd.
- IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
- ELSE TUmsGrp.Bez = "??????????".
- END.
-
- TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
- + Aufze.Net_Betr
- - Aufze.Auf_Rab
- - Aufze.Abh_Rab.
- RETURN.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_NEU C-Win
- PROCEDURE ARTIKELZEILE_NEU :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
- FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
- FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
-
- DO WHILE Aufze.Artnr = 0:
- SUBSTRING(VZeile,044) = STRING(Aufze.Bez1,"x(30)").
- { v8/putstream.i "1" }
- IF Aufze.Bez2 <> '' THEN DO:
- VZeile = RZeile.
- SUBSTRING(VZeile,044) = STRING(Aufze.Bez2,"x(30)").
- { v8/putstream.i "1" }
- END.
- RETURN.
- END.
- FIND Artst OF Aufze NO-LOCK.
-
- FIND GGebinde WHERE GGebinde.Firma = GVFirma
- AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
- FIND VGebinde WHERE VGebinde.Firma = GVFirma
- AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
- FIND KGebinde WHERE KGebinde.Firma = GVFirma
- AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
- SUBSTRING(VZeile,008) = STRING(KGebinde.KBez,"x(10)").
- IF Aufze.VGeb_Me <> 0 THEN DO:
- SUBSTRING(VZeile,019) = STRING(Aufze.VGeb_Me,'->>>')
- + 'x '
- + STRING(VGebinde.KBez,'x(10)').
- END.
- SUBSTRING(VZeile,035) = STRING(Aufze.MGeli ,"->>,>>9").
- SUBSTRING(VZeile,044) = STRING(Aufze.Bez1 ,"x(30)").
- IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,073) = STRING(Aufze.Jahr,"9999").
- IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,078) = STRING(Aufze.Alk_Gehalt,"zz9.9%").
- SUBSTRING(VZeile,086) = STRING(Aufze.Artnr ,"999999").
- IF FPreis THEN DO:
- SUBSTRING(VZeile,095) = STRING(Aufze.Preis ,">,>>9.999").
- SUBSTRING(VZeile,104) = STRING(Aufze.Bru_Betr ,"->>>,>>9.99").
- SUBSTRING(VZeile,116) = STRING(Aufze.WuCd ,"z9").
- END.
- VZeile = SUBSTRING(VZeile,001,018)
- + BDrucker.Drufettb
- + SUBSTRING(VZeile,019,016)
- + BDrucker.Drufette
- + SUBSTRING(VZeile,035).
- { v8/putstream.i "1" }
-
- IF Aufze.Bez2 <> '' THEN DO:
- SUBSTRING(VZeile,044) = STRING(Aufze.Bez2,"x(30)").
- { v8/putstream.i "1" }
- END.
- IF Aufze.Aktion THEN DO:
- SUBSTRING(VZeile,044) = STRING(Aufze.Aktion_Text,"x(30)").
- { v8/putstream.i "1" }
- END.
- DO WHILE FPreis:
- IF Aufze.Rab_Betr = 0 THEN LEAVE.
-
- RabWert = ABSOLUTE(Aufze.Rab_Wert).
- IF Aufze.Rab_Art = 3 THEN RabText = VEpzText.
- ELSE DO:
- IF Aufze.Rab_Betr < 0 THEN RabText = VZusText.
- IF Aufze.Rab_Betr > 0 THEN RabText = VRabText.
- END.
- SUBSTRING(VZeile,044) = TRIM(RabText).
-
- IF Aufze.Rab_Art = 1
- THEN SUBSTRING(VZeile,099) = STRING(RabWert,"->9.9%").
-
- IF Aufze.Rab_Art = 2 OR
- Aufze.Rab_Art = 3
- THEN SUBSTRING(VZeile,099) = STRING(RabWert,"-9.99").
-
- SUBSTRING(VZeile,104) = STRING(- Aufze.Rab_Betr ,"->>>,>>9.99").
- { v8/putstream.i "1" }
- LEAVE.
- END.
-
- DO WHILE FPreis:
- IF Aufze.Zus_Betr = 0 THEN LEAVE.
-
- RabWert = ABSOLUTE(Aufze.Zus_Wert).
- IF Aufze.Zus_Art = 3 THEN RabText = VEpzText.
- ELSE DO:
- IF Aufze.Zus_Betr < 0 THEN RabText = VRabText.
- IF Aufze.Zus_Betr > 0 THEN RabText = VZusText.
- END.
- SUBSTRING(VZeile,044) = TRIM(RabText).
-
- IF Aufze.Zus_Art = 1
- THEN SUBSTRING(VZeile,099) = STRING(RabWert,"->9.9%").
-
- IF Aufze.Zus_Art = 2 OR
- Aufze.Zus_Art = 3
- THEN SUBSTRING(VZeile,099) = STRING(RabWert,"-9.99").
-
- SUBSTRING(VZeile,104) = STRING(+ Aufze.Zus_Betr ,"->>>,>>9.99").
- { v8/putstream.i "1" }
- LEAVE.
- END.
-
- /* ---- Summengruppen-Total -------------------------------------------- */
-
- IF Aufze.Rab_Su_Grp <> 0 THEN DO:
- FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR.
- IF AVAILABLE TRabSumm THEN DO:
- TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab.
- TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab.
- END.
- END.
-
- /* ---- Warengruppen-Totale -------------------------------------------- */
-
- FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp
- AND TUmsGrp.MWst = Aufze.WuCd NO-ERROR.
- IF NOT AVAILABLE TUmsGrp THEN DO:
- FIND WarenGrp USE-INDEX WarenGrp-k1
- WHERE WarenGrp.Firma = GVFirma
- AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR.
- CREATE TUmsGrp.
- ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp
- TUmsGrp.Mwst = Aufze.WuCd.
- IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
- ELSE TUmsGrp.Bez = "??????????".
- END.
-
- TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
- + Aufze.Net_Betr
- - Aufze.Auf_Rab
- - Aufze.Abh_Rab.
- IF Aufze.MRuek > 0 THEN DO:
- CREATE tRueckst.
- BUFFER-COPY tAufze TO tRueckst.
- END.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_RUECKSTAND C-Win
- PROCEDURE ARTIKELZEILE_RUECKSTAND :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
- FIND tRueckst WHERE RECID(tRueckst) = ipRecid NO-LOCK.
- FIND Aufze WHERE RECID(Aufze) = tRueckst.Zeile NO-LOCK.
-
- FIND Artst OF Aufze NO-LOCK.
-
- FIND VGebinde WHERE VGebinde.Firma = GVFirma
- AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
- FIND KGebinde WHERE KGebinde.Firma = GVFirma
- AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
-
- SUBSTRING(VZeile,008) = STRING(KGebinde.KBez,"x(10)").
- IF Aufze.VGeb_Ru <> 0 THEN DO:
- SUBSTRING(VZeile,019) = STRING(Aufze.VGeb_Ru,'->>>')
- + 'x '
- + STRING(VGebinde.KBez,'x(10)').
- END.
- SUBSTRING(VZeile,035) = STRING(Aufze.MRuek ,"->>,>>9").
- SUBSTRING(VZeile,044) = STRING(Aufze.Bez1 ,"x(30)").
- IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,073) = STRING(Aufze.Jahr,"9999").
- IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,078) = STRING(Aufze.Alk_Gehalt,"zz9.9%").
-
- SUBSTRING(VZeile,086) = STRING(Aufze.Artnr ,"999999").
- VZeile = SUBSTRING(VZeile,001,018)
- + BDrucker.Drufettb
- + SUBSTRING(VZeile,019,016)
- + BDrucker.Drufette
- + SUBSTRING(VZeile,035).
- { v8/putstream.i "1" }
- IF Aufze.Bez2 <> '' THEN DO:
- SUBSTRING(VZeile,044) = STRING(Aufze.Bez2,"x(30)").
- { v8/putstream.i "1" }
- END.
- IF Aufze.Aktion THEN DO:
- SUBSTRING(VZeile,044) = STRING(Aufze.Aktion_Text,"x(30)").
- { v8/putstream.i "1" }
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_SAMMFAK C-Win
- PROCEDURE ARTIKELZEILE_SAMMFAK :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
- FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
- FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
-
- DO WHILE Aufze.Artnr = 0:
- SUBSTRING(VZeile,042) = STRING(Aufze.Bez1,"x(30)").
- { v8/putstream.i "1" }
- IF Aufze.Bez2 <> '' THEN DO:
- VZeile = RZeile.
- SUBSTRING(VZeile,042) = STRING(Aufze.Bez2,"x(30)").
- { v8/putstream.i "1" }
- END.
- RETURN.
- END.
-
- FIND Artst OF Aufze NO-LOCK.
-
- FIND GGebinde WHERE GGebinde.Firma = GVFirma
- AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
- FIND VGebinde WHERE VGebinde.Firma = GVFirma
- AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
- FIND KGebinde WHERE KGebinde.Firma = GVFirma
- AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
-
- SUBSTRING(VZeile,006) = STRING(KGebinde.KBez,"x(10)").
- IF Aufze.VGeb_Me <> 0 THEN DO:
- SUBSTRING(VZeile,017) = STRING(Aufze.VGeb_Me,'->>>')
- + 'x '
- + STRING(VGebinde.KBez,'x(10)').
- END.
- SUBSTRING(VZeile,033) = STRING(Aufze.MGeli ,"->>,>>9").
- SUBSTRING(VZeile,042) = STRING(Aufze.Bez1 ,"x(30)").
- IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,073) = STRING(Aufze.Jahr,"9999").
- IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,078) = STRING(Aufze.Alk_Gehalt,"zz9.9%").
- SUBSTRING(VZeile,086) = STRING(Aufze.Artnr ,"999999").
- IF FPreis THEN DO:
- SUBSTRING(VZeile,093) = STRING(Aufze.Preis ,">,>>9.999").
- SUBSTRING(VZeile,102) = STRING(Aufze.Bru_Betr ,"->>>,>>9.99").
- SUBSTRING(VZeile,114) = STRING(Aufze.WuCd ,"z9").
- END.
- VZeile = SUBSTRING(VZeile,001,018)
- + BDrucker.Drufettb
- + SUBSTRING(VZeile,019,016)
- + BDrucker.Drufette
- + SUBSTRING(VZeile,035).
- { v8/putstream.i "1" }
- IF Aufze.Bez2 <> '' THEN DO:
- SUBSTRING(VZeile,042) = STRING(Aufze.Bez2,"x(30)").
- { v8/putstream.i "1" }
- END.
- IF Aufze.Aktion THEN DO:
- SUBSTRING(VZeile,042) = STRING(Aufze.Aktion_Text,"x(30)").
- { v8/putstream.i "1" }
- END.
- DO WHILE FPreis:
- IF Aufze.Rab_Betr = 0 THEN LEAVE.
-
- RabWert = ABSOLUTE(Aufze.Rab_Wert).
- IF Aufze.Rab_Art = 3 THEN RabText = VEpzText.
- ELSE DO:
- IF Aufze.Rab_Betr < 0 THEN RabText = VZusText.
- IF Aufze.Rab_Betr > 0 THEN RabText = VRabText.
- END.
- SUBSTRING(VZeile,042) = TRIM(RabText).
-
- IF Aufze.Rab_Art = 1
- THEN SUBSTRING(VZeile,097) = STRING(RabWert,"->9.9%").
-
- IF Aufze.Rab_Art = 2 OR
- Aufze.Rab_Art = 3
- THEN SUBSTRING(VZeile,097) = STRING(RabWert,"-9.99").
-
- SUBSTRING(VZeile,102) = STRING(- Aufze.Rab_Betr ,"->>>,>>9.99").
- { v8/putstream.i "1" }
- LEAVE.
- END.
-
- DO WHILE FPreis:
- IF Aufze.Zus_Betr = 0 THEN LEAVE.
-
- RabWert = ABSOLUTE(Aufze.Zus_Wert).
- IF Aufze.Zus_Art = 3 THEN RabText = VEpzText.
- ELSE DO:
- IF Aufze.Zus_Betr < 0 THEN RabText = VRabText.
- IF Aufze.Zus_Betr > 0 THEN RabText = VZusText.
- END.
- SUBSTRING(VZeile,042) = TRIM(RabText).
-
- IF Aufze.Zus_Art = 1
- THEN SUBSTRING(VZeile,097) = STRING(RabWert,"->9.9%").
-
- IF Aufze.Zus_Art = 2 OR
- Aufze.Zus_Art = 3
- THEN SUBSTRING(VZeile,097) = STRING(RabWert,"-9.99").
-
- SUBSTRING(VZeile,102) = STRING(+ Aufze.Zus_Betr ,"->>>,>>9.99").
- { v8/putstream.i "1" }
- LEAVE.
- END.
-
- /* ---- Summengruppen-Total -------------------------------------------- */
-
- IF Aufze.Rab_Su_Grp <> 0 THEN DO:
- FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR.
- IF AVAILABLE TRabSumm THEN DO:
- TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab.
- TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab.
- END.
- END.
-
- /* ---- Warengruppen-Totale -------------------------------------------- */
-
- FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp
- AND TUmsGrp.MWst = Aufze.WuCd NO-ERROR.
- IF NOT AVAILABLE TUmsGrp THEN DO:
- FIND WarenGrp USE-INDEX WarenGrp-k1
- WHERE WarenGrp.Firma = GVFirma
- AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR.
- CREATE TUmsGrp.
- ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp
- TUmsGrp.Mwst = Aufze.WuCd.
- IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
- ELSE TUmsGrp.Bez = "??????????".
- END.
-
- TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
- + Aufze.Net_Betr
- - Aufze.Auf_Rab
- - Aufze.Abh_Rab.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BAR-CODE-39 C-Win
- PROCEDURE BAR-CODE-39 :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipWert AS CHAR NO-UNDO.
- DEF INPUT PARAMETER ipCodeArt AS CHAR NO-UNDO.
- DEF OUTPUT PARAMETER opBarCode AS CHAR NO-UNDO.
- DEF VAR clr AS LOG INIT TRUE NO-UNDO.
- DEF VAR wk AS CHAR NO-UNDO.
- DEF VAR drw AS CHAR NO-UNDO.
- DEF VAR cDir AS CHAR NO-UNDO.
- DEF VAR k AS CHAR NO-UNDO.
- DEF VAR att AS CHAR NO-UNDO.
- DEF VAR kod AS CHAR NO-UNDO
- INIT "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.Ø *$/+%".
- att =
- "100100001001100001101100000000110001100110000001110000000100101100100100"
- + "001100100000110100100001001001001001101001000000011001100011000001011000"
- + "000001101100001100001001100000011100100000011001000011101000010000010011"
- + "100010010001010010000000111100000110001000110000010110110000001011000001"
- + "111000000010010001110010000011010000010000101110000100011000100010010100"
- + "010101000010100010010001010000101010".
- DEF VAR i AS INT NO-UNDO.
- DEF VAR j AS INT NO-UNDO.
- DEF VAR l AS INT NO-UNDO.
- DEF VAR brd AS INT NO-UNDO.
- DEF VAR jst AS INT NO-UNDO.
- ASSIGN i = (IF SUBSTRING (ipCodeArt, 1, 1) = "P" THEN 1 ELSE 2)
- opBarCode = "~E&f0S~E*c100G"
- drw = SUBSTRING("ab" , i, 1)
- + SUBSTRING(ipCodeArt, 6)
- + SUBSTRING("ba" , i, 1)
- + "P"
- cDir = SUBSTRING("XY", i, 1)
- k = "*" + ipWert + "*" .
- DO i = 1 TO LENGTH(k):
- ASSIGN j = INDEX(kod, SUBSTRING (k, i, 1)) * 9 - 8
- wk = SUBSTRING (att, j, 9) + "0" .
- DO l = 1 TO 10:
- ASSIGN brd = IF SUBSTRING(wk,l,1) = "0" THEN 2 ELSE 4
- opBarCode = opBarCode
- + (IF clr THEN "~E*c" + SUBSTRING (ipCodeArt, brd, 2) + drw
- ELSE "~E*p+" + STRING(INTEGER(SUBSTRING(ipCodeArt, brd, 2))
- + jst) + cDir)
- jst = integer (SUBSTRING (ipCodeArt, brd, 2))
- clr = NOT clr.
- END. /* of looping 1 to 10 */
- END. /* of going through string 'k' */
- ASSIGN opBarCode = opBarCode + "~E&f1S"
- wk = "".
- /*
- DEF INPUT PARAMETER ipWert AS CHAR NO-UNDO.
- DEF INPUT PARAMETER ipCodeArt AS CHAR NO-UNDO.
- DEF OUTPUT PARAMETER opBarCode AS CHAR NO-UNDO.
- DEF VAR clr AS LOG INIT TRUE NO-UNDO.
- DEF VAR wk AS CHAR NO-UNDO.
- DEF VAR drw AS CHAR NO-UNDO.
- DEF VAR cDir AS CHAR NO-UNDO.
- DEF VAR k AS CHAR NO-UNDO.
- DEF VAR att AS CHAR NO-UNDO.
- DEF VAR kod AS CHAR NO-UNDO
- INIT "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.Ï *$/+%".
- att =
- "100100001001100001101100000000110001100110000001110000000100101100100100"
- + "001100100000110100100001001001001001101001000000011001100011000001011000"
- + "000001101100001100001001100000011100100000011001000011101000010000010011"
- + "100010010001010010000000111100000110001000110000010110110000001011000001"
- + "111000000010010001110010000011010000010000101110000100011000100010010100"
- + "010101000010100010010001010000101010".
- DEF VAR i AS INT NO-UNDO.
- DEF VAR j AS INT NO-UNDO.
- DEF VAR l AS INT NO-UNDO.
- DEF VAR brd AS INT NO-UNDO.
- DEF VAR jst AS INT NO-UNDO.
- ASSIGN i = IF SUBSTRING (ipCodeArt, 1, 1) = "P" THEN 1 ELSE 2
- opBarCode = "~E&f0S~E*c100G"
- drw = SUBSTRING("ab" , i, 1)
- + SUBSTRING(ipCodeArt, 6)
- + SUBSTRING("ba" , i, 1)
- + "P"
- cDir = SUBSTRING("XY", i, 1)
- k = "*" + ipWert + "*" .
- DO i = 1 TO LENGTH(k):
- ASSIGN j = INDEX(kod, SUBSTRING (k, i, 1)) * 9 - 8
- wk = SUBSTRING (att, j, 9) + "0" .
- DO l = 1 TO 10:
- ASSIGN brd = IF SUBSTRING(wk,l,1) = "0" THEN 2 ELSE 4
- opBarCode = opBarCode
- + (IF clr THEN "~E*c" + SUBSTRING (ipCodeArt, brd, 2) + drw
- ELSE "~E*p+" + STRING(INTEGER(SUBSTRING(ipCodeArt, brd, 2))
- + jst) + cDir)
- jst = integer (SUBSTRING (ipCodeArt, brd, 2))
- clr = NOT clr.
- END. /* of looping 1 to 10 */
- END. /* of going through string 'k' */
- ASSIGN opBarCode = opBarCode + "~E&f1S"
- wk = "".
- */
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI C-Win _DEFAULT-DISABLE
- PROCEDURE disable_UI :
- /*------------------------------------------------------------------------------
- Purpose: DISABLE the User Interface
- Parameters: <none>
- Notes: Here we clean-up the user-interface by deleting
- dynamic widgets we have created and/or hide
- frames. This procedure is usually called when
- we are ready to "clean-up" after running.
- ------------------------------------------------------------------------------*/
- /* Delete the WINDOW we created */
- IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win)
- THEN DELETE WIDGET C-Win.
- IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE C-Win
- PROCEDURE DRUCKAUSGABE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR AnzKopien AS INT NO-UNDO.
- DEF VAR sRecid AS RECID NO-UNDO.
- DEF VAR iSize AS INT NO-UNDO.
- IF BAufko.AlsOfferte THEN RETURN.
- AnzKopien = F_Kopie.
- IF AnzKopien = 0 THEN AnzKopien = 1.
-
- DO VCopy = 1 TO AnzKopien:
- sRecid = RECID(BSchrift).
- VSchacht = BLiDruck.Schacht.
- IF VSchacht > 0 THEN DO:
- IF VCopy < AnzKopien THEN VSchacht = 3.
- IF VCopy = AnzKopien THEN VSchacht = 2.
- END.
- IF VDokArt = 'SammFak' THEN DO:
- IF VCopy = AnzKopien THEN DO:
- FIND FIRST Schrift NO-LOCK
- WHERE Schrift.Schname = '\\SBSHUBER\GEMIS SCHACHT-2'.
- sRecid = RECID(Schrift).
- SESSION:PRINTER-NAME = Schrift.Schname.
- VSchacht = 0.
- END.
- ELSE DO:
- FIND FIRST Schrift NO-LOCK
- WHERE Schrift.Schname = '\\SBSHUBER\GEMIS SCHACHT-5'.
- sRecid = RECID(Schrift).
- SESSION:PRINTER-NAME = Schrift.Schname.
- VSchacht = 3.
- END.
- END.
- iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, VTemp ,
- sRecid ,
- VSchacht ,
- 240 , /* Blockgrösse */
- 'ibm850' ,
- 1 ). /* Anzahl Kopien */
- IF iSize = 0 THEN DO:
- MESSAGE 'Druckvorgang gescheitert !!! '
- VIEW-AS ALERT-BOX ERROR.
- END.
-
- ETIME(TRUE).
- DO WHILE ETIME(FALSE) < 250:
- END.
- END.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE_VESR C-Win
- PROCEDURE DRUCKAUSGABE_VESR :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- IF BAufko.AlsOfferte THEN RETURN.
- IF BAufko.Auf_Tot <= 0 THEN RETURN.
- IF NOT AVAILABLE XSchrift THEN RETURN.
- IF NOT AVAILABLE XDrucker THEN RETURN.
- IF XDrucker.Emul = 'TERMINAL' THEN RETURN.
- DEF VAR sRecid AS RECID NO-UNDO.
- DEF VAR iSize AS INT NO-UNDO.
- DEF VAR ja AS LOG NO-UNDO.
- sRecid = RECID(XSchrift).
- IF VBesr = 04 OR
- VBesr = 02 THEN DO:
- ja = DYNAMIC-FUNCTION('loadOCRBFont':U, XSchrift.Schname).
- IF NOT ja THEN DO:
- MESSAGE 'OCRB-Font konnte nicht geladen werden !!! '
- VIEW-AS ALERT-BOX ERROR.
- END.
- VSchacht = 4.
- END.
- ELSE DO:
- VSchacht = 0.
- END.
- iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, VTempVESR ,
- sRecid ,
- VSchacht ,
- 300 , /* Blockgrösse */
- 'ibm850' ,
- 1 ).
- IF iSize = 0 THEN DO:
- MESSAGE 'Druckvorgang gescheitert !!! '
- VIEW-AS ALERT-BOX ERROR.
- END.
-
- ETIME(TRUE).
- DO WHILE ETIME(FALSE) < 250:
- END.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN C-Win
- PROCEDURE DRUCKEN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR iSortZeile AS INT NO-UNDO.
- DEF VAR iAbPos AS INT NO-UNDO.
- DEF VAR iPlusMinus AS INT NO-UNDO.
- DEF VAR hbAufko AS HANDLE NO-UNDO.
- DEF VAR htTabTexte AS HANDLE NO-UNDO.
- DEF VAR cDruckers AS CHAR NO-UNDO.
- DEF VAR xDrucker AS CHAR NO-UNDO.
- DO WITH FRAME {&FRAME-NAME}:
- DEF VAR XFakArt AS INT NO-UNDO.
- DEF VAR XAufSta AS INT NO-UNDO.
- DEF VAR ARecid AS RECID NO-UNDO.
- DEF VAR BRecid AS RECID NO-UNDO.
- DEF VAR CRecid AS RECID NO-UNDO.
- DEF VAR cLagOrt AS CHAR NO-UNDO.
- DEF VAR xLagOrt AS CHAR NO-UNDO.
- DEF VAR cGeschoss AS CHAR NO-UNDO.
- DEF VAR kGeschoss AS CHAR INIT 'zz' NO-UNDO.
-
- FIND Tabel NO-LOCK WHERE RECID(Tabel) = TRecid.
- ARecid = Tabel.Int_1.
- BRecid = Tabel.Int_2.
- CRecid = Tabel.Int_3.
- VBesr = Tabel.Dec_1.
- VSchacht = Tabel.Dec_3.
- VDokArt = Tabel.Bez2.
- F_DokArt = Tabel.Bez2.
- fBatch = DYNAMIC-FUNCTION('getBatch':U) NO-ERROR.
- cLagOrt = ''.
- IF Tabel.BezL <> '' THEN DO:
- DO ix = 1 TO NUM-ENTRIES(Tabel.BezL, ';'):
- CASE ix:
- WHEN 1 THEN VSchachtOrig = INTEGER(ENTRY(ix, Tabel.BezL, ';')).
- WHEN 2 THEN VSchachtKopi = INTEGER(ENTRY(ix, Tabel.BezL, ';')).
- WHEN 3 THEN VSchachtBesr = INTEGER(ENTRY(ix, Tabel.BezL, ';')).
- WHEN 4 THEN VBesr = INTEGER(ENTRY(ix, Tabel.BezL, ';')).
- END CASE.
- END.
- END.
- FIND BSteuer WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR.
- FIND BListen WHERE RECID(BListen) = ARecid NO-LOCK NO-ERROR.
- FIND BLiDruck WHERE RECID(BLiDruck) = BRecid NO-LOCK NO-ERROR.
- FIND BAufko WHERE RECID(BAufko) = CRecid NO-LOCK NO-ERROR.
- IF NOT AVAILABLE BAufko THEN RETURN ''.
-
- hbAufko = BUFFER BAufko:HANDLE.
- htTabTexte = TEMP-TABLE tTabTexte:DEFAULT-BUFFER-HANDLE.
- RUN CREATE_TABTEXTE ( INPUT hbAufko, INPUT-OUTPUT htTabTexte ).
-
- IF BAufko.AlsOfferte THEN DO:
- ASSIGN F_DokArt = 'EXCEL_OFFERTE'
- fBatch = FALSE.
- END.
-
- F_Aufnr = BAufko.Aufnr.
- F_Faknr = BAufko.Faknr.
- F_Datum = BAufko.Fak_Datum.
- IF F_Datum = ? THEN F_Datum = TODAY.
- IF BAufko.Auf_Sta = 0 THEN VDokArt = 'RUESTSCHEIN'.
- IF BAufko.AlsOfferte THEN VDokArt = 'EXCEL_OFFERTE'.
- FDatum = F_Datum.
- VSort = BListen.Sort.
- IF NOT bAufko.AlsOfferte THEN DO:
- F_Drucker = BLiDruck.ListDru.
- F_Schrift = BLiDruck.ListBild.
- F_TZZ = BLiDruck.Listtzz.
- F_KZZ = BLiDruck.Listkzz.
- F_FZZ = BLiDruck.Listfzz.
- F_KOPIE = BLiDruck.ListCopy.
- DISPLAY {&List-1}.
- END.
-
- /* ------------------------------------------------------ */
- /* Test auf Windows-Printers */
- /* ------------------------------------------------------ */
- EMPTY TEMP-TABLE tDrucker.
- cDruckers = SESSION:GET-PRINTERS().
- DO ix = 1 TO NUM-ENTRIES(cDruckers, ','):
- CREATE tDrucker.
- ASSIGN tDrucker.cDrucker = ENTRY(ix, cDruckers, ',').
- END.
- FIND FIRST tDrucker
- WHERE tDrucker.cDrucker = F_Drucker NO-ERROR.
- IF NOT AVAILABLE tDrucker AND
- NOT bAufko.AlsOfferte THEN DO:
- IF fBatch THEN DO:
- REPEAT TRANSACTION:
- FIND Tabel WHERE RECID(Tabel) = tRecid.
- ASSIGN Tabel.Bez1 = ''.
- RELEASE Tabel.
- LEAVE.
- END.
- RETURN 'KeinDrucker'.
- END.
- ja = TRUE.
- MESSAGE 'Der gewünschte Drucker "' F_Drucker '" ist nicht verfügbar ' SKIP
- 'Bitte wählen Sie einen Drucker aus <Ja> oder brechen Sie den Druck ab <Nein>'
- VIEW-AS ALERT-BOX INFORMATION BUTTONS YES-NO
- UPDATE ja.
- IF NOT Ja THEN RETURN 'KeinDrucker'.
-
- SYSTEM-DIALOG PRINTER-SETUP
- NUM-COPIES F_Kopie
- PORTRAIT
- UPDATE ja.
- IF NOT Ja THEN RETURN 'KeinDrucker'.
- xDrucker = SESSION:PRINTER-NAME.
- FIND FIRST Schrift NO-LOCK
- WHERE Schrift.Schname = xDrucker
- AND Schrift.SchBild = 'VIPER' NO-ERROR.
- IF NOT AVAILABLE Schrift THEN DO:
- REPEAT TRANSACTION:
- CREATE Schrift.
- ASSIGN Schrift.Schname = xDrucker
- Schrift.Schbild = 'VIPER'
- Schrift.Schdru = 'VIPER'.
- RELEASE Schrift.
- LEAVE.
- END.
- END.
- FIND FIRST Drucker NO-LOCK
- WHERE Drucker.Drucker = 'VIPER' NO-ERROR.
- IF NOT AVAILABLE Drucker THEN DO:
- REPEAT TRANSACTION:
- CREATE Drucker.
- ASSIGN Drucker.Drucker = 'VIPER'
- Drucker.Emul = 'POSTSCRIPT'.
- RELEASE Drucker.
- LEAVE.
- END.
- END.
- FIND FIRST HilfsTab NO-LOCK USE-INDEX HilfsTab-k1
- WHERE HilfsTab.Firma = GVFirma
- AND HilfsTab.Sort_1 = cBenutzer
- AND HilfsTab.Sort_2 = F_DokArt NO-ERROR.
- IF NOT AVAILABLE HilfsTab THEN DO:
- REPEAT TRANSACTION:
- CREATE HilfsTab.
- ASSIGN HilfsTab.Firma = GVFirma
- HilfsTab.Sort_1 = cBenutzer
- HilfsTab.Sort_2 = F_DokArt
- HilfsTab.Zeichen_1 = xDrucker
- HilfsTab.Zeichen_2 = 'VIPER'
- HilfsTab.Zahl[01] = 0
- HilfsTab.Zahl[02] = 0
- HilfsTab.Zahl[03] = 0
- HilfsTab.Zahl[04] = 1
- HilfsTab.Zahl[05] = 0
- HilfsTab.Zahl[06] = 0
- HilfsTab.Zahl[07] = 0
- HilfsTab.Zahl[08] = 0.
- LEAVE.
- END.
- END.
- ELSE DO:
- IF HilfsTab.Zeichen_1 <> xDrucker THEN DO:
- REPEAT TRANSACTION:
- FIND CURRENT HilfsTab.
- ASSIGN HilfsTab.Zeichen_1 = xDrucker.
- RELEASE HilfsTab.
- LEAVE.
- END.
- END.
- END.
- ASSIGN F_Drucker = xDrucker
- F_Schrift = 'VIPER'
- F_TZZ = 0
- F_KZZ = 0
- F_FZZ = 0
- F_KOPIE = 1.
- DISPLAY {&List-1}.
- END.
- ELSE IF NOT bAufko.AlsOfferte THEN SESSION:PRINTER-NAME = F_Drucker.
-
- F_Drucker = SESSION:PRINTER-NAME.
- DISPLAY F_Drucker.
- FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'FAKART' NO-ERROR.
- /*
- IF AVAILABLE tTabTexte THEN F_Dokart = tTabTexte.cFeld1.
- */
- FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'AUFSTATUS' NO-ERROR.
- IF AVAILABLE tTabTexte THEN F_Papier = tTabTexte.cFeld1.
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
- E_Adresse = ''.
- IF BAufko.Adresse[05] <> '' THEN DO:
- E_Adresse = CHR(10)
- + CHR(10)
- + BAufko.Adresse[01] + CHR(10)
- + BAufko.Adresse[02] + CHR(10)
- + BAufko.Adresse[03] + CHR(10)
- + BAufko.Adresse[04] + CHR(10)
- + BAufko.Adresse[05].
- END.
- ELSE DO:
- E_Adresse = Adresse.Anschrift[03] + CHR(10) +
- Adresse.Anschrift[04] + CHR(10) +
- Adresse.Anschrift[05] + CHR(10) +
- Adresse.Anschrift[06] + CHR(10) +
- Adresse.Anschrift[07] + CHR(10) +
- Adresse.Anschrift[08] + CHR(10) +
- Adresse.Anschrift[09] + CHR(10) +
- Adresse.Anschrift[10].
- END.
- DISPLAY {&List-1}.
- F_DokArt:BGCOLOR = 14.
- F_Papier:BGCOLOR = 14.
- FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'FAKART' NO-ERROR.
- IF NOT fBatch AND
- NOT BAufko.AlsOfferte THEN DO:
- IF tTabTexte.iFeld3 <> 4 OR
- VDokArt BEGINS 'Ruest' THEN DO:
- APPLY 'ENTRY' TO Btn_Drucken.
- WAIT-FOR CHOOSE OF Btn_Drucken OR
- CHOOSE OF Btn_Abbrechen.
- END.
- END.
-
- IF NOT DruckFlag THEN DO:
- REPEAT TRANSACTION:
- FIND BListen WHERE RECID(BListen) = ARecid.
- BListen.Listfl = ''.
- RELEASE BListen.
- LEAVE.
- END.
- RETURN ''.
- END.
- ASSIGN {&List-1}.
- RUN LIBILD.
- EMPTY TEMP-TABLE SAMMFAK.
- IF BAufko.Samm_Nr <> 0 AND
- NOT VDokArt BEGINS 'Ruest' THEN DO:
- RUN SAMMELSUCHEN.
- END.
- ELSE DO:
- CREATE SAMMFAK.
- ASSIGN SAMMFAK.Knr = BAufko.Fak_Knr
- SAMMFAK.Aufnr = BAufko.Aufnr
- SAMMFAK.Samm_Nr = BAufko.Aufnr
- SAMMFAK.RID = RECID(BAufko).
- END.
- VTemp = ''.
- VTempVESR = ''.
- IF NOT bAufko.AlsOfferte THEN RUN WORKFILE.
-
- IF DOpen = TRUE THEN OUTPUT STREAM Out_Stream TO VALUE(VTemp).
-
- IF VDokArt BEGINS 'Samm' THEN iLauf = F_Kopie.
- ELSE iLauf = 1.
- DO iZaehler = 1 TO iLauf:
- FOR EACH SAMMFAK BREAK BY SAMMFAK.Knr
- BY SAMMFAK.Samm_Nr
- BY SAMMFAK.Aufnr :
- FIND BAufko WHERE RECID(BAufko) = SAMMFAK.RID NO-LOCK NO-ERROR.
-
- F_Aufnr = BAufko.Aufnr.
- DISPLAY F_Aufnr WITH FRAME {&FRAME-NAME}.
-
- VWg_Grp = 0.
- VProd_Grp = 0.
- VArt_Grp = 0.
- VFak_Betr = 0.
- VPreis_Grp = BAufko.Preis_Grp.
- FErste = FALSE.
-
- EMPTY TEMP-TABLE tAufze.
- EMPTY TEMP-TABLE tRueckst.
- EMPTY TEMP-TABLE TGebKto.
- EMPTY TEMP-TABLE TRabSumm.
- EMPTY TEMP-TABLE TSpeRab.
- EMPTY TEMP-TABLE TGebuehr.
- EMPTY TEMP-TABLE tTexte .
-
- IF FIRST-OF ( SAMMFAK.Samm_Nr ) THEN DO:
- EMPTY TEMP-TABLE TUmsGrp.
- EMPTY TEMP-TABLE TFiliale.
- EMPTY TEMP-TABLE TMonat.
- EMPTY TEMP-TABLE TMonGeb.
-
- ASSIGN GTWpfl = 0
- GTWust = 0
- DTWpfl = 0
- GTFak_Betr = 0
- GTSk_Ber = 0
- SFaknr = 0
- FLetzt = FALSE
- FErste = TRUE
- TiDruck = TRUE
- VSeite = 0
- VDetail = 0
- iSortZeile = 9999
- cLagOrt = ''
- cGeschoss = ''.
- END.
- RUN FUELLEN_tAufze ( BAufko.Aufnr ).
-
- xLagOrt = ''.
- FOR EACH tAufze USE-INDEX tSavze-k1
- WHERE tAufze.Artnr > 0:
-
- FIND Artst NO-LOCK
- WHERE Artst.Firma = GVFirma
- AND Artst.Artnr = tAufze.Artnr
- AND Artst.Inhalt = tAufze.Inhalt
- AND Artst.Jahr = tAufze.Jahr .
- FIND bAufze NO-LOCK WHERE RECID(bAufze) = tAufze.Zeile.
-
- ASSIGN VWg_Grp = Artst.Wg_Grp
- VProd_Grp = Artst.Prod_Grp
- VArt_Grp = Artst.Art_Grp
- AArtnr = Artst.Artnr
- AInhalt = Artst.Inhalt.
-
-
- /* Spezial-Auftrags-Rabatt -------------------------------------------- */
-
- IF bAufze.Auf_Sp_Grp > 0 THEN DO:
- FIND FIRST TSpeRab WHERE TSpeRab.Rab_Grp = bAufze.Auf_Sp_Grp NO-ERROR.
- IF NOT AVAILABLE TSpeRab THEN DO:
- CREATE TSpeRab.
- ASSIGN TSpeRab.Rab_Grp = bAufze.Auf_Sp_Grp.
- END.
- TSpeRab.Auf_Betr = TSpeRab.Auf_Betr + bAufze.Auf_Sp_Rab.
- END.
-
- /* Summengruppen-Totale ------------------------------------------------ */
-
- DO WHILE bAufze.Rab_Su_Grp > 0:
- FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = bAufze.Rab_Su_Grp NO-ERROR.
- IF NOT AVAILABLE TRabSumm THEN DO:
- FIND FIRST RabSumm USE-INDEX RabSumm-k1
- WHERE RabSumm.Firma = GVFirma
- AND RabSumm.Rab_Summ = bAufze.Rab_Su_Grp
- NO-LOCK NO-ERROR.
- IF NOT AVAILABLE RabSumm THEN LEAVE.
- CREATE TRabSumm.
- ASSIGN TRabSumm.Rab_Summ = bAufze.Rab_Su_Grp
- TRabSumm.Bez = RabSumm.Bez
- TRabSumm.Auf_Rab = 0
- TRabSumm.Abh_Rab = 0.
- END.
- LEAVE.
- END.
- END.
-
- IF FIRST-OF( SAMMFAK.Samm_Nr ) THEN VSeite = 0.
- IF LAST-OF ( SAMMFAK.Samm_Nr ) THEN FLetzt = TRUE.
- RUN VALUE(VDokArt).
- IF RETURN-VALUE = 'ERROR' THEN RETURN ''.
-
- IF NOT FLetzt THEN NEXT.
-
- END. /* FOR EACH SAMMFAK */
- END. /* ENDE iZaehler/iLauf */
-
- IF DOpen THEN OUTPUT STREAM Out_Stream CLOSE.
- DOpen = FALSE.
- IF VDokArt <> 'Lieferschein' AND
- VDokArt <> 'Lieferpreis' AND
- VDokArt <> 'Faktura' AND
- VDokArt <> 'LieferFak' AND
- VDokArt <> 'FestFaktura' AND
- VDokArt <> 'SammFak' THEN RUN DRUCKAUSGABE.
-
- IF VTemp <> '' THEN OS-DELETE VALUE(VTemp).
- IF VTempVESR <> '' THEN DO:
- RUN DRUCKAUSGABE_VESR.
- OS-DELETE VALUE(VTempVESR) NO-ERROR.
- END.
-
- REPEAT TRANSACTION:
- FIND BListen WHERE RECID(BListen) = ARecid.
- BListen.Listfl = ''.
- RELEASE BListen.
- LEAVE.
- END.
- END. /* DO WITH FRAME */
- RETURN ''.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI C-Win _DEFAULT-ENABLE
- PROCEDURE enable_UI :
- /*------------------------------------------------------------------------------
- Purpose: ENABLE the User Interface
- Parameters: <none>
- Notes: Here we display/view/enable the widgets in the
- user-interface. In addition, OPEN all queries
- associated with each FRAME and BROWSE.
- These statements here are based on the "Other
- Settings" section of the widget Property Sheets.
- ------------------------------------------------------------------------------*/
- DISPLAY F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_Aufnr F_KOPIE
- F_Faknr F_Datum F_Dokart F_Seite F_Papier
- WITH FRAME DEFAULT-FRAME IN WINDOW C-Win.
- ENABLE RECT-1 F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_Aufnr F_KOPIE
- F_Faknr F_Datum F_Dokart F_Seite F_Papier Btn_Drucken Btn_Abbrechen
- WITH FRAME DEFAULT-FRAME IN WINDOW C-Win.
- {&OPEN-BROWSERS-IN-QUERY-DEFAULT-FRAME}
- VIEW C-Win.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA C-Win
- PROCEDURE FAKTURA :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR cPDFName AS CHAR INIT '' NO-UNDO.
- DEF VAR xString AS CHAR NO-UNDO.
- DEF VAR lFirst AS LOG NO-UNDO.
- DEF VAR cString AS CHAR NO-UNDO.
- VSeite = 0.
- VFak_Betr = 0.
- FPreis = TRUE.
-
- RUN VIPER_INIT ( 'Faktura' ).
- IF RETURN-VALUE = 'ERROR' THEN RETURN 'ERROR'.
- RUN vpr_SetPrinterAttrib('copies=2').
-
- RUN FAKTURA_KOPF.
- iArtZeile = 0.
- iVPagePos = vpr_getPageVPos() + 20.
- RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
-
- FOR EACH tAufze NO-LOCK
- BY tAufze.Aufnr
- BY tAufze.Sort1
- BY tAufze.LagOrt
- BY tAufze.Sort2
- BY tAufze.Pos :
-
- FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
-
- RUN VIPER_ARTIKELZEILE ( RECID(tAufze) ).
- VFak_Betr = VFak_Betr + Aufze.Net_Betr.
- END.
-
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(SUBSTRING(FormText[15],21,20)) ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', ' ' ).
-
- RUN VIPER_AUSGABE_ARTIKELZEILE.
-
- /* Auftragsrabatt ---------------------------------------------------- */
- iArtZeile = 0.
- FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
- BY TRabSumm.Rab_Summ:
- Rundbetr = TRabSumm.Auf_Rab.
- VFak_Betr = VFak_Betr - Rundbetr.
- iArtZeile = iArtZeile + 1.
- xString = TRIM(SUBSTRING(FormText[11],01,20))
- + " "
- + TRabSumm.Bez.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
- END.
- /* Abholrabatt ------------------------------------------------------- */
-
- FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
- BY TRabSumm.Rab_Summ:
- Rundbetr = TRabSumm.Abh_Rab.
- VFak_Betr = VFak_Betr - Rundbetr.
- iArtZeile = iArtZeile + 1.
- xString = TRIM(SUBSTRING(FormText[15],01,20))
- + " "
- + TRabSumm.Bez.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
- END.
- IF iArtZeile > 0 THEN DO:
- iArtZeile = iArtZeile + 1.
- xString = TRIM(SUBSTRING(FormText[14],21,20)).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
- END.
- RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
-
- /* Recycling-Gebuehren ----------------------------------------------- */
- iArtZeile = 0.
- FOR EACH AufGKon USE-INDEX SavGKon-k1
- WHERE AufGKon.Firma = BAufko.Firma
- AND AufGKon.Aufnr = BAufko.Aufnr
- AND AufGKon.Gebuehr <> 0
- AND AufGKon.Betrag <> 0 NO-LOCK:
- FIND GebKonto OF AufGKon NO-LOCK NO-ERROR.
- IF NOT AVAILABLE GebKonto THEN xString = TRIM(SUBSTRING(FormText[11],41,20)).
- ELSE xString = GebKonto.Bez.
- VWC = AufGKon.MWST_Cd.
- VFak_Betr = VFak_Betr + AufGKon.Betrag.
-
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(AufGKon.Betrag,'->>>,>>9.99')) ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC', STRING(AufGKon.MWSt_Cd,'z9') ).
- END.
- IF iArtZeile > 0 THEN DO:
- iArtZeile = iArtZeile + 1.
- xString = TRIM(SUBSTRING(FormText[14],41,20)).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
- END.
- RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
- /* Gebinde Aus- und Eingänge ---------------------------------------- */
- FOR EACH AufGKon USE-INDEX SavGKon-k1
- WHERE AufGKon.Firma = BAufko.Firma
- AND AufGKon.Aufnr = BAufko.Aufnr
- AND AufGKon.Depot <> 0
- AND (AufGKon.Eingang <> 0 OR
- AufGKon.Ausgang <> 0) NO-LOCK:
- FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR.
- IF NOT AVAILABLE TGebKto THEN DO:
- FIND GebKonto USE-INDEX GebKonto-k1
- WHERE GebKonto.Firma = AufGKon.Firma
- AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK.
- CREATE TGebKto.
- ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd
- TGebKto.Geb_Cd = GebKonto.Geb_Cd
- TGebKto.Bez = GebKonto.Bez
- TGebKto.Preis = AufGKon.Depot
- TGebKto.MWST_Cd = AufGKon.MWSt_Cd.
- END.
- TGebKto.A_Anz = TGebKto.A_Anz + AufGKon.Ausgang.
- TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis.
- TGebKto.E_Anz = TGebKto.E_Anz + AufGKon.Eingang.
- TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis.
- END.
-
- /* Gebindelieferungen ------------------------------------------------ */
- VZTot = 0.
- iArtZeile = 0.
- FOR EACH AufGKon USE-INDEX SavGKon-k1
- WHERE AufGKon.Firma = BAufko.Firma
- AND AufGKon.Aufnr = BAufko.Aufnr
- AND AufGKon.Depot <> 0
- AND (AufGKon.Eingang <> 0 OR
- AufGKon.Ausgang <> 0) NO-LOCK
-
- BREAK BY AufgKon.Firma
- BY AufGKon.Aufnr:
- FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1
- WHERE GebKonto.Firma = GVFirma
- AND GebKonto.Geb_Cd = AufGKon.Geb_Cd.
- i1 = AufGKon.Ausgang - AufGKon.Eingang.
- Rundbetr = AufGKon.Betrag.
- VWC = AufGKon.MWSt_Cd.
- VZTot = VZTot + Rundbetr.
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'Gebindetext' , GebKonto.Bez ).
- RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeGel' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ).
- RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeRet' , TRIM(STRING(AufGKon.Eingang,"->>,>>9")) ).
- RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeSaldo', TRIM(STRING(i1 ,"->>,>>9")) ).
- IF FPreis THEN
- RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeBetr' , TRIM(STRING(Rundbetr ,"->>,>>9.99")) ).
- END.
- IF iArtZeile > 0 AND
- FPreis THEN RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeTot' , TRIM(STRING(VZTot ,"->>>,>>9.99")) ).
- VFak_Betr = VFak_Betr + VZTot.
- IF iArtZeile > 0 THEN RUN VIPER_AUSGABE_GRUPPE ('Gebindeabrechnung').
-
- /* Auftragstext ------------------------------------------------------ */
- XAuf_Text = BAufko.Auf_Text.
- IF XAuf_Text <> '' THEN DO:
- iVPagePos = vpr_getPageVPos() + 20.
- RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ).
- DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
- RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ).
- RUN vpr_flushGroup ('Zusatztext').
- END.
- END.
-
- /* Mehrwertsteuer ---------------------------------------------------- */
- VWpfl = 0.
- VWust = 0.
- i1 = 2.
- DO ix = 1 TO 11:
- IF BAufko.WPfl[ix] = 0 THEN NEXT.
- VWpfl[ix] = BAufko.Wpfl[ix].
- VWust[ix] = BAufko.Wust[ix].
- VFak_Betr = VFak_Betr + VWust[ix].
- i1 = i1 + 1.
- END.
-
- iVPagePos = vpr_getPageVPos().
- IF (iVPagePos + (i1 * 40)) > iVMaxPos THEN DO:
- RUN VIPER_NEUE_SEITE.
- RUN VIPER_ADRESSE ('').
- END.
-
- iArtZeile = 1.
- RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , ' ' ).
- DO ix = 1 TO 11:
- IF VWpfl[ix] = 0 THEN NEXT.
- FIND LAST MWSTAns USE-INDEX MWSTAns-k1
- WHERE MWSTAns.MWST_Cd = ix
- AND MWSTAns.Datum <= BAufko.Kond_Datum NO-LOCK.
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , MWStAns.Bez ).
- RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstPfl' , TRIM(STRING(VWpfl[ix],"->>,>>9.99")) ).
- RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBetr', TRIM(STRING(VWust[ix],"->>>,>>9.99")) ).
- RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstCd' , TRIM(STRING(ix ,"->>,>>9")) ).
- END.
- RUN VIPER_AUSGABE_GRUPPE ( 'Mehrwertsteuer' ).
-
- /* Rechnungsbetrag --------------------------------------------------- */
- Rundbetr = VFak_Betr.
- Rundcode = 1.
- RUN "v8/runden.p".
- VFak_Betr = Rundbetr.
-
- iArtZeile = 1.
- RUN VIPER_CREATE_DOKUMENT ( 'RechnungsTotal', iArtZeile, 'EndBetrag', TRIM(STRING(VFak_Betr,"->>>,>>9.99")) ).
- RUN VIPER_AUSGABE_GRUPPE ( 'RechnungsTotal' ).
-
- /* Zahlungskondition ------------------------------------------------- */
- FIND Kondi USE-INDEX Kondi-k1
- WHERE Kondi.Kond = BAufko.Kond
- AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
- IF AVAILABLE Kondi THEN DO:
- iArtZeile = 1.
- RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Zahkond', Kondi.KoText ).
- RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Faellig', STRING((FDatum + Kondi.Faellig),"99.99.9999") ).
- IF Kondi.Skonto[01] <> 0 THEN DO:
- Rundbetr = BAufko.Sk_Ber * Kondi.Skonto[01] / 100.
- Rundcode = 1.
- RUN "v8/runden.p".
- RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Skonto', TRIM(STRING(Rundbetr,"->>>,>>9.99")) ).
- END.
- END.
- ELSE DO:
- iArtZeile = 1.
- RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Zahkond', FILL('?', 29) ).
- END.
- VFak_Betr = VFak_Betr - BAufko.Bar_Betr - BAufko.Bar_Skonto.
- RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Netto', TRIM(STRING(VFak_Betr,"->>>,>>9.99")) ).
- RUN VIPER_AUSGABE_GRUPPE ( 'Kondition' ).
-
- VesrKnr = BAufko.Fak_Knr.
- VesrFnr = BAufko.Faknr.
- IF VFak_Betr = 0 THEN Rundbetr = -1.
- ELSE Rundbetr = VFak_Betr.
- IF AVAILABLE Kondi AND
- Kondi.Skonto[01] <> 0 THEN Rundbetr = 0.
- /* ------------------------------------------------------ */
- /* Druckausgabe */
- /* ------------------------------------------------------ */
-
- RUN vpr_EndDoc.
-
- IF SESSION:PRINTER-NAME <> F_Drucker THEN DO:
- RUN vpr_printerDialog ( OUTPUT ja ).
- IF NOT ja THEN RETURN.
- END.
- ELSE DO:
- RUN vpr_selectPrinter(SESSION:PRINTER-NAME).
- END.
-
- RUN vpr_SetPrinterAttrib ('duplex=1').
- RUN vpr_printDoc (0, 0).
-
- cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_Kopie_&3',
- STRING(BAufko.Knr ,'999999'),
- STRING(BAufko.Faknr,'9999999'),
- cvpr_Dokument).
- cPDFName = REPLACE(cvpr_Dokument, '.vpr', '.pdf').
-
- RUN vpr_printPDF (0, 0, INPUT-OUTPUT cPDFName ).
- RUN vpr_SaveDoc ( cvpr_Dokument ).
-
- VesrKnr = BAufko.Fak_Knr.
- VesrFnr = BAufko.Faknr.
- VBesr = 4.
- IF VDokArt = 'FESTFAKTURA' THEN VBesr = 0.
- IF BAufko.Auf_Tot > 0 THEN DO:
- CASE VBesr:
-
- WHEN 1 THEN RUN VESR_DRUCK01.
- WHEN 2 THEN RUN VESR_DRUCK02.
- WHEN 3 THEN RUN VESR_DRUCK03.
- WHEN 4 THEN RUN VESR_DRUCK04.
-
- END CASE.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA_KOPF C-Win
- PROCEDURE FAKTURA_KOPF :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR kk AS INT NO-UNDO.
- DEF VAR xString AS CHAR NO-UNDO.
- RUN VIPER_NEUE_SEITE.
- IF VSeite = 1 THEN DO:
- SFaknr = BAufko.Faknr.
-
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
- FIND LDebst USE-INDEX Debst-k1
- WHERE LDebst.Firma = GVFirma
- AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
- FIND FDebst USE-INDEX Debst-k1
- WHERE FDebst.Firma = GVFirma
- AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
- FIND Wust USE-INDEX Wust-k1
- WHERE Wust.CodeK = LDebst.MWST
- AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
- LVSprcd = Adresse.Sprcd.
- DebInkl = FALSE.
- IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
-
- VBesrKopf = ''.
- IF BAufko.Adresse[05] <> '' THEN DO:
- i1 = 6.
- DO ix = 1 TO 5:
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPF'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99')
- tDokument.cInhalt = BAufko.Adresse[ix].
- i1 = i1 + 1.
- VBesrKopf[i1] = BAufko.Adresse[ix].
- END.
- END.
- ELSE DO:
- DO ix = 5 TO 11:
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPF'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Adresse_' + STRING(ix,'99')
- tDokument.cInhalt = Adresse.Anschrift[ix].
- VBesrKopf[ix] = Adresse.Anschrift[ix].
- END.
- END.
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPF'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Ort_Datum'
- tDokument.cInhalt = TRIM(SUBSTRING(FormText[07],01,20))
- + " "
- + STRING(FDatum,"99.99.9999").
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPF'
- tDokument.iZeile = 1
- tDokument.cFeld = 'T_Dokument'
- tDokument.cInhalt = (IF BAufko.Auf_Tot >= 0
- THEN TRIM(SUBSTRING(FormText[02],01,20))
- ELSE TRIM(SUBSTRING(FormText[02],21,20))).
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPF'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Aufnr'
- tDokument.cInhalt = STRING(SFaknr,'z999999').
-
- FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR.
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Ablade'
- tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld3 ELSE ' ').
-
- FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'WISO' NO-ERROR.
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
- tDokument.iZeile = 1
- tDokument.cFeld = 'WirteSo'
- tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld3 ELSE ' ').
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Auf_Datum'
- tDokument.cInhalt = STRING(BAufko.Auf_Datum,'99.99.9999').
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Lief_Datum'
- tDokument.cInhalt = STRING(BAufko.Lief_Datum,'99.99.9999').
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
- tDokument.iZeile = 1
- tDokument.cFeld = 'U_Ref'
- tDokument.cInhalt = BAufko.U_Ref.
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Knr'
- tDokument.cInhalt = STRING(BAufko.Knr,'999999').
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Telefon'
- tDokument.cInhalt = (IF Adresse.Tel-1 <> '' THEN Adresse.Tel-1 ELSE Adresse.Tel-2).
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Gewicht'
- tDokument.cInhalt = TRIM(STRING(BAufko.Gewicht,'->>>,>>9.999')).
- END.
-
- RUN VIPER_ADRESSE ( xString ).
-
- IF VSeite = 1 AND
- BAufko.Abh_Text <> '' THEN DO:
- XAuf_Text = BAufko.Abh_Text.
- iVPagePos = vpr_getPageVPos() + 20.
- RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ).
- DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
- RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ).
- RUN vpr_flushGroup ('Zusatztext').
- END.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FESTFAKTURA C-Win
- PROCEDURE FESTFAKTURA :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- FPreis = TRUE.
- RUN FAKTURA.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_tAufze C-Win
- PROCEDURE FUELLEN_tAufze :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipAufnr AS INT NO-UNDO.
- DEF VAR minPos AS INT NO-UNDO.
- DEF VAR maxPos AS INT NO-UNDO.
- DEF VAR jPlatz AS INT NO-UNDO.
- DEF VAR cLagOrt AS CHAR NO-UNDO.
- DEF VAR iRuestArt AS INT NO-UNDO.
- DEF VAR iPlusMinus AS INT NO-UNDO.
- DEF VAR lArtikel AS LOG NO-UNDO.
- EMPTY TEMP-TABLE tAufze.
- EMPTY TEMP-TABLE tRueckst.
-
- FIND Steuer NO-LOCK
- WHERE Steuer.Firma = GVFirma NO-ERROR.
- IF AVAILABLE Steuer THEN iRuestArt = Steuer.RuestArt.
-
- ASSIGN minPos = 0
- maxPos = 9999.
-
- /* Kommentar zu Beginn eines Auftrages */
- lArtikel = FALSE.
- FOR EACH Aufze NO-LOCK
- WHERE Aufze.Firma = GVFirma
- AND Aufze.Aufnr = ipAufnr
- AND Aufze.Pos > minPos:
- IF Aufze.Artnr > 0 THEN DO:
- lArtikel = TRUE.
- LEAVE.
- END.
-
- iPlusMinus = (IF Aufze.MGeli < 0 THEN 1 ELSE 0).
- minPos = Aufze.Pos.
- CREATE tAufze.
- ASSIGN tAufze.Aufnr = Aufze.Aufnr
- tAufze.Artnr = Aufze.Artnr
- tAufze.Inhalt = Aufze.Inhalt
- tAufze.Jahr = Aufze.Jahr
- tAufze.Pos = Aufze.Pos
- tAufze.Zeile = RECID(Aufze)
- tAufze.Aktion = Aufze.Aktion
- tAufze.Preis = Aufze.Preis
- tAufze.MGeli = Aufze.MGeli
- tAufze.MRuek = Aufze.MRuek.
-
- ASSIGN tAufze.Sort1 = STRING(0,'99')
- tAufze.Sort2 = ''
- tAufze.Sort3 = STRING(tAufze.Artnr ,'999999')
- + STRING(tAufze.Inhalt,'9999')
- + STRING(tAufze.Jahr ,'9999')
- + STRING(iPlusMinus ,'9')
- + STRING(tAufze.Pos ,'9999').
- tAufze.LagOrt = ''.
- END.
- /* Kommentar am Ende eines Auftrages */
- IF lArtikel THEN DO:
- FOR EACH Aufze NO-LOCK
- WHERE Aufze.Firma = GVFirma
- AND Aufze.Aufnr = ipAufnr
- BY Aufze.Pos DESCENDING:
- IF Aufze.Artnr > 0 THEN LEAVE.
-
- iPlusMinus = (IF Aufze.MGeli < 0 THEN 1 ELSE 0).
- maxPos = Aufze.Pos.
- CREATE tAufze.
- ASSIGN tAufze.Aufnr = Aufze.Aufnr
- tAufze.Artnr = Aufze.Artnr
- tAufze.Inhalt = Aufze.Inhalt
- tAufze.Jahr = Aufze.Jahr
- tAufze.Pos = Aufze.Pos
- tAufze.Zeile = RECID(Aufze)
- tAufze.Aktion = Aufze.Aktion
- tAufze.Preis = Aufze.Preis
- tAufze.MGeli = Aufze.MGeli
- tAufze.MRuek = Aufze.MRuek.
-
- ASSIGN tAufze.Sort1 = STRING(0,'99')
- tAufze.Sort2 = ''
- tAufze.Sort3 = STRING(tAufze.Artnr ,'999999')
- + STRING(tAufze.Inhalt,'9999')
- + STRING(tAufze.Jahr ,'9999')
- + STRING(iPlusMinus ,'9')
- + STRING(tAufze.Pos ,'9999').
- tAufze.LagOrt = ''.
- END.
- END.
- /* Artikelzeilen nach Ruestplatz und Ort */
- cLagOrt = ''.
- FOR EACH Aufze NO-LOCK
- WHERE Aufze.Firma = GVFirma
- AND Aufze.Aufnr = ipAufnr
- AND Aufze.Pos > minPos
- AND Aufze.Pos < MaxPos
- BY Aufze.Pos DESCENDING:
-
- IF Aufze.Artnr > 0 THEN DO:
- FIND ArtLager NO-LOCK
- WHERE ArtLager.Firma = Aufze.Firma
- AND ArtLager.Artnr = Aufze.Artnr
- AND ArtLager.Inhalt = Aufze.Inhalt
- AND ArtLager.Jahr = Aufze.Jahr
- AND ArtLager.Lager = Aufze.Lager.
- cLagOrt = ArtLager.Ort.
- END.
- iPlusMinus = (IF Aufze.MGeli < 0 THEN 1 ELSE 0).
- FIND LAST RuestPlatz USE-INDEX RuestPlatz-k2
- WHERE RuestPlatz.Firma = Aufze.Firma
- AND RuestPlatz.RuestArt = iRuestArt
- AND RuestPlatz.abLagOrt <= cLagOrt NO-ERROR.
- IF NOT AVAILABLE RuestPlatz THEN jPlatz = 90.
- ELSE jPlatz = RuestPlatz.Platz.
- CREATE tAufze.
- ASSIGN tAufze.Aufnr = Aufze.Aufnr
- tAufze.Artnr = Aufze.Artnr
- tAufze.Inhalt = Aufze.Inhalt
- tAufze.Jahr = Aufze.Jahr
- tAufze.Pos = Aufze.Pos
- tAufze.Zeile = RECID(Aufze)
- tAufze.Aktion = Aufze.Aktion
- tAufze.Preis = Aufze.Preis
- tAufze.MGeli = Aufze.MGeli
- tAufze.MRuek = Aufze.MRuek.
-
- ASSIGN tAufze.Sort1 = STRING(jPlatz,'99')
- tAufze.Sort2 = cLagOrt
- tAufze.Sort3 = STRING(tAufze.Artnr ,'999999')
- + STRING(tAufze.Inhalt,'9999')
- + STRING(tAufze.Jahr ,'9999')
- + STRING(iPlusMinus ,'9')
- + STRING(tAufze.Pos ,'9999').
- tAufze.LagOrt = cLagort.
- IF tAufze.MRuek > 0 THEN DO:
- CREATE tRueckst.
- BUFFER-COPY tAufze TO tRueckst.
- END.
- IF tAufze.Artnr > 0 AND
- tAufze.MGeli = 0 THEN DELETE tAufze.
- END.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_SALDO C-Win
- PROCEDURE GEBINDE_SALDO :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- FOR EACH AufGKon USE-INDEX SavGKon-k1
- WHERE AufGKon.Firma = BAufko.Firma
- AND AufGKon.Aufnr = BAufko.Aufnr
- AND AufGKon.Depot <> 0
- AND AufGKon.Betrag <> 0 NO-LOCK:
- FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR.
- IF NOT AVAILABLE TGebKto THEN DO:
- FIND GebKonto USE-INDEX GebKonto-k1
- WHERE GebKonto.Firma = AufGKon.Firma
- AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK.
- CREATE TGebKto.
- ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd
- TGebKto.Geb_Cd = GebKonto.Geb_Cd
- TGebKto.Bez = GebKonto.Bez
- TGebKto.Preis = AufGKon.Depot
- TGebKto.MWST_Cd = AufGKon.MWSt_Cd.
- END.
- TGebKto.A_Anz = TGebKto.A_Anz + AufGKon.Ausgang.
- TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis.
- TGebKto.E_Anz = TGebKto.E_Anz + AufGKon.Eingang.
- TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis.
- END.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIBILD C-Win
- PROCEDURE LIBILD :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR VProgName AS CHAR NO-UNDO.
- DEF VAR cDocArt AS CHAR NO-UNDO.
-
- CASE VDokArt:
- WHEN 'FESTFAKTURA' THEN cDocArt = 'FAKTURA'.
- OTHERWISE cDocArt = VDokArt.
- END CASE.
-
- VProgName = BSteuer.Fwc10 + ":" + cDocArt.
- FormText = "".
- FOR EACH LiBild NO-LOCK USE-INDEX LiBild-k1
- WHERE LiBild.Sprcd = GVSprcd
- AND LiBild.Prog = VProgname
- AND LiBild.Tenr > 0
-
- ix = 1 TO 40:
-
- FormText[ix] = LiBild.Litext.
- END.
-
- Fuell = SUBSTRING(FormText[01],01,01).
- Breite = INTEGER(SUBSTRING(FormText[01],02,03)).
- VRand = INTEGER(SUBSTRING(FormText[01],68,03)).
- Dattxt = SUBSTRING(FormText[01],05,10).
- Seitxt = SUBSTRING(FormText[01],15,10).
- Zeitxt = SUBSTRING(FormText[01],25,10).
- Firtxt = SUBSTRING(FormText[01],35,10).
- Jahtxt = SUBSTRING(FormText[01],45,10).
- Ueber1 = "".
- Ueber2 = "".
- Ueber3 = "".
- ap = 1.
- XDruDat = ?.
- VRabText = TRIM(SUBSTRING(FormText[21],01,20)).
- VZusText = TRIM(SUBSTRING(FormText[21],21,20)).
- VEpzText = TRIM(SUBSTRING(FormText[21],41,20)).
- SUBSTRING(VZeile,001) = FormText[05].
- SUBSTRING(VZeile,071) = FormText[06].
- StBreite = LENGTH(VZeile).
- /*
- RZeile = FILL('|', Breite).
- SUBSTRING(RZeile,001) = STRING(' ',"x(06)").
- SUBSTRING(RZeile,008) = STRING(' ',"x(03)").
- SUBSTRING(RZeile,012) = STRING(' ',"x(08)").
- SUBSTRING(RZeile,021) = STRING(' ',"x(05)").
- SUBSTRING(RZeile,027) = STRING(' ',"x(08)").
- SUBSTRING(RZeile,036) = STRING(' ',"x(35)").
- SUBSTRING(RZeile,072) = STRING(' ',"x(02)").
- SUBSTRING(RZeile,075) = STRING(' ',"x(07)").
- SUBSTRING(RZeile,083) = STRING(' ',"x(10)").
- SUBSTRING(RZeile,094) = STRING(' ',"x(02)").
-
- RZeile = SUBSTRING(RZeile,01,StBreite).
- */
- VZeile = ''.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK C-Win
- PROCEDURE LIEFERFAK :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR cPDFName AS CHAR INIT '' NO-UNDO.
- DEF VAR xString AS CHAR NO-UNDO.
- DEF VAR lFirst AS LOG NO-UNDO.
- DEF VAR cString AS CHAR NO-UNDO.
- VSeite = 0.
- VFak_Betr = 0.
- FPreis = TRUE.
-
- RUN VIPER_INIT ( 'LieferFak' ).
- IF RETURN-VALUE = 'ERROR' THEN RETURN 'ERROR'.
- RUN vpr_SetPrinterAttrib('copies=2').
-
- RUN LIEFERFAK_KOPF.
- iArtZeile = 0.
- iVPagePos = vpr_getPageVPos() + 50.
- RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
-
- FOR EACH tAufze NO-LOCK
- BY tAufze.Aufnr
- BY tAufze.Sort1
- BY tAufze.LagOrt
- BY tAufze.Sort2
- BY tAufze.Pos :
-
- FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
-
- RUN VIPER_ARTIKELZEILE ( RECID(tAufze) ).
- VFak_Betr = VFak_Betr + Aufze.Net_Betr.
- END.
-
- IF FPreis = TRUE THEN DO:
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(SUBSTRING(FormText[15],21,20)) ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
- END.
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', ' ' ).
-
- RUN VIPER_AUSGABE_ARTIKELZEILE.
-
- /* Auftragsrabatt ---------------------------------------------------- */
- iArtZeile = 0.
- FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
- BY TRabSumm.Rab_Summ:
- Rundbetr = TRabSumm.Auf_Rab.
- VFak_Betr = VFak_Betr - Rundbetr.
- iArtZeile = iArtZeile + 1.
- xString = TRIM(SUBSTRING(FormText[11],01,20))
- + " "
- + TRabSumm.Bez.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
- END.
- /* Abholrabatt ------------------------------------------------------- */
-
- FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
- BY TRabSumm.Rab_Summ:
- Rundbetr = TRabSumm.Abh_Rab.
- VFak_Betr = VFak_Betr - Rundbetr.
- iArtZeile = iArtZeile + 1.
- xString = TRIM(SUBSTRING(FormText[15],01,20))
- + " "
- + TRabSumm.Bez.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
- END.
- IF iArtZeile > 0 THEN DO:
- iArtZeile = iArtZeile + 1.
- xString = TRIM(SUBSTRING(FormText[14],21,20)).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
- END.
- RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
-
- /* Recycling-Gebuehren ----------------------------------------------- */
- iArtZeile = 0.
- FOR EACH AufGKon USE-INDEX SavGKon-k1
- WHERE AufGKon.Firma = BAufko.Firma
- AND AufGKon.Aufnr = BAufko.Aufnr
- AND AufGKon.Gebuehr <> 0
- AND AufGKon.Betrag <> 0 NO-LOCK:
- FIND GebKonto OF AufGKon NO-LOCK NO-ERROR.
- IF NOT AVAILABLE GebKonto THEN xString = TRIM(SUBSTRING(FormText[11],41,20)).
- ELSE xString = GebKonto.Bez.
- VWC = AufGKon.MWST_Cd.
- VFak_Betr = VFak_Betr + AufGKon.Betrag.
-
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(AufGKon.Betrag,'->>>,>>9.999')) ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC', STRING(AufGKon.MWSt_Cd,'z9') ).
- END.
- IF iArtZeile > 0 THEN DO:
- iArtZeile = iArtZeile + 1.
- xString = TRIM(SUBSTRING(FormText[14],41,20)).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.999')) ).
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
- END.
- RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
- /* Gebinde Aus- und Eingänge ---------------------------------------- */
- FOR EACH AufGKon USE-INDEX SavGKon-k1
- WHERE AufGKon.Firma = BAufko.Firma
- AND AufGKon.Aufnr = BAufko.Aufnr
- AND AufGKon.Depot <> 0
- AND AufGKon.Betrag <> 0 NO-LOCK:
- FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR.
- IF NOT AVAILABLE TGebKto THEN DO:
- FIND GebKonto USE-INDEX GebKonto-k1
- WHERE GebKonto.Firma = AufGKon.Firma
- AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK.
- CREATE TGebKto.
- ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd
- TGebKto.Geb_Cd = GebKonto.Geb_Cd
- TGebKto.Bez = GebKonto.Bez
- TGebKto.Preis = AufGKon.Depot
- TGebKto.MWST_Cd = AufGKon.MWSt_Cd.
- END.
- TGebKto.A_Anz = TGebKto.A_Anz + AufGKon.Ausgang.
- TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis.
- TGebKto.E_Anz = TGebKto.E_Anz + AufGKon.Eingang.
- TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis.
- END.
-
- /* Gebindelieferungen ------------------------------------------------ */
- VZTot = 0.
- iArtZeile = 0.
- FOR EACH AufGKon USE-INDEX SavGKon-k1
- WHERE AufGKon.Firma = BAufko.Firma
- AND AufGKon.Aufnr = BAufko.Aufnr
- AND AufGKon.Depot <> 0
- AND (AufGKon.Eingang <> 0 OR
- AufGKon.Ausgang <> 0) NO-LOCK
-
- BREAK BY AufgKon.Firma
- BY AufGKon.Aufnr:
-
- FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1
- WHERE GebKonto.Firma = GVFirma
- AND GebKonto.Geb_Cd = AufGKon.Geb_Cd.
- i1 = AufGKon.Ausgang - AufGKon.Eingang.
- Rundbetr = AufGKon.Betrag.
- VWC = AufGKon.MWSt_Cd.
- VZTot = VZTot + Rundbetr.
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'Gebindetext' , GebKonto.Bez ).
- RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeGel' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ).
- RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeRet' , TRIM(STRING(AufGKon.Eingang,"->>,>>9")) ).
- RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeSaldo', TRIM(STRING(i1 ,"->>,>>9")) ).
- IF FPreis THEN
- RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeBetr' , TRIM(STRING(Rundbetr ,"->>,>>9.999")) ).
- END.
- IF FPreis AND
- iArtZeile > 0 THEN RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeTot' , TRIM(STRING(VZTot,"->>,>>9.999")) ).
- VFak_Betr = VFak_Betr + VZTot.
- IF iArtZeile > 0 THEN RUN VIPER_AUSGABE_GRUPPE ('Gebindeabrechnung').
-
- /* Auftragstext ------------------------------------------------------ */
- XAuf_Text = BAufko.Auf_Text.
- IF XAuf_Text <> '' THEN DO:
- iVPagePos = vpr_getPageVPos() + 20.
- RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ).
- DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
- RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ).
- RUN vpr_flushGroup ('Zusatztext').
- END.
- END.
-
- /* Mehrwertsteuer ---------------------------------------------------- */
- VWpfl = 0.
- VWust = 0.
- i1 = 2.
- DO ix = 1 TO 11:
- IF BAufko.WPfl[ix] = 0 THEN NEXT.
- VWpfl[ix] = BAufko.Wpfl[ix].
- VWust[ix] = BAufko.Wust[ix].
- VFak_Betr = VFak_Betr + VWust[ix].
- i1 = i1 + 1.
- END.
-
- iVPagePos = vpr_getPageVPos().
- iVGroupPos = vpr_getGroupVPos('Gebindetabelle').
- IF iVPagePos > (iVGroupPos - (i1 * 40)) THEN DO:
- RUN VIPER_NEUE_SEITE.
- RUN VIPER_ADRESSE ('').
- END.
-
- iArtZeile = 0.
- RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', 1, 'MwstBez' , ' ' ).
- DO ix = 1 TO 11:
- IF VWpfl[ix] = 0 THEN NEXT.
- FIND LAST MWSTAns USE-INDEX MWSTAns-k1
- WHERE MWSTAns.MWST_Cd = ix
- AND MWSTAns.Datum <= BAufko.Kond_Datum NO-LOCK.
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , MWStAns.Bez ).
- RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstPfl' , TRIM(STRING(VWpfl[ix],"->>,>>9.99")) ).
- RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBetr', TRIM(STRING(VWust[ix],"->>>,>>9.99")) ).
- RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstCd' , TRIM(STRING(ix ,"->>,>>9")) ).
- END.
- RUN VIPER_AUSGABE_GRUPPE ( 'Mehrwertsteuer' ).
-
- /* Rechnungsbetrag --------------------------------------------------- */
- Rundbetr = VFak_Betr.
- Rundcode = 1.
- RUN "v8/runden.p".
- VFak_Betr = Rundbetr.
-
- iArtZeile = 1.
- RUN VIPER_CREATE_DOKUMENT ( 'RechnungsTotal', iArtZeile, 'EndBetrag', TRIM(STRING(VFak_Betr,"->>>,>>9.99")) ).
- RUN VIPER_AUSGABE_GRUPPE ( 'RechnungsTotal' ).
-
- /* ------ RUECKSTAENDE ---------------------------------------------------- */
-
- DO WHILE TRUE:
- FIND FIRST tRueckst NO-ERROR.
- IF NOT AVAILABLE tRueckst THEN LEAVE.
-
- iVPagePos = vpr_getPageVPos() + 150.
- IF iVPagePos > iVMaxPos THEN DO:
- RUN VIPER_NEUE_SEITE.
- RUN VIPER_ADRESSE ('').
- END.
- cString = 'Rückstände bitte neu bestellen'.
- iVPagePos = vpr_getPageVPos() + 50.
- RUN vpr_setGroupVPos ('Rueckstand', iVPagePos ).
- RUN vpr_setCellText ('RueckTitel', 'Rueckstand', cString ).
- RUN vpr_flushGroup ('Rueckstand').
- iArtZeile = 1.
- FOR EACH tRueckst:
- RUN VIPER_RUECKSTAND ( RECID(tRueckst) ).
- END.
- RUN VIPER_AUSGABE_ARTIKELZEILE.
- LEAVE.
- END.
-
- /* Gebinderücknahmetabelle ------------------------------------------- */
-
- iVPagePos = vpr_getPageVPos().
- iVGroupPos = vpr_getGroupVPos('Gebindetabelle').
- IF iVPagePos < iVGroupPos THEN RUN vpr_flushGroup('Gebindetabelle').
- ELSE DO:
- RUN VIPER_NEUE_SEITE.
- RUN VIPER_ADRESSE ('').
- RUN vpr_flushGroup('Gebindetabelle').
- END.
- /* ------------------------------------------------------ */
- /* Druckausgabe */
- /* ------------------------------------------------------ */
-
- RUN vpr_EndDoc.
-
- IF SESSION:PRINTER-NAME <> F_Drucker THEN DO:
- RUN vpr_printerDialog ( OUTPUT ja ).
- IF NOT ja THEN RETURN.
- END.
- ELSE DO:
- RUN vpr_selectPrinter(SESSION:PRINTER-NAME).
- END.
-
- RUN vpr_printDoc (0, 0).
-
- cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_Kopie_&3',
- STRING(BAufko.Knr ,'999999'),
- STRING(BAufko.Aufnr,'999999'),
- cvpr_Dokument).
- cPDFName = REPLACE(cvpr_Dokument, '.vpr', '.pdf').
-
- RUN vpr_printPDF (0, 0, INPUT-OUTPUT cPDFName ).
- RUN vpr_SaveDoc ( cvpr_Dokument ).
- VesrKnr = BAufko.Fak_Knr.
- VesrFnr = BAufko.Faknr.
- VBesr = 4.
- Rundbetr = 0.
- CASE VBesr:
- WHEN 1 THEN RUN VESR_DRUCK01.
- WHEN 2 THEN RUN VESR_DRUCK02.
- WHEN 3 THEN RUN VESR_DRUCK03.
- WHEN 4 THEN RUN VESR_DRUCK04.
- END CASE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK_KOPF C-Win
- PROCEDURE LIEFERFAK_KOPF :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR kk AS INT NO-UNDO.
- DEF VAR xString AS CHAR NO-UNDO.
- DEF VAR cText AS CHAR NO-UNDO.
- RUN VIPER_NEUE_SEITE.
- IF VSeite = 1 THEN DO:
- SFaknr = BAufko.Faknr.
-
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
- FIND LDebst USE-INDEX Debst-k1
- WHERE LDebst.Firma = GVFirma
- AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
- FIND FDebst USE-INDEX Debst-k1
- WHERE FDebst.Firma = GVFirma
- AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
- FIND Wust USE-INDEX Wust-k1
- WHERE Wust.CodeK = LDebst.MWST
- AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
- LVSprcd = Adresse.Sprcd.
- DebInkl = FALSE.
- IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
-
- VBesrKopf = ''.
- IF BAufko.Adresse[05] <> '' THEN DO:
- i1 = 6.
- DO ix = 1 TO 5:
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPF'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99')
- tDokument.cInhalt = BAufko.Adresse[ix].
- i1 = i1 + 1.
- VBesrKopf[i1] = BAufko.Adresse[ix].
- END.
- END.
- ELSE DO:
- DO ix = 5 TO 11:
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPF'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Adresse_' + STRING(ix,'99')
- tDokument.cInhalt = Adresse.Anschrift[ix].
- VBesrKopf[ix] = Adresse.Anschrift[ix].
- END.
- END.
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPF'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Ort_Datum'
- tDokument.cInhalt = TRIM(SUBSTRING(FormText[07],01,20))
- + " "
- + STRING(FDatum,"99.99.9999").
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPF'
- tDokument.iZeile = 1
- tDokument.cFeld = 'T_Dokument'
- tDokument.cInhalt = (IF BAufko.Auf_Tot >= 0
- THEN TRIM(SUBSTRING(FormText[02],01,20))
- ELSE TRIM(SUBSTRING(FormText[02],21,20))).
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPF'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Aufnr'
- tDokument.cInhalt = STRING(SFaknr,'z999999').
-
- FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR.
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Ablade'
- tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld3 ELSE ' ').
-
- FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'FAHRER' NO-ERROR.
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Chauffeur'
- tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld1 ELSE ' ').
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Auf_Datum'
- tDokument.cInhalt = STRING(BAufko.Auf_Datum,'99.99.9999').
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Lief_Datum'
- tDokument.cInhalt = STRING(BAufko.Lief_Datum,'99.99.9999').
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
- tDokument.iZeile = 1
- tDokument.cFeld = 'U_Ref'
- tDokument.cInhalt = BAufko.U_Ref.
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Knr'
- tDokument.cInhalt = STRING(BAufko.Knr,'999999').
-
- cText = ''.
- cText = (IF Adresse.Tel-1 <> '' THEN Adresse.Tel-1 ELSE Adresse.Tel-2).
- IF Adresse.Natel <> '' THEN cText = cText
- + (IF cText = '' THEN '' ELSE ' / ')
- + Adresse.Natel.
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Telefon'
- tDokument.cInhalt = cText.
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Gewicht'
- tDokument.cInhalt = TRIM(STRING(BAufko.Gewicht,'->>>,>>9.999')).
- END.
-
- RUN VIPER_ADRESSE ( xString ).
-
- IF VSeite = 1 AND
- BAufko.Abh_Text <> '' THEN DO:
- XAuf_Text = BAufko.Abh_Text.
- iVPagePos = vpr_getPageVPos() + 20.
- RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ).
- DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
- RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ).
- RUN vpr_flushGroup ('Zusatztext').
- END.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUE_SEITE C-Win
- PROCEDURE NEUE_SEITE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR A AS INT NO-UNDO.
- DEF VAR B AS INT NO-UNDO.
-
- IF VSeite = 0 THEN DO:
- EMPTY TEMP-TABLE tDokument.
- END.
- DO WHILE VSeite > 0:
- IF DOpen THEN DO:
- PUT STREAM Out_Stream CONTROL CHR(12).
- LEAVE.
- END.
-
- A = BLiDruck.Listtzz.
- DO B = VLine TO A:
- VZNr = VZNr + 1.
- CREATE XTermOut.
- ASSIGN XTermOut.ZNr = VZNr
- XTermOut.Zeile = ''.
- END.
-
- LEAVE.
- END.
-
- VLine = 0.
- VSeite = VSeite + 1.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PRUEFZIFFER C-Win
- PROCEDURE PRUEFZIFFER :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- /* ------------------------------------------------------------------------- */
- /* Prufziffer MODULO 10, Rekursiv (27 Stellig Ref.-Nr.) */
- /* ------------------------------------------------------------------------- */
- /* */
- /* Uebergabe Variable: 1. String Betrag (12-stellig) */
- /* 2. String Referenz (27-stellig) */
- /* 3. String Teilnehmernummer ( 9-stellig) */
- /* */
- /* Erstellung der VESR-Codierzeile */
- /* */
- /*---------------------------------------------------------------------------*/
- DEF INPUT-OUTPUT PARAMETER PZBetrag AS CHAR FORMAT "x(13)".
- DEF INPUT-OUTPUT PARAMETER PZReferenz AS CHAR FORMAT "x(27)".
- DEF INPUT-OUTPUT PARAMETER PZTNummer AS CHAR FORMAT "x(09)".
- DEF OUTPUT PARAMETER VSZeile AS CHAR FORMAT "x(58)".
-
- DEF VAR l1 AS INT.
- DEF VAR l2 AS INT.
- DEF VAR l3 AS INT.
- DEF VAR PZ AS INT.
- DEF VAR x1 AS INT.
- DEF VAR x2 AS INT.
- DEF VAR x3 AS INT.
- DEF VAR VMOD10 AS CHAR FORMAT "x(11)" EXTENT 11.
- VMOD10[01] = "09468271350".
- VMOD10[02] = "94682713509".
- VMOD10[03] = "46827135098".
- VMOD10[04] = "68271350947".
- VMOD10[05] = "82713509466".
- VMOD10[06] = "27135094685".
- VMOD10[07] = "71350946824".
- VMOD10[08] = "13509468273".
- VMOD10[09] = "35094682712".
- VMOD10[10] = "50946827131".
- l1 = 12.
- l2 = 26.
- l3 = 08.
- DO WHILE SUBSTRING(PZBetrag,01,01) <> " ": /* Mit Betrag */
- x2 = 1.
- x1 = INT(SUBSTRING(PZBetrag ,01 ,01)).
- x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
- DO x3 = 2 TO 12:
- x1 = INT(SUBSTRING(PZBetrag ,x3 ,01)).
- x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
- END.
- PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
- SUBSTRING(PZBetrag,13) = STRING(PZ,"9").
- LEAVE.
- END.
- DO WHILE SUBSTRING(PZBetrag,01,01) = " ": /* Ohne Betrag */
- x2 = 11.
- x1 = INT(SUBSTRING(PZBetrag ,01 ,01)).
- x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
- DO x3 = 12 TO 12:
- x1 = INT(SUBSTRING(PZBetrag ,x3 ,01)).
- x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
- END.
- PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
- SUBSTRING(PZBetrag,13) = STRING(PZ,"9").
- LEAVE.
- END.
- DO WHILE l2 = 26:
- x2 = 1.
- x1 = INT(SUBSTRING(PZReferenz,01 ,01)).
- x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
- DO x3 = 2 TO 26:
- x1 = INT(SUBSTRING(PZReferenz ,x3 ,01)).
- x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
- END.
- PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
- SUBSTRING(PZReferenz,27) = STRING(PZ,"9").
- LEAVE.
- END.
- DO WHILE l3 = 08:
- x2 = 1.
- x1 = INT(SUBSTRING(PZTNummer ,01 ,01)).
- x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
- DO x3 = 2 TO 08:
- x1 = INT(SUBSTRING(PZTNummer ,x3 ,01)).
- x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
- END.
- PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
- SUBSTRING(PZTNummer,09) = STRING(PZ,"9").
- LEAVE.
- END.
- VSZeile = "".
- SUBSTRING(VSZeile,01) = PZBetrag.
- SUBSTRING(VSZeile,14) = ">".
- SUBSTRING(VSZeile,15) = PZReferenz.
- SUBSTRING(VSZeile,42) = "+ ".
- SUBSTRING(VSZeile,44) = PZTNummer.
- SUBSTRING(VSZeile,53) = ">".
- /*
- SUBSTRING(VSZeile,58) = "H".
- */
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMELSUCHEN C-Win
- PROCEDURE SAMMELSUCHEN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF BUFFER sAufko FOR Aufko.
- FIND FIRST SAMMFAK
- WHERE SAMMFAK.Knr = BAufko.Fak_Knr
- AND SAMMFAK.Samm_Nr = BAufko.Samm_Nr NO-ERROR.
- IF AVAILABLE SAMMFAK THEN RETURN.
- REPEAT TRANSACTION:
- FOR EACH Aufko NO-LOCK USE-INDEX Savko-k5
- WHERE Aufko.Firma = BAufko.Firma
- AND Aufko.Fak_Art = BAufko.Fak_Art
- AND Aufko.Samm_Nr = BAufko.Samm_Nr :
- CREATE SAMMFAK.
- ASSIGN SAMMFAK.Knr = Aufko.Fak_Knr
- SAMMFAK.Aufnr = Aufko.Aufnr
- SAMMFAK.Samm_Nr = Aufko.Samm_Nr
- SAMMFAK.RID = RECID(Aufko).
- END.
- LEAVE.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK C-Win
- PROCEDURE SAMMFAK :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR xString AS CHAR NO-UNDO.
- DEF VAR lFirst AS LOG NO-UNDO.
- DEF VAR cLAdresse AS CHAR NO-UNDO.
- DEF VAR RText AS CHAR NO-UNDO.
- DEF VAR WText AS CHAR NO-UNDO.
- VFak_Betr = 0.
- FPreis = TRUE.
-
- IF VSeite = 0 THEN RUN VIPER_INIT ( 'SammFak' ).
-
- RUN SAMMFAK_KOPF.
- iVPagePos = vpr_getPageVPos() + 20.
- RUN vpr_setGroupVPos ( 'FetteZeile', iVPagePos ).
-
- iArtZeile = 1.
- RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', TRIM(SUBSTRING(FormText[18],01,20)) ).
- RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_2_Fett', TRIM(STRING(BAufko.Aufnr,"zzzzzzzzz9")) ).
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', TRIM(SUBSTRING(FormText[17],21,20)) ).
- RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_2_Fett', TRIM(STRING(BAufko.Auf_Datum,"99.99.9999")) ).
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', ' ' ).
-
- DO WHILE TRUE:
- lFirst = TRUE.
- cLAdresse = ''.
- IF BAufko.Knr = BAufko.Fak_Knr AND
- NOT FDebst.Passant THEN LEAVE.
- DO ix = 1 TO 5:
- IF BAufko.Adresse[ix] = '' THEN NEXT.
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', BAufko.Adresse[ix] ).
- lFirst = FALSE.
- END.
- IF NOT lFirst THEN LEAVE.
- IF BAufko.Knr = BAufko.Fak_Knr THEN LEAVE.
- FIND LAdresse NO-LOCK
- WHERE LAdresse.Firma = AdFirma
- AND LAdresse.Knr = BAufko.Knr NO-ERROR.
- IF NOT AVAILABLE LAdresse THEN LEAVE.
- DO ix = 1 TO 12:
- IF LAdresse.Anschrift[ix] = '' THEN NEXT.
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', LAdresse.Anschrift[ix] ).
- lFirst = FALSE.
- END.
- LEAVE.
- END.
- IF NOT lFirst THEN DO:
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', ' ' ).
- END.
- RUN VIPER_AUSGABE_GRUPPE ( 'FetteZeile' ).
-
- iArtZeile = 0.
- iVPagePos = vpr_getPageVPos().
- RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
-
- FOR EACH tAufze NO-LOCK
- BY tAufze.Aufnr
- BY tAufze.Sort1
- BY tAufze.LagOrt
- BY tAufze.Sort2
- BY tAufze.Pos :
-
- FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
-
- RUN VIPER_ARTIKELZEILE ( RECID(tAufze) ).
- VFak_Betr = VFak_Betr + Aufze.Net_Betr.
- END.
-
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , TRIM(SUBSTRING(FormText[10],41,20)) ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , ' ' ).
-
- RUN VIPER_AUSGABE_ARTIKELZEILE.
- /* Auftragsrabatt ---------------------------------------------------- */
- iArtZeile = 0.
- FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
- BY TRabSumm.Rab_Summ:
- Rundbetr = TRabSumm.Auf_Rab.
- VFak_Betr = VFak_Betr - Rundbetr.
- IF Rundbetr < 0 THEN RText = VZusText.
- ELSE RText = VRabText.
- xString = RText
- + " "
- + TRabSumm.Bez.
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
- FIND FIRST AufRabSu NO-LOCK USE-INDEX SavRabSu-k1
- WHERE AufRabSu.Firma = BAufko.Firma
- AND AufRabSu.Aufnr = BAufko.Aufnr
- AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
- RabWert = ABSOLUT(AufRabSu.F_Wert).
- IF AufRabSu.F_Proz_Betr THEN WText = "%".
- ELSE WText = "Fr.".
- xString = STRING(RabWert,"z9.99-")
- + WText.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', xString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
- END.
- /* Abholrabatt ------------------------------------------------------- */
-
- FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
- BY TRabSumm.Rab_Summ:
- Rundbetr = TRabSumm.Abh_Rab.
- VFak_Betr = VFak_Betr - Rundbetr.
- IF Rundbetr < 0 THEN RText = VZusText.
- ELSE RText = VRabText.
- xString = RText
- + " "
- + TRabSumm.Bez.
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
- FIND FIRST AufRabSu NO-LOCK USE-INDEX SavRabSu-k1
- WHERE AufRabSu.Firma = BAufko.Firma
- AND AufRabSu.Aufnr = BAufko.Aufnr
- AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
- RabWert = ABSOLUT(AufRabSu.A_Wert).
- IF AufRabSu.A_Proz_Betr THEN WText = "%".
- ELSE WText = "Fr.".
- xString = STRING(RabWert,"z9.99-")
- + WText.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', xString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
- END.
-
- /* Spezialpreis-Auftragsrabatte ---------------------------------------- */
-
- FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0
- BY TSpeRab.Rab_Grp:
- FIND Tabel USE-INDEX Tabel-k1
- WHERE Tabel.Firma = GVFirma
- AND Tabel.RecArt = 'ARABGRP'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = TSpeRab.Rab_Grp
- AND Tabel.Sprcd = 1 NO-LOCK.
- Rundbetr = TSpeRab.Auf_Betr.
- VFak_Betr = VFak_Betr - Rundbetr.
- IF Rundbetr < 0 THEN RText = VZusText.
- ELSE RText = VRabText.
- xString = RText
- + " "
- + Tabel.Bez1.
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
- FIND FIRST AufSpRab USE-INDEX SavSpRab-k1
- WHERE AufSpRab.Firma = BAufko.Firma
- AND AufSpRab.Aufnr = BAufko.Aufnr
- AND AufSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK.
- RabWert = ABSOLUT(AufSpRab.Auf_Wert).
- IF AufSpRab.Auf_Proz_Betr THEN WText = "%".
- ELSE WText = "Fr.".
- xString = STRING(RabWert,"z9.99-")
- + WText.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', xString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
- END.
-
- IF iArtZeile > 0 THEN DO:
- iArtZeile = iArtZeile + 1.
- xString = TRIM(SUBSTRING(FormText[14],21,20)).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
- END.
- RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
-
- /* Recycling-Gebuehren ----------------------------------------------- */
- iArtZeile = 0.
- FOR EACH AufGKon USE-INDEX SavGKon-k1
- WHERE AufGKon.Firma = BAufko.Firma
- AND AufGKon.Aufnr = BAufko.Aufnr
- AND AufGKon.Gebuehr <> 0
- AND AufGKon.Betrag <> 0 NO-LOCK:
- FIND GebKonto OF AufGKon NO-LOCK NO-ERROR.
- IF NOT AVAILABLE GebKonto THEN xString = TRIM(SUBSTRING(FormText[11],41,20)).
- ELSE xString = GebKonto.Bez.
- VWC = AufGKon.MWST_Cd.
- VFak_Betr = VFak_Betr + AufGKon.Betrag.
- FIND LAST MwstAns NO-LOCK
- WHERE MwstAns.Mwst_Cd = VWC
- AND MwstAns.Datum <= BAufko.Fak_Datum NO-ERROR.
-
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(AufGKon.Betrag,'->>>,>>9.999')) ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC', STRING(AufGKon.MWSt_Cd,'z9') ).
-
- FIND FIRST TUmsGrp
- WHERE TUmsGrp.Ums_Grp = 1000
- AND TUmsGrp.Mwst = VWC
- AND TUmsGrp.Ansatz = MwstAns.Ansatz NO-ERROR.
- IF NOT AVAILABLE TUmsGrp THEN DO:
- FIND WarenGrp USE-INDEX WarenGrp-k1
- WHERE WarenGrp.Firma = GVFirma
- AND WarenGrp.Wgr = 1000 NO-LOCK NO-ERROR.
- CREATE TUmsGrp.
- ASSIGN TUmsGrp.Ums_Grp = 1000
- TUmsGrp.Mwst = VWC
- TUmsGrp.Ansatz = MwstAns.Ansatz
- TUmsGrp.Bez = (IF AVAILABLE WarenGrp THEN WarenGrp.Bez1 ELSE 'Recyclinggebühren').
- END.
- TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + AufGKon.Betrag.
- END.
- IF iArtZeile > 0 THEN DO:
- iArtZeile = iArtZeile + 1.
- xString = TRIM(SUBSTRING(FormText[14],41,20)).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.999')) ).
- END.
- RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
- /* Gebindelieferungen ------------------------------------------------ */
- VZTot = 0.
- iArtZeile = 0.
- FOR EACH AufGKon USE-INDEX SavGKon-k1
- WHERE AufGKon.Firma = BAufko.Firma
- AND AufGKon.Aufnr = BAufko.Aufnr
- AND AufGKon.Depot <> 0
- AND (AufGKon.Eingang <> 0 OR
- AufGKon.Ausgang <> 0) NO-LOCK:
-
- VWC = AufGKon.MWSt_Cd.
- FIND LAST MwstAns NO-LOCK
- WHERE MwstAns.Mwst_Cd = VWC
- AND MwstAns.Datum <= BAufko.Fak_Datum NO-ERROR.
- FIND FIRST TUmsGrp
- WHERE TUmsGrp.Ums_Grp = 1001
- AND TUmsGrp.Mwst = VWC
- AND TUmsGrp.Ansatz = MwstAns.Ansatz NO-ERROR.
- IF NOT AVAILABLE TUmsGrp THEN DO:
- FIND WarenGrp NO-LOCK USE-INDEX WarenGrp-k1
- WHERE WarenGrp.Firma = GVFirma
- AND WarenGrp.Wgr = 1001 NO-ERROR.
- CREATE TUmsGrp.
- ASSIGN TUmsGrp.Ums_Grp = 1001
- TUmsGrp.Mwst = VWC
- TUmsGrp.Ansatz = MwstAns.Ansatz
- TUmsGrp.Bez = (IF AVAILABLE WarenGrp THEN WarenGrp.Bez1 ELSE 'Gebindesaldo').
- END.
- TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + AufGKon.Betrag.
-
- FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1
- WHERE GebKonto.Firma = GVFirma
- AND GebKonto.Geb_Cd = AufGKon.Geb_Cd.
- i1 = AufGKon.Ausgang - AufGKon.Eingang.
- Rundbetr = AufGKon.Betrag.
- VZTot = VZTot + Rundbetr.
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'Gebindetext' , GebKonto.Bez ).
- RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeGel' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ).
- RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeRet' , TRIM(STRING(AufGKon.Eingang,"->>,>>9")) ).
- RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeSaldo', TRIM(STRING(i1 ,"->>,>>9")) ).
- RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeBetr' , TRIM(STRING(Rundbetr ,"->>,>>9.999")) ).
- END.
- IF iArtZeile > 0 THEN RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeTot' , TRIM(STRING(VZTot,"->>,>>9.999")) ).
- VFak_Betr = VFak_Betr + VZTot.
- IF iArtZeile > 0 THEN RUN VIPER_AUSGABE_GRUPPE ('Gebindeabrechnung').
- DO ix = 1 TO 12:
- GTWpfl[ix] = GTWpfl[ix] + BAufko.Wpfl[ix].
- GTWust[ix] = GTWust[ix] + BAufko.Wust[ix].
- END.
- GTFak_Betr = GTFak_Betr + VFak_Betr.
- GTSk_Ber = GTSk_Ber + BAufko.Sk_Ber.
- iArtZeile = 1.
- RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett' , TRIM(SUBSTRING(FormText[15],21,20)) ).
- RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Betrag_Fett', TRIM(STRING(VFak_Betr,"->>>,>>9.99")) ).
- IF FLetzt THEN DO:
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett' , ' ' ).
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett' , TRIM(SUBSTRING(FormText[14],01,20)) ).
- RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Betrag_Fett', TRIM(STRING(GTFak_Betr,"->>>,>>9.999")) ).
- END.
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett' , ' ' ).
- RUN VIPER_AUSGABE_GRUPPE ( 'FetteZeile' ).
- /* Kopfmutation -------------------------------------------------- */
-
- TiDruck = FALSE.
-
- IF FLetzt THEN RUN SAMMFAK_ENDE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_ENDE C-Win
- PROCEDURE SAMMFAK_ENDE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR cPDFName AS CHAR INIT '' NO-UNDO.
- DEF VAR iSpace AS INT INIT 0 NO-UNDO.
- DEF VAR iPos AS INT NO-UNDO.
- DEF VAR iKopie AS INT NO-UNDO.
-
- iPos = vpr_getPageVPos().
- iArtZeile = 1.
- iSpace = iSpace + 40.
- RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , ' ' ).
- DO ix = 1 TO 11:
- IF GTWpfl[ix] = 0 THEN NEXT.
- GTFak_Betr = GTFak_Betr + GTWust[ix].
-
- FIND LAST MWSTAns USE-INDEX MWSTAns-k1
- WHERE MWSTAns.MWST_Cd = ix
- AND MWSTAns.Datum <= BAufko.Kond_Datum NO-LOCK.
- iArtZeile = iArtZeile + 1.
- iSpace = iSpace + 40.
- RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , MWStAns.Bez ).
- RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstPfl' , TRIM(STRING(GTWpfl[ix],"->>,>>9.99")) ).
- RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBetr', TRIM(STRING(GTWust[ix],"->>>,>>9.99")) ).
- RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstCd' , TRIM(STRING(ix ,">>9")) ).
- END.
- IF (iSpace + iPos + 80) >= iVMaxPos THEN DO:
- RUN vpr_NewPage.
- RUN vpr_InitGroups('').
- IF iZaehler = iLauf THEN RUN vpr_initGraphObj.
- VSeite = VSeite + 1.
- RUN VIPER_ADRESSE (VDokArt).
- END.
- RUN VIPER_AUSGABE_GRUPPE ( 'Mehrwertsteuer' ).
-
- Rundbetr = GTFak_Betr.
- Rundcode = 1.
- RUN "v8/runden.p".
- GTFak_Betr = Rundbetr.
- iArtZeile = 1.
- RUN VIPER_CREATE_DOKUMENT ( 'RechnungsTotal', iArtZeile, 'EndBetrag' , TRIM(STRING(GTFak_Betr,"->,>>>,>>9.99")) ).
- RUN VIPER_AUSGABE_GRUPPE ( 'RechnungsTotal' ).
- iArtZeile = 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , TRIM(SUBSTRING(Helptext[15],41,20)) ).
- FOR EACH TUmsGrp NO-LOCK
- BY TUmsGrp.Ums_Grp
- BY TUmsGrp.Mwst :
- iArtZeile = iArtZeile + 1.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , TUmsGrp.Bez ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Alk%' , BSteuer.Fwc03 ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis' , TRIM(STRING(TUmsGrp.Ums_Betr,"->>>,>>9.99")) ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(TUmsGrp.Ansatz ,">9.99%")) ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC' , TRIM(STRING(TUmsGrp.Mwst ,"z9")) ).
- END.
- RUN VIPER_AUSGABE_GRUPPE ( 'ArtikelZeile1' ).
- /* Zahlungskondition ------------------------------------------------- */
- FIND Kondi USE-INDEX Kondi-k1
- WHERE Kondi.Kond = BAufko.Kond
- AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
- IF AVAILABLE Kondi THEN DO:
- iArtZeile = 1.
- RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Zahkond', Kondi.KoText ).
- RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Faellig', STRING((FDatum + Kondi.Faellig),"99.99.9999") ).
- IF Kondi.Skonto[01] <> 0 THEN DO:
- Rundbetr = GTSk_Ber * Kondi.Skonto[01] / 100.
- Rundcode = 1.
- RUN "v8/runden.p".
- RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Skonto', TRIM(STRING(Rundbetr,"->>>,>>9.99")) ).
- END.
- END.
- ELSE DO:
- iArtZeile = 1.
- RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Zahkond', FILL('?', 29) ).
- END.
- VFak_Betr = VFak_Betr - BAufko.Bar_Betr - BAufko.Bar_Skonto.
- RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Netto', TRIM(STRING(GTFak_Betr,"->>>,>>9.99")) ).
- RUN VIPER_AUSGABE_GRUPPE ( 'Kondition' ).
- IF GTFak_Betr = 0 THEN Rundbetr = -1.
- ELSE Rundbetr = GTFak_Betr.
- VesrKnr = BAufko.Fak_Knr.
- VesrFnr = BAufko.Faknr.
- IF AVAILABLE Kondi AND
- Kondi.Skonto[01] <> 0 THEN Rundbetr = 0.
- /* Abschluss und Druck ----------------------------------------------- */
- IF iZaehler < iLauf THEN RETURN.
-
- IF VBesr > 0 THEN RUN VIPER_BESR ( 'BESR' ).
-
- /* ------------------------------------------------------ */
- /* Druckausgabe */
- /* ------------------------------------------------------ */
-
- RUN vpr_EndDoc.
-
- IF SESSION:PRINTER-NAME <> F_Drucker THEN DO:
- RUN vpr_printerDialog ( OUTPUT ja ).
- IF NOT ja THEN RETURN.
- END.
- ELSE DO:
- RUN vpr_selectPrinter(SESSION:PRINTER-NAME).
- END.
-
- RUN vpr_SetPrinterAttrib('copies=1').
- RUN vpr_printDoc (0, 0).
- cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_Kopie_&3',
- STRING(BAufko.Knr ,'999999'),
- STRING(BAufko.Faknr,'999999'),
- cvpr_Dokument).
- cPDFName = REPLACE(cvpr_Dokument, '.vpr', '.pdf').
-
- IF iZaehler = iLauf THEN DO:
- IF iZaehler = 1 THEN RUN vpr_SaveDoc ( cvpr_Dokument ).
- RUN vpr_printPDF (0, 0, INPUT-OUTPUT cPDFName ).
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_KOPF C-Win
- PROCEDURE SAMMFAK_KOPF :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR kk AS INT NO-UNDO.
- DEF VAR xString AS CHAR NO-UNDO.
- DEF VAR iSeite AS INT NO-UNDO.
- iSeite = VSeite.
- RUN VIPER_NEUE_SEITE.
- IF VSeite = 1 AND
- VSeite > iSeite THEN DO:
- SFaknr = BAufko.Faknr.
-
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
- FIND LDebst USE-INDEX Debst-k1
- WHERE LDebst.Firma = GVFirma
- AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
- FIND FDebst USE-INDEX Debst-k1
- WHERE FDebst.Firma = GVFirma
- AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
- FIND Wust USE-INDEX Wust-k1
- WHERE Wust.CodeK = LDebst.MWST
- AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
- LVSprcd = Adresse.Sprcd.
- DebInkl = FALSE.
- IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
-
- VBesrKopf = ''.
- IF BAufko.Adresse[05] <> '' THEN DO:
- i1 = 6.
- DO ix = 1 TO 5:
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPF'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99')
- tDokument.cInhalt = BAufko.Adresse[ix].
- i1 = i1 + 1.
- VBesrKopf[i1] = BAufko.Adresse[ix].
- END.
- END.
- ELSE DO:
- DO ix = 5 TO 11:
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPF'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Adresse_' + STRING(ix,'99')
- tDokument.cInhalt = Adresse.Anschrift[ix].
- VBesrKopf[ix] = Adresse.Anschrift[ix].
- END.
- END.
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPF'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Ort_Datum'
- tDokument.cInhalt = TRIM(SUBSTRING(FormText[07],01,20))
- + " "
- + STRING(FDatum,"99.99.9999").
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPF'
- tDokument.iZeile = 1
- tDokument.cFeld = 'T_Dokument'
- tDokument.cInhalt = (IF BAufko.Auf_Tot >= 0
- THEN TRIM(SUBSTRING(FormText[02],01,20))
- ELSE TRIM(SUBSTRING(FormText[02],21,20))).
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPF'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Aufnr'
- tDokument.cInhalt = STRING(SFaknr,'z999999').
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPF'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Knr'
- tDokument.cInhalt = STRING(BAufko.Fak_Knr,'999999').
-
- END.
-
- IF VSeite > iSeite THEN RUN VIPER_ADRESSE ( VDokArt ).
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUMMENRABATTE C-Win
- PROCEDURE SUMMENRABATTE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR RText AS CHAR FORMAT "x(20)" NO-UNDO.
- DEF VAR WText AS CHAR NO-UNDO.
- /* Auftragsrabatte --------------------------------------------------- */
-
- i5 = 0.
- FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
- BY TRabSumm.Rab_Summ:
- Rundbetr = TRabSumm.Auf_Rab.
- IF Rundbetr < 0 THEN RText = VZusText.
- ELSE RText = VRabText.
- FIND FIRST AufRabSu NO-LOCK USE-INDEX SavRabSu-k1
- WHERE AufRabSu.Firma = BAufko.Firma
- AND AufRabSu.Aufnr = BAufko.Aufnr
- AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
- IF AufRabSu.F_Proz_Betr THEN WText = "%".
- ELSE WText = "Fr.".
- RabWert = ABSOLUT(AufRabSu.F_Wert).
- SUBSTRING(VZeile,042) = RText
- + " "
- + TRabSumm.Bez.
- SUBSTRING(VZeile,096) = STRING(RabWert,"z9.99-")
- + WText.
- SUBSTRING(VZeile,102) = STRING(- Rundbetr,"->>>,>>9.99").
- { v8/putstream.i "1" }
- VFak_Betr = VFak_Betr - Rundbetr.
- i5 = i5 + 1.
- END.
- /* Abholrabatt ------------------------------------------------------- */
-
- FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
- BY TRabSumm.Rab_Summ:
- Rundbetr = TRabSumm.Abh_Rab.
- IF Rundbetr < 0 THEN RText = VZusText.
- ELSE RText = VRabText.
- FIND FIRST AufRabSu NO-LOCK USE-INDEX SavRabSu-k1
- WHERE AufRabSu.Firma = BAufko.Firma
- AND AufRabSu.Aufnr = BAufko.Aufnr
- AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
- IF AufRabSu.A_Proz_Betr THEN WText = "%".
- ELSE WText = "Fr.".
- RabWert = ABSOLUT(AufRabSu.A_Wert).
- SUBSTRING(VZeile,042) = RText
- + " "
- + TRabSumm.Bez.
- SUBSTRING(VZeile,096) = STRING(RabWert,"z9.99-")
- + WText.
- SUBSTRING(VZeile,102) = STRING(- Rundbetr,"->>>,>>9.99").
- { v8/putstream.i "1" }
- VFak_Betr = VFak_Betr - Rundbetr.
- i5 = i5 + 1.
- END.
- /* ---------------------------------------------------------------------- */
- /* Spezialpreis-Auftragsrabatte ---------------------------------------- */
-
- FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0
- BY TSpeRab.Rab_Grp:
- FIND Tabel USE-INDEX Tabel-k1
- WHERE Tabel.Firma = GVFirma
- AND Tabel.RecArt = 'ARABGRP'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = TSpeRab.Rab_Grp
- AND Tabel.Sprcd = 1 NO-LOCK.
- Rundbetr = TSpeRab.Auf_Betr.
- IF Rundbetr < 0 THEN RText = VZusText.
- ELSE RText = VRabText.
- FIND FIRST AufSpRab USE-INDEX SavSpRab-k1
- WHERE AufSpRab.Firma = BAufko.Firma
- AND AufSpRab.Aufnr = BAufko.Aufnr
- AND AufSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK.
- IF AufSpRab.Auf_Proz_Betr THEN WText = "%".
- ELSE WText = "Fr.".
- RabWert = ABSOLUT(AufSpRab.Auf_Wert).
- SUBSTRING(VZeile,042) = RText
- + " "
- + TRIM(Tabel.Bez1).
- SUBSTRING(VZeile,096) = STRING(RabWert,"z9.99-")
- + WText.
- SUBSTRING(VZeile,102) = STRING(- Rundbetr,"->>>,>>9.99").
- { v8/putstream.i "1" }
- VFak_Betr = VFak_Betr - Rundbetr.
- i5 = i5 + 1.
- END.
- IF i5 > 0 THEN DO:
- SUBSTRING(VZeile,042) = TRIM(SUBSTRING(FormText[14],21,20)).
- SUBSTRING(VZeile,102) = STRING(VFak_Betr,"->>>,>>9.99").
- { v8/putstreamf.i "1" }
- END.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERSANDART C-Win
- PROCEDURE VERSANDART :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- XVersand = ''.
- FIND Tabel USE-INDEX Tabel-k1
- WHERE Tabel.Firma = GVFirma
- AND Tabel.RecArt = 'LIEFART'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = BAufko.Lief_Bed
- AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
- IF AVAILABLE Tabel THEN XVersand = Tabel.Bez1.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK C-Win
- PROCEDURE VESR_DRUCK :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- IF VBesr = 0 THEN RETURN.
- DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
- DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
- DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
- DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
- DEF VAR VSZeile AS CHAR FORMAT "x(58)".
- DEF VAR VZeile AS CHAR FORMAT "x(58)".
- DEF VAR XArt AS INT.
- DEF VAR XAnz AS INT.
- DEF VAR XBetr AS CHAR FORMAT "x(20)".
- DEF VAR VESR_P AS CHAR FORMAT "x(02)".
- DEF VAR VESR AS CHAR FORMAT "x(02)".
-
- DEF VAR XBetrag AS CHAR FORMAT "x(12)".
-
- DO WHILE TRUE:
- { v8/putstream.i "15" }
-
- PZBetrag = ''.
- IF Rundbetr < 0 THEN DO:
- PZBetrag = FILL('*', 13).
- PZReferenz = FILL('*', 27).
- PZTNummer = FILL('*', 09).
- XBetrag = FILL('*', 12).
- END.
- ELSE DO:
- IF Rundbetr > 0
- THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
- IF Rundbetr = 0
- THEN PZBetrag = " 04 ".
- PZReferenz = "92876000000"
- + STRING(VesrKnr,"999999")
- + STRING(VesrFnr,"9999999")
- + "00".
- PZTNummer = "01004578".
- XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999").
- RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
- INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
- END.
- SUBSTRING(VZeile,061) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
- { v8/putstream.i "2" }
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
- VVesr = "".
- IF Rundbetr <> 0 THEN DO:
- SUBSTRING(VVesr[01],02) = STRING(XBetrag,"XXXXXXXXXX XX").
- SUBSTRING(VVesr[01],31) = STRING(XBetrag,"XXXXXXXXXX XX").
- END.
- SUBSTRING(VVesr[01],61) = Adresse.Anschrift[07].
- SUBSTRING(VVesr[02],61) = Adresse.Anschrift[08].
- SUBSTRING(VVesr[03],61) = Adresse.Anschrift[09].
- SUBSTRING(VVesr[04],61) = Adresse.Anschrift[10].
- SUBSTRING(VVesr[05],61) = Adresse.Anschrift[11].
-
- SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
- SUBSTRING(VVesr[03],04) = SUBSTRING(VZeile,01,14).
- SUBSTRING(VVesr[04],01) = SUBSTRING(VZeile,16,17).
- SUBSTRING(VVesr[05],01) = Adresse.Anschrift[08].
- SUBSTRING(VVesr[06],01) = Adresse.Anschrift[09].
- SUBSTRING(VVesr[07],01) = Adresse.Anschrift[10].
- SUBSTRING(VVesr[08],01) = Adresse.Anschrift[11].
- SUBSTRING(VVesr[09],25) = STRING(VSZeile,"x(53)").
- SUBSTRING(VVesr[09],82) = "H".
- VVesr[09] = BDrucker.Dru10cpi
- + BDrucker.DruLQb
- + CHR(27) + "k" + CHR(05)
- + VVesr[09]
- + CHR(27) + "k" + CHR(00)
- + BDrucker.DruLQe
- + BDrucker.Dru12cpi.
-
- DO ix = 1 TO 10:
- VZeile = VVesr[ix].
- { v8/putstream.i "1" }
- END.
-
- LEAVE.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK01 C-Win
- PROCEDURE VESR_DRUCK01 :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
- DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
- DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
- DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
- DEF VAR VSZeile AS CHAR FORMAT "x(58)".
- DEF VAR VZeile AS CHAR FORMAT "x(58)".
- DEF VAR XArt AS INT.
- DEF VAR XAnz AS INT.
- DEF VAR XBetr AS CHAR FORMAT "x(20)".
- DEF VAR VESR_P AS CHAR FORMAT "x(02)".
- DEF VAR VESR AS CHAR FORMAT "x(02)".
-
- DEF VAR XBetrag AS CHAR FORMAT "x(12)".
-
- DO WHILE TRUE:
- { v8/putstream.i "15" }
-
- PZBetrag = ''.
- IF Rundbetr < 0 THEN DO:
- PZBetrag = FILL('*', 13).
- PZReferenz = FILL('*', 27).
- PZTNummer = FILL('*', 09).
- XBetrag = FILL('*', 12).
- END.
- ELSE DO:
- IF Rundbetr > 0
- THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
- IF Rundbetr = 0
- THEN PZBetrag = " 04 ".
- PZReferenz = "92876000000"
- + STRING(VesrKnr,"999999")
- + STRING(VesrFnr,"9999999")
- + "00".
- PZTNummer = "01004578".
- XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999").
- RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
- INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
- END.
- SUBSTRING(VZeile,061) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
- { v8/putstream.i "2" }
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
- VVesr = "".
- IF Rundbetr <> 0 THEN DO:
- SUBSTRING(VVesr[01],02) = STRING(XBetrag,"XXXXXXXXXX XX").
- SUBSTRING(VVesr[01],31) = STRING(XBetrag,"XXXXXXXXXX XX").
- END.
- SUBSTRING(VVesr[01],61) = Adresse.Anschrift[07].
- SUBSTRING(VVesr[02],61) = Adresse.Anschrift[08].
- SUBSTRING(VVesr[03],61) = Adresse.Anschrift[09].
- SUBSTRING(VVesr[04],61) = Adresse.Anschrift[10].
- SUBSTRING(VVesr[05],61) = Adresse.Anschrift[11].
-
- SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
- SUBSTRING(VVesr[03],04) = SUBSTRING(VZeile,01,14).
- SUBSTRING(VVesr[04],01) = SUBSTRING(VZeile,16,17).
- SUBSTRING(VVesr[05],01) = Adresse.Anschrift[08].
- SUBSTRING(VVesr[06],01) = Adresse.Anschrift[09].
- SUBSTRING(VVesr[07],01) = Adresse.Anschrift[10].
- SUBSTRING(VVesr[08],01) = Adresse.Anschrift[11].
- SUBSTRING(VVesr[09],25) = STRING(VSZeile,"x(53)").
- SUBSTRING(VVesr[09],82) = "H".
- VVesr[09] = BDrucker.Dru10cpi
- + BDrucker.DruLQb
- + CHR(27) + "k" + CHR(05)
- + VVesr[09]
- + CHR(27) + "k" + CHR(00)
- + BDrucker.DruLQe
- + BDrucker.Dru12cpi.
-
- DO ix = 1 TO 10:
- VZeile = VVesr[ix].
- { v8/putstream.i "1" }
- END.
-
- LEAVE.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK02 C-Win
- PROCEDURE VESR_DRUCK02 :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
- DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
- DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
- DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
- DEF VAR VSZeile AS CHAR FORMAT "x(58)".
- DEF VAR VZeile AS CHAR FORMAT "x(58)".
- DEF VAR XArt AS INT.
- DEF VAR XAnz AS INT.
- DEF VAR XBetr AS CHAR FORMAT "x(20)".
- DEF VAR VESR_P AS CHAR FORMAT "x(02)".
- DEF VAR VESR AS CHAR FORMAT "x(02)".
-
- DEF VAR XBetrag AS CHAR FORMAT "x(12)".
- FIND Tabel USE-INDEX Tabel-k1
- WHERE Tabel.Firma = GVFirma
- AND Tabel.RecArt = 'FAKDRU'
- AND Tabel.CodeC = 'BESR02'
- AND Tabel.CodeI = 0
- AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Tabel THEN RETURN.
-
- FIND XSchrift USE-INDEX Schrift-k1
- WHERE XSchrift.Schname = Tabel.Bez1
- AND XSchrift.Schbild = Tabel.Bez2 NO-LOCK NO-ERROR.
- IF NOT AVAILABLE XSchrift THEN RETURN.
-
- FIND XDrucker USE-INDEX Drucker-k1
- WHERE XDrucker.Drucker = XSchrift.Schdru NO-LOCK NO-ERROR.
- IF NOT AVAILABLE XDrucker THEN RETURN.
- VTempVESR = VTemp + "VESR".
- XSchacht = Tabel.Dec_3.
-
- OUTPUT STREAM VOut_Stream TO VALUE(VTempVESR).
-
- DO WHILE TRUE:
- VVesr = ''.
- SUBSTRING(VVesr[03],001) = 'Bank Zimmerberg AG'.
- SUBSTRING(VVesr[03],028) = 'Bank Zimmerberg AG'.
- SUBSTRING(VVesr[04],001) = '8810 Horgen '.
- SUBSTRING(VVesr[04],028) = '8810 Horgen '.
- VVesr[03] = XDrucker.dru12cpi + VVesr[03].
-
- SUBSTRING(VVesr[07],001) = 'Huber Getränkehandlung AG'.
- SUBSTRING(VVesr[07],028) = 'Huber Getränkehandlung AG'.
- SUBSTRING(VVesr[07],094) = ''.
- SUBSTRING(VVesr[08],001) = 'Allmendstrasse 91'.
- SUBSTRING(VVesr[08],028) = 'Allmendstrasse 91'.
- SUBSTRING(VVesr[09],001) = '8041 Zürich'.
- SUBSTRING(VVesr[09],028) = '8041 Zürich'.
- VVesr[07] = XDrucker.dru12cpi + VVesr[07].
- PZBetrag = ''.
- XBetrag = ''.
- IF Rundbetr < 0 THEN DO:
- PZBetrag = FILL('*', 13).
- PZReferenz = FILL('*', 27).
- PZTNummer = FILL('*', 09).
- XBetrag = FILL('*', 12).
- END.
- ELSE DO:
- IF Rundbetr > 0
- THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
- IF Rundbetr = 0
- THEN PZBetrag = " 04 ".
- PZReferenz = "80401100000"
- + STRING(VesrKnr,"999999")
- + STRING(VesrFnr,"9999999")
- + "00".
- PZTNummer = "01007648".
- IF Rundbetr > 0
- THEN XBetrag = STRING((Rundbetr * 100),"zzzzzz999").
- RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
- INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
- END.
- SUBSTRING(VVesr[11],013) = ' 01-7648-2'.
- SUBSTRING(VVesr[11],042) = ' 01-7648-2'.
- SUBSTRING(VVesr[09],059) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
- SUBSTRING(VVesr[13],02) = STRING(XBetrag,"X X X X X X X X X").
- SUBSTRING(VVesr[13],26) = STRING(XBetrag,"X X X X X X X X X").
- VVesr[13] = XDrucker.dru10cpi + VVesr[13] + XDrucker.dru12cpi.
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
- SUBSTRING(VVesr[14],59) = Adresse.Anschrift[07].
- SUBSTRING(VVesr[15],59) = Adresse.Anschrift[08].
- SUBSTRING(VVesr[16],59) = Adresse.Anschrift[09].
- SUBSTRING(VVesr[17],59) = Adresse.Anschrift[10].
- SUBSTRING(VVesr[18],59) = Adresse.Anschrift[11].
-
- SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
- SUBSTRING(VVesr[15],04) = SUBSTRING(VZeile,01,14).
- SUBSTRING(VVesr[16],01) = SUBSTRING(VZeile,16,17).
- SUBSTRING(VVesr[17],01) = SUBSTRING(Adresse.Anschrift[08],01,25).
- SUBSTRING(VVesr[18],01) = SUBSTRING(Adresse.Anschrift[09],01,25).
- SUBSTRING(VVesr[19],01) = SUBSTRING(Adresse.Anschrift[10],01,25).
- SUBSTRING(VVesr[20],01) = SUBSTRING(Adresse.Anschrift[11],01,25).
- SUBSTRING(VVesr[21],01) = 'H'.
- SUBSTRING(VVesr[21],26) = STRING(VSZeile,"x(53)").
- VVesr[21] = XDrucker.DruInvB
- + VVesr[21]
- + XDrucker.DruInvE.
-
- VZeile = FILL(CHR(10), Tabel.Int_2).
- PUT STREAM VOut_Stream CONTROL VZeile.
- PUT STREAM VOut_Stream CONTROL CHR(27) '='.
- DO ix = 1 TO 15:
- VZeile = ''.
- VZeile = VBesrKopf[ix] + CHR(10).
- PUT STREAM VOut_Stream CONTROL VZeile.
- END.
-
- VZeile = FILL(CHR(10), 20).
- PUT STREAM VOut_Stream CONTROL VZeile.
- DO ix = 1 TO 21:
- VZeile = VVesr[ix] + CHR(10).
- PUT STREAM VOut_Stream CONTROL VZeile.
- END.
-
- LEAVE.
- END.
- OUTPUT STREAM VOut_Stream CLOSE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK03 C-Win
- PROCEDURE VESR_DRUCK03 :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR VVESR AS CHAR FORMAT "x(99)" EXTENT 25.
- DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
- DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
- DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
- DEF VAR VSZeile AS CHAR FORMAT "x(58)".
- DEF VAR VZeile AS CHAR FORMAT "x(58)".
- DEF VAR XArt AS INT.
- DEF VAR XAnz AS INT.
- DEF VAR XBetr AS CHAR FORMAT "x(20)".
- DEF VAR VESR_P AS CHAR FORMAT "x(02)".
- DEF VAR VESR AS CHAR FORMAT "x(02)".
-
- DEF VAR XBetrag AS CHAR FORMAT "x(12)".
- DEF VAR ii AS INT NO-UNDO.
-
- DO WHILE TRUE:
- { v8/putstream.i "07" }
- VZeile = ''.
- SUBSTRING(VZeile,01) = 'Bank Zimmerberg AG'.
- SUBSTRING(VZeile,29) = 'Bank Zimmerberg AG'.
- { v8/putstream.i "01" }
-
- SUBSTRING(VZeile,01) = '8810 Horgen '.
- SUBSTRING(VZeile,29) = '8810 Horgen '.
- { v8/putstream.i "02" }
- SUBSTRING(VZeile,01) = 'Huber Getränkehandlung AG'.
- SUBSTRING(VZeile,29) = 'Huber Getränkehandlung AG'.
- { v8/putstream.i "01" }
- SUBSTRING(VZeile,01) = 'Allmendstrasse 91'.
- SUBSTRING(VZeile,29) = 'Allmendstrasse 91'.
- { v8/putstream.i "01" }
- SUBSTRING(VZeile,01) = '8041 Zürich'.
- SUBSTRING(VZeile,29) = '8041 Zürich'.
- { v8/putstream.i "1" }
- PZBetrag = ''.
- IF Rundbetr < 0 THEN DO:
- PZBetrag = FILL('*', 13).
- PZReferenz = FILL('*', 27).
- PZTNummer = FILL('*', 09).
- XBetrag = FILL('*', 12).
- END.
- ELSE DO:
- IF Rundbetr > 0
- THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
- IF Rundbetr = 0
- THEN PZBetrag = " 04 ".
- PZReferenz = "80401100000"
- + STRING(VesrKnr,"999999")
- + STRING(VesrFnr,"9999999")
- + "00".
- PZTNummer = "01007648".
- XBetrag = STRING((Rundbetr * 100),"zzzzzz999").
- RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
- INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
- END.
- SUBSTRING(VZeile,061) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
- { v8/putstream.i "2" }
- SUBSTRING(VZeile,12) = '01-7648-2'.
- SUBSTRING(VZeile,43) = '01-7648-2'.
- { v8/putstream.i "2" }
- IF Rundbetr <> 0 THEN DO:
- DO ii = 9 TO 1 BY -1:
- IF SUBSTRING(XBetrag,ii,01) <> '' THEN NEXT.
- SUBSTRING(XBetrag,ii) = '-'.
- LEAVE.
- END.
- SUBSTRING(VZeile,01) = STRING(XBetrag," X X X X X X X X X").
- SUBSTRING(VZeile,25) = STRING(XBetrag," X X X X X X X X X").
- END.
- VZeile = BDrucker.Dru10cpi + VZeile + BDrucker.Dru12cpi.
- { v8/putstream.i "1" }
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
- VVesr = "".
- SUBSTRING(VVesr[01],61) = Adresse.Anschrift[07].
- SUBSTRING(VVesr[02],61) = Adresse.Anschrift[08].
- SUBSTRING(VVesr[03],61) = Adresse.Anschrift[09].
- SUBSTRING(VVesr[04],61) = Adresse.Anschrift[10].
- SUBSTRING(VVesr[05],61) = Adresse.Anschrift[11].
-
- SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
- SUBSTRING(VVesr[02],10) = SUBSTRING(VZeile,01,14).
- SUBSTRING(VVesr[03],07) = SUBSTRING(VZeile,16,17).
- SUBSTRING(VVesr[04],01) = Adresse.Anschrift[08].
- SUBSTRING(VVesr[05],01) = Adresse.Anschrift[09].
- SUBSTRING(VVesr[06],01) = Adresse.Anschrift[10].
- SUBSTRING(VVesr[07],01) = Adresse.Anschrift[11].
- SUBSTRING(VVesr[08],25) = STRING(VSZeile,"x(53)").
- /*
- SUBSTRING(VVesr[08],82) = "H".
- */
- VVesr[08] = BDrucker.Dru10cpi
- + BDrucker.DruLQb
- + CHR(27) + "k" + CHR(05)
- + VVesr[08]
- + CHR(27) + "k" + '0'
- + BDrucker.DruLQe
- + BDrucker.Dru12cpi.
-
- DO ix = 1 TO 10:
- VZeile = VVesr[ix].
- { v8/putstream.i "1" }
- END.
-
- LEAVE.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK04 C-Win
- PROCEDURE VESR_DRUCK04 :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
- DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
- DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
- DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
- DEF VAR VSZeile AS CHAR FORMAT "x(58)".
- DEF VAR VZeile AS CHAR FORMAT "x(58)".
- DEF VAR XArt AS INT.
- DEF VAR XAnz AS INT.
- DEF VAR XBetr AS CHAR FORMAT "x(20)".
- DEF VAR VESR_P AS CHAR FORMAT "x(02)".
- DEF VAR VESR AS CHAR FORMAT "x(02)".
-
- DEF VAR XBetrag AS CHAR FORMAT "x(12)".
- FIND Tabel USE-INDEX Tabel-k1
- WHERE Tabel.Firma = GVFirma
- AND Tabel.RecArt = 'FAKDRU'
- AND Tabel.CodeC = 'BESR02'
- AND Tabel.CodeI = 0
- AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Tabel THEN RETURN.
-
- FIND XSchrift USE-INDEX Schrift-k1
- WHERE XSchrift.Schname = Tabel.Bez1
- AND XSchrift.Schbild = Tabel.Bez2 NO-LOCK NO-ERROR.
- IF NOT AVAILABLE XSchrift THEN RETURN.
-
- FIND XDrucker USE-INDEX Drucker-k1
- WHERE XDrucker.Drucker = XSchrift.Schdru NO-LOCK NO-ERROR.
- IF NOT AVAILABLE XDrucker THEN RETURN.
- VTempVESR = VTemp + "VESR".
- XSchacht = Tabel.Dec_3.
- OUTPUT STREAM VOut_Stream TO VALUE(VTempVESR).
-
- DO WHILE TRUE:
- VVesr = ''.
- SUBSTRING(VVesr[03],001) = 'Bank Zimmerberg AG'.
- SUBSTRING(VVesr[03],028) = 'Bank Zimmerberg AG'.
- SUBSTRING(VVesr[04],001) = '8810 Horgen '.
- SUBSTRING(VVesr[04],028) = '8810 Horgen '.
- VVesr[03] = XDrucker.dru12cpi + VVesr[03].
-
- SUBSTRING(VVesr[07],001) = 'Huber Getränkehandlung AG'.
- SUBSTRING(VVesr[07],028) = 'Huber Getränkehandlung AG'.
- SUBSTRING(VVesr[07],094) = ''.
- SUBSTRING(VVesr[08],001) = 'Allmendstrasse 91'.
- SUBSTRING(VVesr[08],028) = 'Allmendstrasse 91'.
- SUBSTRING(VVesr[09],001) = '8041 Zürich'.
- SUBSTRING(VVesr[09],028) = '8041 Zürich'.
- VVesr[07] = XDrucker.dru12cpi + VVesr[07].
- PZBetrag = ''.
- XBetrag = ''.
- IF Rundbetr < 0 THEN DO:
- PZBetrag = FILL('*', 13).
- PZReferenz = FILL('*', 27).
- PZTNummer = FILL('*', 09).
- XBetrag = FILL('*', 12).
- END.
- ELSE DO:
- IF Rundbetr > 0
- THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
- IF Rundbetr = 0
- THEN PZBetrag = " 04 ".
- PZReferenz = "80401100000"
- + STRING(VesrKnr,"999999")
- + STRING(VesrFnr,"9999999")
- + "00".
- PZTNummer = "01007648".
- IF Rundbetr > 0
- THEN XBetrag = STRING((Rundbetr * 100),"zzzzzz999").
- RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
- INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
- END.
- SUBSTRING(VVesr[11],013) = ' 01-7648-2'.
- SUBSTRING(VVesr[11],042) = ' 01-7648-2'.
- SUBSTRING(VVesr[09],059) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
- SUBSTRING(VVesr[13],02) = STRING(XBetrag,"X X X X X X X X X").
- SUBSTRING(VVesr[13],26) = STRING(XBetrag,"X X X X X X X X X").
- VVesr[13] = XDrucker.dru10cpi + VVesr[13] + XDrucker.dru12cpi.
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
- SUBSTRING(VVesr[14],59) = Adresse.Anschrift[07].
- SUBSTRING(VVesr[15],59) = Adresse.Anschrift[08].
- SUBSTRING(VVesr[16],59) = Adresse.Anschrift[09].
- SUBSTRING(VVesr[17],59) = Adresse.Anschrift[10].
- SUBSTRING(VVesr[18],59) = Adresse.Anschrift[11].
-
- SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
- SUBSTRING(VVesr[15],04) = SUBSTRING(VZeile,01,14).
- SUBSTRING(VVesr[16],01) = SUBSTRING(VZeile,16,17).
- SUBSTRING(VVesr[17],01) = SUBSTRING(Adresse.Anschrift[08],01,25).
- SUBSTRING(VVesr[18],01) = SUBSTRING(Adresse.Anschrift[09],01,25).
- SUBSTRING(VVesr[19],01) = SUBSTRING(Adresse.Anschrift[10],01,25).
- SUBSTRING(VVesr[20],01) = SUBSTRING(Adresse.Anschrift[11],01,25).
- SUBSTRING(VVesr[21],01) = 'H'.
- SUBSTRING(VVesr[21],26) = STRING(VSZeile,"x(53)").
- VVesr[21] = XDrucker.DruInvB
- + VVesr[21]
- + XDrucker.DruInvE.
-
- VZeile = FILL(CHR(10), Tabel.Int_2).
- PUT STREAM VOut_Stream CONTROL VZeile.
-
- /* Halbe Zeilenschaltung -------------------------
- PUT STREAM VOut_Stream CONTROL CHR(27) '='.
- */
-
- DO ix = 1 TO 15:
- VZeile = ''.
- VZeile = ' ' + VBesrKopf[ix] + CHR(10).
- PUT STREAM VOut_Stream CONTROL VZeile.
- END.
-
- VZeile = FILL(CHR(10), 20).
- PUT STREAM VOut_Stream CONTROL VZeile.
- DO ix = 1 TO 21:
- VZeile = VVesr[ix] + (IF ix < 21 THEN CHR(10) ELSE '').
- PUT STREAM VOut_Stream CONTROL VZeile.
- END.
-
- LEAVE.
- END.
- OUTPUT STREAM VOut_Stream CLOSE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK05 C-Win
- PROCEDURE VESR_DRUCK05 :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
- DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
- DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
- DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
- DEF VAR VSZeile AS CHAR FORMAT "x(58)".
- DEF VAR VZeile AS CHAR FORMAT "x(58)".
- DEF VAR XArt AS INT.
- DEF VAR XAnz AS INT.
- DEF VAR XBetr AS CHAR FORMAT "x(20)".
- DEF VAR VESR_P AS CHAR FORMAT "x(02)".
- DEF VAR VESR AS CHAR FORMAT "x(02)".
-
- DEF VAR XBetrag AS CHAR FORMAT "x(12)".
- DEF VAR ii AS INT NO-UNDO.
-
- DO WHILE TRUE:
- { v8/putstream.i "07" }
- VZeile = ''.
- SUBSTRING(VZeile,01) = 'Bank Zimmerberg AG'.
- SUBSTRING(VZeile,29) = 'Bank Zimmerberg AG'.
- { v8/putstream.i "01" }
-
- SUBSTRING(VZeile,01) = '8810 Horgen '.
- SUBSTRING(VZeile,29) = '8810 Horgen '.
- { v8/putstream.i "02" }
- SUBSTRING(VZeile,01) = 'Huber Getränkehandlung AG'.
- SUBSTRING(VZeile,29) = 'Huber Getränkehandlung AG'.
- { v8/putstream.i "01" }
- SUBSTRING(VZeile,01) = 'Allmendstrasse 91'.
- SUBSTRING(VZeile,29) = 'Allmendstrasse 91'.
- { v8/putstream.i "01" }
- SUBSTRING(VZeile,01) = '8041 Zürich'.
- SUBSTRING(VZeile,29) = '8041 Zürich'.
- { v8/putstream.i "1" }
- PZBetrag = ''.
- IF Rundbetr < 0 THEN DO:
- PZBetrag = FILL('*', 13).
- PZReferenz = FILL('*', 27).
- PZTNummer = FILL('*', 09).
- XBetrag = FILL('*', 12).
- END.
- ELSE DO:
- IF Rundbetr > 0
- THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
- IF Rundbetr = 0
- THEN PZBetrag = " 04 ".
- PZReferenz = "80401100000"
- + STRING(VesrKnr,"999999")
- + STRING(VesrFnr,"9999999")
- + "00".
- PZTNummer = "01007648".
- XBetrag = STRING((Rundbetr * 100),"zzzzzz999").
- RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
- INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
- END.
- SUBSTRING(VZeile,061) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
- { v8/putstream.i "2" }
- SUBSTRING(VZeile,12) = '01-7648-2'.
- SUBSTRING(VZeile,43) = '01-7648-2'.
- { v8/putstream.i "2" }
- IF Rundbetr <> 0 THEN DO:
- DO ii = 9 TO 1 BY -1:
- IF SUBSTRING(XBetrag,ii,01) <> '' THEN NEXT.
- SUBSTRING(XBetrag,ii) = '-'.
- LEAVE.
- END.
- SUBSTRING(VZeile,01) = STRING(XBetrag," X X X X X X X X X").
- SUBSTRING(VZeile,25) = STRING(XBetrag," X X X X X X X X X").
- END.
- VZeile = BDrucker.Dru10cpi + VZeile + BDrucker.Dru12cpi.
- { v8/putstream.i "1" }
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
- VVesr = "".
- SUBSTRING(VVesr[01],61) = Adresse.Anschrift[07].
- SUBSTRING(VVesr[02],61) = Adresse.Anschrift[08].
- SUBSTRING(VVesr[03],61) = Adresse.Anschrift[09].
- SUBSTRING(VVesr[04],61) = Adresse.Anschrift[10].
- SUBSTRING(VVesr[05],61) = Adresse.Anschrift[11].
-
- SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
- SUBSTRING(VVesr[02],10) = SUBSTRING(VZeile,01,14).
- SUBSTRING(VVesr[03],07) = SUBSTRING(VZeile,16,17).
- SUBSTRING(VVesr[04],01) = Adresse.Anschrift[08].
- SUBSTRING(VVesr[05],01) = Adresse.Anschrift[09].
- SUBSTRING(VVesr[06],01) = Adresse.Anschrift[10].
- SUBSTRING(VVesr[07],01) = Adresse.Anschrift[11].
- SUBSTRING(VVesr[08],25) = STRING(VSZeile,"x(53)").
- SUBSTRING(VVesr[08],82) = "H".
- VVesr[08] = BDrucker.DruLQb
- + BDrucker.DruLQe
- + BDrucker.Dru12cpi.
-
- DO ix = 1 TO 10:
- VZeile = VVesr[ix].
- { v8/putstream.i "1" }
- END.
-
- LEAVE.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_ADRESSE C-Win
- PROCEDURE VIPER_ADRESSE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipString AS CHAR NO-UNDO.
-
- DEF VAR cZellen AS CHAR NO-UNDO.
- DEF VAR cWerte AS CHAR NO-UNDO.
- FIND FIRST tDokument
- WHERE tDokument.cGruppe = 'KOPF'
- AND tDokument.iZeile = 1
- AND tDokument.cFeld = 'Seite' NO-ERROR.
- IF NOT AVAILABLE tDokument THEN DO:
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'KOPF'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Seite'.
- END.
- tDokument.cInhalt = STRING(VSeite,'z9').
-
- cZellen = ''.
- cWerte = ''.
- FOR EACH tDokument
- WHERE tDokument.cGruppe = 'Kopf'
- BREAK BY tDokument.cGruppe
- BY tDokument.cFeld:
- cWerte = cWerte
- + tDokument.cInhalt.
- cZellen = cZellen
- + tDokument.cFeld.
- IF NOT LAST-OF ( tDokument.cGruppe ) THEN ASSIGN cWerte = cWerte + CHR(01)
- cZellen = cZellen + ','.
- END.
- RUN vpr_SetDelimiter (CHR(01)).
- RUN vpr_setGroupText ('Kopf', cZellen, cWerte).
- RUN vpr_FlushGroup ('Kopf').
-
- IF VSeite = 1 AND
- ipString <> 'SammFak' THEN DO:
- cZellen = ''.
- cWerte = ''.
- FOR EACH tDokument
- WHERE tDokument.cGruppe = 'KopfDetail'
- BREAK BY tDokument.cGruppe
- BY tDokument.cFeld:
- cWerte = cWerte
- + tDokument.cInhalt.
- cZellen = cZellen
- + tDokument.cFeld.
- IF NOT LAST-OF ( tDokument.cGruppe ) THEN ASSIGN cWerte = cWerte + CHR(01)
- cZellen = cZellen + ','.
- END.
- RUN vpr_SetDelimiter (CHR(01)).
- RUN vpr_setGroupText ('KopfDetail', cZellen, cWerte).
- RUN vpr_FlushGroup ('KopfDetail').
- END.
- RUN vpr_FlushGroup ('Fusstext').
- RUN vpr_FlushGroup ('Ueberschrift').
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_ARTIKELZEILE C-Win
- PROCEDURE VIPER_ARTIKELZEILE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
-
- DEF VAR cString AS CHAR NO-UNDO.
-
- FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
- FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
- iArtZeile = iArtZeile + 1.
- DO WHILE Aufze.Artnr = 0:
- cString = Aufze.Bez1.
- IF Aufze.Bez1 <> '' THEN DO:
- cString = cString
- + (IF cString = '' THEN '' ELSE CHR(10))
- + Aufze.Bez2.
- END.
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'ArtikelZeile1'
- tDokument.iZeile = iArtZeile
- tDokument.cFeld = 'Bez1'
- tDokument.cInhalt = cString.
- RETURN.
- END.
- FIND Artst OF Aufze NO-LOCK.
-
- FIND GGebinde WHERE GGebinde.Firma = GVFirma
- AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
- FIND VGebinde WHERE VGebinde.Firma = GVFirma
- AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
- FIND KGebinde WHERE KGebinde.Firma = GVFirma
- AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'KGebinde', KGebinde.Kbez ).
-
- IF Aufze.VGeb_Me <> 0 THEN DO:
- cString = STRING(Aufze.VGeb_Me,'->>>>')
- + 'x '
- + VGebinde.KBez.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'VGebinde', cString ).
- END.
-
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Menge', STRING(Aufze.MGeli,'->>,>>9') ).
-
- cString = Aufze.Bez1.
- IF Aufze.Bez2 <> '' THEN DO:
- cString = cString
- + (IF cString = '' THEN '' ELSE CHR(10))
- + Aufze.Bez2.
- END.
- IF Aufze.Aktion THEN DO:
- cString = cString
- + (IF cString = '' THEN '' ELSE CHR(10))
- + Aufze.Aktion_Text.
- END.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', cString ).
-
- IF Aufze.Jahr > 9 THEN DO:
- cString = STRING(Aufze.Jahr,"9999").
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'JG', cString ).
- END.
-
- IF Aufze.Alk_Gehalt <> 0 THEN DO:
- cString = STRING(Aufze.Alk_Gehalt,"zz9.9%").
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Alk%', cString ).
- END.
-
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', STRING(Aufze.Artnr,"999999") ).
-
- IF FPreis THEN DO:
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis' , STRING(Aufze.Preis ,'>,>>9.99') ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', STRING(Aufze.Bru_Betr,'->>>,>>9.99') ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC' , STRING(Aufze.WuCd ,'z9') ).
- END.
-
- DO WHILE FPreis:
- IF Aufze.Rab_Betr = 0 THEN LEAVE.
- iArtZeile = iArtZeile + 1.
- RabWert = ABSOLUTE(Aufze.Rab_Wert).
- IF Aufze.Rab_Art = 3 THEN RabText = VEpzText.
- ELSE DO:
- IF Aufze.Rab_Betr < 0 THEN RabText = VZusText.
- IF Aufze.Rab_Betr > 0 THEN RabText = VRabText.
- END.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(RabText) ).
-
- IF Aufze.Rab_Art = 1 THEN cString = STRING(RabWert,"->9.9%").
- IF Aufze.Rab_Art = 2 OR
- Aufze.Rab_Art = 3 THEN cString = STRING(RabWert,"-9.99").
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis', cString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Aufze.Rab_Betr,"->>>,>>9.99")) ).
- LEAVE.
- END.
-
- DO WHILE FPreis:
- IF Aufze.Zus_Betr = 0 THEN LEAVE.
-
- iArtZeile = iArtZeile + 1.
- RabWert = ABSOLUTE(Aufze.Zus_Wert).
- IF Aufze.Zus_Art = 3 THEN RabText = VEpzText.
- ELSE DO:
- IF Aufze.Zus_Betr < 0 THEN RabText = VRabText.
- IF Aufze.Zus_Betr > 0 THEN RabText = VZusText.
- END.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(RabText) ).
-
- IF Aufze.Zus_Art = 1 THEN cString = STRING(RabWert,"->9.9%").
- IF Aufze.Zus_Art = 2 OR
- Aufze.Zus_Art = 3 THEN cString = STRING(RabWert,"-9.99").
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis', cString ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(+ Aufze.Zus_Betr,"->>>,>>9.99")) ).
- LEAVE.
- END.
-
- /* ---- Summengruppen-Total -------------------------------------------- */
-
- IF Aufze.Rab_Su_Grp <> 0 THEN DO:
- FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR.
- IF AVAILABLE TRabSumm THEN DO:
- TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab.
- TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab.
- END.
- END.
-
- /* ---- Warengruppen-Totale -------------------------------------------- */
-
- FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp
- AND TUmsGrp.MWst = Aufze.WuCd
- AND TUmsGrp.Ansatz = Aufze.Mwst% NO-ERROR.
- IF NOT AVAILABLE TUmsGrp THEN DO:
- FIND WarenGrp NO-LOCK USE-INDEX WarenGrp-k1
- WHERE WarenGrp.Firma = GVFirma
- AND WarenGrp.Wgr = Artst.Wg_Grp NO-ERROR.
- CREATE TUmsGrp.
- ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp
- TUmsGrp.Mwst = Aufze.WuCd
- TUmsGrp.Ansatz = Aufze.MWST%.
- IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
- ELSE TUmsGrp.Bez = "??????????".
- END.
-
- TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
- + Aufze.Net_Betr
- - Aufze.Auf_Rab
- - Aufze.Abh_Rab.
- /*
- RUN VIPER_AUSGABE_GRUPPE ( 'ArtikelZeile1' ).
- */
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_AUSGABE_ARTIKELZEILE C-Win
- PROCEDURE VIPER_AUSGABE_ARTIKELZEILE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR cZellen AS CHAR NO-UNDO.
- DEF VAR cWerte AS CHAR NO-UNDO.
- DEF VAR iPos AS INT NO-UNDO.
-
- FOR EACH tDokument
- WHERE tDokument.cGruppe = 'ArtikelZeile1'
- BREAK BY tDokument.cGruppe
- BY tDokument.iZeile:
- IF FIRST-OF ( tDokument.cGruppe ) THEN DO:
- iVPagePos = vpr_getPageVPos() + 20.
- RUN vpr_setPageVPos ( iVPagePos ).
- RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
- END.
- IF FIRST-OF ( tDokument.iZeile ) THEN DO:
- cZellen = ''.
- cWerte = ''.
- END.
- cWerte = cWerte
- + tDokument.cInhalt.
- cZellen = cZellen
- + tDokument.cFeld.
- IF NOT LAST-OF ( tDokument.iZeile ) THEN DO:
- ASSIGN cWerte = cWerte + CHR(01)
- cZellen = cZellen + ','.
- NEXT.
- END.
-
- RUN vpr_SetDelimiter (CHR(01)).
- RUN vpr_setGroupText ('ArtikelZeile1', cZellen, cWerte).
- iVPagePos = vpr_getPageVPos().
- iPos = iVPagePos + vpr_getGroupHeight('ArtikelZeile1').
- IF iPos > iVMaxPos THEN DO:
- RUN VIPER_NEUE_SEITE.
- RUN VIPER_ADRESSE ('').
- iVPagePos = vpr_getPageVPos() + 20.
- RUN vpr_setPageVPos ( iVPagePos ).
- RUN vpr_setGroupText ('ArtikelZeile1', cZellen, cWerte).
- END.
- RUN vpr_FlushGroup ('ArtikelZeile1').
- iVPagePos = vpr_getPageVPos().
- IF LAST-OF ( tDokument.cGruppe ) THEN LEAVE.
-
- iVPagePos = vpr_getPageVPos().
- RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
- END.
- FOR EACH tDokument
- WHERE tDokument.cGruppe = 'ArtikelZeile1':
- DELETE tDokument.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_AUSGABE_GRUPPE C-Win
- PROCEDURE VIPER_AUSGABE_GRUPPE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipGruppe AS CHAR NO-UNDO.
- DEF VAR cZellen AS CHAR NO-UNDO.
- DEF VAR cWerte AS CHAR NO-UNDO.
- DEF VAR iSpace AS INT NO-UNDO.
-
- iSpace = vpr_getPageVPos().
- FOR EACH tDokument NO-LOCK
- WHERE tDokument.cGruppe = ipGruppe
- BREAK BY tDokument.cGruppe
- BY tDokument.iZeile:
- IF FIRST-OF ( tDokument.iZeile ) THEN iSpace = iSpace + 40.
- END.
- IF iSpace > iVMaxPos THEN DO:
- RUN vpr_NewPage.
- RUN vpr_InitGroups('').
- IF iZaehler = iLauf THEN RUN vpr_initGraphObj.
- VSeite = VSeite + 1.
- RUN VIPER_ADRESSE (VDokArt).
- END.
-
- iVPagePos = vpr_getPageVPos().
- CASE ipGruppe:
- WHEN 'Gebindeabrechnung' THEN DO:
- iVPagePos = iVPagePos + 20.
- RUN vpr_setGroupVPos ( 'GebindeabrechnungTitel', iVPagePos ).
- RUN vpr_FlushGroup ( 'GebindeabrechnungTitel').
- iVPagePos = vpr_getPageVPos().
- END.
- OTHERWISE DO:
- END.
- END CASE.
-
- FOR EACH tDokument
- WHERE tDokument.cGruppe = ipGruppe
- BREAK BY tDokument.cGruppe
- BY tDokument.iZeile:
- IF FIRST-OF ( tDokument.cGruppe ) THEN DO:
- IF ipGruppe <> 'Kondition' AND
- ipGruppe <> 'BESR' AND
- ipGruppe <> 'ADRESSE' THEN DO:
- iVPagePos = vpr_getPageVPos().
- RUN vpr_setGroupVPos ( ipGruppe, iVPagePos ).
- END.
- END.
- IF FIRST-OF ( tDokument.iZeile ) THEN DO:
- cZellen = ''.
- cWerte = ''.
- END.
- cWerte = cWerte
- + tDokument.cInhalt.
- cZellen = cZellen
- + tDokument.cFeld.
- IF NOT LAST-OF ( tDokument.iZeile ) THEN DO:
- ASSIGN cWerte = cWerte + CHR(01)
- cZellen = cZellen + ','.
- NEXT.
- END.
- RUN vpr_SetDelimiter (CHR(01)).
- RUN vpr_setGroupText (ipGruppe, cZellen, cWerte).
- RUN vpr_FlushGroup (ipGruppe).
- END.
- FOR EACH tDokument
- WHERE tDokument.cGruppe = ipGruppe:
- DELETE tDokument.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_BESR C-Win
- PROCEDURE VIPER_BESR :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipDokument AS CHAR NO-UNDO.
- DEF VAR ix AS INT NO-UNDO.
- DEF VAR cFeld AS CHAR NO-UNDO.
- DEF VAR cInhalt AS CHAR NO-UNDO.
- DEF VAR cVorlage AS CHAR NO-UNDO.
- DEF VAR iKopfZeile AS INT NO-UNDO.
-
- DEF VAR PZBetrag AS CHAR NO-UNDO.
- DEF VAR PZReferenz AS CHAR NO-UNDO.
- DEF VAR PZTNNummer AS CHAR NO-UNDO.
- DEF VAR cReferenz AS CHAR NO-UNDO.
- DEF VAR cInstall AS CHAR NO-UNDO.
-
- IF Rundbetr < 0 THEN RETURN.
-
- RUN vpr_NewPage.
-
- cInstall = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR.
-
- cVorlage = cInstall + '/' + ipDokument + '.vfr'.
- RUN vpr_LoadVFR (cVorlage).
- RUN vpr_ActivateReport (ipDokument).
- RUN vpr_SetDocAttrib ( "PAPERSIZE=A4").
- RUN vpr_InitGroups ("").
- RUN vpr_initGraphObj.
- IF VSchachtBesr > 0 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtBesr ).
- RUN vpr_SetGroupAttrib ("ADRESSE", "Fixed=true").
- RUN vpr_SetGroupAttrib ("BESR" , "Fixed=true").
-
- FIND Adresse NO-LOCK USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = BAufko.Fak_Knr NO-ERROR.
- iKopfZeile = 1.
- VBesrKopf = ''.
- IF BAufko.Adresse[05] <> '' THEN DO:
- i1 = 6.
- DO ix = 1 TO 5:
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'ADRESSE'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99')
- tDokument.cInhalt = BAufko.Adresse[ix].
- i1 = i1 + 1.
- VBesrKopf[i1] = BAufko.Adresse[ix].
- END.
- END.
- ELSE DO:
- DO ix = 6 TO 11:
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'ADRESSE'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Adresse_' + STRING(ix,'99')
- tDokument.cInhalt = Adresse.Anschrift[ix].
- VBesrKopf[ix] = Adresse.Anschrift[ix].
- END.
- END.
- DO ix = 6 TO 11:
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'BESR'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Adresse_R_' + STRING(ix,'99')
- tDokument.cInhalt = VBesrKopf[ix].
- IF ix < 7 THEN NEXT.
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'BESR'
- tDokument.iZeile = 1
- tDokument.cFeld = 'Adresse_L_' + STRING(ix,'99')
- tDokument.cInhalt = VBesrKopf[ix].
- END.
- IF Rundbetr > 0.00 THEN DO:
- cFeld = STRING(Rundbetr,'zzzzzz9.99').
- cFeld = REPLACE(cFeld, '.', ' ').
- cFeld = STRING(cFeld,'X X X X X X X X X X').
- END.
- ELSE cFeld = ''.
- RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Betrag_L', cFeld ).
- RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Betrag_R', cFeld ).
-
- IF Rundbetr > 0 THEN PZBetrag = '01' + STRING(Rundbetr * 100,'9999999999 ').
- ELSE PZBetrag = ' 04 '.
- PZReferenz = '80401100000'
- + STRING(bAufko.Fak_Knr,'999999')
- + '0'
- + STRING(bAufko.Faknr ,'999999')
- + '00'.
- PZTNNummer = '01007648'.
- RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag, INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNNummer, OUTPUT cReferenz ).
- RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Referenz_OCRB', cReferenz ).
- RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Referenz_R', STRING(PZReferenz,'XX XXXXX XXXXX XXXXX XXXXX XXXXX') ).
- RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Referenz_L', STRING(PZReferenz,'XX XXXXX XXXXX XXXXX XXXXX XXXXX') ).
-
- RUN VIPER_AUSGABE_GRUPPE ( 'ADRESSE' ).
- RUN VIPER_AUSGABE_GRUPPE ( 'BESR' ).
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_CREATE_DOKUMENT C-Win
- PROCEDURE VIPER_CREATE_DOKUMENT :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipGruppe AS CHAR NO-UNDO.
- DEF INPUT PARAMETER ipZeile AS INT NO-UNDO.
- DEF INPUT PARAMETER ipFeld AS CHAR NO-UNDO.
- DEF INPUT PARAMETER ipInhalt AS CHAR NO-UNDO.
-
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = ipGruppe
- tDokument.iZeile = ipZeile
- tDokument.cFeld = ipFeld
- tDokument.cInhalt = ipInhalt.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_INIT C-Win
- PROCEDURE VIPER_INIT :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipDokument AS CHAR NO-UNDO.
-
- DEF VAR cVorlage AS CHAR NO-UNDO.
- DEF VAR cZellen AS CHAR NO-UNDO.
- DEF VAR cZelle AS CHAR NO-UNDO.
- DEF VAR cGruppe AS CHAR NO-UNDO.
- DEF VAR ii AS INT NO-UNDO.
- DEF VAR cInstall AS CHAR NO-UNDO.
-
- cInstall = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR.
- IF NOT ipDokument BEGINS 'Samm' THEN DO:
- cVorlage = cInstall + '/' + ipDokument + '.vfr'.
- cvpr_Dokument = ipDokument + '.vpr'.
- RUN vpr_LoadVFR (cVorlage).
- RUN vpr_ActivateReport (ipDokument).
- RUN vpr_SelectPrinter (F_Drucker).
- RUN vpr_setPrinterAttrib("duplex=1").
- RUN vpr_ResetDoc.
- RUN vpr_SetDocAttrib ( "PAPERSIZE=A4").
- RUN vpr_SetPreviewMode ('Direct').
- RUN vpr_setDocTitle ( ipDokument ).
- RUN vpr_InitGroups ("").
- RUN vpr_initGraphObj.
- END.
- ELSE DO:
- IF iZaehler = 1 THEN DO:
- cVorlage = cInstall + '/' + ipDokument + '.vfr'.
- cvpr_Dokument = ipDokument + '.vpr'.
- RUN vpr_LoadVFR (cVorlage).
- RUN vpr_ActivateReport (ipDokument).
- RUN vpr_SelectPrinter (F_Drucker).
- RUN vpr_setPrinterAttrib("duplex=1").
- RUN vpr_ResetDoc.
- RUN vpr_SetDocAttrib ( "PAPERSIZE=A4").
- RUN vpr_SetPreviewMode ('Direct').
- RUN vpr_setDocTitle ( ipDokument ).
- IF VSchachtOrig > 0 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtOrig ).
- END.
- ELSE DO:
- RUN vpr_NewPage.
- IF VSchachtKopi > 0 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtKopi ).
- END.
- RUN vpr_InitGroups("").
- IF iZaehler = iLauf THEN RUN vpr_InitGraphObj.
- END.
-
- RUN vpr_SetGroupAttrib ("Kopf" , "Fixed=true").
- RUN vpr_SetGroupAttrib ("Fusstext" , "Fixed=true").
- RUN vpr_SetGroupAttrib ("Kondition", "Fixed=true").
-
- CASE ipDokument:
- WHEN 'Faktura' OR
- WHEN 'SammFak' THEN iVMaxPos = 2600.
- OTHERWISE iVMaxPos = 2650.
- END CASE.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_NEUE_SEITE C-Win
- PROCEDURE VIPER_NEUE_SEITE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR iPos AS INT NO-UNDO.
- DO WHILE TRUE:
- IF VSeite = 0 THEN DO:
- RUN vpr_InitGroups('').
- IF iZaehler = iLauf THEN RUN vpr_initGraphObj.
- VSeite = VSeite + 1.
- LEAVE.
- END.
-
- IF VDokArt = 'SammFak' THEN DO:
- iPos = vpr_getPageVPos().
- IF (iPos + 160) < iVMaxPos THEN DO:
- iPos = iPos + 20.
- RUN vpr_setPageVPos ( iPos ).
- LEAVE.
- END.
- END.
- RUN vpr_NewPage.
- RUN vpr_InitGroups('').
- IF iZaehler = 1 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtOrig ).
- ELSE RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtKopi ).
- IF iZaehler = iLauf THEN RUN vpr_initGraphObj.
- VSeite = VSeite + 1.
- LEAVE.
- END.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_RUECKSTAND C-Win
- PROCEDURE VIPER_RUECKSTAND :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
-
- DEF VAR cString AS CHAR NO-UNDO.
-
- FIND tRueckst WHERE RECID(tRueckst) = ipRecid NO-LOCK.
- FIND Aufze WHERE RECID(Aufze) = tRueckst.Zeile NO-LOCK.
- iArtZeile = iArtZeile + 1.
- DO WHILE Aufze.Artnr = 0:
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'ArtikelZeile1'
- tDokument.iZeile = iArtZeile
- tDokument.cFeld = 'Bez1'
- tDokument.cInhalt = Aufze.Bez1.
-
- IF Aufze.Bez2 <> '' THEN DO:
- iArtZeile = iArtZeile + 1.
- CREATE tDokument.
- ASSIGN tDokument.cGruppe = 'ArtikelZeile1'
- tDokument.iZeile = iArtZeile
- tDokument.cFeld = 'Bez1'
- tDokument.cInhalt = Aufze.Bez2.
- END.
- RETURN.
- END.
- FIND Artst OF Aufze NO-LOCK.
-
- FIND VGebinde WHERE VGebinde.Firma = GVFirma
- AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
- FIND KGebinde WHERE KGebinde.Firma = GVFirma
- AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'KGebinde', KGebinde.Kbez ).
-
- IF Aufze.VGeb_Ru <> 0 THEN DO:
- cString = STRING(Aufze.VGeb_Ru,'->>>>')
- + 'x '
- + VGebinde.KBez.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'VGebinde', cString ).
- END.
-
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Menge', STRING(Aufze.MRuek,'->>,>>9') ).
- cString = Aufze.Bez1.
- IF Aufze.Bez2 <> '' THEN cString = cString
- + (IF cString = '' THEN '' ELSE CHR(10))
- + Aufze.Bez2.
- IF Aufze.Aktion THEN cString = cString
- + (IF cString = '' THEN '' ELSE CHR(10))
- + Aufze.Aktion_Text.
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', cString ).
-
- IF Aufze.Jahr > 9 THEN DO:
- cString = STRING(Aufze.Jahr,"9999").
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'JG', cString ).
- END.
-
- IF Aufze.Alk_Gehalt <> 0 THEN DO:
- cString = STRING(Aufze.Alk_Gehalt,"zz9.9%").
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Alk%', cString ).
- END.
- /*
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', STRING(Aufze.Artnr,"999999") ).
-
- IF FPreis THEN DO:
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis', STRING(Aufze.Preis,'>,>>9.999') ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', STRING(Aufze.Bru_Betr ,'->>>,>>9.99') ).
- RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC', STRING(Aufze.WuCd,'z9') ).
- END.
- */
- RUN VIPER_AUSGABE_GRUPPE ( 'ArtikelZeile1' ).
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WIRTESONNTAG C-Win
- PROCEDURE WIRTESONNTAG :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- XWirtesonntag = ''.
- FIND Tabel USE-INDEX Tabel-k1
- WHERE Tabel.Firma = GVFirma
- AND Tabel.RecArt = 'WISO'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = BAufko.Wirt_So
- AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Tabel THEN DO:
- XWirtesonntag = BAufko.Wirt_So_Text.
- RETURN.
- END.
-
- IF LENGTH(Tabel.Bez1) > 4 THEN XWirtesonntag = Tabel.Bez1.
- IF BAufko.Wirt_So_Text <> '' THEN DO:
- IF XWirtesonntag <> '' THEN XWirtesonntag = XWirtesonntag + " / ".
- XWirtesonntag = XWirtesonntag + BAufko.Wirt_So_Text.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WORKFILE C-Win
- PROCEDURE WORKFILE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- FIND BSchrift NO-LOCK USE-INDEX Schrift-k1
- WHERE BSchrift.Schname = BLiDruck.ListDru
- AND BSchrift.Schbild = BLiDruck.ListBild NO-ERROR.
- FIND BDrucker NO-LOCK USE-INDEX Drucker-k1
- WHERE BDrucker.Drucker = BSchrift.Schdru NO-ERROR.
- DOpen = FALSE.
- VTemp = ''.
- IF AVAILABLE bDrucker THEN DO:
- IF BDrucker.Emul = 'TERMINAL' THEN DO:
- FOR EACH XTermOut:
- DELETE XTermOut.
- END.
- VZNr = 0.
- RETURN.
- END.
- END.
-
- lViper = TRUE.
- CASE VDokArt:
- WHEN 'RUESTSCHEIN' THEN lViper = FALSE.
- WHEN 'BESR' THEN lViper = FALSE.
- WHEN 'PALETTEN' OR
- WHEN 'LADEPAPIER' THEN lViper = FALSE.
- WHEN 'BESR02' OR
- WHEN 'BESR04' THEN lViper = FALSE.
- END.
- IF lViper THEN RETURN.
- DO WHILE TRUE TRANSACTION:
- FIND Tabel USE-INDEX Tabel-k1
- WHERE Tabel.Firma = GVFirma
- AND Tabel.RecArt = 'TEMPFILE'
- AND Tabel.CodeI = 0
- AND Tabel.CodeC = 'AUFTRAG'
- AND Tabel.Sprcd = 1 NO-ERROR.
- IF NOT AVAILABLE Tabel THEN DO:
- CREATE Tabel.
- ASSIGN Tabel.Firma = GVFirma
- Tabel.RecArt = 'TEMPFILE'
- Tabel.CodeI = 0
- Tabel.CodeC = 'AUFTRAG'
- Tabel.Sprcd = 1.
- END.
- ASSIGN Tabel.Bez1 = SESSION:TEMP-DIR
- Tabel.Int_1 = Tabel.Int_1 + 1.
- VTemp = Tabel.Bez1 + 'Faktura' + STRING(Tabel.Int_1) + '.tmp'.
- RELEASE Tabel.
- LEAVE.
- END.
-
- DOpen = TRUE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
|