c-p_huber.w 293 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME C-Win
  7. /* Temp-Table and Buffer definitions */
  8. DEFINE NEW SHARED TEMP-TABLE XTermOut NO-UNDO LIKE TermOut.
  9. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS C-Win
  10. /* --------------------------------------------------------------
  11. File:
  12. Description:
  13. Input Parameters:
  14. <none>
  15. Output Parameters:
  16. <none>
  17. Author:
  18. Created:
  19. ------------------------------------------------------------------------*/
  20. /* This .W file was created with the Progress UIB. */
  21. /*----------------------------------------------------------------------*/
  22. /* Create an unnamed pool to store all the widgets created
  23. by this procedure. This is a good default which assures
  24. that this procedure's triggers and internal procedures
  25. will execute in this procedure's storage, and that proper
  26. cleanup will occur on deletion of the procedure. */
  27. CREATE WIDGET-POOL.
  28. /* *************************** Definitions ************************** */
  29. /* Parameters Definitions --- */
  30. /* Local Variable Definitions --- */
  31. DEF VAR DruckFlag AS LOG NO-UNDO.
  32. DEF VAR FDrucken AS LOG NO-UNDO.
  33. DEF VAR TRecid AS RECID NO-UNDO.
  34. DEF VAR RabText AS CHAR NO-UNDO.
  35. DEF VAR RabWert AS DEC NO-UNDO.
  36. DEF VAR VFak_Betr AS DEC DECIMALS 4 NO-UNDO.
  37. DEF VAR GTWpfl AS DEC EXTENT 12 NO-UNDO.
  38. DEF VAR DTWpfl AS DEC EXTENT 12 NO-UNDO.
  39. DEF VAR GTWust AS DEC EXTENT 12 NO-UNDO.
  40. DEF VAR DWpfl AS DEC EXTENT 12 NO-UNDO.
  41. DEF VAR GTFak_Betr AS DEC NO-UNDO.
  42. DEF VAR GTSk_Ber AS DEC NO-UNDO.
  43. DEF VAR SFaknr AS INT NO-UNDO.
  44. DEF VAR FLetzt AS LOG NO-UNDO.
  45. DEF VAR FErste AS LOG NO-UNDO.
  46. DEF VAR VZeile AS CHAR FORMAT "x(250)" NO-UNDO.
  47. DEF VAR RZeile AS CHAR FORMAT "x(250)" NO-UNDO.
  48. DEF VAR LiKopf AS LOG NO-UNDO.
  49. DEF VAR StBreite AS INT NO-UNDO.
  50. DEF VAR VWC AS INT NO-UNDO.
  51. DEF VAR VZTot AS DEC DECIMALS 4 NO-UNDO.
  52. DEF VAR FDatum AS DATE FORMAT "99.99.9999" NO-UNDO.
  53. DEF VAR VFaknr AS INT NO-UNDO.
  54. DEF VAR VesrKnr AS INT NO-UNDO.
  55. DEF VAR VesrFnr AS INT NO-UNDO.
  56. DEF VAR VBesr AS INT NO-UNDO.
  57. DEF VAR VRabText AS CHAR FORMAT "x(20)" NO-UNDO.
  58. DEF VAR VZusText AS CHAR FORMAT "x(20)" NO-UNDO.
  59. DEF VAR VEpzText AS CHAR FORMAT "x(20)" NO-UNDO.
  60. DEF VAR VTabTexte LIKE TabTexte.Inhalt NO-UNDO.
  61. DEF VAR XVersand AS CHAR NO-UNDO.
  62. DEF VAR XAblade AS CHAR NO-UNDO.
  63. DEF VAR XWirtesonntag AS CHAR NO-UNDO.
  64. DEF VAR XAuf_Text LIKE Aufko.Auf_Text NO-UNDO.
  65. DEF VAR XTelnr LIKE Aufko.Auf_Text NO-UNDO.
  66. DEF VAR VTemp AS CHAR FORMAT "x(100)" NO-UNDO.
  67. DEF VAR VDokart AS CHAR NO-UNDO.
  68. DEF VAR FPreis AS LOG NO-UNDO.
  69. DEF VAR WW AS DEC EXTENT 12 NO-UNDO.
  70. DEF VAR SK AS DEC EXTENT 12 NO-UNDO.
  71. DEF VAR VDetail AS DEC EXTENT 20 NO-UNDO.
  72. DEF VAR VNetto AS DEC EXTENT 20 NO-UNDO.
  73. DEF VAR VPreis_Grp AS INT NO-UNDO.
  74. DEF VAR VPreis AS DEC DECIMALS 4 NO-UNDO.
  75. DEF VAR VBetrag AS DEC DECIMALS 4 NO-UNDO.
  76. DEF VAR VAnkTot AS DEC DECIMALS 4 NO-UNDO.
  77. DEF VAR VDetTot AS DEC DECIMALS 4 NO-UNDO.
  78. DEF VAR VSchacht AS INT NO-UNDO.
  79. DEF VAR cTextArt AS CHAR NO-UNDO.
  80. DEF VAR fBatch AS LOG NO-UNDO.
  81. DEF VAR VKopf AS CHAR FORMAT "x(100)" EXTENT 20 NO-UNDO.
  82. DEF VAR VBesrKopf AS CHAR FORMAT "x(100)" EXTENT 20 NO-UNDO.
  83. DEF VAR iSeiZZ AS INT NO-UNDO.
  84. DEF VAR cSeiZeile AS CHAR NO-UNDO.
  85. DEF VAR cUSER AS CHAR NO-UNDO.
  86. DEF VAR cBenutzer AS CHAR NO-UNDO.
  87. DEF VAR FBetrag AS LOG NO-UNDO.
  88. DEF VAR FRabatt AS LOG NO-UNDO.
  89. DEF VAR FUeber AS LOG NO-UNDO.
  90. DEF VAR FSamm AS LOG NO-UNDO.
  91. DEF VAR FLagOrt AS LOG NO-UNDO.
  92. DEF VAR VKopfArt AS CHAR NO-UNDO.
  93. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  94. DEF VAR ExZeile AS INT NO-UNDO.
  95. DEF VAR lRuestText AS LOG NO-UNDO.
  96. DEF VAR iLauf AS INT NO-UNDO.
  97. DEF VAR lViper AS LOG INIT TRUE NO-UNDO.
  98. DEF VAR iZaehler AS INT NO-UNDO.
  99. DEF VAR cTray AS CHAR EXTENT 10 NO-UNDO.
  100. DEF VAR iCodeI AS INT NO-UNDO.
  101. DEF VAR VSchachtOrig AS INT NO-UNDO.
  102. DEF VAR VSchachtKopi AS INT NO-UNDO.
  103. DEF VAR VSchachtBesr AS INT NO-UNDO.
  104. DEF VAR FormText AS CHAR FORMAT "x(80)" EXTENT 40.
  105. DEF BUFFER BAufko FOR Aufko.
  106. DEF BUFFER XAufko FOR Aufko.
  107. DEF BUFFER BAufze FOR Aufze.
  108. DEF BUFFER BAufGebKo FOR AufGebKo.
  109. DEF BUFFER FDebst FOR Debst.
  110. DEF BUFFER LDebst FOR Debst.
  111. DEF BUFFER BTabel FOR Tabel.
  112. DEF BUFFER TFakart FOR Tabel.
  113. DEF BUFFER TAufsta FOR Tabel.
  114. DEF BUFFER BAdresse FOR Adresse.
  115. DEF BUFFER LAdresse FOR Adresse.
  116. DEF VAR DebInkl AS LOG NO-UNDO.
  117. DEF VAR VWg_Grp AS INT INIT 0 NO-UNDO.
  118. DEF VAR VProd_Grp AS INT INIT 0 NO-UNDO.
  119. DEF VAR VArt_Grp AS INT INIT 0 NO-UNDO.
  120. DEF VAR AArtnr AS INT INIT 0 NO-UNDO.
  121. DEF VAR AInhalt AS INT INIT 0 NO-UNDO.
  122. DEF VAR AJahr AS INT INIT 0 NO-UNDO.
  123. DEF TEMP-TABLE tAdresse NO-UNDO LIKE Adresse.
  124. DEF TEMP-TABLE tAufze FIELD Aufnr AS INT
  125. FIELD Sort1 AS CHAR
  126. FIELD Sort2 AS CHAR
  127. FIELD Sort3 AS CHAR
  128. FIELD Artnr AS INT
  129. FIELD Inhalt AS INT
  130. FIELD Jahr AS INT
  131. FIELD Pos AS INT
  132. FIELD Zeile AS RECID
  133. FIELD Preis AS DEC DECIMALS 4
  134. FIELD Aktion AS LOG
  135. FIELD LagOrt AS CHAR
  136. FIELD MGeli AS DEC
  137. FIELD MRuek AS DEC
  138. INDEX tAufze-k1 IS PRIMARY
  139. Aufnr
  140. Sort1
  141. Sort2
  142. Sort3.
  143. DEF TEMP-TABLE TGebKto FIELD Sort_Cd AS CHAR
  144. FIELD Geb_Cd AS CHAR
  145. FIELD Bez AS CHAR
  146. FIELD Preis AS DEC
  147. FIELD A_Anz AS DEC
  148. FIELD A_Betrag AS DEC
  149. FIELD E_Anz AS DEC
  150. FIELD E_Betrag AS DEC
  151. FIELD MWST_Art AS INT
  152. FIELD MWST_Cd AS INT.
  153. DEF TEMP-TABLE TRabSumm FIELD Rab_Summ AS INT
  154. FIELD Bez AS CHAR
  155. FIELD F_Rab_Art AS INT
  156. FIELD F_Wert AS DEC DECIMALS 4
  157. FIELD A_Rab_Art AS INT
  158. FIELD A_Wert AS DEC DECIMALS 4
  159. FIELD Auf_Rab AS DEC DECIMALS 4
  160. FIELD Abh_Rab AS DEC DECIMALS 4.
  161. DEF TEMP-TABLE TUmsGrp FIELD Ums_Grp AS INT
  162. FIELD Mwst AS INT
  163. FIELD Ansatz AS DEC
  164. FIELD Bez AS CHAR
  165. FIELD Ums_Betr AS DEC DECIMALS 4.
  166. DEF TEMP-TABLE TGebuehr FIELD MWST_Cd AS INT
  167. FIELD Anz AS DEC
  168. FIELD Betrag AS DEC.
  169. DEF TEMP-TABLE SAMMFAK FIELD Knr AS INT
  170. FIELD Samm_Nr AS INT
  171. FIELD Aufnr AS INT
  172. FIELD RID AS RECID.
  173. DEF TEMP-TABLE TSpeRab FIELD Rab_Grp AS INT
  174. FIELD Auf_Betr AS DEC DECIMALS 4.
  175. DEF TEMP-TABLE TFiliale FIELD Fak_Knr AS INT
  176. FIELD Lie_Knr AS INT
  177. FIELD Det_Preis AS DEC DECIMALS 4
  178. FIELD Net_Preis AS DEC DECIMALS 4
  179. FIELD MWST_Cd AS INT
  180. FIELD Faknr AS INT.
  181. DEF TEMP-TABLE TMonat FIELD Lie_Knr AS INT
  182. FIELD Artnr AS INT
  183. FIELD Inhalt AS INT
  184. FIELD Jahr AS INT
  185. FIELD Det_Preis AS DEC DECIMALS 4
  186. FIELD Net_Preis AS DEC DECIMALS 4
  187. FIELD MWST_Cd AS INT
  188. FIELD Faknr AS INT
  189. FIELD Fak_Knr AS INT.
  190. DEF TEMP-TABLE TMonGeb FIELD Knr AS INT
  191. FIELD MWST_Cd AS INT
  192. FIELD Betrag AS DEC DECIMALS 4.
  193. DEF TEMP-TABLE tTexte FIELD Pos AS INT
  194. FIELD cText1 AS CHAR
  195. FIELD cText2 AS CHAR
  196. FIELD iRecid AS RECID.
  197. DEF TEMP-TABLE tRueckst LIKE tAufze.
  198. DEF TEMP-TABLE tViper NO-UNDO
  199. FIELD cGruppe AS CHAR
  200. FIELD cName AS CHAR
  201. FIELD iHoehe AS INT
  202. FIELD iBreite AS INT
  203. FIELD cInhalt AS CHAR.
  204. DEF VAR cvpr_Dokument AS CHAR NO-UNDO.
  205. DEF VAR iArtZeile AS INT NO-UNDO.
  206. DEF VAR iVPagePos AS INT NO-UNDO.
  207. DEF VAR iVGroupPos AS INT NO-UNDO.
  208. DEF VAR iVMaxPos AS INT INIT 2650 NO-UNDO.
  209. DEF TEMP-TABLE tTabTexte
  210. FIELD cRecArt AS CHAR
  211. FIELD iZeile AS INT
  212. FIELD cFeld1 AS CHAR
  213. FIELD cFeld2 AS CHAR
  214. FIELD cFeld3 AS CHAR
  215. FIELD iFeld1 AS INT
  216. FIELD iFeld2 AS INT
  217. FIELD iFeld3 AS INT
  218. INDEX tTabTexte-k1 IS PRIMARY
  219. cRecArt
  220. iZeile.
  221. DEF TEMP-TABLE tDrucker NO-UNDO
  222. FIELD cDrucker AS CHAR.
  223. DEF TEMP-TABLE tDokument
  224. FIELD cGruppe AS CHAR
  225. FIELD iZeile AS INT
  226. FIELD cFeld AS CHAR
  227. FIELD cInhalt AS CHAR
  228. INDEX tDokument-k1 IS PRIMARY
  229. cGruppe
  230. iZeile
  231. cFeld.
  232. DEF BUFFER XSchrift FOR Schrift.
  233. DEF BUFFER XDrucker FOR Drucker.
  234. DEF TEMP-TABLE tPdf
  235. FIELD cDokName AS CHAR.
  236. DEF VAR VTempVESR AS CHAR FORMAT "x(100)" NO-UNDO.
  237. DEF VAR XSchacht AS INT NO-UNDO.
  238. DEF STREAM VIn_Stream.
  239. DEF STREAM VOut_Stream.
  240. /* ---------- Globale Variablen ---------------------------------- */
  241. /* { v8/globvar.i " " " " "SHARED" } */
  242. /* { v8/debivar.i " " " " "SHARED" } */
  243. /* { v8/artivar.i " " " " "SHARED" } */
  244. /* { v8/contvar.i " " " " "SHARED" } */
  245. /* */
  246. { v8/listtitv.i "NEW" "SHARED" }
  247. { v8/aufkototv.i "NEW" "SHARED" }
  248. DEF VAR GVFirma AS CHAR INIT '1000' NO-UNDO.
  249. DEF VAR adFirma AS CHAR INIT '1000' NO-UNDO.
  250. DEF VAR i1 AS INT.
  251. DEF VAR i2 AS INT.
  252. DEF VAR i5 AS INT.
  253. DEF VAR ix AS INT.
  254. DEF VAR LVSprcd AS INT.
  255. DEF VAR Ja AS LOG.
  256. DEF VAR Rundbetr AS DEC DECIMALS 4.
  257. DEF VAR Rundcode AS INT.
  258. DEF VAR GVSprcd AS INT.
  259. DEF VAR XVAufnr AS INT.
  260. DEF VAR HelpText AS CHAR EXTENT 50.
  261. { windows.i }
  262. /* _UIB-CODE-BLOCK-END */
  263. &ANALYZE-RESUME
  264. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  265. /* ******************** Preprocessor Definitions ******************** */
  266. &Scoped-define PROCEDURE-TYPE Window
  267. &Scoped-define DB-AWARE no
  268. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  269. &Scoped-define FRAME-NAME DEFAULT-FRAME
  270. /* Standard List Definitions */
  271. &Scoped-Define ENABLED-OBJECTS RECT-1 F_Drucker E_Adresse F_Schrift F_Tzz ~
  272. F_Kzz F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite F_Papier ~
  273. Btn_Drucken Btn_Abbrechen
  274. &Scoped-Define DISPLAYED-OBJECTS F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz ~
  275. F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite F_Papier
  276. /* Custom List Definitions */
  277. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  278. &Scoped-define List-1 F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz ~
  279. F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite F_Papier
  280. /* _UIB-PREPROCESSOR-BLOCK-END */
  281. &ANALYZE-RESUME
  282. /* *********************** Control Definitions ********************** */
  283. /* Define the widget handle for the window */
  284. DEFINE VAR C-Win AS WIDGET-HANDLE NO-UNDO.
  285. /* Definitions of the field level widgets */
  286. DEFINE BUTTON Btn_Abbrechen
  287. LABEL "&Abbrechen"
  288. SIZE 15 BY 1.
  289. DEFINE BUTTON Btn_Drucken
  290. LABEL "&Drucken"
  291. SIZE 15 BY 1.
  292. DEFINE VARIABLE E_Adresse AS CHARACTER
  293. VIEW-AS EDITOR MAX-CHARS 1000
  294. SIZE 45 BY 6.19
  295. BGCOLOR 15 NO-UNDO.
  296. DEFINE VARIABLE F_Aufnr AS INTEGER FORMAT "zzzzzz9":U INITIAL 0
  297. LABEL "Auftragsnummer"
  298. VIEW-AS FILL-IN NATIVE
  299. SIZE 13 BY 1
  300. BGCOLOR 15 NO-UNDO.
  301. DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U
  302. LABEL "Fakturadatum"
  303. VIEW-AS FILL-IN NATIVE
  304. SIZE 16 BY 1
  305. BGCOLOR 15 NO-UNDO.
  306. DEFINE VARIABLE F_Dokart AS CHARACTER FORMAT "x(50)":U
  307. LABEL "Dokumentart"
  308. VIEW-AS FILL-IN NATIVE
  309. SIZE 28 BY 1
  310. BGCOLOR 15 NO-UNDO.
  311. DEFINE VARIABLE F_Drucker AS CHARACTER FORMAT "x(50)":U
  312. LABEL "Drucker"
  313. VIEW-AS FILL-IN NATIVE
  314. SIZE 40 BY 1
  315. BGCOLOR 15 NO-UNDO.
  316. DEFINE VARIABLE F_Faknr AS INTEGER FORMAT "zzzzzzz":U INITIAL 0
  317. LABEL "Fakturanummer"
  318. VIEW-AS FILL-IN NATIVE
  319. SIZE 13 BY 1
  320. BGCOLOR 15 NO-UNDO.
  321. DEFINE VARIABLE F_Fzz AS INTEGER FORMAT "zz9":U INITIAL 0
  322. LABEL "Leere Fusszeilen"
  323. VIEW-AS FILL-IN NATIVE
  324. SIZE 7 BY 1
  325. BGCOLOR 15 NO-UNDO.
  326. DEFINE VARIABLE F_KOPIE AS INTEGER FORMAT "zz9":U INITIAL 0
  327. LABEL "Anz. Kopien"
  328. VIEW-AS FILL-IN NATIVE
  329. SIZE 7 BY 1
  330. BGCOLOR 15 NO-UNDO.
  331. DEFINE VARIABLE F_Kzz AS INTEGER FORMAT "zz9":U INITIAL 0
  332. LABEL "Leere Kopfzeilen"
  333. VIEW-AS FILL-IN NATIVE
  334. SIZE 7 BY 1
  335. BGCOLOR 15 NO-UNDO.
  336. DEFINE VARIABLE F_Papier AS CHARACTER FORMAT "x(50)":U
  337. LABEL "Auftragspapier"
  338. VIEW-AS FILL-IN NATIVE
  339. SIZE 45 BY 1
  340. BGCOLOR 15 NO-UNDO.
  341. DEFINE VARIABLE F_Schrift AS CHARACTER FORMAT "x(50)":U
  342. LABEL "Schriftbild"
  343. VIEW-AS FILL-IN NATIVE
  344. SIZE 40 BY 1
  345. BGCOLOR 15 NO-UNDO.
  346. DEFINE VARIABLE F_Seite AS INTEGER FORMAT "zz9":U INITIAL 0
  347. LABEL "Seite"
  348. VIEW-AS FILL-IN NATIVE
  349. SIZE 7 BY 1
  350. BGCOLOR 15 NO-UNDO.
  351. DEFINE VARIABLE F_Tzz AS INTEGER FORMAT "zz9":U INITIAL 0
  352. LABEL "Total Zeilen"
  353. VIEW-AS FILL-IN NATIVE
  354. SIZE 7 BY 1
  355. BGCOLOR 15 NO-UNDO.
  356. DEFINE RECTANGLE RECT-1
  357. EDGE-PIXELS 3 GRAPHIC-EDGE NO-FILL
  358. SIZE 116 BY 12.14.
  359. /* ************************ Frame Definitions *********************** */
  360. DEFINE FRAME DEFAULT-FRAME
  361. F_Drucker AT ROW 2 COL 21 COLON-ALIGNED
  362. E_Adresse AT ROW 2 COL 70 NO-LABEL NO-TAB-STOP
  363. F_Schrift AT ROW 3 COL 21 COLON-ALIGNED
  364. F_Tzz AT ROW 4 COL 21 COLON-ALIGNED
  365. F_Kzz AT ROW 5 COL 21 COLON-ALIGNED
  366. F_Fzz AT ROW 6 COL 21 COLON-ALIGNED
  367. F_Aufnr AT ROW 7 COL 21 COLON-ALIGNED
  368. F_KOPIE AT ROW 7 COL 53 COLON-ALIGNED
  369. F_Faknr AT ROW 8 COL 21 COLON-ALIGNED
  370. F_Datum AT ROW 9 COL 21 COLON-ALIGNED
  371. F_Dokart AT ROW 9 COL 68 COLON-ALIGNED
  372. F_Seite AT ROW 9 COL 106 COLON-ALIGNED
  373. F_Papier AT ROW 10 COL 68 COLON-ALIGNED
  374. Btn_Drucken AT ROW 11.52 COL 70
  375. Btn_Abbrechen AT ROW 11.52 COL 100
  376. RECT-1 AT ROW 1.48 COL 3
  377. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  378. SIDE-LABELS NO-UNDERLINE THREE-D
  379. AT COL 1 ROW 1
  380. SIZE 126.41 BY 13.85
  381. DEFAULT-BUTTON Btn_Drucken CANCEL-BUTTON Btn_Abbrechen.
  382. /* *********************** Procedure Settings ************************ */
  383. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  384. /* Settings for THIS-PROCEDURE
  385. Type: Window
  386. Allow: Basic,Browse,DB-Fields,Window,Query
  387. Other Settings: COMPILE
  388. Temp-Tables and Buffers:
  389. TABLE: XTermOut T "NEW SHARED" NO-UNDO AnaDat TermOut
  390. END-TABLES.
  391. */
  392. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  393. /* ************************* Create Window ************************** */
  394. &ANALYZE-SUSPEND _CREATE-WINDOW
  395. IF SESSION:DISPLAY-TYPE = "GUI":U THEN
  396. CREATE WINDOW C-Win ASSIGN
  397. HIDDEN = YES
  398. TITLE = "Drucken von Auftragsdokumenten"
  399. HEIGHT = 12.86
  400. WIDTH = 120.6
  401. MAX-HEIGHT = 26.57
  402. MAX-WIDTH = 203
  403. VIRTUAL-HEIGHT = 26.57
  404. VIRTUAL-WIDTH = 203
  405. RESIZE = YES
  406. SCROLL-BARS = NO
  407. STATUS-AREA = NO
  408. BGCOLOR = ?
  409. FGCOLOR = ?
  410. KEEP-FRAME-Z-ORDER = YES
  411. THREE-D = YES
  412. MESSAGE-AREA = NO
  413. SENSITIVE = YES.
  414. ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
  415. /* END WINDOW DEFINITION */
  416. &ANALYZE-RESUME
  417. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  418. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  419. /* SETTINGS FOR WINDOW C-Win
  420. VISIBLE,,RUN-PERSISTENT */
  421. /* SETTINGS FOR FRAME DEFAULT-FRAME
  422. FRAME-NAME */
  423. /* SETTINGS FOR EDITOR E_Adresse IN FRAME DEFAULT-FRAME
  424. 1 */
  425. ASSIGN
  426. E_Adresse:RETURN-INSERTED IN FRAME DEFAULT-FRAME = TRUE
  427. E_Adresse:READ-ONLY IN FRAME DEFAULT-FRAME = TRUE.
  428. /* SETTINGS FOR FILL-IN F_Aufnr IN FRAME DEFAULT-FRAME
  429. 1 */
  430. /* SETTINGS FOR FILL-IN F_Datum IN FRAME DEFAULT-FRAME
  431. 1 */
  432. /* SETTINGS FOR FILL-IN F_Dokart IN FRAME DEFAULT-FRAME
  433. 1 */
  434. /* SETTINGS FOR FILL-IN F_Drucker IN FRAME DEFAULT-FRAME
  435. 1 */
  436. /* SETTINGS FOR FILL-IN F_Faknr IN FRAME DEFAULT-FRAME
  437. 1 */
  438. /* SETTINGS FOR FILL-IN F_Fzz IN FRAME DEFAULT-FRAME
  439. 1 */
  440. /* SETTINGS FOR FILL-IN F_KOPIE IN FRAME DEFAULT-FRAME
  441. 1 */
  442. /* SETTINGS FOR FILL-IN F_Kzz IN FRAME DEFAULT-FRAME
  443. 1 */
  444. /* SETTINGS FOR FILL-IN F_Papier IN FRAME DEFAULT-FRAME
  445. 1 */
  446. /* SETTINGS FOR FILL-IN F_Schrift IN FRAME DEFAULT-FRAME
  447. 1 */
  448. /* SETTINGS FOR FILL-IN F_Seite IN FRAME DEFAULT-FRAME
  449. 1 */
  450. /* SETTINGS FOR FILL-IN F_Tzz IN FRAME DEFAULT-FRAME
  451. 1 */
  452. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win)
  453. THEN C-Win:HIDDEN = NO.
  454. /* _RUN-TIME-ATTRIBUTES-END */
  455. &ANALYZE-RESUME
  456. /* ************************ Control Triggers ************************ */
  457. &Scoped-define SELF-NAME C-Win
  458. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win
  459. ON END-ERROR OF C-Win /* Drucken von Auftragsdokumenten */
  460. OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
  461. /* This case occurs when the user presses the "Esc" key.
  462. In a persistently run window, just ignore this. If we did not, the
  463. application would exit. */
  464. IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
  465. END.
  466. /* _UIB-CODE-BLOCK-END */
  467. &ANALYZE-RESUME
  468. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win
  469. ON WINDOW-CLOSE OF C-Win /* Drucken von Auftragsdokumenten */
  470. DO:
  471. RETURN NO-APPLY.
  472. END.
  473. /* _UIB-CODE-BLOCK-END */
  474. &ANALYZE-RESUME
  475. &Scoped-define SELF-NAME Btn_Abbrechen
  476. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Abbrechen C-Win
  477. ON CHOOSE OF Btn_Abbrechen IN FRAME DEFAULT-FRAME /* Abbrechen */
  478. DO:
  479. DruckFlag = FALSE.
  480. END.
  481. /* _UIB-CODE-BLOCK-END */
  482. &ANALYZE-RESUME
  483. &Scoped-define SELF-NAME Btn_Drucken
  484. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Drucken C-Win
  485. ON CHOOSE OF Btn_Drucken IN FRAME DEFAULT-FRAME /* Drucken */
  486. DO:
  487. DruckFlag = TRUE.
  488. END.
  489. /* _UIB-CODE-BLOCK-END */
  490. &ANALYZE-RESUME
  491. &Scoped-define SELF-NAME E_Adresse
  492. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL E_Adresse C-Win
  493. ON ENTRY OF E_Adresse IN FRAME DEFAULT-FRAME
  494. DO:
  495. APPLY 'TAB' TO SELF.
  496. RETURN NO-APPLY.
  497. END.
  498. /* _UIB-CODE-BLOCK-END */
  499. &ANALYZE-RESUME
  500. &Scoped-define SELF-NAME F_Aufnr
  501. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Aufnr C-Win
  502. ON ENTRY OF F_Aufnr IN FRAME DEFAULT-FRAME /* Auftragsnummer */
  503. DO:
  504. APPLY 'TAB' TO SELF.
  505. RETURN NO-APPLY.
  506. END.
  507. /* _UIB-CODE-BLOCK-END */
  508. &ANALYZE-RESUME
  509. &Scoped-define SELF-NAME F_Datum
  510. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum C-Win
  511. ON ENTRY OF F_Datum IN FRAME DEFAULT-FRAME /* Fakturadatum */
  512. DO:
  513. APPLY 'TAB' TO SELF.
  514. RETURN NO-APPLY.
  515. END.
  516. /* _UIB-CODE-BLOCK-END */
  517. &ANALYZE-RESUME
  518. &Scoped-define SELF-NAME F_Dokart
  519. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Dokart C-Win
  520. ON ENTRY OF F_Dokart IN FRAME DEFAULT-FRAME /* Dokumentart */
  521. DO:
  522. APPLY 'TAB' TO SELF.
  523. RETURN NO-APPLY.
  524. END.
  525. /* _UIB-CODE-BLOCK-END */
  526. &ANALYZE-RESUME
  527. &Scoped-define SELF-NAME F_Drucker
  528. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Drucker C-Win
  529. ON ENTRY OF F_Drucker IN FRAME DEFAULT-FRAME /* Drucker */
  530. DO:
  531. APPLY 'TAB' TO SELF.
  532. RETURN NO-APPLY.
  533. END.
  534. /* _UIB-CODE-BLOCK-END */
  535. &ANALYZE-RESUME
  536. &Scoped-define SELF-NAME F_Faknr
  537. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Faknr C-Win
  538. ON ENTRY OF F_Faknr IN FRAME DEFAULT-FRAME /* Fakturanummer */
  539. DO:
  540. APPLY 'TAB' TO SELF.
  541. RETURN NO-APPLY.
  542. END.
  543. /* _UIB-CODE-BLOCK-END */
  544. &ANALYZE-RESUME
  545. &Scoped-define SELF-NAME F_Fzz
  546. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Fzz C-Win
  547. ON ENTRY OF F_Fzz IN FRAME DEFAULT-FRAME /* Leere Fusszeilen */
  548. DO:
  549. APPLY 'TAB' TO SELF.
  550. RETURN NO-APPLY.
  551. END.
  552. /* _UIB-CODE-BLOCK-END */
  553. &ANALYZE-RESUME
  554. &Scoped-define SELF-NAME F_Kzz
  555. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Kzz C-Win
  556. ON ENTRY OF F_Kzz IN FRAME DEFAULT-FRAME /* Leere Kopfzeilen */
  557. DO:
  558. APPLY 'TAB' TO SELF.
  559. RETURN NO-APPLY.
  560. END.
  561. /* _UIB-CODE-BLOCK-END */
  562. &ANALYZE-RESUME
  563. &Scoped-define SELF-NAME F_Papier
  564. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Papier C-Win
  565. ON ENTRY OF F_Papier IN FRAME DEFAULT-FRAME /* Auftragspapier */
  566. DO:
  567. APPLY 'TAB' TO SELF.
  568. RETURN NO-APPLY.
  569. END.
  570. /* _UIB-CODE-BLOCK-END */
  571. &ANALYZE-RESUME
  572. &Scoped-define SELF-NAME F_Schrift
  573. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Schrift C-Win
  574. ON ENTRY OF F_Schrift IN FRAME DEFAULT-FRAME /* Schriftbild */
  575. DO:
  576. APPLY 'TAB' TO SELF.
  577. RETURN NO-APPLY.
  578. END.
  579. /* _UIB-CODE-BLOCK-END */
  580. &ANALYZE-RESUME
  581. &Scoped-define SELF-NAME F_Seite
  582. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Seite C-Win
  583. ON ENTRY OF F_Seite IN FRAME DEFAULT-FRAME /* Seite */
  584. DO:
  585. APPLY 'TAB' TO SELF.
  586. RETURN NO-APPLY.
  587. END.
  588. /* _UIB-CODE-BLOCK-END */
  589. &ANALYZE-RESUME
  590. &Scoped-define SELF-NAME F_Tzz
  591. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Tzz C-Win
  592. ON ENTRY OF F_Tzz IN FRAME DEFAULT-FRAME /* Total Zeilen */
  593. DO:
  594. APPLY 'TAB' TO SELF.
  595. RETURN NO-APPLY.
  596. END.
  597. /* _UIB-CODE-BLOCK-END */
  598. &ANALYZE-RESUME
  599. &UNDEFINE SELF-NAME
  600. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK C-Win
  601. /* *************************** Main Block *************************** */
  602. /* Set CURRENT-WINDOW: this will parent dialog-boxes and frames. */
  603. ASSIGN CURRENT-WINDOW = {&WINDOW-NAME}
  604. THIS-PROCEDURE:CURRENT-WINDOW = {&WINDOW-NAME}.
  605. ON CLOSE OF THIS-PROCEDURE RUN disable_UI.
  606. PAUSE 0 BEFORE-HIDE.
  607. /* ASSIGN cTray[01] = '261' */
  608. /* cTray[02] = '260' */
  609. /* cTray[03] = '259' */
  610. /* cTray[04] = '258' */
  611. /* cTray[05] = '257'. */
  612. /* ASSIGN cTray[01] = '259' */
  613. /* cTray[02] = '260' */
  614. /* cTray[03] = '261' */
  615. /* cTray[04] = '258' */
  616. /* cTray[05] = '257'. */
  617. MAIN-BLOCK:
  618. DO ON ERROR UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK
  619. ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK:
  620. RUN enable_UI.
  621. ASSIGN LVSprcd = 1
  622. Ja = FALSE
  623. Rundbetr = 0.00
  624. Rundcode = 1
  625. GVSprcd = 1
  626. XVAufnr = 0
  627. HelpText = ''.
  628. FDrucken = TRUE.
  629. DruckFlag = TRUE.
  630. cUSER = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR.
  631. cBenutzer = DYNAMIC-FUNCTION('getBenutzer':U) NO-ERROR.
  632. fBatch = DYNAMIC-FUNCTION('getBatch':U) NO-ERROR.
  633. FIND BSteuer USE-INDEX Steuer-k1
  634. WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR.
  635. { vpr.i INIT }
  636. { vpr.i START }
  637. EMPTY TEMP-TABLE tPDF.
  638. iCodeI = -1.
  639. VERARBEITEN:
  640. DO WHILE FDrucken:
  641. FIND FIRST Tabel NO-LOCK USE-INDEX Tabel-k1
  642. WHERE Tabel.Firma = GVFirma
  643. AND Tabel.RecArt = 'AUFDRUCK'
  644. AND Tabel.CodeC = cUSER
  645. AND Tabel.CodeI > iCodeI
  646. AND Tabel.Bez1 = '' NO-ERROR.
  647. IF NOT AVAILABLE Tabel THEN DO:
  648. FIND FIRST Tabel NO-LOCK USE-INDEX Tabel-k1
  649. WHERE Tabel.Firma = GVFirma
  650. AND Tabel.RecArt = 'AUFDRUCK'
  651. AND Tabel.CodeC = cBenutzer
  652. AND Tabel.CodeI > iCodeI
  653. AND Tabel.Bez1 = '' NO-ERROR.
  654. END.
  655. IF NOT AVAILABLE Tabel THEN DO:
  656. FDrucken = FALSE.
  657. NEXT.
  658. END.
  659. TRecid = RECID(Tabel).
  660. iCodeI = Tabel.CodeI.
  661. REPEAT TRANSACTION:
  662. FIND BTabel EXCLUSIVE-LOCK
  663. WHERE RECID(BTabel) = TRecid NO-WAIT NO-ERROR.
  664. IF AVAILABLE BTabel THEN DO:
  665. BTabel.Bez1 = 'A'.
  666. RELEASE BTabel.
  667. LEAVE.
  668. END.
  669. IF LOCKED BTabel THEN DO:
  670. PAUSE 1 NO-MESSAGE.
  671. RELEASE BTabel.
  672. NEXT VERARBEITEN.
  673. END.
  674. TRecid = 0.
  675. LEAVE.
  676. END.
  677. IF TRecid = 0 THEN NEXT.
  678. FIND Tabel WHERE RECID(Tabel) = TRecid NO-LOCK.
  679. RUN DRUCKEN.
  680. IF RETURN-VALUE <> '' AND
  681. RETURN-VALUE <> 'ERROR' THEN NEXT.
  682. REPEAT TRANSACTION:
  683. FIND BTabel WHERE RECID(BTabel) = TRecid NO-ERROR.
  684. IF AVAILABLE bTabel THEN DO:
  685. DELETE BTabel.
  686. RELEASE BTabel.
  687. END.
  688. LEAVE.
  689. END.
  690. RELEASE Tabel.
  691. RELEASE BTabel.
  692. END.
  693. DYNAMIC-FUNCTION('setBatch':U, FALSE) NO-ERROR.
  694. REPEAT TRANSACTION:
  695. FOR EACH Tabel NO-LOCK USE-INDEX Tabel-k1
  696. WHERE Tabel.Firma = GVFirma
  697. AND Tabel.RecArt = 'AUFDRUCK'
  698. AND Tabel.CodeC = cUSER
  699. AND Tabel.Bez1 = 'A':
  700. TRecid = RECID(Tabel).
  701. FIND BTabel WHERE RECID(BTabel) = TRecid NO-ERROR.
  702. IF AVAILABLE bTabel THEN DO:
  703. BTabel.Bez1 = ''.
  704. RELEASE bTabel.
  705. END.
  706. END.
  707. FOR EACH Tabel NO-LOCK USE-INDEX Tabel-k1
  708. WHERE Tabel.Firma = GVFirma
  709. AND Tabel.RecArt = 'AUFDRUCK'
  710. AND Tabel.CodeC = cBenutzer
  711. AND Tabel.Bez1 = 'A':
  712. TRecid = RECID(Tabel).
  713. FIND BTabel WHERE RECID(BTabel) = TRecid NO-ERROR.
  714. IF AVAILABLE bTabel THEN DO:
  715. BTabel.Bez1 = ''.
  716. RELEASE bTabel.
  717. END.
  718. END.
  719. RELEASE Tabel.
  720. RELEASE bTabel.
  721. LEAVE.
  722. END.
  723. { vpr.i STOP }
  724. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  725. APPLY 'CLOSE' TO THIS-PROCEDURE.
  726. RETURN.
  727. END.
  728. PROCEDURE ShellExecuteA EXTERNAL "shell32.dll" :
  729. DEFINE INPUT PARAMETER lphwnd AS LONG.
  730. DEFINE INPUT PARAMETER lpOperation AS CHAR.
  731. DEFINE INPUT PARAMETER lpFile AS CHAR.
  732. DEFINE INPUT PARAMETER lpParameters AS CHAR.
  733. DEFINE INPUT PARAMETER lpDirectory AS CHAR.
  734. DEFINE INPUT PARAMETER nShowCmd AS LONG.
  735. DEFINE RETURN PARAMETER hInstance AS LONG.
  736. END PROCEDURE.
  737. /* _UIB-CODE-BLOCK-END */
  738. &ANALYZE-RESUME
  739. /* ********************** Internal Procedures *********************** */
  740. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ABLADEVORSCHRIFT C-Win
  741. PROCEDURE ABLADEVORSCHRIFT :
  742. /*------------------------------------------------------------------------------
  743. Purpose:
  744. Parameters: <none>
  745. Notes:
  746. ------------------------------------------------------------------------------*/
  747. XAblade = ''.
  748. FIND Tabel USE-INDEX Tabel-k1
  749. WHERE Tabel.Firma = GVFirma
  750. AND Tabel.RecArt = 'ABLAD'
  751. AND Tabel.CodeC = ''
  752. AND Tabel.CodeI = BAufko.Ablad_Vor
  753. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  754. IF NOT AVAILABLE Tabel THEN DO:
  755. XAblade = BAufko.Ablad_Vor_Text.
  756. RETURN.
  757. END.
  758. IF LENGTH(Tabel.Bez1) > 4 THEN XAblade = Tabel.Bez1.
  759. IF BAufko.Ablad_Vor_Text <> '' THEN DO:
  760. IF XAblade <> '' THEN XAblade = XAblade + " / ".
  761. XAblade = XAblade + BAufko.Ablad_Vor_Text.
  762. END.
  763. END PROCEDURE.
  764. /* _UIB-CODE-BLOCK-END */
  765. &ANALYZE-RESUME
  766. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE C-Win
  767. PROCEDURE ARTIKELZEILE :
  768. /*------------------------------------------------------------------------------
  769. Purpose:
  770. Parameters: <none>
  771. Notes:
  772. ------------------------------------------------------------------------------*/
  773. DO WHILE Aufze.Artnr = 0:
  774. SUBSTRING(VZeile,015) = STRING(Aufze.Bez1,"x(30)").
  775. { v8/putstream.i "1" }
  776. IF Aufze.Bez2 <> '' THEN DO:
  777. VZeile = RZeile.
  778. SUBSTRING(VZeile,015) = STRING(Aufze.Bez2,"x(30)").
  779. { v8/putstream.i "1" }
  780. END.
  781. RETURN.
  782. END.
  783. FIND Artst OF Aufze NO-LOCK.
  784. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  785. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
  786. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  787. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  788. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  789. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  790. SUBSTRING(VZeile,008) = STRING(Aufze.Artnr ,"999999").
  791. SUBSTRING(VZeile,015) = STRING(Aufze.Bez1 ,"x(30)").
  792. SUBSTRING(VZeile,045) = STRING(KGebinde.KBez,"x(08)").
  793. IF Aufze.VGeb_Me <> 0 THEN DO:
  794. SUBSTRING(VZeile,053) = STRING(Aufze.VGeb_Me,"->>9x ")
  795. + STRING(VGebinde.KBez,"x(06)").
  796. END.
  797. SUBSTRING(VZeile,066) = STRING(Aufze.MGeli ,"->>>9").
  798. IF Aufze.Alk_Gehalt <> 0 THEN DO:
  799. SUBSTRING(VZeile,038) = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  800. END.
  801. IF Aufze.Jahr > 9 THEN DO:
  802. SUBSTRING(VZeile,041) = ' '
  803. + SUBSTRING(STRING(Aufze.Jahr,"9999"),03).
  804. END.
  805. IF FPreis THEN DO:
  806. SUBSTRING(VZeile,072) = STRING(Aufze.Preis ,"zz9.999").
  807. SUBSTRING(VZeile,081) = STRING(Aufze.Bru_Betr ,"->>,>>9.99").
  808. SUBSTRING(VZeile,092) = STRING(Aufze.WuCd ,"z9").
  809. END.
  810. { v8/putstream.i "1" }
  811. IF Aufze.Bez2 <> '' THEN DO:
  812. SUBSTRING(VZeile,015) = STRING(Aufze.Bez2,"x(30)").
  813. { v8/putstream.i "1" }
  814. END.
  815. IF Aufze.Aktion THEN DO:
  816. SUBSTRING(VZeile,015) = STRING(Aufze.Aktion_Text,"x(30)").
  817. { v8/putstream.i "1" }
  818. END.
  819. DO WHILE FPreis:
  820. IF Aufze.Rab_Betr = 0 THEN LEAVE.
  821. RabWert = ABSOLUTE(Aufze.Rab_Wert).
  822. IF Aufze.Rab_Art = 3 THEN RabText = VEpzText.
  823. ELSE DO:
  824. IF Aufze.Rab_Betr < 0 THEN RabText = VZusText.
  825. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText.
  826. END.
  827. SUBSTRING(VZeile,015) = TRIM(RabText).
  828. IF Aufze.Rab_Art = 1
  829. THEN SUBSTRING(VZeile,035) = STRING(RabWert,"->9.9 %").
  830. IF Aufze.Rab_Art = 2 OR
  831. Aufze.Rab_Art = 3
  832. THEN SUBSTRING(VZeile,035) = STRING(RabWert,"-9.99 Fr.").
  833. SUBSTRING(VZeile,081) = STRING(- Aufze.Rab_Betr ,"->>,>>9.99").
  834. { v8/putstream.i "1" }
  835. LEAVE.
  836. END.
  837. DO WHILE FPreis:
  838. IF Aufze.Zus_Betr = 0 THEN LEAVE.
  839. RabWert = ABSOLUTE(Aufze.Zus_Wert).
  840. IF Aufze.Zus_Art = 3 THEN RabText = VEpzText.
  841. ELSE DO:
  842. IF Aufze.Zus_Betr < 0 THEN RabText = VRabText.
  843. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText.
  844. END.
  845. SUBSTRING(VZeile,015) = TRIM(RabText).
  846. IF Aufze.Zus_Art = 1
  847. THEN SUBSTRING(VZeile,035) = STRING(RabWert,"->9.9 %").
  848. IF Aufze.Zus_Art = 2 OR
  849. Aufze.Zus_Art = 3
  850. THEN SUBSTRING(VZeile,035) = STRING(RabWert,"-9.99 Fr.").
  851. SUBSTRING(VZeile,081) = STRING(+ Aufze.Zus_Betr ,"->>,>>9.99").
  852. { v8/putstream.i "1" }
  853. LEAVE.
  854. END.
  855. /* ---- Summengruppen-Total -------------------------------------------- */
  856. IF Aufze.Rab_Su_Grp <> 0 THEN DO:
  857. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR.
  858. IF AVAILABLE TRabSumm THEN DO:
  859. TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab.
  860. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab.
  861. END.
  862. END.
  863. /* ---- Warengruppen-Totale -------------------------------------------- */
  864. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp
  865. AND TUmsGrp.MWst = Aufze.WuCd NO-ERROR.
  866. IF NOT AVAILABLE TUmsGrp THEN DO:
  867. FIND WarenGrp USE-INDEX WarenGrp-k1
  868. WHERE WarenGrp.Firma = GVFirma
  869. AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR.
  870. CREATE TUmsGrp.
  871. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp
  872. TUmsGrp.Mwst = Aufze.WuCd.
  873. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
  874. ELSE TUmsGrp.Bez = "??????????".
  875. END.
  876. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
  877. + Aufze.Net_Betr
  878. - Aufze.Auf_Rab
  879. - Aufze.Abh_Rab.
  880. RETURN.
  881. END PROCEDURE.
  882. /* _UIB-CODE-BLOCK-END */
  883. &ANALYZE-RESUME
  884. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_NEU C-Win
  885. PROCEDURE ARTIKELZEILE_NEU :
  886. /*------------------------------------------------------------------------------
  887. Purpose:
  888. Parameters: <none>
  889. Notes:
  890. ------------------------------------------------------------------------------*/
  891. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  892. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
  893. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  894. DO WHILE Aufze.Artnr = 0:
  895. SUBSTRING(VZeile,044) = STRING(Aufze.Bez1,"x(30)").
  896. { v8/putstream.i "1" }
  897. IF Aufze.Bez2 <> '' THEN DO:
  898. VZeile = RZeile.
  899. SUBSTRING(VZeile,044) = STRING(Aufze.Bez2,"x(30)").
  900. { v8/putstream.i "1" }
  901. END.
  902. RETURN.
  903. END.
  904. FIND Artst OF Aufze NO-LOCK.
  905. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  906. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
  907. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  908. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  909. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  910. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  911. SUBSTRING(VZeile,008) = STRING(KGebinde.KBez,"x(10)").
  912. IF Aufze.VGeb_Me <> 0 THEN DO:
  913. SUBSTRING(VZeile,019) = STRING(Aufze.VGeb_Me,'->>>')
  914. + 'x '
  915. + STRING(VGebinde.KBez,'x(10)').
  916. END.
  917. SUBSTRING(VZeile,035) = STRING(Aufze.MGeli ,"->>,>>9").
  918. SUBSTRING(VZeile,044) = STRING(Aufze.Bez1 ,"x(30)").
  919. IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,073) = STRING(Aufze.Jahr,"9999").
  920. IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,078) = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  921. SUBSTRING(VZeile,086) = STRING(Aufze.Artnr ,"999999").
  922. IF FPreis THEN DO:
  923. SUBSTRING(VZeile,095) = STRING(Aufze.Preis ,">,>>9.999").
  924. SUBSTRING(VZeile,104) = STRING(Aufze.Bru_Betr ,"->>>,>>9.99").
  925. SUBSTRING(VZeile,116) = STRING(Aufze.WuCd ,"z9").
  926. END.
  927. VZeile = SUBSTRING(VZeile,001,018)
  928. + BDrucker.Drufettb
  929. + SUBSTRING(VZeile,019,016)
  930. + BDrucker.Drufette
  931. + SUBSTRING(VZeile,035).
  932. { v8/putstream.i "1" }
  933. IF Aufze.Bez2 <> '' THEN DO:
  934. SUBSTRING(VZeile,044) = STRING(Aufze.Bez2,"x(30)").
  935. { v8/putstream.i "1" }
  936. END.
  937. IF Aufze.Aktion THEN DO:
  938. SUBSTRING(VZeile,044) = STRING(Aufze.Aktion_Text,"x(30)").
  939. { v8/putstream.i "1" }
  940. END.
  941. DO WHILE FPreis:
  942. IF Aufze.Rab_Betr = 0 THEN LEAVE.
  943. RabWert = ABSOLUTE(Aufze.Rab_Wert).
  944. IF Aufze.Rab_Art = 3 THEN RabText = VEpzText.
  945. ELSE DO:
  946. IF Aufze.Rab_Betr < 0 THEN RabText = VZusText.
  947. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText.
  948. END.
  949. SUBSTRING(VZeile,044) = TRIM(RabText).
  950. IF Aufze.Rab_Art = 1
  951. THEN SUBSTRING(VZeile,099) = STRING(RabWert,"->9.9%").
  952. IF Aufze.Rab_Art = 2 OR
  953. Aufze.Rab_Art = 3
  954. THEN SUBSTRING(VZeile,099) = STRING(RabWert,"-9.99").
  955. SUBSTRING(VZeile,104) = STRING(- Aufze.Rab_Betr ,"->>>,>>9.99").
  956. { v8/putstream.i "1" }
  957. LEAVE.
  958. END.
  959. DO WHILE FPreis:
  960. IF Aufze.Zus_Betr = 0 THEN LEAVE.
  961. RabWert = ABSOLUTE(Aufze.Zus_Wert).
  962. IF Aufze.Zus_Art = 3 THEN RabText = VEpzText.
  963. ELSE DO:
  964. IF Aufze.Zus_Betr < 0 THEN RabText = VRabText.
  965. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText.
  966. END.
  967. SUBSTRING(VZeile,044) = TRIM(RabText).
  968. IF Aufze.Zus_Art = 1
  969. THEN SUBSTRING(VZeile,099) = STRING(RabWert,"->9.9%").
  970. IF Aufze.Zus_Art = 2 OR
  971. Aufze.Zus_Art = 3
  972. THEN SUBSTRING(VZeile,099) = STRING(RabWert,"-9.99").
  973. SUBSTRING(VZeile,104) = STRING(+ Aufze.Zus_Betr ,"->>>,>>9.99").
  974. { v8/putstream.i "1" }
  975. LEAVE.
  976. END.
  977. /* ---- Summengruppen-Total -------------------------------------------- */
  978. IF Aufze.Rab_Su_Grp <> 0 THEN DO:
  979. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR.
  980. IF AVAILABLE TRabSumm THEN DO:
  981. TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab.
  982. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab.
  983. END.
  984. END.
  985. /* ---- Warengruppen-Totale -------------------------------------------- */
  986. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp
  987. AND TUmsGrp.MWst = Aufze.WuCd NO-ERROR.
  988. IF NOT AVAILABLE TUmsGrp THEN DO:
  989. FIND WarenGrp USE-INDEX WarenGrp-k1
  990. WHERE WarenGrp.Firma = GVFirma
  991. AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR.
  992. CREATE TUmsGrp.
  993. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp
  994. TUmsGrp.Mwst = Aufze.WuCd.
  995. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
  996. ELSE TUmsGrp.Bez = "??????????".
  997. END.
  998. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
  999. + Aufze.Net_Betr
  1000. - Aufze.Auf_Rab
  1001. - Aufze.Abh_Rab.
  1002. IF Aufze.MRuek > 0 THEN DO:
  1003. CREATE tRueckst.
  1004. BUFFER-COPY tAufze TO tRueckst.
  1005. END.
  1006. END PROCEDURE.
  1007. /* _UIB-CODE-BLOCK-END */
  1008. &ANALYZE-RESUME
  1009. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_RUECKSTAND C-Win
  1010. PROCEDURE ARTIKELZEILE_RUECKSTAND :
  1011. /*------------------------------------------------------------------------------
  1012. Purpose:
  1013. Parameters: <none>
  1014. Notes:
  1015. ------------------------------------------------------------------------------*/
  1016. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  1017. FIND tRueckst WHERE RECID(tRueckst) = ipRecid NO-LOCK.
  1018. FIND Aufze WHERE RECID(Aufze) = tRueckst.Zeile NO-LOCK.
  1019. FIND Artst OF Aufze NO-LOCK.
  1020. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  1021. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  1022. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  1023. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  1024. SUBSTRING(VZeile,008) = STRING(KGebinde.KBez,"x(10)").
  1025. IF Aufze.VGeb_Ru <> 0 THEN DO:
  1026. SUBSTRING(VZeile,019) = STRING(Aufze.VGeb_Ru,'->>>')
  1027. + 'x '
  1028. + STRING(VGebinde.KBez,'x(10)').
  1029. END.
  1030. SUBSTRING(VZeile,035) = STRING(Aufze.MRuek ,"->>,>>9").
  1031. SUBSTRING(VZeile,044) = STRING(Aufze.Bez1 ,"x(30)").
  1032. IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,073) = STRING(Aufze.Jahr,"9999").
  1033. IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,078) = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  1034. SUBSTRING(VZeile,086) = STRING(Aufze.Artnr ,"999999").
  1035. VZeile = SUBSTRING(VZeile,001,018)
  1036. + BDrucker.Drufettb
  1037. + SUBSTRING(VZeile,019,016)
  1038. + BDrucker.Drufette
  1039. + SUBSTRING(VZeile,035).
  1040. { v8/putstream.i "1" }
  1041. IF Aufze.Bez2 <> '' THEN DO:
  1042. SUBSTRING(VZeile,044) = STRING(Aufze.Bez2,"x(30)").
  1043. { v8/putstream.i "1" }
  1044. END.
  1045. IF Aufze.Aktion THEN DO:
  1046. SUBSTRING(VZeile,044) = STRING(Aufze.Aktion_Text,"x(30)").
  1047. { v8/putstream.i "1" }
  1048. END.
  1049. END PROCEDURE.
  1050. /* _UIB-CODE-BLOCK-END */
  1051. &ANALYZE-RESUME
  1052. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_RUEST C-Win
  1053. PROCEDURE ARTIKELZEILE_RUEST :
  1054. /*------------------------------------------------------------------------------
  1055. Purpose:
  1056. Parameters: <none>
  1057. Notes:
  1058. ------------------------------------------------------------------------------*/
  1059. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  1060. DEF VAR cBarCode AS CHAR NO-UNDO.
  1061. DEF VAR oBarCode AS CHAR NO-UNDO.
  1062. /*
  1063. DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO.
  1064. */
  1065. DEF VAR cCodeArt AS CHAR INIT 'P0205080' NO-UNDO.
  1066. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
  1067. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  1068. DO WHILE Aufze.Artnr = 0:
  1069. SUBSTRING(VZeile,036) = STRING(Aufze.Bez1,"x(30)").
  1070. { v8/putstream.i "1" }
  1071. IF Aufze.Bez2 <> '' THEN DO:
  1072. VZeile = RZeile.
  1073. SUBSTRING(VZeile,036) = STRING(Aufze.Bez2,"x(30)").
  1074. { v8/putstream.i "1" }
  1075. END.
  1076. RETURN.
  1077. END.
  1078. FIND Artst OF Aufze NO-LOCK.
  1079. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  1080. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
  1081. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  1082. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  1083. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  1084. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  1085. FIND FIRST ArtLief NO-LOCK
  1086. WHERE ArtLief.Firma = GVFirma
  1087. AND ArtLief.Artnr = Aufze.Artnr
  1088. AND ArtLief.Inhalt = Aufze.Inhalt
  1089. AND ArtLief.Jahr = Aufze.Jahr NO-ERROR.
  1090. cBarCode = ''.
  1091. oBarCode = ''.
  1092. IF Artst.Strichcode = '' THEN DO:
  1093. cBarCode = TRIM(STRING(Aufze.Artnr ,'zzzzz9'))
  1094. + '/'
  1095. + TRIM(STRING(Aufze.Inhalt,'zzz9'))
  1096. + '/'
  1097. + TRIM(STRING(Aufze.Jahr ,'zzz9')).
  1098. .
  1099. RUN BAR-CODE-39 ( INPUT cBarCode,
  1100. INPUT cCodeArt,
  1101. OUTPUT oBarCode ).
  1102. END.
  1103. /*
  1104. IF AVAILABLE ArtLief THEN DO:
  1105. IF ArtLief.Strichcode_KGeb <> '' THEN cBarCode = ArtLief.Strichcode_KGeb.
  1106. ELSE IF Artst.Strichcode <> '' THEN cBarCode = Artst.Strichcode .
  1107. END.
  1108. */
  1109. SUBSTRING(VZeile,001) = STRING(KGebinde.KBez,"x(10)").
  1110. IF Aufze.VGeb_Me <> 0 THEN DO:
  1111. SUBSTRING(VZeile,012) = STRING(Aufze.VGeb_Me,'->>>')
  1112. + 'x '
  1113. + VGebinde.KBez.
  1114. END.
  1115. SUBSTRING(VZeile,028) = STRING(Aufze.MGeli ,"->>>>9").
  1116. SUBSTRING(VZeile,036) = STRING(Aufze.Bez1 ,"x(30)").
  1117. IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,068) = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  1118. IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,075) = STRING(Aufze.Jahr,"9999").
  1119. SUBSTRING(VZeile,081) = STRING(Aufze.Artnr ,"999999").
  1120. SUBSTRING(VZeile,089) = STRING(tAufze.LagOrt,'x(08)').
  1121. IF oBarCode <> '' THEN DO:
  1122. SUBSTRING(VZeile,099) = CHR(27) + "&f0S" /* Cursorposition speichern */
  1123. + CHR(27) + "*p" /* Cursor neu Positionieren anhand der Zeile */
  1124. + STRING((VLine * 50) - 50,"9999") + "Y"
  1125. + oBarcode
  1126. + CHR(027) + "&f1S". /* Cusrorposition zurückholen */
  1127. END.
  1128. VZeile = BDrucker.Drufettb
  1129. + SUBSTRING(VZeile,001,027)
  1130. + BDrucker.Drufette
  1131. + SUBSTRING(VZeile,028,061)
  1132. + BDrucker.Drufettb
  1133. + SUBSTRING(VZeile,089,010)
  1134. + BDrucker.Drufette
  1135. + SUBSTRING(VZeile,099).
  1136. { v8/putstream.i "1" }
  1137. IF Aufze.Bez2 <> '' THEN DO:
  1138. SUBSTRING(VZeile,036) = STRING(Aufze.Bez2,"x(30)").
  1139. { v8/putstream.i "1 }
  1140. END.
  1141. { v8/putstream.i "1 }
  1142. END PROCEDURE.
  1143. /* _UIB-CODE-BLOCK-END */
  1144. &ANALYZE-RESUME
  1145. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_RUESTSCHEIN C-Win
  1146. PROCEDURE ARTIKELZEILE_RUESTSCHEIN :
  1147. /*------------------------------------------------------------------------------
  1148. Purpose:
  1149. Parameters: <none>
  1150. Notes:
  1151. ------------------------------------------------------------------------------*/
  1152. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  1153. DEF VAR cBarCode AS CHAR NO-UNDO.
  1154. DEF VAR oBarCode AS CHAR NO-UNDO.
  1155. /*
  1156. DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO.
  1157. */
  1158. DEF VAR cCodeArt AS CHAR INIT 'P0205080' NO-UNDO.
  1159. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
  1160. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  1161. DO WHILE Aufze.Artnr = 0:
  1162. SUBSTRING(VZeile,036) = STRING(Aufze.Bez1,"x(30)").
  1163. { v8/putstream.i "1" }
  1164. IF Aufze.Bez2 <> '' THEN DO:
  1165. VZeile = RZeile.
  1166. SUBSTRING(VZeile,036) = STRING(Aufze.Bez2,"x(30)").
  1167. { v8/putstream.i "1" }
  1168. END.
  1169. RETURN.
  1170. END.
  1171. FIND Artst OF Aufze NO-LOCK.
  1172. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  1173. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
  1174. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  1175. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  1176. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  1177. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  1178. FIND FIRST ArtLief NO-LOCK
  1179. WHERE ArtLief.Firma = GVFirma
  1180. AND ArtLief.Artnr = Aufze.Artnr
  1181. AND ArtLief.Inhalt = Aufze.Inhalt
  1182. AND ArtLief.Jahr = Aufze.Jahr NO-ERROR.
  1183. cBarCode = ''.
  1184. oBarCode = ''.
  1185. IF AVAILABLE ArtLief THEN DO:
  1186. IF ArtLief.Strichcode_KGeb <> '' THEN cBarCode = ArtLief.Strichcode_KGeb.
  1187. ELSE IF Artst.Strichcode <> '' THEN cBarCode = Artst.Strichcode .
  1188. END.
  1189. /*
  1190. cBarCode = TRIM(STRING(Aufze.Artnr ,'zzzzz9'))
  1191. + '.'
  1192. + TRIM(STRING(Aufze.Inhalt,'zzz9'))
  1193. + '.'
  1194. + TRIM(STRING(Aufze.Jahr ,'zzz9')).
  1195. .
  1196. RUN BAR-CODE-39 ( INPUT cBarCode,
  1197. INPUT cCodeArt,
  1198. OUTPUT oBarCode ).
  1199. */
  1200. SUBSTRING(VZeile,001) = STRING(KGebinde.KBez,"x(10)").
  1201. IF Aufze.VGeb_Me <> 0 THEN DO:
  1202. SUBSTRING(VZeile,012) = STRING(Aufze.VGeb_Me,'->>>')
  1203. + 'x '
  1204. + VGebinde.KBez.
  1205. END.
  1206. SUBSTRING(VZeile,028) = STRING(Aufze.MBest ,"->>>>9").
  1207. SUBSTRING(VZeile,036) = STRING(Aufze.Bez1 ,"x(30)").
  1208. IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,068) = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  1209. IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,075) = STRING(Aufze.Jahr,"9999").
  1210. SUBSTRING(VZeile,081) = STRING(Aufze.Artnr ,"999999").
  1211. SUBSTRING(VZeile,089) = STRING(tAufze.LagOrt,'x(08)').
  1212. VZeile = BDrucker.Drufettb
  1213. + SUBSTRING(VZeile,001,027)
  1214. + BDrucker.Drufette
  1215. + SUBSTRING(VZeile,028,061)
  1216. + BDrucker.Drufettb
  1217. + SUBSTRING(VZeile,089,008)
  1218. + BDrucker.Drufette
  1219. + SUBSTRING(VZeile,097).
  1220. { v8/putstream.i "1" }
  1221. IF Aufze.Bez2 <> '' THEN DO:
  1222. SUBSTRING(VZeile,036) = STRING(Aufze.Bez2,"x(30)").
  1223. { v8/putstream.i "1 }
  1224. END.
  1225. IF oBarCode <> '' THEN DO:
  1226. SUBSTRING(VZeile,036) = CHR(27) + "&f0S" /* Cursorposition speichern */
  1227. + CHR(27) + "*p" /* Cursor neu Positionieren anhand der Zeile */
  1228. + STRING((VLine * 50) - 25,"9999") + "Y"
  1229. + oBarcode
  1230. + CHR(027) + "&f1S". /* Cusrorposition zurückholen */
  1231. { v8/putstream.i "2" }
  1232. END.
  1233. ELSE DO:
  1234. { v8/putstream.i "1" }
  1235. END.
  1236. END PROCEDURE.
  1237. /* _UIB-CODE-BLOCK-END */
  1238. &ANALYZE-RESUME
  1239. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_SAMMFAK C-Win
  1240. PROCEDURE ARTIKELZEILE_SAMMFAK :
  1241. /*------------------------------------------------------------------------------
  1242. Purpose:
  1243. Parameters: <none>
  1244. Notes:
  1245. ------------------------------------------------------------------------------*/
  1246. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  1247. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
  1248. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  1249. DO WHILE Aufze.Artnr = 0:
  1250. SUBSTRING(VZeile,042) = STRING(Aufze.Bez1,"x(30)").
  1251. { v8/putstream.i "1" }
  1252. IF Aufze.Bez2 <> '' THEN DO:
  1253. VZeile = RZeile.
  1254. SUBSTRING(VZeile,042) = STRING(Aufze.Bez2,"x(30)").
  1255. { v8/putstream.i "1" }
  1256. END.
  1257. RETURN.
  1258. END.
  1259. FIND Artst OF Aufze NO-LOCK.
  1260. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  1261. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
  1262. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  1263. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  1264. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  1265. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  1266. SUBSTRING(VZeile,006) = STRING(KGebinde.KBez,"x(10)").
  1267. IF Aufze.VGeb_Me <> 0 THEN DO:
  1268. SUBSTRING(VZeile,017) = STRING(Aufze.VGeb_Me,'->>>')
  1269. + 'x '
  1270. + STRING(VGebinde.KBez,'x(10)').
  1271. END.
  1272. SUBSTRING(VZeile,033) = STRING(Aufze.MGeli ,"->>,>>9").
  1273. SUBSTRING(VZeile,042) = STRING(Aufze.Bez1 ,"x(30)").
  1274. IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,073) = STRING(Aufze.Jahr,"9999").
  1275. IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,078) = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  1276. SUBSTRING(VZeile,086) = STRING(Aufze.Artnr ,"999999").
  1277. IF FPreis THEN DO:
  1278. SUBSTRING(VZeile,093) = STRING(Aufze.Preis ,">,>>9.999").
  1279. SUBSTRING(VZeile,102) = STRING(Aufze.Bru_Betr ,"->>>,>>9.99").
  1280. SUBSTRING(VZeile,114) = STRING(Aufze.WuCd ,"z9").
  1281. END.
  1282. VZeile = SUBSTRING(VZeile,001,018)
  1283. + BDrucker.Drufettb
  1284. + SUBSTRING(VZeile,019,016)
  1285. + BDrucker.Drufette
  1286. + SUBSTRING(VZeile,035).
  1287. { v8/putstream.i "1" }
  1288. IF Aufze.Bez2 <> '' THEN DO:
  1289. SUBSTRING(VZeile,042) = STRING(Aufze.Bez2,"x(30)").
  1290. { v8/putstream.i "1" }
  1291. END.
  1292. IF Aufze.Aktion THEN DO:
  1293. SUBSTRING(VZeile,042) = STRING(Aufze.Aktion_Text,"x(30)").
  1294. { v8/putstream.i "1" }
  1295. END.
  1296. DO WHILE FPreis:
  1297. IF Aufze.Rab_Betr = 0 THEN LEAVE.
  1298. RabWert = ABSOLUTE(Aufze.Rab_Wert).
  1299. IF Aufze.Rab_Art = 3 THEN RabText = VEpzText.
  1300. ELSE DO:
  1301. IF Aufze.Rab_Betr < 0 THEN RabText = VZusText.
  1302. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText.
  1303. END.
  1304. SUBSTRING(VZeile,042) = TRIM(RabText).
  1305. IF Aufze.Rab_Art = 1
  1306. THEN SUBSTRING(VZeile,097) = STRING(RabWert,"->9.9%").
  1307. IF Aufze.Rab_Art = 2 OR
  1308. Aufze.Rab_Art = 3
  1309. THEN SUBSTRING(VZeile,097) = STRING(RabWert,"-9.99").
  1310. SUBSTRING(VZeile,102) = STRING(- Aufze.Rab_Betr ,"->>>,>>9.99").
  1311. { v8/putstream.i "1" }
  1312. LEAVE.
  1313. END.
  1314. DO WHILE FPreis:
  1315. IF Aufze.Zus_Betr = 0 THEN LEAVE.
  1316. RabWert = ABSOLUTE(Aufze.Zus_Wert).
  1317. IF Aufze.Zus_Art = 3 THEN RabText = VEpzText.
  1318. ELSE DO:
  1319. IF Aufze.Zus_Betr < 0 THEN RabText = VRabText.
  1320. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText.
  1321. END.
  1322. SUBSTRING(VZeile,042) = TRIM(RabText).
  1323. IF Aufze.Zus_Art = 1
  1324. THEN SUBSTRING(VZeile,097) = STRING(RabWert,"->9.9%").
  1325. IF Aufze.Zus_Art = 2 OR
  1326. Aufze.Zus_Art = 3
  1327. THEN SUBSTRING(VZeile,097) = STRING(RabWert,"-9.99").
  1328. SUBSTRING(VZeile,102) = STRING(+ Aufze.Zus_Betr ,"->>>,>>9.99").
  1329. { v8/putstream.i "1" }
  1330. LEAVE.
  1331. END.
  1332. /* ---- Summengruppen-Total -------------------------------------------- */
  1333. IF Aufze.Rab_Su_Grp <> 0 THEN DO:
  1334. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR.
  1335. IF AVAILABLE TRabSumm THEN DO:
  1336. TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab.
  1337. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab.
  1338. END.
  1339. END.
  1340. /* ---- Warengruppen-Totale -------------------------------------------- */
  1341. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp
  1342. AND TUmsGrp.MWst = Aufze.WuCd NO-ERROR.
  1343. IF NOT AVAILABLE TUmsGrp THEN DO:
  1344. FIND WarenGrp USE-INDEX WarenGrp-k1
  1345. WHERE WarenGrp.Firma = GVFirma
  1346. AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR.
  1347. CREATE TUmsGrp.
  1348. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp
  1349. TUmsGrp.Mwst = Aufze.WuCd.
  1350. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
  1351. ELSE TUmsGrp.Bez = "??????????".
  1352. END.
  1353. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
  1354. + Aufze.Net_Betr
  1355. - Aufze.Auf_Rab
  1356. - Aufze.Abh_Rab.
  1357. END PROCEDURE.
  1358. /* _UIB-CODE-BLOCK-END */
  1359. &ANALYZE-RESUME
  1360. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAGSSCHEIN C-Win
  1361. PROCEDURE AUFTRAGSSCHEIN :
  1362. /*------------------------------------------------------------------------------
  1363. Purpose:
  1364. Parameters: <none>
  1365. Notes:
  1366. ------------------------------------------------------------------------------*/
  1367. DEF VAR cCrLf AS CHAR NO-UNDO.
  1368. DEF VAR xDokArt AS CHAR NO-UNDO.
  1369. VSeite = 0.
  1370. VFak_Betr = 0.
  1371. cCrLf = CHR(13) + CHR(10).
  1372. FPreis = TRUE.
  1373. xDokArt = vDokArt.
  1374. vDokArt = 'AUFTRAGSSCHEIN'.
  1375. RUN LIBILD.
  1376. RUN AUFTRAGSSCHEIN_KOPF.
  1377. FOR EACH tAufze NO-LOCK
  1378. BY tAufze.Aufnr
  1379. BY tAufze.Sort1
  1380. BY tAufze.Sort2
  1381. BY tAufze.Sort3
  1382. BY tAufze.Pos :
  1383. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO:
  1384. RUN AUFTRAGSSCHEIN_KOPF.
  1385. END.
  1386. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  1387. PUT STREAM Out_Stream CONTROL BDrucker.Dru15cpi.
  1388. RUN AUFTRAGSSCHEIN_ARTIKELZEILE ( RECID(tAufze) ).
  1389. VFak_Betr = VFak_Betr + Aufze.Net_Betr.
  1390. END.
  1391. IF FPreis = TRUE THEN DO:
  1392. PUT STREAM Out_Stream CONTROL BDrucker.Dru15cpi.
  1393. SUBSTRING(VZeile,040) = SUBSTRING(FormText[15],21,20).
  1394. SUBSTRING(VZeile,100) = STRING(VFak_Betr,"->>>,>>9.99").
  1395. { v8/putstream.i "1" }
  1396. PUT STREAM Out_Stream CONTROL BDrucker.Dru12cpi.
  1397. END.
  1398. { v8/putstream.i "1" }
  1399. IF BAufko.Auf_Text <> '' THEN DO:
  1400. XAuf_Text = BAufko.Auf_Text.
  1401. i1 = NUM-ENTRIES(XAuf_Text, CHR(10)).
  1402. IF i1 > 0 THEN Zuszz = Zuszz + i1 + 1.
  1403. END.
  1404. IF Zuszz > 0 THEN Zuszz = Zuszz + 2.
  1405. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO:
  1406. RUN AUFTRAGSSCHEIN_KOPF.
  1407. END.
  1408. /* Auftragstext ------------------------------------------------------ */
  1409. XAuf_Text = BAufko.Auf_Text.
  1410. IF XAuf_Text <> '' THEN DO:
  1411. i2 = 0.
  1412. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
  1413. SUBSTRING(VZeile,005) = ENTRY(i1, XAuf_Text, CHR(10)).
  1414. { v8/putstreamf.i "1" }
  1415. i2 = i2 + 1.
  1416. END.
  1417. END.
  1418. IF i2 > 0 THEN DO:
  1419. { v8/putstream.i "1" }
  1420. END.
  1421. RUN NEUE_SEITE.
  1422. vDokArt = xDokArt.
  1423. RUN LIBILD.
  1424. END PROCEDURE.
  1425. /* _UIB-CODE-BLOCK-END */
  1426. &ANALYZE-RESUME
  1427. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAGSSCHEIN_ARTIKELZEILE C-Win
  1428. PROCEDURE AUFTRAGSSCHEIN_ARTIKELZEILE :
  1429. /*--------------------------------------------------------------------------
  1430. Purpose:
  1431. Parameters: <none>
  1432. Notes:
  1433. ------------------------------------------------------------------------------*/
  1434. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  1435. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
  1436. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  1437. DO WHILE Aufze.Artnr = 0:
  1438. SUBSTRING(VZeile,040) = STRING(Aufze.Bez1,"x(30)").
  1439. { v8/putstream.i "1" }
  1440. IF Aufze.Bez2 <> '' THEN DO:
  1441. VZeile = RZeile.
  1442. SUBSTRING(VZeile,040) = STRING(Aufze.Bez2,"x(30)").
  1443. { v8/putstream.i "1" }
  1444. END.
  1445. RETURN.
  1446. END.
  1447. FIND Artst OF Aufze NO-LOCK.
  1448. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  1449. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
  1450. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  1451. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  1452. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  1453. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  1454. SUBSTRING(VZeile,003) = STRING(KGebinde.KBez,"x(10)").
  1455. IF Aufze.VGeb_Me <> 0 THEN DO:
  1456. SUBSTRING(VZeile,015) = STRING(Aufze.VGeb_Me,'->>>')
  1457. + 'x '
  1458. + STRING(VGebinde.KBez,'x(10)').
  1459. END.
  1460. SUBSTRING(VZeile,031) = STRING(Aufze.MGeli ,"->>,>>9").
  1461. SUBSTRING(VZeile,040) = STRING(Aufze.Bez1 ,"x(30)").
  1462. IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,069) = STRING(Aufze.Jahr,"9999").
  1463. IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,074) = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  1464. SUBSTRING(VZeile,082) = STRING(Aufze.Artnr ,"999999").
  1465. IF FPreis THEN DO:
  1466. SUBSTRING(VZeile,091) = STRING(Aufze.Preis ,">,>>9.999").
  1467. SUBSTRING(VZeile,100) = STRING(Aufze.Bru_Betr ,"->>>,>>9.99").
  1468. SUBSTRING(VZeile,112) = STRING(Aufze.WuCd ,"z9").
  1469. END.
  1470. VZeile = SUBSTRING(VZeile,001,014)
  1471. + BDrucker.Drufettb
  1472. + SUBSTRING(VZeile,015,016)
  1473. + BDrucker.Drufette
  1474. + SUBSTRING(VZeile,031).
  1475. { v8/putstream.i "1" }
  1476. IF Aufze.Bez2 <> '' THEN DO:
  1477. SUBSTRING(VZeile,040) = STRING(Aufze.Bez2,"x(30)").
  1478. { v8/putstream.i "1" }
  1479. END.
  1480. IF Aufze.Aktion THEN DO:
  1481. SUBSTRING(VZeile,040) = STRING(Aufze.Aktion_Text,"x(30)").
  1482. { v8/putstream.i "1" }
  1483. END.
  1484. DO WHILE FPreis:
  1485. IF Aufze.Rab_Betr = 0 THEN LEAVE.
  1486. RabWert = ABSOLUTE(Aufze.Rab_Wert).
  1487. IF Aufze.Rab_Art = 3 THEN RabText = VEpzText.
  1488. ELSE DO:
  1489. IF Aufze.Rab_Betr < 0 THEN RabText = VZusText.
  1490. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText.
  1491. END.
  1492. SUBSTRING(VZeile,040) = TRIM(RabText).
  1493. IF Aufze.Rab_Art = 1
  1494. THEN SUBSTRING(VZeile,095) = STRING(RabWert,"->9.9%").
  1495. IF Aufze.Rab_Art = 2 OR
  1496. Aufze.Rab_Art = 3
  1497. THEN SUBSTRING(VZeile,095) = STRING(RabWert,"-9.99").
  1498. SUBSTRING(VZeile,100) = STRING(- Aufze.Rab_Betr ,"->>>,>>9.99").
  1499. { v8/putstream.i "1" }
  1500. LEAVE.
  1501. END.
  1502. DO WHILE FPreis:
  1503. IF Aufze.Zus_Betr = 0 THEN LEAVE.
  1504. RabWert = ABSOLUTE(Aufze.Zus_Wert).
  1505. IF Aufze.Zus_Art = 3 THEN RabText = VEpzText.
  1506. ELSE DO:
  1507. IF Aufze.Zus_Betr < 0 THEN RabText = VRabText.
  1508. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText.
  1509. END.
  1510. SUBSTRING(VZeile,040) = TRIM(RabText).
  1511. IF Aufze.Zus_Art = 1
  1512. THEN SUBSTRING(VZeile,095) = STRING(RabWert,"->9.9%").
  1513. IF Aufze.Zus_Art = 2 OR
  1514. Aufze.Zus_Art = 3
  1515. THEN SUBSTRING(VZeile,095) = STRING(RabWert,"-9.99").
  1516. SUBSTRING(VZeile,100) = STRING(+ Aufze.Zus_Betr ,"->>>,>>9.99").
  1517. { v8/putstream.i "1" }
  1518. LEAVE.
  1519. END.
  1520. /* ---- Summengruppen-Total -------------------------------------------- */
  1521. IF Aufze.Rab_Su_Grp <> 0 THEN DO:
  1522. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR.
  1523. IF AVAILABLE TRabSumm THEN DO:
  1524. TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab.
  1525. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab.
  1526. END.
  1527. END.
  1528. /* ---- Warengruppen-Totale -------------------------------------------- */
  1529. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp
  1530. AND TUmsGrp.MWst = Aufze.WuCd NO-ERROR.
  1531. IF NOT AVAILABLE TUmsGrp THEN DO:
  1532. FIND WarenGrp USE-INDEX WarenGrp-k1
  1533. WHERE WarenGrp.Firma = GVFirma
  1534. AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR.
  1535. CREATE TUmsGrp.
  1536. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp
  1537. TUmsGrp.Mwst = Aufze.WuCd.
  1538. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
  1539. ELSE TUmsGrp.Bez = "??????????".
  1540. END.
  1541. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
  1542. + Aufze.Net_Betr
  1543. - Aufze.Auf_Rab
  1544. - Aufze.Abh_Rab.
  1545. IF Aufze.MRuek > 0 THEN DO:
  1546. CREATE tRueckst.
  1547. BUFFER-COPY tAufze TO tRueckst.
  1548. END.
  1549. END PROCEDURE.
  1550. /* _UIB-CODE-BLOCK-END */
  1551. &ANALYZE-RESUME
  1552. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAGSSCHEIN_KOPF C-Win
  1553. PROCEDURE AUFTRAGSSCHEIN_KOPF :
  1554. /*------------------------------------------------------------------------------
  1555. Purpose:
  1556. Parameters: <none>
  1557. Notes:
  1558. ------------------------------------------------------------------------------*/
  1559. DEF VAR kk AS INT NO-UNDO.
  1560. DEF VAR iAnzPal AS INT NO-UNDO.
  1561. RUN NEUE_SEITE.
  1562. IF VSeite = 1 THEN DO:
  1563. SFaknr = BAufko.Aufnr.
  1564. FIND Adresse USE-INDEX Adresse-k1
  1565. WHERE Adresse.Firma = AdFirma
  1566. AND Adresse.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  1567. FIND LDebst USE-INDEX Debst-k1
  1568. WHERE LDebst.Firma = GVFirma
  1569. AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  1570. FIND FDebst USE-INDEX Debst-k1
  1571. WHERE FDebst.Firma = GVFirma
  1572. AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  1573. FIND Wust USE-INDEX Wust-k1
  1574. WHERE Wust.CodeK = LDebst.MWST
  1575. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  1576. LVSprcd = Adresse.Sprcd.
  1577. DebInkl = FALSE.
  1578. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  1579. END.
  1580. ASSIGN VKopf = ''
  1581. VZeile = ''
  1582. kk = 3.
  1583. { v8/putstream.i BLiDruck.Listkzz }.
  1584. IF BAufko.Adresse[05] <> '' THEN DO:
  1585. kk = kk + 2.
  1586. DO ix = 1 TO 5:
  1587. IF ix = 5 THEN SUBSTRING(VZeile,003) = Drufettb + BAufko.Adresse[ix] + Drufette.
  1588. ELSE SUBSTRING(VZeile,003) = BAufko.Adresse[ix].
  1589. kk = kk + 1.
  1590. VKopf[kk] = VZeile.
  1591. VZeile = ''.
  1592. END.
  1593. END.
  1594. ELSE DO:
  1595. DO ix = 5 TO 11:
  1596. IF ix = 11 THEN SUBSTRING(VZeile,003) = Drufettb + Adresse.Anschrift[ix] + Drufette.
  1597. ELSE SUBSTRING(VZeile,003) = Adresse.Anschrift[ix].
  1598. kk = kk + 1.
  1599. VKopf[kk] = VZeile.
  1600. VZeile = ''.
  1601. END.
  1602. END.
  1603. kk = 12.
  1604. IF BAufko.Auf_Tot >= 0
  1605. THEN SUBSTRING(VKopf[kk],067) = TRIM(SUBSTRING(FormText[02],01,20)).
  1606. ELSE SUBSTRING(VKopf[kk],067) = TRIM(SUBSTRING(FormText[02],21,20)).
  1607. VKopf[kk] = VKopf[kk] + STRING(BAufko.Aufnr,"zz999999").
  1608. VKopf[kk] = SUBSTRING(VKopf[kk],001,066)
  1609. + BDrucker.Drufettb
  1610. + SUBSTRING(VKopf[kk],067)
  1611. + BDrucker.Drufette.
  1612. kk = kk + 2.
  1613. IF VSeite = 1 THEN DO:
  1614. RUN ABLADEVORSCHRIFT.
  1615. IF XAblade <> '' THEN DO:
  1616. SUBSTRING(VKopf[kk],003) = TRIM(SUBSTRING(FormText[19],01,20))
  1617. + TRIM(BDrucker.Drufettb)
  1618. + ' '
  1619. + XAblade
  1620. + TRIM(BDrucker.Drufette).
  1621. VZeile = ''.
  1622. kk = kk + 1.
  1623. END.
  1624. RUN WIRTESONNTAG.
  1625. IF XWirtesonntag <> '' THEN DO:
  1626. SUBSTRING(VKopf[kk],003) = TRIM(SUBSTRING(FormText[19],21,20))
  1627. + TRIM(BDrucker.Drufettb)
  1628. + ' '
  1629. + XWirtesonntag
  1630. + TRIM(BDrucker.Drufette).
  1631. VZeile = ''.
  1632. kk = kk + 1.
  1633. END.
  1634. SUBSTRING(VKopf[kk],003) = TRIM(SUBSTRING(FormText[07],41,20))
  1635. + " "
  1636. + STRING(BAufko.Auf_Datum,"99.99.9999").
  1637. SUBSTRING(VKopf[kk],034) = TRIM(SUBSTRING(FormText[08],01,20))
  1638. + STRING(BAufko.Knr,"zzzzzzz999999").
  1639. SUBSTRING(VKopf[kk],067) = TRIM(SUBSTRING(FormText[07],01,20))
  1640. + " "
  1641. + STRING(FDatum,"99.99.9999").
  1642. VZeile = ''.
  1643. kk = kk + 1.
  1644. SUBSTRING(VKopf[kk],003) = TRIM(SUBSTRING(FormText[09],21,20))
  1645. + " "
  1646. + STRING(BAufko.Lief_Datum,"99.99.9999").
  1647. SUBSTRING(VKopf[kk],034) = TRIM(SUBSTRING(FormText[08],21,20))
  1648. + STRING(BAufko.Gewicht,"z,zzz,zz9.999-").
  1649. SUBSTRING(VKopf[kk],067) = TRIM(SUBSTRING(FormText[20],01,20))
  1650. + STRING(VSeite,'z9').
  1651. VKopf[kk] = SUBSTRING(VKopf[kk],01,33)
  1652. + BDrucker.Drufettb
  1653. + SUBSTRING(VKopf[kk],34,33)
  1654. + BDrucker.Drufette
  1655. + SUBSTRING(VKopf[kk],67).
  1656. VZeile = ''.
  1657. kk = kk + 1.
  1658. SUBSTRING(VKopf[kk],003) = TRIM(SUBSTRING(FormText[07],21,20))
  1659. + " "
  1660. + STRING(BAufko.U_Ref,'x(20)').
  1661. SUBSTRING(VKopf[kk],067) = TRIM(SUBSTRING(FormText[08],41,20))
  1662. + " "
  1663. + Adresse.Tel-1.
  1664. VZeile = ''.
  1665. END.
  1666. ELSE DO:
  1667. kk = kk + 2.
  1668. SUBSTRING(VKopf[kk],067) = TRIM(SUBSTRING(FormText[20],01,20))
  1669. + STRING(VSeite,'z9').
  1670. kk = kk + 1.
  1671. END.
  1672. kk = kk + 2.
  1673. VZeile = 'Inhalt Gebinde Menge Bezeichnung JG Alk% ArtNr Preis Betrag C'.
  1674. SUBSTRING(VKopf[kk],003) = BDrucker.Druunterb
  1675. + VZeile
  1676. + BDrucker.Druuntere.
  1677. SUBSTRING(VKopf[kk - 1],003) = BDrucker.Druunterb
  1678. + FILL(' ', LENGTH(VZeile))
  1679. + BDrucker.Druuntere.
  1680. VKopf[kk - 1] = BDrucker.Dru15cpi + BDrucker.Drufettb
  1681. + VKopf[kk - 1]
  1682. + BDrucker.Drufettb + BDrucker.Dru12cpi.
  1683. VKopf[kk] = BDrucker.Dru15cpi + BDrucker.Drufettb
  1684. + VKopf[kk]
  1685. + BDrucker.Drufettb + BDrucker.Dru12cpi.
  1686. kk = kk + 1.
  1687. VZeile = ''.
  1688. DO ix = 1 TO kk:
  1689. VZeile = VKopf[ix].
  1690. { v8/putstream.i "1" }.
  1691. END.
  1692. IF VSeite = 1 AND
  1693. BAufko.Abh_Text <> '' THEN DO:
  1694. XAuf_Text = BAufko.Abh_Text.
  1695. i2 = 0.
  1696. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
  1697. SUBSTRING(VZeile,003) = ENTRY(i1, XAuf_Text, CHR(10)).
  1698. { v8/putstreamf.i "1" }
  1699. i2 = i2 + 1.
  1700. END.
  1701. IF i2 > 0 THEN DO:
  1702. { v8/putstream.i "1" }
  1703. END.
  1704. END.
  1705. END PROCEDURE.
  1706. /* _UIB-CODE-BLOCK-END */
  1707. &ANALYZE-RESUME
  1708. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BAR-CODE-39 C-Win
  1709. PROCEDURE BAR-CODE-39 :
  1710. /*------------------------------------------------------------------------------
  1711. Purpose:
  1712. Parameters: <none>
  1713. Notes:
  1714. ------------------------------------------------------------------------------*/
  1715. DEF INPUT PARAMETER ipWert AS CHAR NO-UNDO.
  1716. DEF INPUT PARAMETER ipCodeArt AS CHAR NO-UNDO.
  1717. DEF OUTPUT PARAMETER opBarCode AS CHAR NO-UNDO.
  1718. DEF VAR clr AS LOG INIT TRUE NO-UNDO.
  1719. DEF VAR wk AS CHAR NO-UNDO.
  1720. DEF VAR drw AS CHAR NO-UNDO.
  1721. DEF VAR cDir AS CHAR NO-UNDO.
  1722. DEF VAR k AS CHAR NO-UNDO.
  1723. DEF VAR att AS CHAR NO-UNDO.
  1724. DEF VAR kod AS CHAR NO-UNDO
  1725. INIT "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.Ø *$/+%".
  1726. att =
  1727. "100100001001100001101100000000110001100110000001110000000100101100100100"
  1728. + "001100100000110100100001001001001001101001000000011001100011000001011000"
  1729. + "000001101100001100001001100000011100100000011001000011101000010000010011"
  1730. + "100010010001010010000000111100000110001000110000010110110000001011000001"
  1731. + "111000000010010001110010000011010000010000101110000100011000100010010100"
  1732. + "010101000010100010010001010000101010".
  1733. DEF VAR i AS INT NO-UNDO.
  1734. DEF VAR j AS INT NO-UNDO.
  1735. DEF VAR l AS INT NO-UNDO.
  1736. DEF VAR brd AS INT NO-UNDO.
  1737. DEF VAR jst AS INT NO-UNDO.
  1738. ASSIGN i = (IF SUBSTRING (ipCodeArt, 1, 1) = "P" THEN 1 ELSE 2)
  1739. opBarCode = "~E&f0S~E*c100G"
  1740. drw = SUBSTRING("ab" , i, 1)
  1741. + SUBSTRING(ipCodeArt, 6)
  1742. + SUBSTRING("ba" , i, 1)
  1743. + "P"
  1744. cDir = SUBSTRING("XY", i, 1)
  1745. k = "*" + ipWert + "*" .
  1746. DO i = 1 TO LENGTH(k):
  1747. ASSIGN j = INDEX(kod, SUBSTRING (k, i, 1)) * 9 - 8
  1748. wk = SUBSTRING (att, j, 9) + "0" .
  1749. DO l = 1 TO 10:
  1750. ASSIGN brd = IF SUBSTRING(wk,l,1) = "0" THEN 2 ELSE 4
  1751. opBarCode = opBarCode
  1752. + (IF clr THEN "~E*c" + SUBSTRING (ipCodeArt, brd, 2) + drw
  1753. ELSE "~E*p+" + STRING(INTEGER(SUBSTRING(ipCodeArt, brd, 2))
  1754. + jst) + cDir)
  1755. jst = INTEGER (SUBSTRING (ipCodeArt, brd, 2))
  1756. clr = NOT clr.
  1757. END. /* of looping 1 to 10 */
  1758. END. /* of going through string 'k' */
  1759. ASSIGN opBarCode = opBarCode + "~E&f1S"
  1760. wk = "".
  1761. /*
  1762. DEF INPUT PARAMETER ipWert AS CHAR NO-UNDO.
  1763. DEF INPUT PARAMETER ipCodeArt AS CHAR NO-UNDO.
  1764. DEF OUTPUT PARAMETER opBarCode AS CHAR NO-UNDO.
  1765. DEF VAR clr AS LOG INIT TRUE NO-UNDO.
  1766. DEF VAR wk AS CHAR NO-UNDO.
  1767. DEF VAR drw AS CHAR NO-UNDO.
  1768. DEF VAR cDir AS CHAR NO-UNDO.
  1769. DEF VAR k AS CHAR NO-UNDO.
  1770. DEF VAR att AS CHAR NO-UNDO.
  1771. DEF VAR kod AS CHAR NO-UNDO
  1772. INIT "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.Ï *$/+%".
  1773. att =
  1774. "100100001001100001101100000000110001100110000001110000000100101100100100"
  1775. + "001100100000110100100001001001001001101001000000011001100011000001011000"
  1776. + "000001101100001100001001100000011100100000011001000011101000010000010011"
  1777. + "100010010001010010000000111100000110001000110000010110110000001011000001"
  1778. + "111000000010010001110010000011010000010000101110000100011000100010010100"
  1779. + "010101000010100010010001010000101010".
  1780. DEF VAR i AS INT NO-UNDO.
  1781. DEF VAR j AS INT NO-UNDO.
  1782. DEF VAR l AS INT NO-UNDO.
  1783. DEF VAR brd AS INT NO-UNDO.
  1784. DEF VAR jst AS INT NO-UNDO.
  1785. ASSIGN i = IF SUBSTRING (ipCodeArt, 1, 1) = "P" THEN 1 ELSE 2
  1786. opBarCode = "~E&f0S~E*c100G"
  1787. drw = SUBSTRING("ab" , i, 1)
  1788. + SUBSTRING(ipCodeArt, 6)
  1789. + SUBSTRING("ba" , i, 1)
  1790. + "P"
  1791. cDir = SUBSTRING("XY", i, 1)
  1792. k = "*" + ipWert + "*" .
  1793. DO i = 1 TO LENGTH(k):
  1794. ASSIGN j = INDEX(kod, SUBSTRING (k, i, 1)) * 9 - 8
  1795. wk = SUBSTRING (att, j, 9) + "0" .
  1796. DO l = 1 TO 10:
  1797. ASSIGN brd = IF SUBSTRING(wk,l,1) = "0" THEN 2 ELSE 4
  1798. opBarCode = opBarCode
  1799. + (IF clr THEN "~E*c" + SUBSTRING (ipCodeArt, brd, 2) + drw
  1800. ELSE "~E*p+" + STRING(INTEGER(SUBSTRING(ipCodeArt, brd, 2))
  1801. + jst) + cDir)
  1802. jst = integer (SUBSTRING (ipCodeArt, brd, 2))
  1803. clr = NOT clr.
  1804. END. /* of looping 1 to 10 */
  1805. END. /* of going through string 'k' */
  1806. ASSIGN opBarCode = opBarCode + "~E&f1S"
  1807. wk = "".
  1808. */
  1809. END PROCEDURE.
  1810. /* _UIB-CODE-BLOCK-END */
  1811. &ANALYZE-RESUME
  1812. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI C-Win _DEFAULT-DISABLE
  1813. PROCEDURE disable_UI :
  1814. /*------------------------------------------------------------------------------
  1815. Purpose: DISABLE the User Interface
  1816. Parameters: <none>
  1817. Notes: Here we clean-up the user-interface by deleting
  1818. dynamic widgets we have created and/or hide
  1819. frames. This procedure is usually called when
  1820. we are ready to "clean-up" after running.
  1821. ------------------------------------------------------------------------------*/
  1822. /* Delete the WINDOW we created */
  1823. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win)
  1824. THEN DELETE WIDGET C-Win.
  1825. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  1826. END PROCEDURE.
  1827. /* _UIB-CODE-BLOCK-END */
  1828. &ANALYZE-RESUME
  1829. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE C-Win
  1830. PROCEDURE DRUCKAUSGABE :
  1831. /*------------------------------------------------------------------------------
  1832. Purpose:
  1833. Parameters: <none>
  1834. Notes:
  1835. ------------------------------------------------------------------------------*/
  1836. DEF VAR AnzKopien AS INT NO-UNDO.
  1837. DEF VAR sRecid AS RECID NO-UNDO.
  1838. DEF VAR iSize AS INT NO-UNDO.
  1839. IF BAufko.AlsOfferte THEN RETURN.
  1840. AnzKopien = F_Kopie.
  1841. IF AnzKopien = 0 THEN AnzKopien = 1.
  1842. DO VCopy = 1 TO AnzKopien:
  1843. sRecid = RECID(BSchrift).
  1844. VSchacht = BLiDruck.Schacht.
  1845. IF VSchacht > 0 THEN DO:
  1846. IF VCopy < AnzKopien THEN VSchacht = 3.
  1847. IF VCopy = AnzKopien THEN VSchacht = 2.
  1848. END.
  1849. IF VDokArt = 'SammFak' THEN DO:
  1850. IF VCopy = AnzKopien THEN DO:
  1851. FIND FIRST Schrift NO-LOCK
  1852. WHERE Schrift.Schname = '\\SBSHUBER\GEMIS SCHACHT-2'.
  1853. sRecid = RECID(Schrift).
  1854. SESSION:PRINTER-NAME = Schrift.Schname.
  1855. VSchacht = 0.
  1856. END.
  1857. ELSE DO:
  1858. FIND FIRST Schrift NO-LOCK
  1859. WHERE Schrift.Schname = '\\SBSHUBER\GEMIS SCHACHT-5'.
  1860. sRecid = RECID(Schrift).
  1861. SESSION:PRINTER-NAME = Schrift.Schname.
  1862. VSchacht = 3.
  1863. END.
  1864. END.
  1865. iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, VTemp ,
  1866. sRecid ,
  1867. VSchacht ,
  1868. 240 , /* Blockgrösse */
  1869. 'ibm850' ,
  1870. 1 ). /* Anzahl Kopien */
  1871. IF iSize = 0 THEN DO:
  1872. MESSAGE 'Druckvorgang gescheitert !!! '
  1873. VIEW-AS ALERT-BOX ERROR.
  1874. END.
  1875. ETIME(TRUE).
  1876. DO WHILE ETIME(FALSE) < 250:
  1877. END.
  1878. END.
  1879. END PROCEDURE.
  1880. /* _UIB-CODE-BLOCK-END */
  1881. &ANALYZE-RESUME
  1882. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE_VESR C-Win
  1883. PROCEDURE DRUCKAUSGABE_VESR :
  1884. /*------------------------------------------------------------------------------
  1885. Purpose:
  1886. Parameters: <none>
  1887. Notes:
  1888. ------------------------------------------------------------------------------*/
  1889. IF BAufko.AlsOfferte THEN RETURN.
  1890. IF BAufko.Auf_Tot <= 0 THEN RETURN.
  1891. IF NOT AVAILABLE XSchrift THEN RETURN.
  1892. IF NOT AVAILABLE XDrucker THEN RETURN.
  1893. IF XDrucker.Emul = 'TERMINAL' THEN RETURN.
  1894. DEF VAR sRecid AS RECID NO-UNDO.
  1895. DEF VAR iSize AS INT NO-UNDO.
  1896. DEF VAR ja AS LOG NO-UNDO.
  1897. sRecid = RECID(XSchrift).
  1898. IF VBesr = 04 OR
  1899. VBesr = 02 THEN DO:
  1900. ja = DYNAMIC-FUNCTION('loadOCRBFont':U, XSchrift.Schname).
  1901. IF NOT ja THEN DO:
  1902. MESSAGE 'OCRB-Font konnte nicht geladen werden !!! '
  1903. VIEW-AS ALERT-BOX ERROR.
  1904. END.
  1905. VSchacht = 4.
  1906. END.
  1907. ELSE DO:
  1908. VSchacht = 0.
  1909. END.
  1910. iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, VTempVESR ,
  1911. sRecid ,
  1912. VSchacht ,
  1913. 300 , /* Blockgrösse */
  1914. 'ibm850' ,
  1915. 1 ).
  1916. IF iSize = 0 THEN DO:
  1917. MESSAGE 'Druckvorgang gescheitert !!! '
  1918. VIEW-AS ALERT-BOX ERROR.
  1919. END.
  1920. ETIME(TRUE).
  1921. DO WHILE ETIME(FALSE) < 250:
  1922. END.
  1923. END PROCEDURE.
  1924. /* _UIB-CODE-BLOCK-END */
  1925. &ANALYZE-RESUME
  1926. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN C-Win
  1927. PROCEDURE DRUCKEN :
  1928. /*------------------------------------------------------------------------------
  1929. Purpose:
  1930. Parameters: <none>
  1931. Notes:
  1932. ------------------------------------------------------------------------------*/
  1933. DEF VAR iSortZeile AS INT NO-UNDO.
  1934. DEF VAR iAbPos AS INT NO-UNDO.
  1935. DEF VAR iPlusMinus AS INT NO-UNDO.
  1936. DEF VAR hbAufko AS HANDLE NO-UNDO.
  1937. DEF VAR htTabTexte AS HANDLE NO-UNDO.
  1938. DEF VAR cDruckers AS CHAR NO-UNDO.
  1939. DEF VAR xDrucker AS CHAR NO-UNDO.
  1940. DEF VAR cString AS CHAR NO-UNDO.
  1941. DO WITH FRAME {&FRAME-NAME}:
  1942. DEF VAR XFakArt AS INT NO-UNDO.
  1943. DEF VAR XAufSta AS INT NO-UNDO.
  1944. DEF VAR ARecid AS RECID NO-UNDO.
  1945. DEF VAR BRecid AS RECID NO-UNDO.
  1946. DEF VAR CRecid AS RECID NO-UNDO.
  1947. DEF VAR cLagOrt AS CHAR NO-UNDO.
  1948. DEF VAR xLagOrt AS CHAR NO-UNDO.
  1949. DEF VAR cGeschoss AS CHAR NO-UNDO.
  1950. DEF VAR kGeschoss AS CHAR INIT 'zz' NO-UNDO.
  1951. FIND Tabel NO-LOCK WHERE RECID(Tabel) = TRecid.
  1952. ARecid = Tabel.Int_1.
  1953. BRecid = Tabel.Int_2.
  1954. CRecid = Tabel.Int_3.
  1955. VBesr = Tabel.Dec_1.
  1956. VSchacht = Tabel.Dec_3.
  1957. VDokArt = Tabel.Bez2.
  1958. F_DokArt = Tabel.Bez2.
  1959. cLagOrt = ''.
  1960. IF Tabel.BezL <> '' THEN DO:
  1961. DO ix = 1 TO NUM-ENTRIES(Tabel.BezL, ';'):
  1962. CASE ix:
  1963. WHEN 1 THEN VSchachtOrig = INTEGER(ENTRY(ix, Tabel.BezL, ';')).
  1964. WHEN 2 THEN VSchachtKopi = INTEGER(ENTRY(ix, Tabel.BezL, ';')).
  1965. WHEN 3 THEN VSchachtBesr = INTEGER(ENTRY(ix, Tabel.BezL, ';')).
  1966. WHEN 4 THEN VBesr = INTEGER(ENTRY(ix, Tabel.BezL, ';')).
  1967. END CASE.
  1968. END.
  1969. END.
  1970. FIND BSteuer WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR.
  1971. FIND BListen WHERE RECID(BListen) = ARecid NO-LOCK NO-ERROR.
  1972. FIND BLiDruck WHERE RECID(BLiDruck) = BRecid NO-LOCK NO-ERROR.
  1973. FIND BAufko WHERE RECID(BAufko) = CRecid NO-LOCK NO-ERROR.
  1974. IF NOT AVAILABLE BAufko THEN RETURN ''.
  1975. REPEAT TRANSACTION:
  1976. RUN AUFTRAGSTOTAL ( BAufko.Aufnr, OUTPUT cString ) NO-ERROR.
  1977. cString = RETURN-VALUE.
  1978. IF RETURN-VALUE <> '' THEN DO:
  1979. IF NOT fBatch THEN DO:
  1980. MESSAGE 'Fehler beim Rechnen des Auftrags-Total' SKIP
  1981. 'Fehler-Meldung: ' cString
  1982. VIEW-AS ALERT-BOX.
  1983. END.
  1984. RETURN cString.
  1985. END.
  1986. LEAVE.
  1987. END.
  1988. hbAufko = BUFFER BAufko:HANDLE.
  1989. htTabTexte = TEMP-TABLE tTabTexte:DEFAULT-BUFFER-HANDLE.
  1990. RUN CREATE_TABTEXTE ( INPUT hbAufko, INPUT-OUTPUT htTabTexte ).
  1991. IF BAufko.AlsOfferte THEN DO:
  1992. ASSIGN F_DokArt = 'EXCEL_OFFERTE'
  1993. fBatch = FALSE.
  1994. END.
  1995. F_Aufnr = BAufko.Aufnr.
  1996. F_Faknr = BAufko.Faknr.
  1997. F_Datum = BAufko.Fak_Datum.
  1998. IF F_Datum = ? THEN F_Datum = TODAY.
  1999. IF BAufko.Auf_Sta = 0 THEN VDokArt = 'RUESTSCHEIN'.
  2000. IF BAufko.AlsOfferte THEN VDokArt = 'EXCEL_OFFERTE'.
  2001. FDatum = F_Datum.
  2002. VSort = BListen.Sort.
  2003. IF NOT bAufko.AlsOfferte THEN DO:
  2004. F_Drucker = BLiDruck.ListDru.
  2005. F_Schrift = BLiDruck.ListBild.
  2006. F_TZZ = BLiDruck.Listtzz.
  2007. F_KZZ = BLiDruck.Listkzz.
  2008. F_FZZ = BLiDruck.Listfzz.
  2009. F_KOPIE = BLiDruck.ListCopy.
  2010. DISPLAY {&List-1}.
  2011. END.
  2012. /* ------------------------------------------------------ */
  2013. /* Test auf Windows-Printers */
  2014. /* ------------------------------------------------------ */
  2015. EMPTY TEMP-TABLE tDrucker.
  2016. cDruckers = SESSION:GET-PRINTERS().
  2017. DO ix = 1 TO NUM-ENTRIES(cDruckers, ','):
  2018. CREATE tDrucker.
  2019. ASSIGN tDrucker.cDrucker = ENTRY(ix, cDruckers, ',').
  2020. END.
  2021. FIND FIRST tDrucker
  2022. WHERE tDrucker.cDrucker = F_Drucker NO-ERROR.
  2023. IF NOT AVAILABLE tDrucker AND
  2024. NOT bAufko.AlsOfferte THEN DO:
  2025. IF fBatch THEN DO:
  2026. REPEAT TRANSACTION:
  2027. FIND Tabel WHERE RECID(Tabel) = tRecid.
  2028. ASSIGN Tabel.Bez1 = ''.
  2029. RELEASE Tabel.
  2030. LEAVE.
  2031. END.
  2032. RETURN 'KeinDrucker'.
  2033. END.
  2034. ja = TRUE.
  2035. MESSAGE 'Der gewünschte Drucker "' F_Drucker '" ist nicht verfügbar ' SKIP
  2036. 'Bitte wählen Sie einen Drucker aus <Ja> oder brechen Sie den Druck ab <Nein>'
  2037. VIEW-AS ALERT-BOX INFORMATION BUTTONS YES-NO
  2038. UPDATE ja.
  2039. IF NOT Ja THEN RETURN 'KeinDrucker'.
  2040. SYSTEM-DIALOG PRINTER-SETUP
  2041. NUM-COPIES F_Kopie
  2042. PORTRAIT
  2043. UPDATE ja.
  2044. IF NOT Ja THEN RETURN 'KeinDrucker'.
  2045. xDrucker = SESSION:PRINTER-NAME.
  2046. FIND FIRST Schrift NO-LOCK
  2047. WHERE Schrift.Schname = xDrucker
  2048. AND Schrift.SchBild = 'VIPER' NO-ERROR.
  2049. IF NOT AVAILABLE Schrift THEN DO:
  2050. REPEAT TRANSACTION:
  2051. CREATE Schrift.
  2052. ASSIGN Schrift.Schname = xDrucker
  2053. Schrift.Schbild = 'VIPER'
  2054. Schrift.Schdru = 'VIPER'.
  2055. RELEASE Schrift.
  2056. LEAVE.
  2057. END.
  2058. END.
  2059. FIND FIRST Drucker NO-LOCK
  2060. WHERE Drucker.Drucker = 'VIPER' NO-ERROR.
  2061. IF NOT AVAILABLE Drucker THEN DO:
  2062. REPEAT TRANSACTION:
  2063. CREATE Drucker.
  2064. ASSIGN Drucker.Drucker = 'VIPER'
  2065. Drucker.Emul = 'POSTSCRIPT'.
  2066. RELEASE Drucker.
  2067. LEAVE.
  2068. END.
  2069. END.
  2070. FIND FIRST HilfsTab NO-LOCK USE-INDEX HilfsTab-k1
  2071. WHERE HilfsTab.Firma = GVFirma
  2072. AND HilfsTab.Sort_1 = cBenutzer
  2073. AND HilfsTab.Sort_2 = F_DokArt NO-ERROR.
  2074. IF NOT AVAILABLE HilfsTab THEN DO:
  2075. REPEAT TRANSACTION:
  2076. CREATE HilfsTab.
  2077. ASSIGN HilfsTab.Firma = GVFirma
  2078. HilfsTab.Sort_1 = cBenutzer
  2079. HilfsTab.Sort_2 = F_DokArt
  2080. HilfsTab.Zeichen_1 = xDrucker
  2081. HilfsTab.Zeichen_2 = 'VIPER'
  2082. HilfsTab.Zahl[01] = 0
  2083. HilfsTab.Zahl[02] = 0
  2084. HilfsTab.Zahl[03] = 0
  2085. HilfsTab.Zahl[04] = 1
  2086. HilfsTab.Zahl[05] = 0
  2087. HilfsTab.Zahl[06] = 0
  2088. HilfsTab.Zahl[07] = 0
  2089. HilfsTab.Zahl[08] = 0.
  2090. LEAVE.
  2091. END.
  2092. END.
  2093. ELSE DO:
  2094. IF HilfsTab.Zeichen_1 <> xDrucker THEN DO:
  2095. REPEAT TRANSACTION:
  2096. FIND CURRENT HilfsTab.
  2097. ASSIGN HilfsTab.Zeichen_1 = xDrucker.
  2098. RELEASE HilfsTab.
  2099. LEAVE.
  2100. END.
  2101. END.
  2102. END.
  2103. ASSIGN F_Drucker = xDrucker
  2104. F_Schrift = 'VIPER'
  2105. F_TZZ = 0
  2106. F_KZZ = 0
  2107. F_FZZ = 0
  2108. F_KOPIE = 1.
  2109. DISPLAY {&List-1}.
  2110. END.
  2111. ELSE IF NOT bAufko.AlsOfferte THEN SESSION:PRINTER-NAME = F_Drucker.
  2112. F_Drucker = SESSION:PRINTER-NAME.
  2113. DISPLAY F_Drucker.
  2114. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'FAKART' NO-ERROR.
  2115. /*
  2116. IF AVAILABLE tTabTexte THEN F_Dokart = tTabTexte.cFeld1.
  2117. */
  2118. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'AUFSTATUS' NO-ERROR.
  2119. IF AVAILABLE tTabTexte THEN F_Papier = tTabTexte.cFeld1.
  2120. FIND Adresse USE-INDEX Adresse-k1
  2121. WHERE Adresse.Firma = AdFirma
  2122. AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  2123. E_Adresse = ''.
  2124. IF BAufko.Adresse[05] <> '' THEN DO:
  2125. E_Adresse = CHR(10)
  2126. + CHR(10)
  2127. + BAufko.Adresse[01] + CHR(10)
  2128. + BAufko.Adresse[02] + CHR(10)
  2129. + BAufko.Adresse[03] + CHR(10)
  2130. + BAufko.Adresse[04] + CHR(10)
  2131. + BAufko.Adresse[05].
  2132. END.
  2133. ELSE DO:
  2134. E_Adresse = Adresse.Anschrift[03] + CHR(10) +
  2135. Adresse.Anschrift[04] + CHR(10) +
  2136. Adresse.Anschrift[05] + CHR(10) +
  2137. Adresse.Anschrift[06] + CHR(10) +
  2138. Adresse.Anschrift[07] + CHR(10) +
  2139. Adresse.Anschrift[08] + CHR(10) +
  2140. Adresse.Anschrift[09] + CHR(10) +
  2141. Adresse.Anschrift[10].
  2142. END.
  2143. DISPLAY {&List-1}.
  2144. F_DokArt:BGCOLOR = 14.
  2145. F_Papier:BGCOLOR = 14.
  2146. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'FAKART' NO-ERROR.
  2147. IF NOT fBatch AND
  2148. NOT BAufko.AlsOfferte THEN DO:
  2149. IF tTabTexte.iFeld3 <> 4 OR
  2150. VDokArt BEGINS 'Ruest' THEN DO:
  2151. APPLY 'ENTRY' TO Btn_Drucken.
  2152. WAIT-FOR CHOOSE OF Btn_Drucken OR
  2153. CHOOSE OF Btn_Abbrechen.
  2154. END.
  2155. END.
  2156. IF NOT DruckFlag THEN DO:
  2157. REPEAT TRANSACTION:
  2158. FIND BListen WHERE RECID(BListen) = ARecid.
  2159. BListen.Listfl = ''.
  2160. RELEASE BListen.
  2161. LEAVE.
  2162. END.
  2163. RETURN ''.
  2164. END.
  2165. ASSIGN {&List-1}.
  2166. RUN LIBILD.
  2167. EMPTY TEMP-TABLE SAMMFAK.
  2168. IF BAufko.Samm_Nr <> 0 AND
  2169. NOT VDokArt BEGINS 'Ruest' THEN DO:
  2170. RUN SAMMELSUCHEN.
  2171. END.
  2172. ELSE DO:
  2173. CREATE SAMMFAK.
  2174. ASSIGN SAMMFAK.Knr = BAufko.Fak_Knr
  2175. SAMMFAK.Aufnr = BAufko.Aufnr
  2176. SAMMFAK.Samm_Nr = BAufko.Aufnr
  2177. SAMMFAK.RID = RECID(BAufko).
  2178. END.
  2179. VTemp = ''.
  2180. VTempVESR = ''.
  2181. IF NOT bAufko.AlsOfferte THEN RUN WORKFILE.
  2182. IF DOpen = TRUE THEN OUTPUT STREAM Out_Stream TO VALUE(VTemp).
  2183. IF VDokArt BEGINS 'Samm' THEN iLauf = F_Kopie.
  2184. ELSE iLauf = 1.
  2185. DO iZaehler = 1 TO iLauf:
  2186. FOR EACH SAMMFAK BREAK BY SAMMFAK.Knr
  2187. BY SAMMFAK.Samm_Nr
  2188. BY SAMMFAK.Aufnr :
  2189. FIND BAufko WHERE RECID(BAufko) = SAMMFAK.RID NO-LOCK NO-ERROR.
  2190. F_Aufnr = BAufko.Aufnr.
  2191. DISPLAY F_Aufnr WITH FRAME {&FRAME-NAME}.
  2192. VWg_Grp = 0.
  2193. VProd_Grp = 0.
  2194. VArt_Grp = 0.
  2195. VFak_Betr = 0.
  2196. VPreis_Grp = BAufko.Preis_Grp.
  2197. FErste = FALSE.
  2198. EMPTY TEMP-TABLE tAufze.
  2199. EMPTY TEMP-TABLE tRueckst.
  2200. EMPTY TEMP-TABLE TGebKto.
  2201. EMPTY TEMP-TABLE TRabSumm.
  2202. EMPTY TEMP-TABLE TSpeRab.
  2203. EMPTY TEMP-TABLE TGebuehr.
  2204. EMPTY TEMP-TABLE tTexte .
  2205. IF FIRST-OF ( SAMMFAK.Samm_Nr ) THEN DO:
  2206. EMPTY TEMP-TABLE TUmsGrp.
  2207. EMPTY TEMP-TABLE TFiliale.
  2208. EMPTY TEMP-TABLE TMonat.
  2209. EMPTY TEMP-TABLE TMonGeb.
  2210. ASSIGN GTWpfl = 0
  2211. GTWust = 0
  2212. DTWpfl = 0
  2213. GTFak_Betr = 0
  2214. GTSk_Ber = 0
  2215. SFaknr = 0
  2216. FLetzt = FALSE
  2217. FErste = TRUE
  2218. TiDruck = TRUE
  2219. VSeite = 0
  2220. VDetail = 0
  2221. iSortZeile = 9999
  2222. cLagOrt = ''
  2223. cGeschoss = ''.
  2224. END.
  2225. RUN FUELLEN_tAufze ( BAufko.Aufnr ).
  2226. xLagOrt = ''.
  2227. FOR EACH tAufze USE-INDEX tAufze-k1
  2228. WHERE tAufze.Artnr > 0:
  2229. FIND Artst NO-LOCK
  2230. WHERE Artst.Firma = GVFirma
  2231. AND Artst.Artnr = tAufze.Artnr
  2232. AND Artst.Inhalt = tAufze.Inhalt
  2233. AND Artst.Jahr = tAufze.Jahr .
  2234. FIND bAufze NO-LOCK WHERE RECID(bAufze) = tAufze.Zeile.
  2235. ASSIGN VWg_Grp = Artst.Wg_Grp
  2236. VProd_Grp = Artst.Prod_Grp
  2237. VArt_Grp = Artst.Art_Grp
  2238. AArtnr = Artst.Artnr
  2239. AInhalt = Artst.Inhalt.
  2240. /* Spezial-Auftrags-Rabatt -------------------------------------------- */
  2241. IF bAufze.Auf_Sp_Grp > 0 THEN DO:
  2242. FIND FIRST TSpeRab WHERE TSpeRab.Rab_Grp = bAufze.Auf_Sp_Grp NO-ERROR.
  2243. IF NOT AVAILABLE TSpeRab THEN DO:
  2244. CREATE TSpeRab.
  2245. ASSIGN TSpeRab.Rab_Grp = bAufze.Auf_Sp_Grp.
  2246. END.
  2247. TSpeRab.Auf_Betr = TSpeRab.Auf_Betr + bAufze.Auf_Sp_Rab.
  2248. END.
  2249. /* Summengruppen-Totale ------------------------------------------------ */
  2250. DO WHILE bAufze.Rab_Su_Grp > 0:
  2251. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = bAufze.Rab_Su_Grp NO-ERROR.
  2252. IF NOT AVAILABLE TRabSumm THEN DO:
  2253. FIND FIRST RabSumm USE-INDEX RabSumm-k1
  2254. WHERE RabSumm.Firma = GVFirma
  2255. AND RabSumm.Rab_Summ = bAufze.Rab_Su_Grp
  2256. NO-LOCK NO-ERROR.
  2257. IF NOT AVAILABLE RabSumm THEN LEAVE.
  2258. CREATE TRabSumm.
  2259. ASSIGN TRabSumm.Rab_Summ = bAufze.Rab_Su_Grp
  2260. TRabSumm.Bez = RabSumm.Bez
  2261. TRabSumm.Auf_Rab = 0
  2262. TRabSumm.Abh_Rab = 0.
  2263. END.
  2264. LEAVE.
  2265. END.
  2266. END.
  2267. IF FIRST-OF( SAMMFAK.Samm_Nr ) THEN VSeite = 0.
  2268. IF LAST-OF ( SAMMFAK.Samm_Nr ) THEN FLetzt = TRUE.
  2269. RUN VALUE(VDokArt).
  2270. IF RETURN-VALUE = 'ERROR' THEN RETURN ''.
  2271. IF NOT FLetzt THEN NEXT.
  2272. END. /* FOR EACH SAMMFAK */
  2273. END. /* ENDE iZaehler/iLauf */
  2274. IF DOpen THEN OUTPUT STREAM Out_Stream CLOSE.
  2275. DOpen = FALSE.
  2276. IF VDokArt <> 'Lieferschein' AND
  2277. VDokArt <> 'Lieferpreis' AND
  2278. VDokArt <> 'Faktura' AND
  2279. VDokArt <> 'LieferFak' AND
  2280. VDokArt <> 'FestFaktura' AND
  2281. VDokArt <> 'SammFak' THEN RUN DRUCKAUSGABE.
  2282. IF VTemp <> '' THEN OS-DELETE VALUE(VTemp).
  2283. IF VTempVESR <> '' THEN DO:
  2284. RUN DRUCKAUSGABE_VESR.
  2285. OS-DELETE VALUE(VTempVESR) NO-ERROR.
  2286. END.
  2287. REPEAT TRANSACTION:
  2288. FIND BListen WHERE RECID(BListen) = ARecid.
  2289. BListen.Listfl = ''.
  2290. RELEASE BListen.
  2291. LEAVE.
  2292. END.
  2293. END. /* DO WITH FRAME */
  2294. RETURN ''.
  2295. END PROCEDURE.
  2296. /* _UIB-CODE-BLOCK-END */
  2297. &ANALYZE-RESUME
  2298. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI C-Win _DEFAULT-ENABLE
  2299. PROCEDURE enable_UI :
  2300. /*------------------------------------------------------------------------------
  2301. Purpose: ENABLE the User Interface
  2302. Parameters: <none>
  2303. Notes: Here we display/view/enable the widgets in the
  2304. user-interface. In addition, OPEN all queries
  2305. associated with each FRAME and BROWSE.
  2306. These statements here are based on the "Other
  2307. Settings" section of the widget Property Sheets.
  2308. ------------------------------------------------------------------------------*/
  2309. DISPLAY F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_Aufnr F_KOPIE
  2310. F_Faknr F_Datum F_Dokart F_Seite F_Papier
  2311. WITH FRAME DEFAULT-FRAME IN WINDOW C-Win.
  2312. ENABLE RECT-1 F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_Aufnr F_KOPIE
  2313. F_Faknr F_Datum F_Dokart F_Seite F_Papier Btn_Drucken Btn_Abbrechen
  2314. WITH FRAME DEFAULT-FRAME IN WINDOW C-Win.
  2315. {&OPEN-BROWSERS-IN-QUERY-DEFAULT-FRAME}
  2316. VIEW C-Win.
  2317. END PROCEDURE.
  2318. /* _UIB-CODE-BLOCK-END */
  2319. &ANALYZE-RESUME
  2320. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_ARTIKELZEILE C-Win
  2321. PROCEDURE EXCEL_ARTIKELZEILE :
  2322. /*------------------------------------------------------------------------------
  2323. Purpose:
  2324. Parameters: <none>
  2325. Notes:
  2326. ------------------------------------------------------------------------------*/
  2327. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  2328. DEF INPUT-OUTPUT PARAMETER ioExZeile AS INT NO-UNDO.
  2329. DEF VAR cString AS CHAR NO-UNDO.
  2330. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
  2331. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  2332. DO WHILE Aufze.Artnr = 0:
  2333. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2334. INPUT ioExZeile, INPUT Aufze.Bez1 ).
  2335. IF Aufze.Bez2 = '' THEN RETURN.
  2336. ioExZeile = ioExZeile + 1.
  2337. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2338. INPUT ioExZeile, INPUT Aufze.Bez2 ).
  2339. RETURN.
  2340. END.
  2341. FIND Artst OF Aufze NO-LOCK.
  2342. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  2343. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
  2344. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  2345. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  2346. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  2347. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  2348. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'A',
  2349. INPUT ioExZeile, INPUT KGebinde.KBez ).
  2350. IF Aufze.VGeb_Me <> 0 THEN DO:
  2351. cString = STRING(Aufze.VGeb_Me,'->>>')
  2352. + 'x '
  2353. + STRING(VGebinde.KBez,'x(10)').
  2354. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'B',
  2355. INPUT ioExZeile, INPUT cString ).
  2356. END.
  2357. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  2358. INPUT ioExZeile, INPUT STRING(Aufze.MGeli,'->>>>>9') ).
  2359. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2360. INPUT ioExZeile, INPUT Aufze.Bez1 ).
  2361. IF Aufze.Jahr > 9 THEN
  2362. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E',
  2363. INPUT ioExZeile, INPUT STRING(Aufze.Jahr,'9999') ).
  2364. IF Aufze.Alk_Gehalt <> 0 THEN
  2365. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'F',
  2366. INPUT ioExZeile, INPUT STRING(Aufze.Alk_Gehalt,'zz9.9%') ).
  2367. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'G',
  2368. INPUT ioExZeile, INPUT STRING(Aufze.Artnr,'999999') ).
  2369. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H',
  2370. INPUT ioExZeile, INPUT STRING(Aufze.Preis,'>>>>9.99') ).
  2371. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  2372. INPUT ioExZeile, INPUT STRING(Aufze.Bru_Betr,'->>>>>9.99') ).
  2373. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J',
  2374. INPUT ioExZeile, INPUT STRING(Aufze.WuCd,'z9') ).
  2375. IF Aufze.Bez2 <> '' THEN DO:
  2376. ioExZeile = ioExZeile + 1.
  2377. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2378. INPUT ioExZeile, INPUT Aufze.Bez2 ).
  2379. END.
  2380. IF Aufze.Aktion THEN DO:
  2381. ioExZeile = ioExZeile + 1.
  2382. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2383. INPUT ioExZeile, INPUT Aufze.Aktion_Text ).
  2384. END.
  2385. DO WHILE FPreis:
  2386. IF Aufze.Rab_Betr = 0 THEN LEAVE.
  2387. RabWert = ABSOLUTE(Aufze.Rab_Wert).
  2388. IF Aufze.Rab_Art = 3 THEN RabText = VEpzText.
  2389. ELSE DO:
  2390. IF Aufze.Rab_Betr < 0 THEN RabText = VZusText.
  2391. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText.
  2392. END.
  2393. ioExZeile = ioExZeile + 1.
  2394. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2395. INPUT ioExZeile, INPUT TRIM(RabText) ).
  2396. IF Aufze.Rab_Art = 1
  2397. THEN RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H',
  2398. INPUT ioExZeile, INPUT TRIM(STRING(RabWert,"->9.9 %")) ).
  2399. IF Aufze.Rab_Art = 2 OR
  2400. Aufze.Rab_Art = 3
  2401. THEN RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H',
  2402. INPUT ioExZeile, INPUT TRIM(STRING(RabWert,"->9.99 CHF")) ).
  2403. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  2404. INPUT ioExZeile, INPUT TRIM(STRING(- Aufze.Rab_Betr ,"->>>9.99")) ).
  2405. LEAVE.
  2406. END.
  2407. DO WHILE FPreis:
  2408. IF Aufze.Zus_Betr = 0 THEN LEAVE.
  2409. RabWert = ABSOLUTE(Aufze.Zus_Wert).
  2410. IF Aufze.Zus_Art = 3 THEN RabText = VEpzText.
  2411. ELSE DO:
  2412. IF Aufze.Zus_Betr < 0 THEN RabText = VRabText.
  2413. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText.
  2414. END.
  2415. ioExZeile = ioExZeile + 1.
  2416. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2417. INPUT ioExZeile, INPUT TRIM(RabText) ).
  2418. IF Aufze.Zus_Art = 1
  2419. THEN RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H',
  2420. INPUT ioExZeile, INPUT TRIM(STRING(RabWert,"->9.9 %")) ).
  2421. IF Aufze.Zus_Art = 2 OR
  2422. Aufze.Zus_Art = 3
  2423. THEN RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H',
  2424. INPUT ioExZeile, INPUT TRIM(STRING(RabWert,"->9.99 CHF")) ).
  2425. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  2426. INPUT ioExZeile, INPUT TRIM(STRING(- Aufze.Zus_Betr ,"->>>9.99")) ).
  2427. LEAVE.
  2428. END.
  2429. END PROCEDURE.
  2430. /* _UIB-CODE-BLOCK-END */
  2431. &ANALYZE-RESUME
  2432. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_GEBINDE_ABRECHNUNG C-Win
  2433. PROCEDURE EXCEL_GEBINDE_ABRECHNUNG :
  2434. /*------------------------------------------------------------------------------
  2435. Purpose:
  2436. Parameters: <none>
  2437. Notes:
  2438. ------------------------------------------------------------------------------*/
  2439. DEF VAR cDaten AS CHAR NO-UNDO.
  2440. DEF VAR lTotal AS LOG NO-UNDO.
  2441. DEF VAR dBetrag AS DEC NO-UNDO.
  2442. lTotal = FALSE.
  2443. i5 = 0.
  2444. VZTot = 0.
  2445. FOR EACH AufGKon USE-INDEX AufGKon-k1
  2446. WHERE AufGKon.Firma = BAufko.Firma
  2447. AND AufGKon.Aufnr = BAufko.Aufnr
  2448. AND AufGKon.Depot <> 0 NO-LOCK:
  2449. IF AufGKon.Eingang = 0 AND
  2450. AufGKon.Ausgang = 0 THEN NEXT.
  2451. IF i5 = 0 THEN ExZeile = ExZeile + 2.
  2452. ELSE ExZeile = ExZeile + 1.
  2453. FIND GebKonto USE-INDEX GebKonto-k1
  2454. WHERE GebKonto.Firma = GVFirma
  2455. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK.
  2456. i1 = AufGKon.Ausgang.
  2457. IF AufGKon.Depot = 0 AND
  2458. AufGKon.Gebuehr = 0 THEN dBetrag = GebKonto.Depot + GebKonto.Gebuehr.
  2459. ELSE dBetrag = AufGKon.Depot + AufGKon.Gebuehr.
  2460. Rundbetr = i1 * dBetrag.
  2461. VWC = AufGKon.MWSt_Cd.
  2462. VZTot = VZTot + Rundbetr.
  2463. cDaten = GebKonto.Bez.
  2464. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2465. INPUT ExZeile, INPUT cDaten ).
  2466. cDaten = TRIM(STRING(AufGKon.Ausgang,"->>>>9")).
  2467. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  2468. INPUT ExZeile, INPUT cDaten ).
  2469. cDaten = TRIM(STRING(dBetrag,"->>>>9.999")).
  2470. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H',
  2471. INPUT ExZeile, INPUT cDaten ).
  2472. cDaten = TRIM(STRING(Rundbetr,"->>>>9.999")).
  2473. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  2474. INPUT ExZeile, INPUT cDaten ).
  2475. cDaten = TRIM(STRING(VWC,"z9")).
  2476. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J',
  2477. INPUT ExZeile, INPUT cDaten ).
  2478. i5 = i5 + 1.
  2479. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  2480. WHERE MWSTAns.MWST_Cd = VWC
  2481. AND MWSTAns.Datum <= FDatum NO-LOCK NO-ERROR.
  2482. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 9990
  2483. AND TUmsGrp.Mwst = VWC NO-ERROR.
  2484. IF NOT AVAILABLE TUmsGrp THEN DO:
  2485. CREATE TUmsGrp.
  2486. ASSIGN TUmsGrp.Ums_Grp = 9990
  2487. TUmsGrp.Mwst = VWC
  2488. TUmsGrp.Bez = 'Gebinde-Kosten'.
  2489. END.
  2490. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + Rundbetr.
  2491. END.
  2492. IF i5 > 0 THEN lTotal = TRUE.
  2493. IF lTotal THEN DO:
  2494. ExZeile = ExZeile + 2.
  2495. cDaten = TRIM(SUBSTRING(FormText[11],21,20)).
  2496. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2497. INPUT ExZeile, INPUT cDaten ).
  2498. cdaten = TRIM(STRING(VZTot,"->>>>9.99")).
  2499. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  2500. INPUT ExZeile, INPUT cDaten ).
  2501. VFak_Betr = VFak_Betr + VZTot.
  2502. END.
  2503. IF NOT FSamm THEN DO:
  2504. ExZeile = ExZeile + 2.
  2505. cDaten = TRIM(SUBSTRING(FormText[15],21,20)).
  2506. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2507. INPUT ExZeile, INPUT cDaten ).
  2508. cDaten = TRIM(STRING(VFak_Betr,"->>>>9.99")).
  2509. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  2510. INPUT ExZeile, INPUT cDaten ).
  2511. END.
  2512. END PROCEDURE.
  2513. /* _UIB-CODE-BLOCK-END */
  2514. &ANALYZE-RESUME
  2515. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_MEHRWERTSTEUER C-Win
  2516. PROCEDURE EXCEL_MEHRWERTSTEUER :
  2517. /*------------------------------------------------------------------------------
  2518. Purpose:
  2519. Parameters: <none>
  2520. Notes:
  2521. ------------------------------------------------------------------------------*/
  2522. DEF VAR cDaten AS CHAR NO-UNDO.
  2523. VWpfl = 0.
  2524. VWust = 0.
  2525. Zuszz = 0.
  2526. DO ix = 1 TO 11:
  2527. IF BAufko.WPfl[ix] = 0 THEN NEXT.
  2528. VWpfl[ix] = BAufko.Wpfl[ix].
  2529. VWust[ix] = BAufko.Wust[ix].
  2530. END.
  2531. ExZeile = ExZeile + 1.
  2532. DO ix = 1 TO 11:
  2533. IF VWpfl[ix] = 0 THEN NEXT.
  2534. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  2535. WHERE MWSTAns.MWST_Cd = ix
  2536. AND MWSTAns.Datum <= BAUfko.Kond_Datum NO-LOCK.
  2537. ExZeile = ExZeile + 1.
  2538. cDaten = MWSTAns.Bez.
  2539. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2540. INPUT ExZeile, INPUT cDaten ).
  2541. cDaten = TRIM(STRING(VWpfl[ix],"->>,>>9.99")).
  2542. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H',
  2543. INPUT ExZeile, INPUT cDaten ).
  2544. cDaten = TRIM(STRING(VWust[ix],"->>,>>9.99")).
  2545. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  2546. INPUT ExZeile, INPUT cDaten ).
  2547. cDaten = TRIM(STRING(ix,"z9")).
  2548. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J',
  2549. INPUT ExZeile, INPUT cDaten ).
  2550. VFak_Betr = VFak_Betr + VWust[ix].
  2551. END.
  2552. Rundbetr = VFak_Betr.
  2553. Rundcode = 1.
  2554. RUN RUNDEN ( Rundcode, INPUT-OUTPUT Rundbetr ).
  2555. VFak_Betr = Rundbetr.
  2556. ExZeile = ExZeile + 2.
  2557. cDaten = TRIM(FormText[16]).
  2558. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2559. INPUT ExZeile, INPUT cDaten ).
  2560. cDaten = TRIM(STRING(VFak_Betr,"->>,>>9.99")).
  2561. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  2562. INPUT ExZeile, INPUT cDaten ).
  2563. END PROCEDURE.
  2564. /* _UIB-CODE-BLOCK-END */
  2565. &ANALYZE-RESUME
  2566. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_OFFERTE C-Win
  2567. PROCEDURE EXCEL_OFFERTE :
  2568. /*------------------------------------------------------------------------------
  2569. Purpose:
  2570. Parameters: <none>
  2571. Notes:
  2572. ------------------------------------------------------------------------------*/
  2573. DEF VAR io AS LOG NO-UNDO.
  2574. DEF VAR ODatei AS CHAR NO-UNDO.
  2575. DEF VAR cDaten AS CHAR NO-UNDO.
  2576. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  2577. IF NOT VALID-HANDLE(excelAppl) THEN RETURN NO-APPLY.
  2578. oDatei = "Offerte_Huber.xls" + CHR(01) + "Offerte_Huber.xls".
  2579. RUN CREATEDATEI ( INPUT oDatei ).
  2580. oDatei = SESSION:TEMP-DIR + "Offerte_Huber.xls".
  2581. RUN OPENEXCEL ( INPUT excelAppl, INPUT oDatei,
  2582. INPUT '', OUTPUT io ).
  2583. IF NOT io THEN DO:
  2584. RUN RELEASEEXCEL ( INPUT excelAppl ).
  2585. RETURN NO-APPLY.
  2586. END.
  2587. VFak_Betr = 0.
  2588. LiKopf = FALSE.
  2589. FPreis = TRUE.
  2590. FBetrag = FALSE.
  2591. FRabatt = FALSE.
  2592. FSamm = FALSE.
  2593. ExZeile = 5.
  2594. VKopfArt = 'EXCEL_KOPF'.
  2595. FIND Adresse USE-INDEX Adresse-k1
  2596. WHERE Adresse.Firma = AdFirma
  2597. AND Adresse.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  2598. FIND LDebst USE-INDEX Debst-k1
  2599. WHERE LDebst.Firma = GVFirma
  2600. AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  2601. FIND FDebst USE-INDEX Debst-k1
  2602. WHERE FDebst.Firma = GVFirma
  2603. AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  2604. FIND Wust USE-INDEX Wust-k1
  2605. WHERE Wust.CodeK = LDebst.MWST
  2606. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  2607. LVSprcd = Adresse.Sprcd.
  2608. DebInkl = FALSE.
  2609. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  2610. XTelnr = ''.
  2611. IF DebInkl THEN DO:
  2612. IF Adresse.Tel-2 <> '' THEN XTelnr = Adresse.Tel-2.
  2613. ELSE XTelnr = Adresse.Tel-1.
  2614. END.
  2615. ELSE DO:
  2616. IF Adresse.Tel-1 <> '' THEN XTelnr = Adresse.Tel-1.
  2617. ELSE XTelnr = Adresse.Tel-2.
  2618. END.
  2619. F_Seite = VSeite.
  2620. F_Faknr = BAufko.Aufnr.
  2621. DISPLAY F_Seite
  2622. F_Faknr WITH FRAME {&FRAME-NAME}.
  2623. VZeile = ''.
  2624. IF BAufko.Adresse[05] <> '' THEN DO:
  2625. DO ix = 1 TO 5:
  2626. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E',
  2627. INPUT ExZeile, INPUT BAufko.Adresse[ix] ).
  2628. ExZeile = ExZeile + 1.
  2629. END.
  2630. END.
  2631. ELSE DO:
  2632. DO ix = 7 TO 11:
  2633. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E',
  2634. INPUT ExZeile, INPUT Adresse.Anschrift[ix] ).
  2635. ExZeile = ExZeile + 1.
  2636. END.
  2637. END.
  2638. cDaten = STRING(TODAY,'99.99.9999').
  2639. ExZeile = ExZeile + 2.
  2640. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  2641. INPUT ExZeile, INPUT cDaten ).
  2642. ExZeile = ExZeile + 3.
  2643. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  2644. INPUT ExZeile, INPUT STRING(F_Faknr,'>999999') ).
  2645. ExZeile = ExZeile + 2.
  2646. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C',
  2647. INPUT ExZeile, INPUT BAufko.U_Ref ).
  2648. ExZeile = 21.
  2649. ZEILEN:
  2650. FOR EACH tAufze NO-LOCK
  2651. BY tAufze.Aufnr
  2652. BY tAufze.Sort1
  2653. BY tAufze.Sort2
  2654. BY tAufze.Sort3
  2655. BY tAufze.Artnr
  2656. BY tAufze.Inhalt
  2657. BY tAufze.Jahr
  2658. BY tAufze.Pos :
  2659. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  2660. RUN EXCEL_ARTIKELZEILE ( RECID(tAufze), INPUT-OUTPUT ExZeile ).
  2661. ExZeile = ExZeile + 1.
  2662. VFak_Betr = VFak_Betr + Aufze.Net_Betr.
  2663. END.
  2664. ExZeile = ExZeile + 1.
  2665. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2666. INPUT ExZeile, INPUT FormText[13] ).
  2667. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  2668. INPUT ExZeile, TRIM(STRING(VFak_Betr,"->>>>9.99")) ).
  2669. RUN EXCEL_SUMMENRABATTE.
  2670. RUN GEBINDE_SALDO.
  2671. RUN EXCEL_GEBINDE_ABRECHNUNG.
  2672. RUN EXCEL_MEHRWERTSTEUER.
  2673. ExZeile = ExZeile + 1.
  2674. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2675. INPUT ExZeile, TRIM(SUBSTRING(FormText[15],21,20)) ).
  2676. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  2677. INPUT ExZeile, TRIM(STRING(VFak_Betr,'->>>>>9.99')) ).
  2678. ExZeile = ExZeile + 2.
  2679. FIND Kondi USE-INDEX Kondi-k1
  2680. WHERE Kondi.Kond = BAufko.Kond
  2681. AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  2682. IF AVAILABLE Kondi THEN DO:
  2683. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2684. INPUT ExZeile, Kondi.Kotext ).
  2685. END.
  2686. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ).
  2687. END PROCEDURE.
  2688. /* _UIB-CODE-BLOCK-END */
  2689. &ANALYZE-RESUME
  2690. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_SUMMENRABATTE C-Win
  2691. PROCEDURE EXCEL_SUMMENRABATTE :
  2692. /*------------------------------------------------------------------------------
  2693. Purpose:
  2694. Parameters: <none>
  2695. Notes:
  2696. ------------------------------------------------------------------------------*/
  2697. DEF VAR RText AS CHAR FORMAT "x(20)" NO-UNDO.
  2698. DEF VAR WText AS CHAR NO-UNDO.
  2699. DEF VAR cDaten AS CHAR NO-UNDO.
  2700. DEF VAR lTotal AS LOG NO-UNDO.
  2701. /* Auftragsrabatt ---------------------------------------------------- */
  2702. lTotal = FALSE.
  2703. i5 = 0.
  2704. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
  2705. BY TRabSumm.Rab_Summ:
  2706. Rundbetr = TRabSumm.Auf_Rab.
  2707. VFak_Betr = VFak_Betr - Rundbetr.
  2708. IF NOT FRabatt THEN NEXT.
  2709. IF i5 = 0 THEN ExZeile = ExZeile + 2.
  2710. ELSE ExZeile = ExZeile + 1.
  2711. IF Rundbetr < 0 THEN RText = VZusText.
  2712. ELSE RText = VRabText.
  2713. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1
  2714. WHERE AufRabSu.Firma = BAufko.Firma
  2715. AND AufRabSu.Aufnr = BAufko.Aufnr
  2716. AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
  2717. IF AufRabSu.F_Proz_Betr THEN WText = "%".
  2718. ELSE WText = "Fr.".
  2719. RabWert = ABSOLUT(AufRabSu.F_Wert).
  2720. cDaten = RText
  2721. + " "
  2722. + TRabSumm.Bez
  2723. + " "
  2724. + STRING(RabWert,"z9.99- ")
  2725. + WText.
  2726. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2727. INPUT ExZeile, INPUT cDaten ).
  2728. cDaten = STRING(- Rundbetr,"->>>>9.99").
  2729. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  2730. INPUT ExZeile, INPUT cDaten ).
  2731. i5 = i5 + 1.
  2732. END.
  2733. IF i5 > 0 THEN lTotal = TRUE.
  2734. /* Abholrabatt ------------------------------------------------------- */
  2735. i5 = 0.
  2736. FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
  2737. BY TRabSumm.Rab_Summ:
  2738. Rundbetr = TRabSumm.Abh_Rab.
  2739. VFak_Betr = VFak_Betr - Rundbetr.
  2740. IF NOT FRabatt THEN NEXT.
  2741. IF i5 = 0 THEN ExZeile = ExZeile + 2.
  2742. ELSE ExZeile = ExZeile + 1.
  2743. IF Rundbetr < 0 THEN RText = VZusText.
  2744. ELSE RText = VRabText.
  2745. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1
  2746. WHERE AufRabSu.Firma = BAufko.Firma
  2747. AND AufRabSu.Aufnr = BAufko.Aufnr
  2748. AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
  2749. IF AufRabSu.A_Proz_Betr THEN WText = "%".
  2750. ELSE WText = "Fr.".
  2751. RabWert = ABSOLUT(AufRabSu.A_Wert).
  2752. cDaten = RText
  2753. + " "
  2754. + TRabSumm.Bez
  2755. + " "
  2756. + STRING(RabWert,"z9.99- ")
  2757. + WText.
  2758. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2759. INPUT ExZeile, INPUT cDaten ).
  2760. cDaten = STRING(- Rundbetr,"->>>>9.99").
  2761. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  2762. INPUT ExZeile, INPUT cDaten ).
  2763. i5 = i5 + 1.
  2764. END.
  2765. IF i5 > 0 THEN lTotal = TRUE.
  2766. /* Spezialpreis-Auftragsrabatte ---------------------------------------- */
  2767. i5 = 0.
  2768. FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0
  2769. BY TSpeRab.Rab_Grp:
  2770. Rundbetr = TSpeRab.Auf_Betr.
  2771. VFak_Betr = VFak_Betr - Rundbetr.
  2772. IF NOT FRabatt THEN NEXT.
  2773. IF i5 = 0 THEN ExZeile = ExZeile + 2.
  2774. ELSE ExZeile = ExZeile + 1.
  2775. IF Rundbetr < 0 THEN RText = VZusText.
  2776. ELSE RText = VRabText.
  2777. FIND Tabel USE-INDEX Tabel-k1
  2778. WHERE Tabel.Firma = GVFirma
  2779. AND Tabel.RecArt = 'ARABGRP'
  2780. AND Tabel.CodeC = ''
  2781. AND Tabel.CodeI = TSpeRab.Rab_Grp
  2782. AND Tabel.Sprcd = 1 NO-LOCK.
  2783. FIND FIRST AufSpRab USE-INDEX AufSpRab-k1
  2784. WHERE AufSpRab.Firma = BAufko.Firma
  2785. AND AufSpRab.Aufnr = BAufko.Aufnr
  2786. AND AufSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK.
  2787. IF AufSpRab.Auf_Proz_Betr THEN WText = "%".
  2788. ELSE WText = "Fr.".
  2789. RabWert = ABSOLUT(AufSpRab.Auf_Wert).
  2790. cDaten = RText
  2791. + " "
  2792. + TRabSumm.Bez
  2793. + " "
  2794. + STRING(RabWert,"z9.99- ")
  2795. + WText.
  2796. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2797. INPUT ExZeile, INPUT cDaten ).
  2798. cDaten = STRING(- Rundbetr,"->>>>9.99").
  2799. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  2800. INPUT ExZeile, INPUT cDaten ).
  2801. i5 = i5 + 1.
  2802. END.
  2803. IF i5 > 0 THEN lTotal = TRUE.
  2804. IF lTotal THEN DO:
  2805. ExZeile = ExZeile + 1.
  2806. cDaten = TRIM(SUBSTRING(FormText[14],21,20)).
  2807. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2808. INPUT ExZeile, INPUT cDaten ).
  2809. cDaten = TRIM(STRING(VFak_Betr,"->>>>9.99")).
  2810. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  2811. INPUT ExZeile, INPUT cDaten ).
  2812. END.
  2813. /* Recycling-Gebühren ------------------------------------------------ */
  2814. lTotal = FALSE.
  2815. i5 = 0.
  2816. FOR EACH AufGKon USE-INDEX AufGKon-k1
  2817. WHERE AufGKon.Firma = BAufko.Firma
  2818. AND AufGKon.Aufnr = BAufko.Aufnr
  2819. AND AufGKon.Gebuehr <> 0
  2820. AND AufGKon.Betrag <> 0 NO-LOCK:
  2821. VFak_Betr = VFak_Betr + AufGKon.Betrag.
  2822. IF NOT FRabatt THEN NEXT.
  2823. IF i5 = 0 THEN ExZeile = ExZeile + 2.
  2824. ELSE ExZeile = ExZeile + 1.
  2825. VWC = AufGKon.MWSt_Cd.
  2826. FIND GebKonto OF AufGKon NO-LOCK NO-ERROR.
  2827. IF NOT AVAILABLE GebKonto THEN cDaten = TRIM(SUBSTRING(FormText[11],41,20)).
  2828. ELSE cDaten = GebKonto.Bez.
  2829. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2830. INPUT ExZeile, INPUT cDaten ).
  2831. cDaten = TRIM(STRING(AufGKon.Ausgang,"->>>>>9")).
  2832. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H',
  2833. INPUT ExZeile, INPUT cDaten ).
  2834. cDaten = TRIM(STRING(AufGKon.Betrag,"->>>>9.99")).
  2835. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  2836. INPUT ExZeile, INPUT cDaten ).
  2837. cDaten = TRIM(STRING(AufGKon.MWSt_Cd ,"z9")).
  2838. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J',
  2839. INPUT ExZeile, INPUT cDaten ).
  2840. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  2841. WHERE MWSTAns.MWST_Cd = VWC
  2842. AND MWSTAns.Datum <= FDatum NO-LOCK NO-ERROR.
  2843. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 9991
  2844. AND TUmsGrp.Mwst = VWC NO-ERROR.
  2845. IF NOT AVAILABLE TUmsGrp THEN DO:
  2846. CREATE TUmsGrp.
  2847. ASSIGN TUmsGrp.Ums_Grp = 9991
  2848. TUmsGrp.Mwst = VWC
  2849. TUmsGrp.Bez = 'Recycling-Gebühren'.
  2850. END.
  2851. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + AufGKon.Betrag.
  2852. i5 = i5 + 1.
  2853. END.
  2854. IF i5 > 0 THEN lTotal = TRUE.
  2855. IF lTotal THEN DO:
  2856. ExZeile = ExZeile + 1.
  2857. cDaten = TRIM(SUBSTRING(FormText[14],21,20)).
  2858. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D',
  2859. INPUT ExZeile, INPUT cDaten ).
  2860. cDaten = TRIM(STRING(VFak_Betr,"->>>>9.99")).
  2861. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I',
  2862. INPUT ExZeile, INPUT cDaten ).
  2863. END.
  2864. END PROCEDURE.
  2865. /* _UIB-CODE-BLOCK-END */
  2866. &ANALYZE-RESUME
  2867. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA C-Win
  2868. PROCEDURE FAKTURA :
  2869. /*------------------------------------------------------------------------------
  2870. Purpose:
  2871. Parameters: <none>
  2872. Notes:
  2873. ------------------------------------------------------------------------------*/
  2874. DEF VAR cPDFName AS CHAR INIT '' NO-UNDO.
  2875. DEF VAR xString AS CHAR NO-UNDO.
  2876. DEF VAR lFirst AS LOG NO-UNDO.
  2877. DEF VAR cString AS CHAR NO-UNDO.
  2878. VSeite = 0.
  2879. VFak_Betr = 0.
  2880. FPreis = TRUE.
  2881. RUN AUFTRAGSTOTAL ( BAufko.Aufnr, OUTPUT cString ).
  2882. RUN VIPER_INIT ( 'Faktura' ).
  2883. IF RETURN-VALUE = 'ERROR' THEN RETURN 'ERROR'.
  2884. RUN vpr_SetPrinterAttrib('copies=2').
  2885. RUN FAKTURA_KOPF.
  2886. iArtZeile = 0.
  2887. iVPagePos = vpr_getPageVPos() + 20.
  2888. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
  2889. FOR EACH tAufze NO-LOCK
  2890. BY tAufze.Aufnr
  2891. BY tAufze.Sort1
  2892. BY tAufze.LagOrt
  2893. BY tAufze.Sort2
  2894. BY tAufze.Pos :
  2895. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  2896. RUN VIPER_ARTIKELZEILE ( RECID(tAufze) ).
  2897. VFak_Betr = VFak_Betr + Aufze.Net_Betr.
  2898. END.
  2899. iArtZeile = iArtZeile + 1.
  2900. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
  2901. iArtZeile = iArtZeile + 1.
  2902. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(SUBSTRING(FormText[15],21,20)) ).
  2903. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
  2904. iArtZeile = iArtZeile + 1.
  2905. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', ' ' ).
  2906. RUN VIPER_AUSGABE_ARTIKELZEILE.
  2907. /* Auftragsrabatt ---------------------------------------------------- */
  2908. iArtZeile = 0.
  2909. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
  2910. BY TRabSumm.Rab_Summ:
  2911. Rundbetr = TRabSumm.Auf_Rab.
  2912. VFak_Betr = VFak_Betr - Rundbetr.
  2913. iArtZeile = iArtZeile + 1.
  2914. xString = TRIM(SUBSTRING(FormText[11],01,20))
  2915. + " "
  2916. + TRabSumm.Bez.
  2917. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  2918. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
  2919. END.
  2920. /* Abholrabatt ------------------------------------------------------- */
  2921. FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
  2922. BY TRabSumm.Rab_Summ:
  2923. Rundbetr = TRabSumm.Abh_Rab.
  2924. VFak_Betr = VFak_Betr - Rundbetr.
  2925. iArtZeile = iArtZeile + 1.
  2926. xString = TRIM(SUBSTRING(FormText[15],01,20))
  2927. + " "
  2928. + TRabSumm.Bez.
  2929. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  2930. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
  2931. END.
  2932. IF iArtZeile > 0 THEN DO:
  2933. iArtZeile = iArtZeile + 1.
  2934. xString = TRIM(SUBSTRING(FormText[14],21,20)).
  2935. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  2936. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
  2937. iArtZeile = iArtZeile + 1.
  2938. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
  2939. END.
  2940. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
  2941. /* Recycling-Gebuehren ----------------------------------------------- */
  2942. iArtZeile = 0.
  2943. FOR EACH AufGKon USE-INDEX AufGKon-k1
  2944. WHERE AufGKon.Firma = BAufko.Firma
  2945. AND AufGKon.Aufnr = BAufko.Aufnr
  2946. AND AufGKon.Gebuehr <> 0
  2947. AND AufGKon.Betrag <> 0 NO-LOCK:
  2948. FIND GebKonto OF AufGKon NO-LOCK NO-ERROR.
  2949. IF NOT AVAILABLE GebKonto THEN xString = TRIM(SUBSTRING(FormText[11],41,20)).
  2950. ELSE xString = GebKonto.Bez.
  2951. VWC = AufGKon.MWST_Cd.
  2952. VFak_Betr = VFak_Betr + AufGKon.Betrag.
  2953. iArtZeile = iArtZeile + 1.
  2954. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  2955. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(AufGKon.Betrag,'->>>,>>9.99')) ).
  2956. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC', STRING(AufGKon.MWSt_Cd,'z9') ).
  2957. END.
  2958. IF iArtZeile > 0 THEN DO:
  2959. iArtZeile = iArtZeile + 1.
  2960. xString = TRIM(SUBSTRING(FormText[14],41,20)).
  2961. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  2962. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
  2963. iArtZeile = iArtZeile + 1.
  2964. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
  2965. END.
  2966. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
  2967. /* Gebinde Aus- und Eingänge ---------------------------------------- */
  2968. FOR EACH AufGKon USE-INDEX AufGKon-k1
  2969. WHERE AufGKon.Firma = BAufko.Firma
  2970. AND AufGKon.Aufnr = BAufko.Aufnr
  2971. AND AufGKon.Depot <> 0
  2972. AND (AufGKon.Eingang <> 0 OR
  2973. AufGKon.Ausgang <> 0) NO-LOCK:
  2974. FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR.
  2975. IF NOT AVAILABLE TGebKto THEN DO:
  2976. FIND GebKonto USE-INDEX GebKonto-k1
  2977. WHERE GebKonto.Firma = AufGKon.Firma
  2978. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK.
  2979. CREATE TGebKto.
  2980. ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd
  2981. TGebKto.Geb_Cd = GebKonto.Geb_Cd
  2982. TGebKto.Bez = GebKonto.Bez
  2983. TGebKto.Preis = AufGKon.Depot
  2984. TGebKto.MWST_Cd = AufGKon.MWSt_Cd.
  2985. END.
  2986. TGebKto.A_Anz = TGebKto.A_Anz + AufGKon.Ausgang.
  2987. TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis.
  2988. TGebKto.E_Anz = TGebKto.E_Anz + AufGKon.Eingang.
  2989. TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis.
  2990. END.
  2991. /* Gebindelieferungen ------------------------------------------------ */
  2992. VZTot = 0.
  2993. iArtZeile = 0.
  2994. FOR EACH AufGKon USE-INDEX AufGKon-k1
  2995. WHERE AufGKon.Firma = BAufko.Firma
  2996. AND AufGKon.Aufnr = BAufko.Aufnr
  2997. AND AufGKon.Depot <> 0
  2998. AND (AufGKon.Eingang <> 0 OR
  2999. AufGKon.Ausgang <> 0) NO-LOCK
  3000. BREAK BY AufgKon.Firma
  3001. BY AufGKon.Aufnr:
  3002. FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1
  3003. WHERE GebKonto.Firma = GVFirma
  3004. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd.
  3005. i1 = AufGKon.Ausgang - AufGKon.Eingang.
  3006. Rundbetr = AufGKon.Betrag.
  3007. VWC = AufGKon.MWSt_Cd.
  3008. VZTot = VZTot + Rundbetr.
  3009. iArtZeile = iArtZeile + 1.
  3010. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'Gebindetext' , GebKonto.Bez ).
  3011. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeGel' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ).
  3012. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeRet' , TRIM(STRING(AufGKon.Eingang,"->>,>>9")) ).
  3013. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeSaldo', TRIM(STRING(i1 ,"->>,>>9")) ).
  3014. IF FPreis THEN
  3015. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeBetr' , TRIM(STRING(Rundbetr ,"->>,>>9.99")) ).
  3016. END.
  3017. IF iArtZeile > 0 AND
  3018. FPreis THEN RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeTot' , TRIM(STRING(VZTot ,"->>>,>>9.99")) ).
  3019. VFak_Betr = VFak_Betr + VZTot.
  3020. IF iArtZeile > 0 THEN RUN VIPER_AUSGABE_GRUPPE ('Gebindeabrechnung').
  3021. /* Auftragstext ------------------------------------------------------ */
  3022. XAuf_Text = BAufko.Auf_Text.
  3023. IF XAuf_Text <> '' THEN DO:
  3024. iVPagePos = vpr_getPageVPos() + 20.
  3025. RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ).
  3026. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
  3027. RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ).
  3028. RUN vpr_flushGroup ('Zusatztext').
  3029. END.
  3030. END.
  3031. /* Mehrwertsteuer ---------------------------------------------------- */
  3032. VWpfl = 0.
  3033. VWust = 0.
  3034. i1 = 2.
  3035. DO ix = 1 TO 11:
  3036. IF BAufko.WPfl[ix] = 0 THEN NEXT.
  3037. VWpfl[ix] = BAufko.Wpfl[ix].
  3038. VWust[ix] = BAufko.Wust[ix].
  3039. VFak_Betr = VFak_Betr + VWust[ix].
  3040. i1 = i1 + 1.
  3041. END.
  3042. iVPagePos = vpr_getPageVPos().
  3043. IF (iVPagePos + (i1 * 40)) > iVMaxPos THEN DO:
  3044. RUN VIPER_NEUE_SEITE.
  3045. RUN VIPER_ADRESSE ('').
  3046. END.
  3047. iArtZeile = 1.
  3048. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , ' ' ).
  3049. DO ix = 1 TO 11:
  3050. IF VWpfl[ix] = 0 THEN NEXT.
  3051. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  3052. WHERE MWSTAns.MWST_Cd = ix
  3053. AND MWSTAns.Datum <= BAufko.Kond_Datum NO-LOCK.
  3054. iArtZeile = iArtZeile + 1.
  3055. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , MWStAns.Bez ).
  3056. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstPfl' , TRIM(STRING(VWpfl[ix],"->>,>>9.99")) ).
  3057. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBetr', TRIM(STRING(VWust[ix],"->>>,>>9.99")) ).
  3058. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstCd' , TRIM(STRING(ix ,"->>,>>9")) ).
  3059. END.
  3060. RUN VIPER_AUSGABE_GRUPPE ( 'Mehrwertsteuer' ).
  3061. /* Rechnungsbetrag --------------------------------------------------- */
  3062. Rundbetr = VFak_Betr.
  3063. Rundcode = 1.
  3064. RUN RUNDEN ( Rundcode, INPUT-OUTPUT Rundbetr ).
  3065. VFak_Betr = Rundbetr.
  3066. iArtZeile = 1.
  3067. RUN VIPER_CREATE_DOKUMENT ( 'RechnungsTotal', iArtZeile, 'EndBetrag', TRIM(STRING(VFak_Betr,"->>>,>>9.99")) ).
  3068. RUN VIPER_AUSGABE_GRUPPE ( 'RechnungsTotal' ).
  3069. /* Zahlungskondition ------------------------------------------------- */
  3070. FIND Kondi USE-INDEX Kondi-k1
  3071. WHERE Kondi.Kond = BAufko.Kond
  3072. AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  3073. IF AVAILABLE Kondi THEN DO:
  3074. iArtZeile = 1.
  3075. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Zahkond', Kondi.KoText ).
  3076. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Faellig', STRING((FDatum + Kondi.Faellig),"99.99.9999") ).
  3077. IF Kondi.Skonto[01] <> 0 THEN DO:
  3078. Rundbetr = BAufko.Sk_Ber * Kondi.Skonto[01] / 100.
  3079. Rundcode = 1.
  3080. RUN RUNDEN ( Rundcode, INPUT-OUTPUT Rundbetr ).
  3081. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Skonto', TRIM(STRING(Rundbetr,"->>>,>>9.99")) ).
  3082. END.
  3083. END.
  3084. ELSE DO:
  3085. iArtZeile = 1.
  3086. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Zahkond', FILL('?', 29) ).
  3087. END.
  3088. VFak_Betr = VFak_Betr - BAufko.Bar_Betr - BAufko.Bar_Skonto.
  3089. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Netto', TRIM(STRING(VFak_Betr,"->>>,>>9.99")) ).
  3090. RUN VIPER_AUSGABE_GRUPPE ( 'Kondition' ).
  3091. VesrKnr = BAufko.Fak_Knr.
  3092. VesrFnr = BAufko.Faknr.
  3093. IF VFak_Betr = 0 THEN Rundbetr = -1.
  3094. ELSE Rundbetr = VFak_Betr.
  3095. IF AVAILABLE Kondi AND
  3096. Kondi.Skonto[01] <> 0 THEN Rundbetr = 0.
  3097. /* ------------------------------------------------------ */
  3098. /* Druckausgabe */
  3099. /* ------------------------------------------------------ */
  3100. RUN vpr_EndDoc.
  3101. IF SESSION:PRINTER-NAME <> F_Drucker THEN DO:
  3102. RUN vpr_printerDialog ( OUTPUT ja ).
  3103. IF NOT ja THEN RETURN.
  3104. END.
  3105. ELSE DO:
  3106. RUN vpr_selectPrinter(SESSION:PRINTER-NAME).
  3107. END.
  3108. RUN vpr_SetPrinterAttrib ('duplex=1').
  3109. RUN vpr_printDoc (0, 0).
  3110. cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_&3', STRING(BAufko.Knr,'999999'), BAufko.Faknr, cvpr_Dokument).
  3111. cPDFName = REPLACE(cvpr_Dokument, '.vpr', '.pdf').
  3112. RUN vpr_printPDF (0, 0, INPUT-OUTPUT cPDFName ).
  3113. RUN vpr_SaveDoc ( cvpr_Dokument ).
  3114. /*
  3115. RUN vpr_ShowDoc.
  3116. RUN vpr_showPreview.
  3117. DEF VAR o-i AS i NO-UNDO.
  3118. RUN shellExecuteA (0,
  3119. "open",
  3120. cPDFName,
  3121. "",
  3122. "",
  3123. 0,
  3124. OUTPUT o-i).
  3125. */
  3126. VesrKnr = BAufko.Fak_Knr.
  3127. VesrFnr = BAufko.Faknr.
  3128. VBesr = 4.
  3129. IF VDokArt = 'FESTFAKTURA' THEN VBesr = 0.
  3130. IF BAufko.Auf_Tot > 0 THEN DO:
  3131. CASE VBesr:
  3132. WHEN 1 THEN RUN VESR_DRUCK01.
  3133. WHEN 2 THEN RUN VESR_DRUCK02.
  3134. WHEN 3 THEN RUN VESR_DRUCK03.
  3135. WHEN 4 THEN RUN VESR_DRUCK04.
  3136. END CASE.
  3137. END.
  3138. RUN KOPF_MUTATION.
  3139. END PROCEDURE.
  3140. /* _UIB-CODE-BLOCK-END */
  3141. &ANALYZE-RESUME
  3142. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA_KOPF C-Win
  3143. PROCEDURE FAKTURA_KOPF :
  3144. /*------------------------------------------------------------------------------
  3145. Purpose:
  3146. Parameters: <none>
  3147. Notes:
  3148. ------------------------------------------------------------------------------*/
  3149. DEF VAR kk AS INT NO-UNDO.
  3150. DEF VAR xString AS CHAR NO-UNDO.
  3151. RUN VIPER_NEUE_SEITE.
  3152. IF VSeite = 1 THEN DO:
  3153. REPEAT WHILE BAufko.Faknr = 0 TRANSACTION:
  3154. RUN "v8/steunr.p" ( INPUT 2, OUTPUT VFaknr ).
  3155. IF RETURN-VALUE <> '' THEN NEXT.
  3156. FIND Aufko WHERE RECID(Aufko) = RECID(BAufko).
  3157. Aufko.Faknr = VFaknr.
  3158. RELEASE Aufko.
  3159. END.
  3160. SFaknr = BAufko.Faknr.
  3161. FIND Adresse USE-INDEX Adresse-k1
  3162. WHERE Adresse.Firma = AdFirma
  3163. AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  3164. FIND LDebst USE-INDEX Debst-k1
  3165. WHERE LDebst.Firma = GVFirma
  3166. AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  3167. FIND FDebst USE-INDEX Debst-k1
  3168. WHERE FDebst.Firma = GVFirma
  3169. AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  3170. FIND Wust USE-INDEX Wust-k1
  3171. WHERE Wust.CodeK = LDebst.MWST
  3172. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  3173. LVSprcd = Adresse.Sprcd.
  3174. DebInkl = FALSE.
  3175. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  3176. VBesrKopf = ''.
  3177. IF BAufko.Adresse[05] <> '' THEN DO:
  3178. i1 = 6.
  3179. DO ix = 1 TO 5:
  3180. CREATE tDokument.
  3181. ASSIGN tDokument.cGruppe = 'KOPF'
  3182. tDokument.iZeile = 1
  3183. tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99')
  3184. tDokument.cInhalt = BAufko.Adresse[ix].
  3185. i1 = i1 + 1.
  3186. VBesrKopf[i1] = BAufko.Adresse[ix].
  3187. END.
  3188. END.
  3189. ELSE DO:
  3190. DO ix = 5 TO 11:
  3191. CREATE tDokument.
  3192. ASSIGN tDokument.cGruppe = 'KOPF'
  3193. tDokument.iZeile = 1
  3194. tDokument.cFeld = 'Adresse_' + STRING(ix,'99')
  3195. tDokument.cInhalt = Adresse.Anschrift[ix].
  3196. VBesrKopf[ix] = Adresse.Anschrift[ix].
  3197. END.
  3198. END.
  3199. CREATE tDokument.
  3200. ASSIGN tDokument.cGruppe = 'KOPF'
  3201. tDokument.iZeile = 1
  3202. tDokument.cFeld = 'Ort_Datum'
  3203. tDokument.cInhalt = TRIM(SUBSTRING(FormText[07],01,20))
  3204. + " "
  3205. + STRING(FDatum,"99.99.9999").
  3206. CREATE tDokument.
  3207. ASSIGN tDokument.cGruppe = 'KOPF'
  3208. tDokument.iZeile = 1
  3209. tDokument.cFeld = 'T_Dokument'
  3210. tDokument.cInhalt = (IF BAufko.Auf_Tot >= 0
  3211. THEN TRIM(SUBSTRING(FormText[02],01,20))
  3212. ELSE TRIM(SUBSTRING(FormText[02],21,20))).
  3213. CREATE tDokument.
  3214. ASSIGN tDokument.cGruppe = 'KOPF'
  3215. tDokument.iZeile = 1
  3216. tDokument.cFeld = 'Aufnr'
  3217. tDokument.cInhalt = STRING(SFaknr,'z999999').
  3218. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR.
  3219. CREATE tDokument.
  3220. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  3221. tDokument.iZeile = 1
  3222. tDokument.cFeld = 'Ablade'
  3223. tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld3 ELSE ' ').
  3224. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'WISO' NO-ERROR.
  3225. CREATE tDokument.
  3226. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  3227. tDokument.iZeile = 1
  3228. tDokument.cFeld = 'WirteSo'
  3229. tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld3 ELSE ' ').
  3230. CREATE tDokument.
  3231. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  3232. tDokument.iZeile = 1
  3233. tDokument.cFeld = 'Auf_Datum'
  3234. tDokument.cInhalt = STRING(BAufko.Auf_Datum,'99.99.9999').
  3235. CREATE tDokument.
  3236. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  3237. tDokument.iZeile = 1
  3238. tDokument.cFeld = 'Lief_Datum'
  3239. tDokument.cInhalt = STRING(BAufko.Lief_Datum,'99.99.9999').
  3240. CREATE tDokument.
  3241. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  3242. tDokument.iZeile = 1
  3243. tDokument.cFeld = 'U_Ref'
  3244. tDokument.cInhalt = BAufko.U_Ref.
  3245. CREATE tDokument.
  3246. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  3247. tDokument.iZeile = 1
  3248. tDokument.cFeld = 'Knr'
  3249. tDokument.cInhalt = STRING(BAufko.Knr,'999999').
  3250. CREATE tDokument.
  3251. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  3252. tDokument.iZeile = 1
  3253. tDokument.cFeld = 'Telefon'
  3254. tDokument.cInhalt = (IF Adresse.Tel-1 <> '' THEN Adresse.Tel-1 ELSE Adresse.Tel-2).
  3255. CREATE tDokument.
  3256. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  3257. tDokument.iZeile = 1
  3258. tDokument.cFeld = 'Gewicht'
  3259. tDokument.cInhalt = TRIM(STRING(BAufko.Gewicht,'->>>,>>9.999')).
  3260. END.
  3261. RUN VIPER_ADRESSE ( xString ).
  3262. IF VSeite = 1 AND
  3263. BAufko.Abh_Text <> '' THEN DO:
  3264. XAuf_Text = BAufko.Abh_Text.
  3265. iVPagePos = vpr_getPageVPos() + 20.
  3266. RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ).
  3267. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
  3268. RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ).
  3269. RUN vpr_flushGroup ('Zusatztext').
  3270. END.
  3271. END.
  3272. END PROCEDURE.
  3273. /* _UIB-CODE-BLOCK-END */
  3274. &ANALYZE-RESUME
  3275. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FESTFAKTURA C-Win
  3276. PROCEDURE FESTFAKTURA :
  3277. /*------------------------------------------------------------------------------
  3278. Purpose:
  3279. Parameters: <none>
  3280. Notes:
  3281. ------------------------------------------------------------------------------*/
  3282. FPreis = TRUE.
  3283. RUN FAKTURA.
  3284. END PROCEDURE.
  3285. /* _UIB-CODE-BLOCK-END */
  3286. &ANALYZE-RESUME
  3287. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_tAufze C-Win
  3288. PROCEDURE FUELLEN_tAufze :
  3289. /*------------------------------------------------------------------------------
  3290. Purpose:
  3291. Parameters: <none>
  3292. Notes:
  3293. ------------------------------------------------------------------------------*/
  3294. DEF INPUT PARAMETER ipAufnr AS INT NO-UNDO.
  3295. DEF VAR minPos AS INT NO-UNDO.
  3296. DEF VAR maxPos AS INT NO-UNDO.
  3297. DEF VAR jPlatz AS INT NO-UNDO.
  3298. DEF VAR cLagOrt AS CHAR NO-UNDO.
  3299. DEF VAR iRuestArt AS INT NO-UNDO.
  3300. DEF VAR iPlusMinus AS INT NO-UNDO.
  3301. DEF VAR lArtikel AS LOG NO-UNDO.
  3302. EMPTY TEMP-TABLE tAufze.
  3303. EMPTY TEMP-TABLE tRueckst.
  3304. FIND Steuer NO-LOCK
  3305. WHERE Steuer.Firma = GVFirma NO-ERROR.
  3306. IF AVAILABLE Steuer THEN iRuestArt = Steuer.RuestArt.
  3307. ASSIGN minPos = 0
  3308. maxPos = 9999.
  3309. /* Kommentar zu Beginn eines Auftrages */
  3310. lArtikel = FALSE.
  3311. FOR EACH Aufze NO-LOCK
  3312. WHERE Aufze.Firma = GVFirma
  3313. AND Aufze.Aufnr = ipAufnr
  3314. AND Aufze.Pos > minPos:
  3315. IF Aufze.Artnr > 0 THEN DO:
  3316. lArtikel = TRUE.
  3317. LEAVE.
  3318. END.
  3319. iPlusMinus = (IF Aufze.MGeli < 0 THEN 1 ELSE 0).
  3320. minPos = Aufze.Pos.
  3321. CREATE tAufze.
  3322. ASSIGN tAufze.Aufnr = Aufze.Aufnr
  3323. tAufze.Artnr = Aufze.Artnr
  3324. tAufze.Inhalt = Aufze.Inhalt
  3325. tAufze.Jahr = Aufze.Jahr
  3326. tAufze.Pos = Aufze.Pos
  3327. tAufze.Zeile = RECID(Aufze)
  3328. tAufze.Aktion = Aufze.Aktion
  3329. tAufze.Preis = Aufze.Preis
  3330. tAufze.MGeli = Aufze.MGeli
  3331. tAufze.MRuek = Aufze.MRuek.
  3332. ASSIGN tAufze.Sort1 = STRING(0,'99')
  3333. tAufze.Sort2 = ''
  3334. tAufze.Sort3 = STRING(tAufze.Artnr ,'999999')
  3335. + STRING(tAufze.Inhalt,'9999')
  3336. + STRING(tAufze.Jahr ,'9999')
  3337. + STRING(iPlusMinus ,'9')
  3338. + STRING(tAufze.Pos ,'99999').
  3339. tAufze.LagOrt = ''.
  3340. END.
  3341. /* Kommentar am Ende eines Auftrages */
  3342. IF lArtikel THEN DO:
  3343. FOR EACH Aufze NO-LOCK
  3344. WHERE Aufze.Firma = GVFirma
  3345. AND Aufze.Aufnr = ipAufnr
  3346. BY Aufze.Pos DESCENDING:
  3347. IF Aufze.Artnr > 0 THEN LEAVE.
  3348. iPlusMinus = (IF Aufze.MGeli < 0 THEN 1 ELSE 0).
  3349. maxPos = Aufze.Pos.
  3350. CREATE tAufze.
  3351. ASSIGN tAufze.Aufnr = Aufze.Aufnr
  3352. tAufze.Artnr = Aufze.Artnr
  3353. tAufze.Inhalt = Aufze.Inhalt
  3354. tAufze.Jahr = Aufze.Jahr
  3355. tAufze.Pos = Aufze.Pos
  3356. tAufze.Zeile = RECID(Aufze)
  3357. tAufze.Aktion = Aufze.Aktion
  3358. tAufze.Preis = Aufze.Preis
  3359. tAufze.MGeli = Aufze.MGeli
  3360. tAufze.MRuek = Aufze.MRuek.
  3361. ASSIGN tAufze.Sort1 = STRING(0,'99')
  3362. tAufze.Sort2 = ''
  3363. tAufze.Sort3 = STRING(tAufze.Artnr ,'999999')
  3364. + STRING(tAufze.Inhalt,'9999')
  3365. + STRING(tAufze.Jahr ,'9999')
  3366. + STRING(iPlusMinus ,'9')
  3367. + STRING(tAufze.Pos ,'99999').
  3368. tAufze.LagOrt = ''.
  3369. END.
  3370. END.
  3371. /* Artikelzeilen nach Ruestplatz und Ort */
  3372. cLagOrt = ''.
  3373. FOR EACH Aufze NO-LOCK
  3374. WHERE Aufze.Firma = GVFirma
  3375. AND Aufze.Aufnr = ipAufnr
  3376. AND Aufze.Pos > minPos
  3377. AND Aufze.Pos < MaxPos
  3378. BY Aufze.Pos DESCENDING:
  3379. IF Aufze.Artnr > 0 THEN DO:
  3380. FIND ArtLager NO-LOCK
  3381. WHERE ArtLager.Firma = Aufze.Firma
  3382. AND ArtLager.Artnr = Aufze.Artnr
  3383. AND ArtLager.Inhalt = Aufze.Inhalt
  3384. AND ArtLager.Jahr = Aufze.Jahr
  3385. AND ArtLager.Lager = Aufze.Lager.
  3386. cLagOrt = ArtLager.Ort.
  3387. END.
  3388. iPlusMinus = (IF Aufze.MGeli < 0 THEN 1 ELSE 0).
  3389. FIND LAST RuestPlatz USE-INDEX RuestPlatz-k2
  3390. WHERE RuestPlatz.Firma = Aufze.Firma
  3391. AND RuestPlatz.RuestArt = iRuestArt
  3392. AND RuestPlatz.abLagOrt <= cLagOrt NO-ERROR.
  3393. IF NOT AVAILABLE RuestPlatz THEN jPlatz = 90.
  3394. ELSE jPlatz = RuestPlatz.Platz.
  3395. CREATE tAufze.
  3396. ASSIGN tAufze.Aufnr = Aufze.Aufnr
  3397. tAufze.Artnr = Aufze.Artnr
  3398. tAufze.Inhalt = Aufze.Inhalt
  3399. tAufze.Jahr = Aufze.Jahr
  3400. tAufze.Pos = Aufze.Pos
  3401. tAufze.Zeile = RECID(Aufze)
  3402. tAufze.Aktion = Aufze.Aktion
  3403. tAufze.Preis = Aufze.Preis
  3404. tAufze.MGeli = Aufze.MGeli
  3405. tAufze.MRuek = Aufze.MRuek.
  3406. ASSIGN tAufze.Sort1 = STRING(jPlatz,'99')
  3407. tAufze.Sort2 = cLagOrt
  3408. tAufze.Sort3 = STRING(tAufze.Artnr ,'999999')
  3409. + STRING(tAufze.Inhalt,'9999')
  3410. + STRING(tAufze.Jahr ,'9999')
  3411. + STRING(iPlusMinus ,'9')
  3412. + STRING(tAufze.Pos ,'99999').
  3413. tAufze.LagOrt = cLagort.
  3414. IF tAufze.MRuek > 0 THEN DO:
  3415. CREATE tRueckst.
  3416. BUFFER-COPY tAufze TO tRueckst.
  3417. END.
  3418. IF tAufze.Artnr > 0 AND
  3419. tAufze.MGeli = 0 THEN DELETE tAufze.
  3420. END.
  3421. END PROCEDURE.
  3422. /* _UIB-CODE-BLOCK-END */
  3423. &ANALYZE-RESUME
  3424. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_SALDO C-Win
  3425. PROCEDURE GEBINDE_SALDO :
  3426. /*------------------------------------------------------------------------------
  3427. Purpose:
  3428. Parameters: <none>
  3429. Notes:
  3430. ------------------------------------------------------------------------------*/
  3431. FOR EACH AufGKon USE-INDEX AufGKon-k1
  3432. WHERE AufGKon.Firma = BAufko.Firma
  3433. AND AufGKon.Aufnr = BAufko.Aufnr
  3434. AND AufGKon.Depot <> 0
  3435. AND AufGKon.Betrag <> 0 NO-LOCK:
  3436. FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR.
  3437. IF NOT AVAILABLE TGebKto THEN DO:
  3438. FIND GebKonto USE-INDEX GebKonto-k1
  3439. WHERE GebKonto.Firma = AufGKon.Firma
  3440. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK.
  3441. CREATE TGebKto.
  3442. ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd
  3443. TGebKto.Geb_Cd = GebKonto.Geb_Cd
  3444. TGebKto.Bez = GebKonto.Bez
  3445. TGebKto.Preis = AufGKon.Depot
  3446. TGebKto.MWST_Cd = AufGKon.MWSt_Cd.
  3447. END.
  3448. TGebKto.A_Anz = TGebKto.A_Anz + AufGKon.Ausgang.
  3449. TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis.
  3450. TGebKto.E_Anz = TGebKto.E_Anz + AufGKon.Eingang.
  3451. TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis.
  3452. END.
  3453. END PROCEDURE.
  3454. /* _UIB-CODE-BLOCK-END */
  3455. &ANALYZE-RESUME
  3456. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF_MUTATION C-Win
  3457. PROCEDURE KOPF_MUTATION :
  3458. /*------------------------------------------------------------------------------
  3459. Purpose:
  3460. Parameters: <none>
  3461. Notes:
  3462. ------------------------------------------------------------------------------*/
  3463. DO TRANSACTION WHILE TRUE:
  3464. FIND Tabel USE-INDEX Tabel-k1
  3465. WHERE Tabel.Firma = GVFirma
  3466. AND Tabel.RecArt = 'FAKART'
  3467. AND Tabel.CodeC = ''
  3468. AND Tabel.CodeI = BAufko.Fak_Art
  3469. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  3470. IF Tabel.Int_3 > 2 THEN DO:
  3471. FIND Aufko WHERE RECID(Aufko) = RECID(BAufko).
  3472. Aufko.Fak_Datum = FDatum.
  3473. Aufko.Faknr = SFaknr.
  3474. RELEASE Aufko.
  3475. END.
  3476. RUN AUFTRAG_GEDRUCKT ( INPUT BAufko.Aufnr ).
  3477. RELEASE Aufko.
  3478. LEAVE.
  3479. END.
  3480. FIND Aufko WHERE RECID(Aufko) = RECID(BAufko) NO-LOCK.
  3481. END PROCEDURE.
  3482. /* _UIB-CODE-BLOCK-END */
  3483. &ANALYZE-RESUME
  3484. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIBILD C-Win
  3485. PROCEDURE LIBILD :
  3486. /*------------------------------------------------------------------------------
  3487. Purpose:
  3488. Parameters: <none>
  3489. Notes:
  3490. ------------------------------------------------------------------------------*/
  3491. DEF VAR VProgName AS CHAR NO-UNDO.
  3492. DEF VAR cDocArt AS CHAR NO-UNDO.
  3493. CASE VDokArt:
  3494. WHEN 'FESTFAKTURA' THEN cDocArt = 'FAKTURA'.
  3495. OTHERWISE cDocArt = VDokArt.
  3496. END CASE.
  3497. VProgName = BSteuer.Fwc10 + ":" + cDocArt.
  3498. FormText = "".
  3499. FOR EACH LiBild NO-LOCK USE-INDEX LiBild-k1
  3500. WHERE LiBild.Sprcd = GVSprcd
  3501. AND LiBild.Prog = VProgname
  3502. AND LiBild.Tenr > 0
  3503. ix = 1 TO 40:
  3504. FormText[ix] = LiBild.Litext.
  3505. END.
  3506. Fuell = SUBSTRING(FormText[01],01,01).
  3507. Breite = INTEGER(SUBSTRING(FormText[01],02,03)).
  3508. VRand = INTEGER(SUBSTRING(FormText[01],68,03)).
  3509. Dattxt = SUBSTRING(FormText[01],05,10).
  3510. Seitxt = SUBSTRING(FormText[01],15,10).
  3511. Zeitxt = SUBSTRING(FormText[01],25,10).
  3512. Firtxt = SUBSTRING(FormText[01],35,10).
  3513. Jahtxt = SUBSTRING(FormText[01],45,10).
  3514. Ueber1 = "".
  3515. Ueber2 = "".
  3516. Ueber3 = "".
  3517. ap = 1.
  3518. XDruDat = ?.
  3519. VRabText = TRIM(SUBSTRING(FormText[21],01,20)).
  3520. VZusText = TRIM(SUBSTRING(FormText[21],21,20)).
  3521. VEpzText = TRIM(SUBSTRING(FormText[21],41,20)).
  3522. SUBSTRING(VZeile,001) = FormText[05].
  3523. SUBSTRING(VZeile,071) = FormText[06].
  3524. StBreite = LENGTH(VZeile).
  3525. /*
  3526. RZeile = FILL('|', Breite).
  3527. SUBSTRING(RZeile,001) = STRING(' ',"x(06)").
  3528. SUBSTRING(RZeile,008) = STRING(' ',"x(03)").
  3529. SUBSTRING(RZeile,012) = STRING(' ',"x(08)").
  3530. SUBSTRING(RZeile,021) = STRING(' ',"x(05)").
  3531. SUBSTRING(RZeile,027) = STRING(' ',"x(08)").
  3532. SUBSTRING(RZeile,036) = STRING(' ',"x(35)").
  3533. SUBSTRING(RZeile,072) = STRING(' ',"x(02)").
  3534. SUBSTRING(RZeile,075) = STRING(' ',"x(07)").
  3535. SUBSTRING(RZeile,083) = STRING(' ',"x(10)").
  3536. SUBSTRING(RZeile,094) = STRING(' ',"x(02)").
  3537. RZeile = SUBSTRING(RZeile,01,StBreite).
  3538. */
  3539. VZeile = ''.
  3540. END PROCEDURE.
  3541. /* _UIB-CODE-BLOCK-END */
  3542. &ANALYZE-RESUME
  3543. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK C-Win
  3544. PROCEDURE LIEFERFAK :
  3545. /*------------------------------------------------------------------------------
  3546. Purpose:
  3547. Parameters: <none>
  3548. Notes:
  3549. ------------------------------------------------------------------------------*/
  3550. DEF VAR cPDFName AS CHAR INIT '' NO-UNDO.
  3551. DEF VAR xString AS CHAR NO-UNDO.
  3552. DEF VAR lFirst AS LOG NO-UNDO.
  3553. DEF VAR cString AS CHAR NO-UNDO.
  3554. VSeite = 0.
  3555. VFak_Betr = 0.
  3556. FPreis = TRUE.
  3557. RUN AUFTRAGSTOTAL ( BAufko.Aufnr, OUTPUT cString ).
  3558. RUN VIPER_INIT ( 'LieferFak' ).
  3559. IF RETURN-VALUE = 'ERROR' THEN RETURN 'ERROR'.
  3560. RUN vpr_SetPrinterAttrib('copies=2').
  3561. RUN LIEFERFAK_KOPF.
  3562. iArtZeile = 0.
  3563. iVPagePos = vpr_getPageVPos() + 50.
  3564. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
  3565. FOR EACH tAufze NO-LOCK
  3566. BY tAufze.Aufnr
  3567. BY tAufze.Sort1
  3568. BY tAufze.LagOrt
  3569. BY tAufze.Sort2
  3570. BY tAufze.Pos :
  3571. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  3572. RUN VIPER_ARTIKELZEILE ( RECID(tAufze) ).
  3573. VFak_Betr = VFak_Betr + Aufze.Net_Betr.
  3574. END.
  3575. IF FPreis = TRUE THEN DO:
  3576. iArtZeile = iArtZeile + 1.
  3577. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
  3578. iArtZeile = iArtZeile + 1.
  3579. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(SUBSTRING(FormText[15],21,20)) ).
  3580. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
  3581. END.
  3582. iArtZeile = iArtZeile + 1.
  3583. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', ' ' ).
  3584. RUN VIPER_AUSGABE_ARTIKELZEILE.
  3585. /* Auftragsrabatt ---------------------------------------------------- */
  3586. iArtZeile = 0.
  3587. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
  3588. BY TRabSumm.Rab_Summ:
  3589. Rundbetr = TRabSumm.Auf_Rab.
  3590. VFak_Betr = VFak_Betr - Rundbetr.
  3591. iArtZeile = iArtZeile + 1.
  3592. xString = TRIM(SUBSTRING(FormText[11],01,20))
  3593. + " "
  3594. + TRabSumm.Bez.
  3595. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  3596. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
  3597. END.
  3598. /* Abholrabatt ------------------------------------------------------- */
  3599. FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
  3600. BY TRabSumm.Rab_Summ:
  3601. Rundbetr = TRabSumm.Abh_Rab.
  3602. VFak_Betr = VFak_Betr - Rundbetr.
  3603. iArtZeile = iArtZeile + 1.
  3604. xString = TRIM(SUBSTRING(FormText[15],01,20))
  3605. + " "
  3606. + TRabSumm.Bez.
  3607. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  3608. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
  3609. END.
  3610. IF iArtZeile > 0 THEN DO:
  3611. iArtZeile = iArtZeile + 1.
  3612. xString = TRIM(SUBSTRING(FormText[14],21,20)).
  3613. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  3614. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
  3615. iArtZeile = iArtZeile + 1.
  3616. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
  3617. END.
  3618. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
  3619. /* Recycling-Gebuehren ----------------------------------------------- */
  3620. iArtZeile = 0.
  3621. FOR EACH AufGKon USE-INDEX AufGKon-k1
  3622. WHERE AufGKon.Firma = BAufko.Firma
  3623. AND AufGKon.Aufnr = BAufko.Aufnr
  3624. AND AufGKon.Gebuehr <> 0
  3625. AND AufGKon.Betrag <> 0 NO-LOCK:
  3626. FIND GebKonto OF AufGKon NO-LOCK NO-ERROR.
  3627. IF NOT AVAILABLE GebKonto THEN xString = TRIM(SUBSTRING(FormText[11],41,20)).
  3628. ELSE xString = GebKonto.Bez.
  3629. VWC = AufGKon.MWST_Cd.
  3630. VFak_Betr = VFak_Betr + AufGKon.Betrag.
  3631. iArtZeile = iArtZeile + 1.
  3632. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  3633. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(AufGKon.Betrag,'->>>,>>9.999')) ).
  3634. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC', STRING(AufGKon.MWSt_Cd,'z9') ).
  3635. END.
  3636. IF iArtZeile > 0 THEN DO:
  3637. iArtZeile = iArtZeile + 1.
  3638. xString = TRIM(SUBSTRING(FormText[14],41,20)).
  3639. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  3640. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.999')) ).
  3641. iArtZeile = iArtZeile + 1.
  3642. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
  3643. END.
  3644. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
  3645. /* Gebinde Aus- und Eingänge ---------------------------------------- */
  3646. FOR EACH AufGKon USE-INDEX AufGKon-k1
  3647. WHERE AufGKon.Firma = BAufko.Firma
  3648. AND AufGKon.Aufnr = BAufko.Aufnr
  3649. AND AufGKon.Depot <> 0
  3650. AND AufGKon.Betrag <> 0 NO-LOCK:
  3651. FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR.
  3652. IF NOT AVAILABLE TGebKto THEN DO:
  3653. FIND GebKonto USE-INDEX GebKonto-k1
  3654. WHERE GebKonto.Firma = AufGKon.Firma
  3655. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK.
  3656. CREATE TGebKto.
  3657. ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd
  3658. TGebKto.Geb_Cd = GebKonto.Geb_Cd
  3659. TGebKto.Bez = GebKonto.Bez
  3660. TGebKto.Preis = AufGKon.Depot
  3661. TGebKto.MWST_Cd = AufGKon.MWSt_Cd.
  3662. END.
  3663. TGebKto.A_Anz = TGebKto.A_Anz + AufGKon.Ausgang.
  3664. TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis.
  3665. TGebKto.E_Anz = TGebKto.E_Anz + AufGKon.Eingang.
  3666. TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis.
  3667. END.
  3668. /* Gebindelieferungen ------------------------------------------------ */
  3669. VZTot = 0.
  3670. iArtZeile = 0.
  3671. FOR EACH AufGKon USE-INDEX AufGKon-k1
  3672. WHERE AufGKon.Firma = BAufko.Firma
  3673. AND AufGKon.Aufnr = BAufko.Aufnr
  3674. AND AufGKon.Depot <> 0
  3675. AND (AufGKon.Eingang <> 0 OR
  3676. AufGKon.Ausgang <> 0) NO-LOCK
  3677. BREAK BY AufgKon.Firma
  3678. BY AufGKon.Aufnr:
  3679. FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1
  3680. WHERE GebKonto.Firma = GVFirma
  3681. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd.
  3682. i1 = AufGKon.Ausgang - AufGKon.Eingang.
  3683. Rundbetr = AufGKon.Betrag.
  3684. VWC = AufGKon.MWSt_Cd.
  3685. VZTot = VZTot + Rundbetr.
  3686. iArtZeile = iArtZeile + 1.
  3687. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'Gebindetext' , GebKonto.Bez ).
  3688. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeGel' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ).
  3689. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeRet' , TRIM(STRING(AufGKon.Eingang,"->>,>>9")) ).
  3690. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeSaldo', TRIM(STRING(i1 ,"->>,>>9")) ).
  3691. IF FPreis THEN
  3692. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeBetr' , TRIM(STRING(Rundbetr ,"->>,>>9.999")) ).
  3693. END.
  3694. IF FPreis AND
  3695. iArtZeile > 0 THEN RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeTot' , TRIM(STRING(VZTot,"->>,>>9.999")) ).
  3696. VFak_Betr = VFak_Betr + VZTot.
  3697. IF iArtZeile > 0 THEN RUN VIPER_AUSGABE_GRUPPE ('Gebindeabrechnung').
  3698. /* Auftragstext ------------------------------------------------------ */
  3699. XAuf_Text = BAufko.Auf_Text.
  3700. IF XAuf_Text <> '' THEN DO:
  3701. iVPagePos = vpr_getPageVPos() + 20.
  3702. RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ).
  3703. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
  3704. RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ).
  3705. RUN vpr_flushGroup ('Zusatztext').
  3706. END.
  3707. END.
  3708. /* Mehrwertsteuer ---------------------------------------------------- */
  3709. VWpfl = 0.
  3710. VWust = 0.
  3711. i1 = 2.
  3712. DO ix = 1 TO 11:
  3713. IF BAufko.WPfl[ix] = 0 THEN NEXT.
  3714. VWpfl[ix] = BAufko.Wpfl[ix].
  3715. VWust[ix] = BAufko.Wust[ix].
  3716. VFak_Betr = VFak_Betr + VWust[ix].
  3717. i1 = i1 + 1.
  3718. END.
  3719. iVPagePos = vpr_getPageVPos().
  3720. iVGroupPos = vpr_getGroupVPos('Gebindetabelle').
  3721. IF iVPagePos > (iVGroupPos - (i1 * 40)) THEN DO:
  3722. RUN VIPER_NEUE_SEITE.
  3723. RUN VIPER_ADRESSE ('').
  3724. END.
  3725. iArtZeile = 0.
  3726. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', 1, 'MwstBez' , ' ' ).
  3727. DO ix = 1 TO 11:
  3728. IF VWpfl[ix] = 0 THEN NEXT.
  3729. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  3730. WHERE MWSTAns.MWST_Cd = ix
  3731. AND MWSTAns.Datum <= BAufko.Kond_Datum NO-LOCK.
  3732. iArtZeile = iArtZeile + 1.
  3733. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , MWStAns.Bez ).
  3734. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstPfl' , TRIM(STRING(VWpfl[ix],"->>,>>9.99")) ).
  3735. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBetr', TRIM(STRING(VWust[ix],"->>>,>>9.99")) ).
  3736. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstCd' , TRIM(STRING(ix ,"->>,>>9")) ).
  3737. END.
  3738. RUN VIPER_AUSGABE_GRUPPE ( 'Mehrwertsteuer' ).
  3739. /* Rechnungsbetrag --------------------------------------------------- */
  3740. Rundbetr = VFak_Betr.
  3741. Rundcode = 1.
  3742. RUN RUNDEN ( Rundcode, INPUT-OUTPUT Rundbetr ).
  3743. VFak_Betr = Rundbetr.
  3744. iArtZeile = 1.
  3745. RUN VIPER_CREATE_DOKUMENT ( 'RechnungsTotal', iArtZeile, 'EndBetrag', TRIM(STRING(VFak_Betr,"->>>,>>9.99")) ).
  3746. RUN VIPER_AUSGABE_GRUPPE ( 'RechnungsTotal' ).
  3747. /* ------ RUECKSTAENDE ---------------------------------------------------- */
  3748. DO WHILE TRUE:
  3749. FIND FIRST tRueckst NO-ERROR.
  3750. IF NOT AVAILABLE tRueckst THEN LEAVE.
  3751. iVPagePos = vpr_getPageVPos() + 150.
  3752. IF iVPagePos > iVMaxPos THEN DO:
  3753. RUN VIPER_NEUE_SEITE.
  3754. RUN VIPER_ADRESSE ('').
  3755. END.
  3756. cString = 'Rückstände bitte neu bestellen'.
  3757. iVPagePos = vpr_getPageVPos() + 50.
  3758. RUN vpr_setGroupVPos ('Rueckstand', iVPagePos ).
  3759. RUN vpr_setCellText ('RueckTitel', 'Rueckstand', cString ).
  3760. RUN vpr_flushGroup ('Rueckstand').
  3761. iArtZeile = 1.
  3762. FOR EACH tRueckst:
  3763. RUN VIPER_RUECKSTAND ( RECID(tRueckst) ).
  3764. END.
  3765. RUN VIPER_AUSGABE_ARTIKELZEILE.
  3766. LEAVE.
  3767. END.
  3768. /* Gebinderücknahmetabelle ------------------------------------------- */
  3769. iVPagePos = vpr_getPageVPos().
  3770. iVGroupPos = vpr_getGroupVPos('Gebindetabelle').
  3771. IF iVPagePos < iVGroupPos THEN RUN vpr_flushGroup('Gebindetabelle').
  3772. ELSE DO:
  3773. RUN VIPER_NEUE_SEITE.
  3774. RUN VIPER_ADRESSE ('').
  3775. RUN vpr_flushGroup('Gebindetabelle').
  3776. END.
  3777. /* ------------------------------------------------------ */
  3778. /* Druckausgabe */
  3779. /* ------------------------------------------------------ */
  3780. RUN vpr_EndDoc.
  3781. IF SESSION:PRINTER-NAME <> F_Drucker THEN DO:
  3782. RUN vpr_printerDialog ( OUTPUT ja ).
  3783. IF NOT ja THEN RETURN.
  3784. END.
  3785. ELSE DO:
  3786. RUN vpr_selectPrinter(SESSION:PRINTER-NAME).
  3787. END.
  3788. RUN vpr_printDoc (0, 0).
  3789. cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_&3',
  3790. STRING(BAufko.Knr ,'999999'),
  3791. STRING(BAufko.Aufnr,'999999'),
  3792. cvpr_Dokument).
  3793. cPDFName = REPLACE(cvpr_Dokument, '.vpr', '.pdf').
  3794. RUN vpr_printPDF (0, 0, INPUT-OUTPUT cPDFName ).
  3795. RUN vpr_SaveDoc ( cvpr_Dokument ).
  3796. /*
  3797. RUN vpr_ShowDoc.
  3798. RUN vpr_showPreview.
  3799. DEF VAR o-i AS i NO-UNDO.
  3800. RUN shellExecuteA (0,
  3801. "open",
  3802. cPDFName,
  3803. "",
  3804. "",
  3805. 0,
  3806. OUTPUT o-i).
  3807. */
  3808. VesrKnr = BAufko.Fak_Knr.
  3809. VesrFnr = BAufko.Faknr.
  3810. VBesr = 4.
  3811. Rundbetr = 0.
  3812. CASE VBesr:
  3813. WHEN 1 THEN RUN VESR_DRUCK01.
  3814. WHEN 2 THEN RUN VESR_DRUCK02.
  3815. WHEN 3 THEN RUN VESR_DRUCK03.
  3816. WHEN 4 THEN RUN VESR_DRUCK04.
  3817. END CASE.
  3818. RUN KOPF_MUTATION.
  3819. END PROCEDURE.
  3820. /* _UIB-CODE-BLOCK-END */
  3821. &ANALYZE-RESUME
  3822. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK_KOPF C-Win
  3823. PROCEDURE LIEFERFAK_KOPF :
  3824. /*------------------------------------------------------------------------------
  3825. Purpose:
  3826. Parameters: <none>
  3827. Notes:
  3828. ------------------------------------------------------------------------------*/
  3829. DEF VAR kk AS INT NO-UNDO.
  3830. DEF VAR xString AS CHAR NO-UNDO.
  3831. DEF VAR cText AS CHAR NO-UNDO.
  3832. RUN VIPER_NEUE_SEITE.
  3833. IF VSeite = 1 THEN DO:
  3834. REPEAT WHILE BAufko.Faknr = 0 TRANSACTION:
  3835. RUN "v8/steunr.p" ( INPUT 2, OUTPUT VFaknr ).
  3836. IF RETURN-VALUE <> '' THEN NEXT.
  3837. FIND Aufko WHERE RECID(Aufko) = RECID(BAufko).
  3838. Aufko.Faknr = VFaknr.
  3839. RELEASE Aufko.
  3840. END.
  3841. SFaknr = BAufko.Faknr.
  3842. FIND Adresse USE-INDEX Adresse-k1
  3843. WHERE Adresse.Firma = AdFirma
  3844. AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  3845. FIND LDebst USE-INDEX Debst-k1
  3846. WHERE LDebst.Firma = GVFirma
  3847. AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  3848. FIND FDebst USE-INDEX Debst-k1
  3849. WHERE FDebst.Firma = GVFirma
  3850. AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  3851. FIND Wust USE-INDEX Wust-k1
  3852. WHERE Wust.CodeK = LDebst.MWST
  3853. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  3854. LVSprcd = Adresse.Sprcd.
  3855. DebInkl = FALSE.
  3856. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  3857. VBesrKopf = ''.
  3858. IF BAufko.Adresse[05] <> '' THEN DO:
  3859. i1 = 6.
  3860. DO ix = 1 TO 5:
  3861. CREATE tDokument.
  3862. ASSIGN tDokument.cGruppe = 'KOPF'
  3863. tDokument.iZeile = 1
  3864. tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99')
  3865. tDokument.cInhalt = BAufko.Adresse[ix].
  3866. i1 = i1 + 1.
  3867. VBesrKopf[i1] = BAufko.Adresse[ix].
  3868. END.
  3869. END.
  3870. ELSE DO:
  3871. DO ix = 5 TO 11:
  3872. CREATE tDokument.
  3873. ASSIGN tDokument.cGruppe = 'KOPF'
  3874. tDokument.iZeile = 1
  3875. tDokument.cFeld = 'Adresse_' + STRING(ix,'99')
  3876. tDokument.cInhalt = Adresse.Anschrift[ix].
  3877. VBesrKopf[ix] = Adresse.Anschrift[ix].
  3878. END.
  3879. END.
  3880. CREATE tDokument.
  3881. ASSIGN tDokument.cGruppe = 'KOPF'
  3882. tDokument.iZeile = 1
  3883. tDokument.cFeld = 'Ort_Datum'
  3884. tDokument.cInhalt = TRIM(SUBSTRING(FormText[07],01,20))
  3885. + " "
  3886. + STRING(FDatum,"99.99.9999").
  3887. CREATE tDokument.
  3888. ASSIGN tDokument.cGruppe = 'KOPF'
  3889. tDokument.iZeile = 1
  3890. tDokument.cFeld = 'T_Dokument'
  3891. tDokument.cInhalt = (IF BAufko.Auf_Tot >= 0
  3892. THEN TRIM(SUBSTRING(FormText[02],01,20))
  3893. ELSE TRIM(SUBSTRING(FormText[02],21,20))).
  3894. CREATE tDokument.
  3895. ASSIGN tDokument.cGruppe = 'KOPF'
  3896. tDokument.iZeile = 1
  3897. tDokument.cFeld = 'Aufnr'
  3898. tDokument.cInhalt = STRING(SFaknr,'z999999').
  3899. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR.
  3900. CREATE tDokument.
  3901. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  3902. tDokument.iZeile = 1
  3903. tDokument.cFeld = 'Ablade'
  3904. tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld3 ELSE ' ').
  3905. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'FAHRER' NO-ERROR.
  3906. CREATE tDokument.
  3907. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  3908. tDokument.iZeile = 1
  3909. tDokument.cFeld = 'Chauffeur'
  3910. tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld1 ELSE ' ').
  3911. CREATE tDokument.
  3912. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  3913. tDokument.iZeile = 1
  3914. tDokument.cFeld = 'Auf_Datum'
  3915. tDokument.cInhalt = STRING(BAufko.Auf_Datum,'99.99.9999').
  3916. CREATE tDokument.
  3917. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  3918. tDokument.iZeile = 1
  3919. tDokument.cFeld = 'Lief_Datum'
  3920. tDokument.cInhalt = STRING(BAufko.Lief_Datum,'99.99.9999').
  3921. CREATE tDokument.
  3922. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  3923. tDokument.iZeile = 1
  3924. tDokument.cFeld = 'U_Ref'
  3925. tDokument.cInhalt = BAufko.U_Ref.
  3926. CREATE tDokument.
  3927. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  3928. tDokument.iZeile = 1
  3929. tDokument.cFeld = 'Knr'
  3930. tDokument.cInhalt = STRING(BAufko.Knr,'999999').
  3931. cText = ''.
  3932. cText = (IF Adresse.Tel-1 <> '' THEN Adresse.Tel-1 ELSE Adresse.Tel-2).
  3933. IF Adresse.Natel <> '' THEN cText = cText
  3934. + (IF cText = '' THEN '' ELSE ' / ')
  3935. + Adresse.Natel.
  3936. CREATE tDokument.
  3937. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  3938. tDokument.iZeile = 1
  3939. tDokument.cFeld = 'Telefon'
  3940. tDokument.cInhalt = cText.
  3941. CREATE tDokument.
  3942. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  3943. tDokument.iZeile = 1
  3944. tDokument.cFeld = 'Gewicht'
  3945. tDokument.cInhalt = TRIM(STRING(BAufko.Gewicht,'->>>,>>9.999')).
  3946. END.
  3947. RUN VIPER_ADRESSE ( xString ).
  3948. IF VSeite = 1 AND
  3949. BAufko.Abh_Text <> '' THEN DO:
  3950. XAuf_Text = BAufko.Abh_Text.
  3951. iVPagePos = vpr_getPageVPos() + 20.
  3952. RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ).
  3953. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
  3954. RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ).
  3955. RUN vpr_flushGroup ('Zusatztext').
  3956. END.
  3957. END.
  3958. END PROCEDURE.
  3959. /* _UIB-CODE-BLOCK-END */
  3960. &ANALYZE-RESUME
  3961. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERPREIS C-Win
  3962. PROCEDURE LIEFERPREIS :
  3963. /*------------------------------------------------------------------------------
  3964. Purpose:
  3965. Parameters: <none>
  3966. Notes:
  3967. ------------------------------------------------------------------------------*/
  3968. FPreis = TRUE.
  3969. RUN LIEFERSCHEIN.
  3970. END PROCEDURE.
  3971. /* _UIB-CODE-BLOCK-END */
  3972. &ANALYZE-RESUME
  3973. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERSCHEIN C-Win
  3974. PROCEDURE LIEFERSCHEIN :
  3975. /*------------------------------------------------------------------------------
  3976. Purpose:
  3977. Parameters: <none>
  3978. Notes:
  3979. ------------------------------------------------------------------------------*/
  3980. DEF VAR cPDFName AS CHAR INIT '' NO-UNDO.
  3981. DEF VAR xString AS CHAR NO-UNDO.
  3982. DEF VAR lFirst AS LOG NO-UNDO.
  3983. DEF VAR cString AS CHAR NO-UNDO.
  3984. VSeite = 0.
  3985. VFak_Betr = 0.
  3986. RUN VIPER_INIT ( 'Lieferschein' ).
  3987. IF RETURN-VALUE = 'ERROR' THEN RETURN 'ERROR'.
  3988. RUN vpr_SetPrinterAttrib('copies=2').
  3989. RUN LIEFERSCHEIN_KOPF.
  3990. iArtZeile = 0.
  3991. iVPagePos = vpr_getPageVPos() + 20.
  3992. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
  3993. FOR EACH tAufze NO-LOCK
  3994. BY tAufze.Aufnr
  3995. BY tAufze.Sort1
  3996. BY tAufze.LagOrt
  3997. BY tAufze.Sort2
  3998. BY tAufze.Pos :
  3999. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  4000. RUN VIPER_ARTIKELZEILE ( RECID(tAufze) ).
  4001. VFak_Betr = VFak_Betr + Aufze.Net_Betr.
  4002. END.
  4003. IF FPreis = TRUE THEN DO:
  4004. iArtZeile = iArtZeile + 1.
  4005. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ).
  4006. iArtZeile = iArtZeile + 1.
  4007. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(SUBSTRING(FormText[15],21,20)) ).
  4008. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
  4009. END.
  4010. iArtZeile = iArtZeile + 1.
  4011. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', ' ' ).
  4012. RUN VIPER_AUSGABE_ARTIKELZEILE.
  4013. /* Auftragsrabatt ---------------------------------------------------- */
  4014. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
  4015. BY TRabSumm.Rab_Summ:
  4016. Rundbetr = TRabSumm.Auf_Rab.
  4017. VFak_Betr = VFak_Betr - Rundbetr.
  4018. END.
  4019. /* Abholrabatt ------------------------------------------------------- */
  4020. FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
  4021. BY TRabSumm.Rab_Summ:
  4022. Rundbetr = TRabSumm.Abh_Rab.
  4023. VFak_Betr = VFak_Betr - Rundbetr.
  4024. END.
  4025. /* Recycling-Gebuehren ----------------------------------------------- */
  4026. FOR EACH AufGKon USE-INDEX AufGKon-k1
  4027. WHERE AufGKon.Firma = BAufko.Firma
  4028. AND AufGKon.Aufnr = BAufko.Aufnr
  4029. AND AufGKon.Gebuehr <> 0
  4030. AND AufGKon.Betrag <> 0 NO-LOCK:
  4031. VWC = AufGKon.MWST_Cd.
  4032. VFak_Betr = VFak_Betr + AufGKon.Betrag.
  4033. WW[VWC] = WW[VWC] + AufGKon.Betrag.
  4034. END.
  4035. /* Gebinde Aus- und Eingänge ---------------------------------------- */
  4036. FOR EACH AufGKon USE-INDEX AufGKon-k1
  4037. WHERE AufGKon.Firma = BAufko.Firma
  4038. AND AufGKon.Aufnr = BAufko.Aufnr
  4039. AND AufGKon.Depot <> 0
  4040. AND AufGKon.Betrag <> 0 NO-LOCK:
  4041. FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR.
  4042. IF NOT AVAILABLE TGebKto THEN DO:
  4043. FIND GebKonto USE-INDEX GebKonto-k1
  4044. WHERE GebKonto.Firma = AufGKon.Firma
  4045. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK.
  4046. CREATE TGebKto.
  4047. ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd
  4048. TGebKto.Geb_Cd = GebKonto.Geb_Cd
  4049. TGebKto.Bez = GebKonto.Bez
  4050. TGebKto.Preis = AufGKon.Depot
  4051. TGebKto.MWST_Cd = AufGKon.MWSt_Cd.
  4052. END.
  4053. TGebKto.A_Anz = TGebKto.A_Anz + AufGKon.Ausgang.
  4054. TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis.
  4055. TGebKto.E_Anz = TGebKto.E_Anz + AufGKon.Eingang.
  4056. TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis.
  4057. END.
  4058. /* Gebindelieferungen ------------------------------------------------ */
  4059. VZTot = 0.
  4060. iArtZeile = 0.
  4061. FOR EACH AufGKon USE-INDEX AufGKon-k1
  4062. WHERE AufGKon.Firma = BAufko.Firma
  4063. AND AufGKon.Aufnr = BAufko.Aufnr
  4064. AND AufGKon.Depot <> 0
  4065. AND (AufGKon.Eingang <> 0 OR
  4066. AufGKon.Ausgang <> 0) NO-LOCK
  4067. BREAK BY AufgKon.Firma
  4068. BY AufGKon.Aufnr:
  4069. FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1
  4070. WHERE GebKonto.Firma = GVFirma
  4071. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd.
  4072. i1 = AufGKon.Ausgang - AufGKon.Eingang.
  4073. Rundbetr = AufGKon.Betrag.
  4074. VWC = AufGKon.MWSt_Cd.
  4075. VZTot = VZTot + Rundbetr.
  4076. iArtZeile = iArtZeile + 1.
  4077. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'Gebindetext' , GebKonto.Bez ).
  4078. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeGel' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ).
  4079. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeRet' , TRIM(STRING(AufGKon.Eingang,"->>,>>9")) ).
  4080. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeSaldo', TRIM(STRING(i1 ,"->>,>>9")) ).
  4081. IF FPreis THEN
  4082. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeBetr' , TRIM(STRING(Rundbetr ,"->>,>>9.999")) ).
  4083. END.
  4084. IF FPreis AND
  4085. iArtZeile > 0 THEN
  4086. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeTot' , TRIM(STRING(VZTot ,"->>>,>>9.999")) ).
  4087. VFak_Betr = VFak_Betr + VZTot.
  4088. IF iArtZeile > 0 THEN RUN VIPER_AUSGABE_GRUPPE ('Gebindeabrechnung').
  4089. /* Auftragstext ------------------------------------------------------ */
  4090. XAuf_Text = BAufko.Auf_Text.
  4091. IF XAuf_Text <> '' THEN DO:
  4092. iVPagePos = vpr_getPageVPos() + 20.
  4093. RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ).
  4094. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
  4095. RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ).
  4096. RUN vpr_flushGroup ('Zusatztext').
  4097. END.
  4098. END.
  4099. /* ------ RUECKSTAENDE ---------------------------------------------------- */
  4100. DO WHILE TRUE:
  4101. FIND FIRST tRueckst NO-ERROR.
  4102. IF NOT AVAILABLE tRueckst THEN LEAVE.
  4103. iVPagePos = vpr_getPageVPos() + 150.
  4104. IF iVPagePos > iVMaxPos THEN DO:
  4105. RUN VIPER_NEUE_SEITE.
  4106. RUN VIPER_ADRESSE ('').
  4107. END.
  4108. cString = 'Rückstände bitte neu bestellen'.
  4109. iVPagePos = vpr_getPageVPos() + 50.
  4110. RUN vpr_setGroupVPos ('Rueckstand', iVPagePos ).
  4111. RUN vpr_setCellText ('RueckTitel', 'Rueckstand', cString ).
  4112. RUN vpr_flushGroup ('Rueckstand').
  4113. iArtZeile = 1.
  4114. FOR EACH tRueckst:
  4115. RUN VIPER_RUECKSTAND ( RECID(tRueckst) ).
  4116. END.
  4117. RUN VIPER_AUSGABE_ARTIKELZEILE.
  4118. LEAVE.
  4119. END.
  4120. /* Gebinderücknahmetabelle ------------------------------------------- */
  4121. iVPagePos = vpr_getPageVPos().
  4122. iVGroupPos = vpr_getGroupVPos('Gebindetabelle').
  4123. IF iVPagePos < iVGroupPos THEN RUN vpr_flushGroup('Gebindetabelle').
  4124. ELSE DO:
  4125. RUN VIPER_NEUE_SEITE.
  4126. RUN VIPER_ADRESSE ('').
  4127. RUN vpr_flushGroup('Gebindetabelle').
  4128. END.
  4129. RUN KOPF_MUTATION.
  4130. /* ------------------------------------------------------ */
  4131. /* Druckausgabe */
  4132. /* ------------------------------------------------------ */
  4133. RUN vpr_EndDoc.
  4134. IF SESSION:PRINTER-NAME <> F_Drucker THEN DO:
  4135. RUN vpr_printerDialog ( OUTPUT ja ).
  4136. IF NOT ja THEN RETURN.
  4137. END.
  4138. ELSE DO:
  4139. RUN vpr_selectPrinter(SESSION:PRINTER-NAME).
  4140. END.
  4141. DO ix = 1 TO F_Kopie:
  4142. RUN vpr_printDoc (0, 0).
  4143. END.
  4144. cvpr_Dokument = SUBSTITUTE('Lieferscheine\&1-&2_&3',
  4145. STRING(BAufko.Knr ,'999999'),
  4146. STRING(BAufko.Aufnr,'999999'),
  4147. cvpr_Dokument).
  4148. cPDFName = REPLACE(cvpr_Dokument, '.vpr', '.pdf').
  4149. RUN vpr_printPDF (0, 0, INPUT-OUTPUT cPDFName ).
  4150. RUN vpr_SaveDoc ( cvpr_Dokument ).
  4151. /*
  4152. RUN vpr_ShowDoc.
  4153. RUN vpr_showPreview.
  4154. DEF VAR o-i AS i NO-UNDO.
  4155. RUN shellExecuteA (0,
  4156. "open",
  4157. cPDFName,
  4158. "",
  4159. "",
  4160. 0,
  4161. OUTPUT o-i).
  4162. */
  4163. END PROCEDURE.
  4164. /* _UIB-CODE-BLOCK-END */
  4165. &ANALYZE-RESUME
  4166. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERSCHEIN_KOPF C-Win
  4167. PROCEDURE LIEFERSCHEIN_KOPF :
  4168. /*------------------------------------------------------------------------------
  4169. Purpose:
  4170. Parameters: <none>
  4171. Notes:
  4172. ------------------------------------------------------------------------------*/
  4173. DEF VAR kk AS INT NO-UNDO.
  4174. DEF VAR xString AS CHAR NO-UNDO.
  4175. DEF VAR cText AS CHAR NO-UNDO.
  4176. RUN VIPER_NEUE_SEITE.
  4177. IF VSeite = 1 THEN DO:
  4178. SFaknr = BAufko.Aufnr.
  4179. EMPTY TEMP-TABLE tAdresse.
  4180. CREATE tAdresse.
  4181. FIND Adresse NO-LOCK USE-INDEX Adresse-k1
  4182. WHERE Adresse.Firma = AdFirma
  4183. AND Adresse.Knr = BAufko.Knr NO-ERROR.
  4184. BUFFER-COPY Adresse TO tAdresse.
  4185. FIND FIRST Ansprech NO-LOCK
  4186. WHERE Ansprech.Firma = AdFirma
  4187. AND Ansprech.Knr = BAufko.Knr
  4188. AND Ansprech.Lieferschein = TRUE NO-ERROR.
  4189. IF AVAILABLE Ansprech THEN DO:
  4190. BUFFER-COPY Ansprech TO tAdresse.
  4191. END.
  4192. FIND LDebst USE-INDEX Debst-k1
  4193. WHERE LDebst.Firma = GVFirma
  4194. AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  4195. FIND FDebst USE-INDEX Debst-k1
  4196. WHERE FDebst.Firma = GVFirma
  4197. AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  4198. FIND Wust USE-INDEX Wust-k1
  4199. WHERE Wust.CodeK = LDebst.MWST
  4200. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  4201. LVSprcd = tAdresse.Sprcd.
  4202. DebInkl = FALSE.
  4203. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  4204. IF BAufko.Adresse[05] <> '' THEN DO:
  4205. DO ix = 1 TO 5:
  4206. CREATE tDokument.
  4207. ASSIGN tDokument.cGruppe = 'KOPF'
  4208. tDokument.iZeile = 1
  4209. tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99')
  4210. tDokument.cInhalt = BAufko.Adresse[ix].
  4211. END.
  4212. END.
  4213. ELSE DO:
  4214. DO ix = 5 TO 11:
  4215. CREATE tDokument.
  4216. ASSIGN tDokument.cGruppe = 'KOPF'
  4217. tDokument.iZeile = 1
  4218. tDokument.cFeld = 'Adresse_' + STRING(ix,'99')
  4219. tDokument.cInhalt = tAdresse.Anschrift[ix].
  4220. END.
  4221. END.
  4222. CREATE tDokument.
  4223. ASSIGN tDokument.cGruppe = 'KOPF'
  4224. tDokument.iZeile = 1
  4225. tDokument.cFeld = 'Ort_Datum'
  4226. tDokument.cInhalt = TRIM(SUBSTRING(FormText[07],01,20))
  4227. + " "
  4228. + STRING(FDatum,"99.99.9999").
  4229. CREATE tDokument.
  4230. ASSIGN tDokument.cGruppe = 'KOPF'
  4231. tDokument.iZeile = 1
  4232. tDokument.cFeld = 'T_Dokument'
  4233. tDokument.cInhalt = (IF BAufko.Auf_Tot >= 0
  4234. THEN TRIM(SUBSTRING(FormText[02],01,20))
  4235. ELSE TRIM(SUBSTRING(FormText[02],21,20))).
  4236. CREATE tDokument.
  4237. ASSIGN tDokument.cGruppe = 'KOPF'
  4238. tDokument.iZeile = 1
  4239. tDokument.cFeld = 'Aufnr'
  4240. tDokument.cInhalt = STRING(SFaknr,'z999999').
  4241. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR.
  4242. CREATE tDokument.
  4243. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  4244. tDokument.iZeile = 1
  4245. tDokument.cFeld = 'Ablade'
  4246. tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld3 ELSE ' ').
  4247. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'FAHRER' NO-ERROR.
  4248. CREATE tDokument.
  4249. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  4250. tDokument.iZeile = 1
  4251. tDokument.cFeld = 'Chauffeur'
  4252. tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld1 ELSE ' ').
  4253. CREATE tDokument.
  4254. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  4255. tDokument.iZeile = 1
  4256. tDokument.cFeld = 'Auf_Datum'
  4257. tDokument.cInhalt = STRING(BAufko.Auf_Datum,'99.99.9999').
  4258. CREATE tDokument.
  4259. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  4260. tDokument.iZeile = 1
  4261. tDokument.cFeld = 'Lief_Datum'
  4262. tDokument.cInhalt = STRING(BAufko.Lief_Datum,'99.99.9999').
  4263. CREATE tDokument.
  4264. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  4265. tDokument.iZeile = 1
  4266. tDokument.cFeld = 'U_Ref'
  4267. tDokument.cInhalt = BAufko.U_Ref.
  4268. CREATE tDokument.
  4269. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  4270. tDokument.iZeile = 1
  4271. tDokument.cFeld = 'Knr'
  4272. tDokument.cInhalt = STRING(BAufko.Knr,'999999').
  4273. cText = ''.
  4274. cText = (IF tAdresse.Tel-1 <> '' THEN tAdresse.Tel-1 ELSE tAdresse.Tel-2).
  4275. IF tAdresse.Natel <> '' THEN cText = cText
  4276. + (IF cText = '' THEN '' ELSE ' / ')
  4277. + tAdresse.Natel.
  4278. CREATE tDokument.
  4279. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  4280. tDokument.iZeile = 1
  4281. tDokument.cFeld = 'Telefon'
  4282. tDokument.cInhalt = cText.
  4283. CREATE tDokument.
  4284. ASSIGN tDokument.cGruppe = 'KOPFDETAIL'
  4285. tDokument.iZeile = 1
  4286. tDokument.cFeld = 'Gewicht'
  4287. tDokument.cInhalt = TRIM(STRING(BAufko.Gewicht,'->>>,>>9.999')).
  4288. END.
  4289. RUN VIPER_ADRESSE ( xString ).
  4290. IF VSeite = 1 AND
  4291. BAufko.Abh_Text <> '' THEN DO:
  4292. XAuf_Text = BAufko.Abh_Text.
  4293. iVPagePos = vpr_getPageVPos() + 20.
  4294. RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ).
  4295. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
  4296. RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ).
  4297. RUN vpr_flushGroup ('Zusatztext').
  4298. END.
  4299. END.
  4300. END PROCEDURE.
  4301. /* _UIB-CODE-BLOCK-END */
  4302. &ANALYZE-RESUME
  4303. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUE_SEITE C-Win
  4304. PROCEDURE NEUE_SEITE :
  4305. /*------------------------------------------------------------------------------
  4306. Purpose:
  4307. Parameters: <none>
  4308. Notes:
  4309. ------------------------------------------------------------------------------*/
  4310. DEF VAR A AS INT NO-UNDO.
  4311. DEF VAR B AS INT NO-UNDO.
  4312. IF VSeite = 0 THEN DO:
  4313. EMPTY TEMP-TABLE tDokument.
  4314. END.
  4315. DO WHILE VSeite > 0:
  4316. IF DOpen THEN DO:
  4317. PUT STREAM Out_Stream CONTROL CHR(12).
  4318. LEAVE.
  4319. END.
  4320. A = BLiDruck.Listtzz.
  4321. DO B = VLine TO A:
  4322. VZNr = VZNr + 1.
  4323. CREATE XTermOut.
  4324. ASSIGN XTermOut.ZNr = VZNr
  4325. XTermOut.Zeile = ''.
  4326. END.
  4327. LEAVE.
  4328. END.
  4329. VLine = 0.
  4330. VSeite = VSeite + 1.
  4331. END PROCEDURE.
  4332. /* _UIB-CODE-BLOCK-END */
  4333. &ANALYZE-RESUME
  4334. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PRUEFZIFFER C-Win
  4335. PROCEDURE PRUEFZIFFER :
  4336. /*------------------------------------------------------------------------------
  4337. Purpose:
  4338. Parameters: <none>
  4339. Notes:
  4340. ------------------------------------------------------------------------------*/
  4341. /* ------------------------------------------------------------------------- */
  4342. /* Prufziffer MODULO 10, Rekursiv (27 Stellig Ref.-Nr.) */
  4343. /* ------------------------------------------------------------------------- */
  4344. /* */
  4345. /* Uebergabe Variable: 1. String Betrag (12-stellig) */
  4346. /* 2. String Referenz (27-stellig) */
  4347. /* 3. String Teilnehmernummer ( 9-stellig) */
  4348. /* */
  4349. /* Erstellung der VESR-Codierzeile */
  4350. /* */
  4351. /*---------------------------------------------------------------------------*/
  4352. DEF INPUT-OUTPUT PARAMETER PZBetrag AS CHAR FORMAT "x(13)".
  4353. DEF INPUT-OUTPUT PARAMETER PZReferenz AS CHAR FORMAT "x(27)".
  4354. DEF INPUT-OUTPUT PARAMETER PZTNummer AS CHAR FORMAT "x(09)".
  4355. DEF OUTPUT PARAMETER VSZeile AS CHAR FORMAT "x(58)".
  4356. DEF VAR l1 AS INT.
  4357. DEF VAR l2 AS INT.
  4358. DEF VAR l3 AS INT.
  4359. DEF VAR PZ AS INT.
  4360. DEF VAR x1 AS INT.
  4361. DEF VAR x2 AS INT.
  4362. DEF VAR x3 AS INT.
  4363. DEF VAR VMOD10 AS CHAR FORMAT "x(11)" EXTENT 11.
  4364. VMOD10[01] = "09468271350".
  4365. VMOD10[02] = "94682713509".
  4366. VMOD10[03] = "46827135098".
  4367. VMOD10[04] = "68271350947".
  4368. VMOD10[05] = "82713509466".
  4369. VMOD10[06] = "27135094685".
  4370. VMOD10[07] = "71350946824".
  4371. VMOD10[08] = "13509468273".
  4372. VMOD10[09] = "35094682712".
  4373. VMOD10[10] = "50946827131".
  4374. l1 = 12.
  4375. l2 = 26.
  4376. l3 = 08.
  4377. DO WHILE SUBSTRING(PZBetrag,01,01) <> " ": /* Mit Betrag */
  4378. x2 = 1.
  4379. x1 = INT(SUBSTRING(PZBetrag ,01 ,01)).
  4380. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  4381. DO x3 = 2 TO 12:
  4382. x1 = INT(SUBSTRING(PZBetrag ,x3 ,01)).
  4383. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  4384. END.
  4385. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  4386. SUBSTRING(PZBetrag,13) = STRING(PZ,"9").
  4387. LEAVE.
  4388. END.
  4389. DO WHILE SUBSTRING(PZBetrag,01,01) = " ": /* Ohne Betrag */
  4390. x2 = 11.
  4391. x1 = INT(SUBSTRING(PZBetrag ,01 ,01)).
  4392. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  4393. DO x3 = 12 TO 12:
  4394. x1 = INT(SUBSTRING(PZBetrag ,x3 ,01)).
  4395. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  4396. END.
  4397. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  4398. SUBSTRING(PZBetrag,13) = STRING(PZ,"9").
  4399. LEAVE.
  4400. END.
  4401. DO WHILE l2 = 26:
  4402. x2 = 1.
  4403. x1 = INT(SUBSTRING(PZReferenz,01 ,01)).
  4404. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  4405. DO x3 = 2 TO 26:
  4406. x1 = INT(SUBSTRING(PZReferenz ,x3 ,01)).
  4407. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  4408. END.
  4409. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  4410. SUBSTRING(PZReferenz,27) = STRING(PZ,"9").
  4411. LEAVE.
  4412. END.
  4413. DO WHILE l3 = 08:
  4414. x2 = 1.
  4415. x1 = INT(SUBSTRING(PZTNummer ,01 ,01)).
  4416. x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)).
  4417. DO x3 = 2 TO 08:
  4418. x1 = INT(SUBSTRING(PZTNummer ,x3 ,01)).
  4419. x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)).
  4420. END.
  4421. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)).
  4422. SUBSTRING(PZTNummer,09) = STRING(PZ,"9").
  4423. LEAVE.
  4424. END.
  4425. VSZeile = "".
  4426. SUBSTRING(VSZeile,01) = PZBetrag.
  4427. SUBSTRING(VSZeile,14) = ">".
  4428. SUBSTRING(VSZeile,15) = PZReferenz.
  4429. SUBSTRING(VSZeile,42) = "+ ".
  4430. SUBSTRING(VSZeile,44) = PZTNummer.
  4431. SUBSTRING(VSZeile,53) = ">".
  4432. /*
  4433. SUBSTRING(VSZeile,58) = "H".
  4434. */
  4435. END PROCEDURE.
  4436. /* _UIB-CODE-BLOCK-END */
  4437. &ANALYZE-RESUME
  4438. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RUEST C-Win
  4439. PROCEDURE RUEST :
  4440. /*------------------------------------------------------------------------------
  4441. Purpose:
  4442. Parameters: <none>
  4443. Notes:
  4444. ------------------------------------------------------------------------------*/
  4445. VSeite = 0.
  4446. VFak_Betr = 0.
  4447. FPreis = FALSE.
  4448. lRuestText = FALSE.
  4449. FOR EACH tAufze NO-LOCK
  4450. BREAK BY tAufze.Aufnr
  4451. BY tAufze.Sort1
  4452. BY tAufze.Sort2
  4453. BY tAufze.Sort3
  4454. BY tAufze.Pos :
  4455. IF FIRST-OF ( tAufze.Sort1 ) THEN DO:
  4456. /*
  4457. TiDruck = TRUE.
  4458. */
  4459. END.
  4460. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz OR
  4461. TiDruck THEN DO:
  4462. RUN RUEST_KOPF ( tAufze.Aufnr, tAufze.Sort1 ).
  4463. END.
  4464. IF FIRST-OF ( tAufze.Sort1 ) AND
  4465. NOT tAufze.Sort1 BEGINS 'aa' THEN DO:
  4466. VZeile = ''.
  4467. { v8/putstream.i "1" }
  4468. VZeile = FILL('=', 95).
  4469. CASE tAufze.Sort1:
  4470. WHEN 'za' THEN SUBSTRING(VZeile,30) = ' OBERGESCHOSS '.
  4471. WHEN 'zb' THEN SUBSTRING(VZeile,30) = ' ERDGESCHOSS '.
  4472. WHEN 'zc' THEN SUBSTRING(VZeile,30) = ' UNTERGESCHOSS '.
  4473. WHEN 'zz' THEN SUBSTRING(VZeile,30) = ' SPIRITUOSEN '.
  4474. END.
  4475. { v8/putstream.i "2" }
  4476. END.
  4477. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  4478. RUN ARTIKELZEILE_RUEST ( RECID(tAufze) ).
  4479. VFak_Betr = VFak_Betr + Aufze.Net_Betr.
  4480. /*
  4481. IF LAST-OF ( tAufze.Sort1) THEN DO:
  4482. IF tAufze.Sort1 BEGINS 'aa' THEN lRuesttext = TRUE.
  4483. IF NOT LAST-OF ( tAufze.Aufnr ) AND
  4484. NOT lRuesttext THEN DO:
  4485. VZeile = ''.
  4486. { v8/putstream.i "1" }
  4487. VZeile = FILL('=', 95).
  4488. { v8/putstream.i "2" }
  4489. END.
  4490. END.
  4491. */
  4492. END.
  4493. { v8/putstream.i "1" }
  4494. END PROCEDURE.
  4495. /* _UIB-CODE-BLOCK-END */
  4496. &ANALYZE-RESUME
  4497. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RUESTSCHEIN C-Win
  4498. PROCEDURE RUESTSCHEIN :
  4499. /*------------------------------------------------------------------------------
  4500. Purpose:
  4501. Parameters: <none>
  4502. Notes:
  4503. ------------------------------------------------------------------------------*/
  4504. RUN AUFTRAGSSCHEIN.
  4505. DEF VAR cStockwerk AS CHAR INIT ';;;;;;;;;'.
  4506. DEF VAR lPrintOpen AS LOG INIT FALSE NO-UNDO.
  4507. VSeite = 0.
  4508. VFak_Betr = 0.
  4509. FPreis = FALSE.
  4510. lRuestText = FALSE.
  4511. FOR EACH tAufze NO-LOCK
  4512. BREAK BY tAufze.Aufnr
  4513. BY tAufze.Sort1
  4514. BY tAufze.Sort2
  4515. BY tAufze.Sort3
  4516. BY tAufze.Pos :
  4517. IF FIRST-OF ( tAufze.Sort1 ) AND
  4518. NOT tAufze.Sort1 BEGINS 'aa' AND
  4519. NOT lRuestText THEN DO:
  4520. TiDruck = TRUE.
  4521. lRuestText = FALSE.
  4522. END.
  4523. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz OR
  4524. TiDruck THEN DO:
  4525. RUN RUESTSCHEIN_KOPF ( tAufze.Aufnr, tAufze.Sort1 ).
  4526. END.
  4527. IF FIRST-OF ( tAufze.Sort1 ) AND
  4528. NOT tAufze.Sort1 BEGINS 'aa' THEN DO:
  4529. VZeile = ''.
  4530. { v8/putstream.i "1" }
  4531. VZeile = FILL('=', 95).
  4532. CASE tAufze.Sort1:
  4533. WHEN 'za' THEN SUBSTRING(VZeile,30) = ' OBERGESCHOSS '.
  4534. WHEN 'zb' THEN SUBSTRING(VZeile,30) = ' ERDGESCHOSS '.
  4535. WHEN 'zc' THEN SUBSTRING(VZeile,30) = ' UNTERGESCHOSS '.
  4536. WHEN 'zz' THEN SUBSTRING(VZeile,30) = ' SPIRITUOSEN '.
  4537. END.
  4538. CASE tAufze.Sort1:
  4539. WHEN 'za' THEN ENTRY(1, cStockwerk, ';') = 'X'.
  4540. WHEN 'zb' THEN ENTRY(2, cStockwerk, ';') = 'X'.
  4541. WHEN 'zc' THEN ENTRY(3, cStockwerk, ';') = 'X'.
  4542. WHEN 'zz' THEN ENTRY(4, cStockwerk, ';') = 'X'.
  4543. END.
  4544. { v8/putstream.i "2" }
  4545. END.
  4546. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  4547. RUN ARTIKELZEILE_RUESTSCHEIN( RECID(tAufze) ).
  4548. VFak_Betr = VFak_Betr + Aufze.Net_Betr.
  4549. IF LAST-OF ( tAufze.Sort1) THEN DO:
  4550. IF tAufze.Sort1 BEGINS 'aa' THEN lRuesttext = TRUE.
  4551. ELSE lRuesttext = FALSE.
  4552. IF NOT LAST-OF ( tAufze.Aufnr ) AND
  4553. NOT lRuesttext THEN DO:
  4554. VZeile = ''.
  4555. { v8/putstream.i "1" }
  4556. VZeile = FILL('=', 95).
  4557. { v8/putstream.i "2" }
  4558. END.
  4559. END.
  4560. END.
  4561. { v8/putstream.i "1" }
  4562. REPEAT TRANSACTION:
  4563. FIND Tabel USE-INDEX Tabel-k1
  4564. WHERE Tabel.Firma = GVFirma
  4565. AND Tabel.RecArt = 'GERUEST'
  4566. AND Tabel.CodeI = BAufko.Aufnr
  4567. AND Tabel.CodeC = ''
  4568. AND Tabel.Sprcd = 1 NO-ERROR.
  4569. IF NOT AVAILABLE Tabel THEN DO:
  4570. CREATE Tabel.
  4571. ASSIGN Tabel.Firma = GVFirma
  4572. Tabel.RecArt = 'GERUEST'
  4573. Tabel.CodeI = BAufko.Aufnr
  4574. Tabel.CodeC = ''
  4575. Tabel.Sprcd = 1 NO-ERROR.
  4576. END.
  4577. ASSIGN Tabel.Bez1 = cStockwerk.
  4578. IF Tabel.Bez2 = '' THEN Tabel.Bez2 = ';;;;;;;;;'.
  4579. RELEASE Tabel.
  4580. LEAVE.
  4581. END.
  4582. /*
  4583. RUN KOPF_MUTATION.
  4584. */
  4585. END PROCEDURE.
  4586. /* _UIB-CODE-BLOCK-END */
  4587. &ANALYZE-RESUME
  4588. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RUESTSCHEIN_KOPF C-Win
  4589. PROCEDURE RUESTSCHEIN_KOPF :
  4590. /*------------------------------------------------------------------------------
  4591. Purpose:
  4592. Parameters: <none>
  4593. Notes:
  4594. ------------------------------------------------------------------------------*/
  4595. DEF INPUT PARAMETER ipAufnr AS INT NO-UNDO.
  4596. DEF INPUT PARAMETER ipStock AS CHAR NO-UNDO.
  4597. DEF VAR cAufnr AS CHAR NO-UNDO.
  4598. DEF VAR oBarCode AS CHAR NO-UNDO.
  4599. DEF BUFFER btAufze FOR tAufze.
  4600. /*
  4601. DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO.
  4602. */
  4603. /* P = Portrait */
  4604. /* L = Landscape */
  4605. DEF VAR cCodeArt AS CHAR INIT 'P0210200' NO-UNDO.
  4606. RUN NEUE_SEITE.
  4607. TiDruck = FALSE.
  4608. IF ipStock BEGINS 'aa' THEN DO:
  4609. FIND FIRST btAufze NO-LOCK
  4610. WHERE btAufze.Aufnr = ipAufnr
  4611. AND btAufze.Sort1 BEGINS 'z' NO-ERROR.
  4612. IF AVAILABLE btAufze THEN ipStock = btAufze.Sort1.
  4613. END.
  4614. PUT STREAM Out_Stream CONTROL BDrucker.Dru15cpi.
  4615. PUT STREAM Out_Stream CONTROL CHR(27) '&k2G'.
  4616. CASE ipStock:
  4617. WHEN 'za' THEN cAufnr = STRING(BAufko.Aufnr,'9999999')
  4618. + '/'
  4619. + '1'.
  4620. WHEN 'zb' THEN cAufnr = STRING(BAufko.Aufnr,'9999999')
  4621. + '/'
  4622. + '2'.
  4623. WHEN 'zc' THEN cAufnr = STRING(BAufko.Aufnr,'9999999')
  4624. + '/'
  4625. + '3'.
  4626. WHEN 'zz' THEN cAufnr = STRING(BAufko.Aufnr,'9999999')
  4627. + '/'
  4628. + '4'.
  4629. END CASE.
  4630. RUN BAR-CODE-39 ( INPUT cAufnr ,
  4631. INPUT cCodeArt,
  4632. OUTPUT oBarCode ).
  4633. oBarCode = CHR(027) + "*p" + "100y" + "100X" + oBarCode
  4634. + CHR(027) + "*p" + "405y" + "260X"
  4635. + BDrucker.Drufettb + BDrucker.Dru10cpi + BDrucker.Drufettb
  4636. + cAufnr
  4637. + BDrucker.Drufette + BDrucker.Dru15cpi + BDrucker.Drufette
  4638. + CHR(027) + "*p" + "0y" + "0X".
  4639. PUT STREAM Out_Stream CONTROL oBarCode.
  4640. IF VSeite = 1 THEN DO:
  4641. FIND Adresse USE-INDEX Adresse-k1
  4642. WHERE Adresse.Firma = AdFirma
  4643. AND Adresse.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  4644. FIND LDebst USE-INDEX Debst-k1
  4645. WHERE LDebst.Firma = GVFirma
  4646. AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  4647. FIND FDebst USE-INDEX Debst-k1
  4648. WHERE FDebst.Firma = GVFirma
  4649. AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  4650. FIND Wust USE-INDEX Wust-k1
  4651. WHERE Wust.CodeK = LDebst.MWST
  4652. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  4653. LVSprcd = Adresse.Sprcd.
  4654. DebInkl = FALSE.
  4655. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  4656. END.
  4657. VZeile = ''.
  4658. { v8/putstream.i BLiDruck.Listkzz }.
  4659. IF BAufko.Adresse[05] <> '' THEN DO:
  4660. DO ix = 1 TO 5:
  4661. SUBSTRING(VZeile,050) = BAufko.Adresse[ix].
  4662. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END.
  4663. ELSE DO: { v8/putstream.i "1" }. END.
  4664. END.
  4665. { v8/putstream.i "2" }
  4666. END.
  4667. ELSE DO:
  4668. DO ix = 6 TO 12:
  4669. SUBSTRING(VZeile,050) = Adresse.Anschrift[ix].
  4670. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END.
  4671. ELSE DO: { v8/putstream.i "1" }. END.
  4672. END.
  4673. END.
  4674. IF BAufko.Auf_Tot >= 0
  4675. THEN SUBSTRING(VZeile,001) = SUBSTRING(FormText[02],01,20).
  4676. ELSE SUBSTRING(VZeile,001) = SUBSTRING(FormText[02],21,20).
  4677. SUBSTRING(VZeile,050) = TRIM(SUBSTRING(FormText[07],01,20))
  4678. + " "
  4679. + STRING(FDatum,"99.99.9999").
  4680. { v8/putstream.i "2" }
  4681. IF VSeite = 1 THEN DO:
  4682. RUN ABLADEVORSCHRIFT.
  4683. SUBSTRING(VZeile,008) = XAblade.
  4684. SUBSTRING(VZeile,066) = TRIM(SUBSTRING(FormText[08],21,20))
  4685. + STRING(BAufko.Gewicht,"zz,zz9.999-").
  4686. VZeile = TRIM(BDrucker.Drufettb)
  4687. + SUBSTRING(VZeile,001,65)
  4688. + TRIM(BDrucker.Drufette)
  4689. + SUBSTRING(VZeile,066).
  4690. { v8/putstream.i "1" }
  4691. SUBSTRING(VZeile,008) = TRIM(SUBSTRING(FormText[07],41,20))
  4692. + " "
  4693. + STRING(BAufko.Auf_Datum,"99.99.9999").
  4694. SUBSTRING(VZeile,038) = TRIM(SUBSTRING(FormText[08],01,20))
  4695. + STRING(BAufko.Knr,"z999999").
  4696. SUBSTRING(VZeile,066) = TRIM(SUBSTRING(FormText[08],41,20))
  4697. + " "
  4698. + Adresse.Tel-1.
  4699. { v8/putstream.i "1" }
  4700. SUBSTRING(VZeile,008) = TRIM(SUBSTRING(FormText[09],21,20))
  4701. + " "
  4702. + STRING(BAufko.Lief_Datum,"99.99.9999").
  4703. SUBSTRING(VZeile,038) = TRIM(SUBSTRING(FormText[09],01,20))
  4704. + " ". /* Lieferart */
  4705. { v8/putstream.i "1" }
  4706. SUBSTRING(VZeile,008) = TRIM(SUBSTRING(FormText[07],21,20))
  4707. + " "
  4708. + STRING(BAufko.U_Ref,'x(20)').
  4709. { v8/putstream.i "2" }
  4710. END.
  4711. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[03],01,70)).
  4712. SUBSTRING(VZeile,071) = TRIM(SUBSTRING(FormText[04],01,70)).
  4713. { v8/putstreamf.i "2" }
  4714. IF VSeite = 1 AND
  4715. BAufko.Abh_Text <> '' THEN DO:
  4716. XAuf_Text = BAufko.Abh_Text.
  4717. i2 = 0.
  4718. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
  4719. SUBSTRING(VZeile,008) = ENTRY(i1, XAuf_Text, CHR(10)).
  4720. { v8/putstreamf.i "1" }
  4721. i2 = i2 + 1.
  4722. END.
  4723. IF i2 > 0 THEN DO:
  4724. { v8/putstream.i "1" }
  4725. END.
  4726. END.
  4727. DO WHILE VSeite > 1:
  4728. { v8/putstream.i "1" }
  4729. LEAVE.
  4730. END.
  4731. END PROCEDURE.
  4732. /* _UIB-CODE-BLOCK-END */
  4733. &ANALYZE-RESUME
  4734. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RUEST_KOPF C-Win
  4735. PROCEDURE RUEST_KOPF :
  4736. /*------------------------------------------------------------------------------
  4737. Purpose:
  4738. Parameters: <none>
  4739. Notes:
  4740. ------------------------------------------------------------------------------*/
  4741. DEF INPUT PARAMETER ipAufnr AS INT NO-UNDO.
  4742. DEF INPUT PARAMETER ipStock AS CHAR NO-UNDO.
  4743. DEF VAR cAufnr AS CHAR NO-UNDO.
  4744. DEF VAR oBarCode AS CHAR NO-UNDO.
  4745. DEF BUFFER btAufze FOR tAufze.
  4746. /*
  4747. DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO.
  4748. */
  4749. /* P = Portrait */
  4750. /* L = Landscape */
  4751. DEF VAR cCodeArt AS CHAR INIT 'P0210150' NO-UNDO.
  4752. RUN NEUE_SEITE.
  4753. TiDruck = FALSE.
  4754. IF ipStock BEGINS 'aa' THEN DO:
  4755. FIND FIRST btAufze NO-LOCK
  4756. WHERE btAufze.Aufnr = ipAufnr
  4757. AND btAufze.Sort1 BEGINS 'z' NO-ERROR.
  4758. IF AVAILABLE btAufze THEN ipStock = btAufze.Sort1.
  4759. END.
  4760. PUT STREAM Out_Stream CONTROL BDrucker.Dru15cpi.
  4761. PUT STREAM Out_Stream CONTROL CHR(27) '&k2G'.
  4762. CASE ipStock:
  4763. WHEN 'za' THEN cAufnr = STRING(BAufko.Aufnr,'9999999')
  4764. + '/'
  4765. + '1'.
  4766. WHEN 'zb' THEN cAufnr = STRING(BAufko.Aufnr,'9999999')
  4767. + '/'
  4768. + '2'.
  4769. WHEN 'zc' THEN cAufnr = STRING(BAufko.Aufnr,'9999999')
  4770. + '/'
  4771. + '3'.
  4772. WHEN 'zz' THEN cAufnr = STRING(BAufko.Aufnr,'9999999')
  4773. + '/'
  4774. + '4'.
  4775. END CASE.
  4776. cAufnr = (IF NUM-ENTRIES(cAufnr, '/') > 1 THEN ENTRY(1, cAufnr, '/') ELSE cAufnr).
  4777. RUN BAR-CODE-39 ( INPUT cAufnr ,
  4778. INPUT cCodeArt,
  4779. OUTPUT oBarCode ).
  4780. oBarCode = CHR(027) + "*p" + "100y" + "100X" + oBarCode
  4781. + CHR(027) + "*p" + "405y" + "260X"
  4782. + BDrucker.Drufettb + BDrucker.Dru10cpi + BDrucker.Drufettb
  4783. + cAufnr
  4784. + BDrucker.Drufette + BDrucker.Dru15cpi + BDrucker.Drufette
  4785. + CHR(027) + "*p" + "0y" + "0X".
  4786. PUT STREAM Out_Stream CONTROL oBarCode.
  4787. IF VSeite = 1 THEN DO:
  4788. FIND Adresse USE-INDEX Adresse-k1
  4789. WHERE Adresse.Firma = AdFirma
  4790. AND Adresse.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  4791. FIND LDebst USE-INDEX Debst-k1
  4792. WHERE LDebst.Firma = GVFirma
  4793. AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  4794. FIND FDebst USE-INDEX Debst-k1
  4795. WHERE FDebst.Firma = GVFirma
  4796. AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  4797. FIND Wust USE-INDEX Wust-k1
  4798. WHERE Wust.CodeK = LDebst.MWST
  4799. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  4800. LVSprcd = Adresse.Sprcd.
  4801. DebInkl = FALSE.
  4802. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  4803. END.
  4804. VZeile = ''.
  4805. { v8/putstream.i BLiDruck.Listkzz }.
  4806. IF BAufko.Adresse[05] <> '' THEN DO:
  4807. DO ix = 1 TO 5:
  4808. SUBSTRING(VZeile,050) = BAufko.Adresse[ix].
  4809. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END.
  4810. ELSE DO: { v8/putstream.i "1" }. END.
  4811. END.
  4812. { v8/putstream.i "2" }
  4813. END.
  4814. ELSE DO:
  4815. DO ix = 6 TO 12:
  4816. SUBSTRING(VZeile,050) = Adresse.Anschrift[ix].
  4817. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END.
  4818. ELSE DO: { v8/putstream.i "1" }. END.
  4819. END.
  4820. END.
  4821. IF BAufko.Auf_Tot >= 0
  4822. THEN SUBSTRING(VZeile,001) = SUBSTRING(FormText[02],01,20).
  4823. ELSE SUBSTRING(VZeile,001) = SUBSTRING(FormText[02],21,20).
  4824. SUBSTRING(VZeile,030) = STRING(BAufko.Aufnr,"999999")
  4825. + " "
  4826. + STRING(VSeite,"zz9").
  4827. SUBSTRING(VZeile,050) = TRIM(SUBSTRING(FormText[07],01,20))
  4828. + " "
  4829. + STRING(FDatum,"99.99.9999").
  4830. VZeile = TRIM(BDrucker.Drufettb)
  4831. + SUBSTRING(VZeile,01,49)
  4832. + TRIM(BDrucker.Drufette)
  4833. + SUBSTRING(VZeile,50).
  4834. { v8/putstream.i "2" }
  4835. IF VSeite = 1 THEN DO:
  4836. RUN ABLADEVORSCHRIFT.
  4837. SUBSTRING(VZeile,008) = XAblade.
  4838. SUBSTRING(VZeile,066) = TRIM(SUBSTRING(FormText[08],21,20))
  4839. + STRING(BAufko.Gewicht,"zz,zz9.999-").
  4840. VZeile = TRIM(BDrucker.Drufettb)
  4841. + SUBSTRING(VZeile,001,65)
  4842. + TRIM(BDrucker.Drufette)
  4843. + SUBSTRING(VZeile,066).
  4844. { v8/putstream.i "1" }
  4845. SUBSTRING(VZeile,008) = TRIM(SUBSTRING(FormText[07],41,20))
  4846. + " "
  4847. + STRING(BAufko.Auf_Datum,"99.99.9999").
  4848. SUBSTRING(VZeile,038) = TRIM(SUBSTRING(FormText[08],01,20))
  4849. + STRING(BAufko.Knr,"z999999").
  4850. SUBSTRING(VZeile,066) = TRIM(SUBSTRING(FormText[08],41,20))
  4851. + " "
  4852. + Adresse.Tel-1.
  4853. { v8/putstream.i "1" }
  4854. SUBSTRING(VZeile,008) = TRIM(SUBSTRING(FormText[09],21,20))
  4855. + " "
  4856. + STRING(BAufko.Lief_Datum,"99.99.9999").
  4857. SUBSTRING(VZeile,038) = TRIM(SUBSTRING(FormText[09],01,20))
  4858. + " ". /* Lieferart */
  4859. { v8/putstream.i "1" }
  4860. SUBSTRING(VZeile,008) = TRIM(SUBSTRING(FormText[07],21,20))
  4861. + " "
  4862. + STRING(BAufko.U_Ref,'x(20)').
  4863. { v8/putstream.i "2" }
  4864. END.
  4865. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[03],01,70)).
  4866. SUBSTRING(VZeile,071) = TRIM(SUBSTRING(FormText[04],01,70)).
  4867. { v8/putstreamf.i "2" }
  4868. IF VSeite = 1 AND
  4869. BAufko.Abh_Text <> '' THEN DO:
  4870. XAuf_Text = BAufko.Abh_Text.
  4871. i2 = 0.
  4872. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)):
  4873. SUBSTRING(VZeile,008) = ENTRY(i1, XAuf_Text, CHR(10)).
  4874. { v8/putstreamf.i "1" }
  4875. i2 = i2 + 1.
  4876. END.
  4877. IF i2 > 0 THEN DO:
  4878. { v8/putstream.i "1" }
  4879. END.
  4880. END.
  4881. DO WHILE VSeite > 1:
  4882. { v8/putstream.i "5" }
  4883. LEAVE.
  4884. END.
  4885. END PROCEDURE.
  4886. /* _UIB-CODE-BLOCK-END */
  4887. &ANALYZE-RESUME
  4888. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMELSUCHEN C-Win
  4889. PROCEDURE SAMMELSUCHEN :
  4890. /*------------------------------------------------------------------------------
  4891. Purpose:
  4892. Parameters: <none>
  4893. Notes:
  4894. ------------------------------------------------------------------------------*/
  4895. DEF VAR cString AS CHAR NO-UNDO.
  4896. DEF BUFFER sAufko FOR Aufko.
  4897. FIND FIRST SAMMFAK
  4898. WHERE SAMMFAK.Knr = BAufko.Fak_Knr
  4899. AND SAMMFAK.Samm_Nr = BAufko.Samm_Nr NO-ERROR.
  4900. IF AVAILABLE SAMMFAK THEN RETURN.
  4901. REPEAT TRANSACTION:
  4902. FOR EACH Aufko NO-LOCK USE-INDEX Aufko-k5
  4903. WHERE Aufko.Firma = BAufko.Firma
  4904. AND Aufko.Fak_Art = BAufko.Fak_Art
  4905. AND Aufko.Samm_Nr = BAufko.Samm_Nr :
  4906. IF Aufko.Auf_Sta < 4 THEN DO:
  4907. FIND xAufko WHERE RECID(xAufko) = RECID(Aufko).
  4908. xAufko.Faknr = 0.
  4909. RELEASE xAufko.
  4910. NEXT.
  4911. END.
  4912. CREATE SAMMFAK.
  4913. ASSIGN SAMMFAK.Knr = Aufko.Fak_Knr
  4914. SAMMFAK.Aufnr = Aufko.Aufnr
  4915. SAMMFAK.Samm_Nr = Aufko.Samm_Nr
  4916. SAMMFAK.RID = RECID(Aufko).
  4917. END.
  4918. LEAVE.
  4919. END.
  4920. FOR EACH SammFak:
  4921. RUN AUFTRAGSTOTAL ( SammFak.Aufnr, OUTPUT cString ) NO-ERROR.
  4922. END.
  4923. END PROCEDURE.
  4924. /* _UIB-CODE-BLOCK-END */
  4925. &ANALYZE-RESUME
  4926. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK C-Win
  4927. PROCEDURE SAMMFAK :
  4928. /*------------------------------------------------------------------------------
  4929. Purpose:
  4930. Parameters: <none>
  4931. Notes:
  4932. ------------------------------------------------------------------------------*/
  4933. DEF VAR xString AS CHAR NO-UNDO.
  4934. DEF VAR lFirst AS LOG NO-UNDO.
  4935. DEF VAR cLAdresse AS CHAR NO-UNDO.
  4936. DEF VAR RText AS CHAR NO-UNDO.
  4937. DEF VAR WText AS CHAR NO-UNDO.
  4938. VFak_Betr = 0.
  4939. FPreis = TRUE.
  4940. IF VSeite = 0 THEN RUN VIPER_INIT ( 'SammFak' ).
  4941. RUN SAMMFAK_KOPF.
  4942. iVPagePos = vpr_getPageVPos() + 20.
  4943. RUN vpr_setGroupVPos ( 'FetteZeile', iVPagePos ).
  4944. iArtZeile = 1.
  4945. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', TRIM(SUBSTRING(FormText[18],01,20)) ).
  4946. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_2_Fett', TRIM(STRING(BAufko.Aufnr,"zzzzzzzzz9")) ).
  4947. iArtZeile = iArtZeile + 1.
  4948. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', TRIM(SUBSTRING(FormText[17],21,20)) ).
  4949. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_2_Fett', TRIM(STRING(BAufko.Auf_Datum,"99.99.9999")) ).
  4950. iArtZeile = iArtZeile + 1.
  4951. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', ' ' ).
  4952. DO WHILE TRUE:
  4953. lFirst = TRUE.
  4954. cLAdresse = ''.
  4955. IF BAufko.Knr = BAufko.Fak_Knr AND
  4956. NOT FDebst.Passant THEN LEAVE.
  4957. DO ix = 1 TO 5:
  4958. IF BAufko.Adresse[ix] = '' THEN NEXT.
  4959. iArtZeile = iArtZeile + 1.
  4960. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', BAufko.Adresse[ix] ).
  4961. lFirst = FALSE.
  4962. END.
  4963. IF NOT lFirst THEN LEAVE.
  4964. IF BAufko.Knr = BAufko.Fak_Knr THEN LEAVE.
  4965. FIND LAdresse NO-LOCK
  4966. WHERE LAdresse.Firma = AdFirma
  4967. AND LAdresse.Knr = BAufko.Knr NO-ERROR.
  4968. IF NOT AVAILABLE LAdresse THEN LEAVE.
  4969. DO ix = 1 TO 12:
  4970. IF LAdresse.Anschrift[ix] = '' THEN NEXT.
  4971. iArtZeile = iArtZeile + 1.
  4972. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', LAdresse.Anschrift[ix] ).
  4973. lFirst = FALSE.
  4974. END.
  4975. LEAVE.
  4976. END.
  4977. IF NOT lFirst THEN DO:
  4978. iArtZeile = iArtZeile + 1.
  4979. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', ' ' ).
  4980. END.
  4981. RUN VIPER_AUSGABE_GRUPPE ( 'FetteZeile' ).
  4982. iArtZeile = 0.
  4983. iVPagePos = vpr_getPageVPos().
  4984. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
  4985. FOR EACH tAufze NO-LOCK
  4986. BY tAufze.Aufnr
  4987. BY tAufze.Sort1
  4988. BY tAufze.LagOrt
  4989. BY tAufze.Sort2
  4990. BY tAufze.Pos :
  4991. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  4992. RUN VIPER_ARTIKELZEILE ( RECID(tAufze) ).
  4993. VFak_Betr = VFak_Betr + Aufze.Net_Betr.
  4994. END.
  4995. iArtZeile = iArtZeile + 1.
  4996. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , TRIM(SUBSTRING(FormText[10],41,20)) ).
  4997. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
  4998. iArtZeile = iArtZeile + 1.
  4999. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , ' ' ).
  5000. RUN VIPER_AUSGABE_ARTIKELZEILE.
  5001. /* Auftragsrabatt ---------------------------------------------------- */
  5002. iArtZeile = 0.
  5003. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
  5004. BY TRabSumm.Rab_Summ:
  5005. Rundbetr = TRabSumm.Auf_Rab.
  5006. VFak_Betr = VFak_Betr - Rundbetr.
  5007. IF Rundbetr < 0 THEN RText = VZusText.
  5008. ELSE RText = VRabText.
  5009. xString = RText
  5010. + " "
  5011. + TRabSumm.Bez.
  5012. iArtZeile = iArtZeile + 1.
  5013. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  5014. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1
  5015. WHERE AufRabSu.Firma = BAufko.Firma
  5016. AND AufRabSu.Aufnr = BAufko.Aufnr
  5017. AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
  5018. RabWert = ABSOLUT(AufRabSu.F_Wert).
  5019. IF AufRabSu.F_Proz_Betr THEN WText = "%".
  5020. ELSE WText = "Fr.".
  5021. xString = STRING(RabWert,"z9.99-")
  5022. + WText.
  5023. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', xString ).
  5024. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
  5025. END.
  5026. /* Abholrabatt ------------------------------------------------------- */
  5027. FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
  5028. BY TRabSumm.Rab_Summ:
  5029. Rundbetr = TRabSumm.Abh_Rab.
  5030. VFak_Betr = VFak_Betr - Rundbetr.
  5031. IF Rundbetr < 0 THEN RText = VZusText.
  5032. ELSE RText = VRabText.
  5033. xString = RText
  5034. + " "
  5035. + TRabSumm.Bez.
  5036. iArtZeile = iArtZeile + 1.
  5037. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  5038. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1
  5039. WHERE AufRabSu.Firma = BAufko.Firma
  5040. AND AufRabSu.Aufnr = BAufko.Aufnr
  5041. AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
  5042. RabWert = ABSOLUT(AufRabSu.A_Wert).
  5043. IF AufRabSu.A_Proz_Betr THEN WText = "%".
  5044. ELSE WText = "Fr.".
  5045. xString = STRING(RabWert,"z9.99-")
  5046. + WText.
  5047. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', xString ).
  5048. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
  5049. END.
  5050. /* Spezialpreis-Auftragsrabatte ---------------------------------------- */
  5051. FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0
  5052. BY TSpeRab.Rab_Grp:
  5053. FIND Tabel USE-INDEX Tabel-k1
  5054. WHERE Tabel.Firma = GVFirma
  5055. AND Tabel.RecArt = 'ARABGRP'
  5056. AND Tabel.CodeC = ''
  5057. AND Tabel.CodeI = TSpeRab.Rab_Grp
  5058. AND Tabel.Sprcd = 1 NO-LOCK.
  5059. Rundbetr = TSpeRab.Auf_Betr.
  5060. VFak_Betr = VFak_Betr - Rundbetr.
  5061. IF Rundbetr < 0 THEN RText = VZusText.
  5062. ELSE RText = VRabText.
  5063. xString = RText
  5064. + " "
  5065. + Tabel.Bez1.
  5066. iArtZeile = iArtZeile + 1.
  5067. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  5068. FIND FIRST AufSpRab USE-INDEX AufSpRab-k1
  5069. WHERE AufSpRab.Firma = BAufko.Firma
  5070. AND AufSpRab.Aufnr = BAufko.Aufnr
  5071. AND AufSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK.
  5072. RabWert = ABSOLUT(AufSpRab.Auf_Wert).
  5073. IF AufSpRab.Auf_Proz_Betr THEN WText = "%".
  5074. ELSE WText = "Fr.".
  5075. xString = STRING(RabWert,"z9.99-")
  5076. + WText.
  5077. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', xString ).
  5078. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ).
  5079. END.
  5080. IF iArtZeile > 0 THEN DO:
  5081. iArtZeile = iArtZeile + 1.
  5082. xString = TRIM(SUBSTRING(FormText[14],21,20)).
  5083. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  5084. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ).
  5085. END.
  5086. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
  5087. /* Recycling-Gebuehren ----------------------------------------------- */
  5088. iArtZeile = 0.
  5089. FOR EACH AufGKon USE-INDEX AufGKon-k1
  5090. WHERE AufGKon.Firma = BAufko.Firma
  5091. AND AufGKon.Aufnr = BAufko.Aufnr
  5092. AND AufGKon.Gebuehr <> 0
  5093. AND AufGKon.Betrag <> 0 NO-LOCK:
  5094. FIND GebKonto OF AufGKon NO-LOCK NO-ERROR.
  5095. IF NOT AVAILABLE GebKonto THEN xString = TRIM(SUBSTRING(FormText[11],41,20)).
  5096. ELSE xString = GebKonto.Bez.
  5097. VWC = AufGKon.MWST_Cd.
  5098. VFak_Betr = VFak_Betr + AufGKon.Betrag.
  5099. FIND LAST MwstAns NO-LOCK
  5100. WHERE MwstAns.Mwst_Cd = VWC
  5101. AND MwstAns.Datum <= BAufko.Fak_Datum NO-ERROR.
  5102. iArtZeile = iArtZeile + 1.
  5103. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  5104. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(AufGKon.Betrag,'->>>,>>9.999')) ).
  5105. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC', STRING(AufGKon.MWSt_Cd,'z9') ).
  5106. FIND FIRST TUmsGrp
  5107. WHERE TUmsGrp.Ums_Grp = 1000
  5108. AND TUmsGrp.Mwst = VWC
  5109. AND TUmsGrp.Ansatz = MwstAns.Ansatz NO-ERROR.
  5110. IF NOT AVAILABLE TUmsGrp THEN DO:
  5111. FIND WarenGrp USE-INDEX WarenGrp-k1
  5112. WHERE WarenGrp.Firma = GVFirma
  5113. AND WarenGrp.Wgr = 1000 NO-LOCK NO-ERROR.
  5114. CREATE TUmsGrp.
  5115. ASSIGN TUmsGrp.Ums_Grp = 1000
  5116. TUmsGrp.Mwst = VWC
  5117. TUmsGrp.Ansatz = MwstAns.Ansatz
  5118. TUmsGrp.Bez = (IF AVAILABLE WarenGrp THEN WarenGrp.Bez1 ELSE 'Recyclinggebühren').
  5119. END.
  5120. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + AufGKon.Betrag.
  5121. END.
  5122. IF iArtZeile > 0 THEN DO:
  5123. iArtZeile = iArtZeile + 1.
  5124. xString = TRIM(SUBSTRING(FormText[14],41,20)).
  5125. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ).
  5126. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.999')) ).
  5127. END.
  5128. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1').
  5129. /* Gebindelieferungen ------------------------------------------------ */
  5130. VZTot = 0.
  5131. iArtZeile = 0.
  5132. FOR EACH AufGKon USE-INDEX AufGKon-k1
  5133. WHERE AufGKon.Firma = BAufko.Firma
  5134. AND AufGKon.Aufnr = BAufko.Aufnr
  5135. AND AufGKon.Depot <> 0
  5136. AND (AufGKon.Eingang <> 0 OR
  5137. AufGKon.Ausgang <> 0) NO-LOCK:
  5138. VWC = AufGKon.MWSt_Cd.
  5139. FIND LAST MwstAns NO-LOCK
  5140. WHERE MwstAns.Mwst_Cd = VWC
  5141. AND MwstAns.Datum <= BAufko.Fak_Datum NO-ERROR.
  5142. FIND FIRST TUmsGrp
  5143. WHERE TUmsGrp.Ums_Grp = 1001
  5144. AND TUmsGrp.Mwst = VWC
  5145. AND TUmsGrp.Ansatz = MwstAns.Ansatz NO-ERROR.
  5146. IF NOT AVAILABLE TUmsGrp THEN DO:
  5147. FIND WarenGrp NO-LOCK USE-INDEX WarenGrp-k1
  5148. WHERE WarenGrp.Firma = GVFirma
  5149. AND WarenGrp.Wgr = 1001 NO-ERROR.
  5150. CREATE TUmsGrp.
  5151. ASSIGN TUmsGrp.Ums_Grp = 1001
  5152. TUmsGrp.Mwst = VWC
  5153. TUmsGrp.Ansatz = MwstAns.Ansatz
  5154. TUmsGrp.Bez = (IF AVAILABLE WarenGrp THEN WarenGrp.Bez1 ELSE 'Gebindesaldo').
  5155. END.
  5156. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + AufGKon.Betrag.
  5157. FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1
  5158. WHERE GebKonto.Firma = GVFirma
  5159. AND GebKonto.Geb_Cd = AufGKon.Geb_Cd.
  5160. i1 = AufGKon.Ausgang - AufGKon.Eingang.
  5161. Rundbetr = AufGKon.Betrag.
  5162. VZTot = VZTot + Rundbetr.
  5163. iArtZeile = iArtZeile + 1.
  5164. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'Gebindetext' , GebKonto.Bez ).
  5165. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeGel' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ).
  5166. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeRet' , TRIM(STRING(AufGKon.Eingang,"->>,>>9")) ).
  5167. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeSaldo', TRIM(STRING(i1 ,"->>,>>9")) ).
  5168. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeBetr' , TRIM(STRING(Rundbetr ,"->>,>>9.999")) ).
  5169. END.
  5170. IF iArtZeile > 0 THEN RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeTot' , TRIM(STRING(VZTot,"->>,>>9.999")) ).
  5171. VFak_Betr = VFak_Betr + VZTot.
  5172. IF iArtZeile > 0 THEN RUN VIPER_AUSGABE_GRUPPE ('Gebindeabrechnung').
  5173. DO ix = 1 TO 12:
  5174. GTWpfl[ix] = GTWpfl[ix] + BAufko.Wpfl[ix].
  5175. GTWust[ix] = GTWust[ix] + BAufko.Wust[ix].
  5176. END.
  5177. GTFak_Betr = GTFak_Betr + VFak_Betr.
  5178. GTSk_Ber = GTSk_Ber + BAufko.Sk_Ber.
  5179. iArtZeile = 1.
  5180. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett' , TRIM(SUBSTRING(FormText[15],21,20)) ).
  5181. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Betrag_Fett', TRIM(STRING(VFak_Betr,"->>>,>>9.99")) ).
  5182. IF FLetzt THEN DO:
  5183. iArtZeile = iArtZeile + 1.
  5184. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett' , ' ' ).
  5185. iArtZeile = iArtZeile + 1.
  5186. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett' , TRIM(SUBSTRING(FormText[14],01,20)) ).
  5187. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Betrag_Fett', TRIM(STRING(GTFak_Betr,"->>>,>>9.999")) ).
  5188. END.
  5189. iArtZeile = iArtZeile + 1.
  5190. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett' , ' ' ).
  5191. RUN VIPER_AUSGABE_GRUPPE ( 'FetteZeile' ).
  5192. /* Kopfmutation -------------------------------------------------- */
  5193. DO TRANSACTION WHILE TRUE:
  5194. IF izaehler < iLauf THEN LEAVE.
  5195. FIND Aufko WHERE RECID(Aufko) = RECID(BAufko).
  5196. Aufko.Fak_Datum = FDatum.
  5197. Aufko.Faknr = SFaknr.
  5198. Aufko.Gedruckt = TRUE.
  5199. XVAufnr = Aufko.Aufnr.
  5200. IF tTabTexte.iFeld1 > Aufko.Fak_Art THEN Aufko.Fak_Art = tTabTexte.iFeld1.
  5201. IF tTabTexte.iFeld2 > Aufko.Auf_Sta THEN Aufko.Auf_Sta = tTabTexte.iFeld2.
  5202. RELEASE Aufko.
  5203. LEAVE.
  5204. END.
  5205. FIND Aufko WHERE RECID(Aufko) = RECID(BAufko) NO-LOCK.
  5206. TiDruck = FALSE.
  5207. IF FLetzt THEN RUN SAMMFAK_ENDE.
  5208. END PROCEDURE.
  5209. /* _UIB-CODE-BLOCK-END */
  5210. &ANALYZE-RESUME
  5211. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_ENDE C-Win
  5212. PROCEDURE SAMMFAK_ENDE :
  5213. /*------------------------------------------------------------------------------
  5214. Purpose:
  5215. Parameters: <none>
  5216. Notes:
  5217. ------------------------------------------------------------------------------*/
  5218. DEF VAR cPDFName AS CHAR INIT '' NO-UNDO.
  5219. DEF VAR iSpace AS INT INIT 0 NO-UNDO.
  5220. DEF VAR iPos AS INT NO-UNDO.
  5221. DEF VAR iKopie AS INT NO-UNDO.
  5222. iPos = vpr_getPageVPos().
  5223. iArtZeile = 1.
  5224. iSpace = iSpace + 40.
  5225. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , ' ' ).
  5226. DO ix = 1 TO 11:
  5227. IF GTWpfl[ix] = 0 THEN NEXT.
  5228. GTFak_Betr = GTFak_Betr + GTWust[ix].
  5229. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  5230. WHERE MWSTAns.MWST_Cd = ix
  5231. AND MWSTAns.Datum <= BAufko.Kond_Datum NO-LOCK.
  5232. iArtZeile = iArtZeile + 1.
  5233. iSpace = iSpace + 40.
  5234. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , MWStAns.Bez ).
  5235. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstPfl' , TRIM(STRING(GTWpfl[ix],"->>,>>9.99")) ).
  5236. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBetr', TRIM(STRING(GTWust[ix],"->>>,>>9.99")) ).
  5237. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstCd' , TRIM(STRING(ix ,">>9")) ).
  5238. END.
  5239. IF (iSpace + iPos + 80) >= iVMaxPos THEN DO:
  5240. RUN vpr_NewPage.
  5241. RUN vpr_InitGroups('').
  5242. IF iZaehler = iLauf THEN RUN vpr_initGraphObj.
  5243. VSeite = VSeite + 1.
  5244. RUN VIPER_ADRESSE (VDokArt).
  5245. END.
  5246. RUN VIPER_AUSGABE_GRUPPE ( 'Mehrwertsteuer' ).
  5247. Rundbetr = GTFak_Betr.
  5248. Rundcode = 1.
  5249. RUN RUNDEN ( Rundcode, INPUT-OUTPUT Rundbetr ).
  5250. GTFak_Betr = Rundbetr.
  5251. iArtZeile = 1.
  5252. RUN VIPER_CREATE_DOKUMENT ( 'RechnungsTotal', iArtZeile, 'EndBetrag' , TRIM(STRING(GTFak_Betr,"->,>>>,>>9.99")) ).
  5253. RUN VIPER_AUSGABE_GRUPPE ( 'RechnungsTotal' ).
  5254. iArtZeile = 1.
  5255. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , TRIM(SUBSTRING(Helptext[15],41,20)) ).
  5256. FOR EACH TUmsGrp NO-LOCK
  5257. BY TUmsGrp.Ums_Grp
  5258. BY TUmsGrp.Mwst :
  5259. iArtZeile = iArtZeile + 1.
  5260. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , TUmsGrp.Bez ).
  5261. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Alk%' , BSteuer.Fwc03 ).
  5262. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis' , TRIM(STRING(TUmsGrp.Ums_Betr,"->>>,>>9.99")) ).
  5263. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(TUmsGrp.Ansatz ,">9.99%")) ).
  5264. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC' , TRIM(STRING(TUmsGrp.Mwst ,"z9")) ).
  5265. END.
  5266. RUN VIPER_AUSGABE_GRUPPE ( 'ArtikelZeile1' ).
  5267. /* Zahlungskondition ------------------------------------------------- */
  5268. FIND Kondi USE-INDEX Kondi-k1
  5269. WHERE Kondi.Kond = BAufko.Kond
  5270. AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR.
  5271. IF AVAILABLE Kondi THEN DO:
  5272. iArtZeile = 1.
  5273. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Zahkond', Kondi.KoText ).
  5274. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Faellig', STRING((FDatum + Kondi.Faellig),"99.99.9999") ).
  5275. IF Kondi.Skonto[01] <> 0 THEN DO:
  5276. Rundbetr = GTSk_Ber * Kondi.Skonto[01] / 100.
  5277. Rundcode = 1.
  5278. RUN RUNDEN ( Rundcode, INPUT-OUTPUT Rundbetr ).
  5279. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Skonto', TRIM(STRING(Rundbetr,"->>>,>>9.99")) ).
  5280. END.
  5281. END.
  5282. ELSE DO:
  5283. iArtZeile = 1.
  5284. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Zahkond', FILL('?', 29) ).
  5285. END.
  5286. VFak_Betr = VFak_Betr - BAufko.Bar_Betr - BAufko.Bar_Skonto.
  5287. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Netto', TRIM(STRING(GTFak_Betr,"->>>,>>9.99")) ).
  5288. RUN VIPER_AUSGABE_GRUPPE ( 'Kondition' ).
  5289. IF GTFak_Betr = 0 THEN Rundbetr = -1.
  5290. ELSE Rundbetr = GTFak_Betr.
  5291. VesrKnr = BAufko.Fak_Knr.
  5292. VesrFnr = BAufko.Faknr.
  5293. IF AVAILABLE Kondi AND
  5294. Kondi.Skonto[01] <> 0 THEN Rundbetr = 0.
  5295. /* Abschluss und Druck ----------------------------------------------- */
  5296. IF iZaehler < iLauf THEN RETURN.
  5297. IF VBesr > 0 THEN RUN VIPER_BESR ( 'BESR' ).
  5298. /* ------------------------------------------------------ */
  5299. /* Druckausgabe */
  5300. /* ------------------------------------------------------ */
  5301. RUN vpr_EndDoc.
  5302. IF SESSION:PRINTER-NAME <> F_Drucker THEN DO:
  5303. RUN vpr_printerDialog ( OUTPUT ja ).
  5304. IF NOT ja THEN RETURN.
  5305. END.
  5306. ELSE DO:
  5307. RUN vpr_selectPrinter(SESSION:PRINTER-NAME).
  5308. END.
  5309. RUN vpr_SetPrinterAttrib('copies=1').
  5310. RUN vpr_printDoc (0, 0).
  5311. cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_&3',
  5312. STRING(BAufko.Knr ,'999999'),
  5313. STRING(BAufko.Faknr,'999999'),
  5314. cvpr_Dokument).
  5315. cPDFName = REPLACE(cvpr_Dokument, '.vpr', '.pdf').
  5316. IF iZaehler = iLauf THEN DO:
  5317. RUN vpr_printPDF (0, 0, INPUT-OUTPUT cPDFName ).
  5318. RUN vpr_SaveDoc ( cvpr_Dokument ).
  5319. END.
  5320. /*
  5321. IF GTFak_Betr > 0 THEN DO:
  5322. CASE VBesr:
  5323. WHEN 1 THEN RUN VESR_DRUCK01.
  5324. WHEN 2 THEN RUN VESR_DRUCK02.
  5325. WHEN 3 THEN RUN VESR_DRUCK03.
  5326. WHEN 4 THEN RUN VESR_DRUCK04.
  5327. END CASE.
  5328. END.
  5329. */
  5330. /*
  5331. DEF VAR o-i AS i NO-UNDO.
  5332. RUN shellExecuteA (0,
  5333. "open",
  5334. cPDFName,
  5335. "",
  5336. "",
  5337. 0,
  5338. OUTPUT o-i).
  5339. */
  5340. END PROCEDURE.
  5341. /* _UIB-CODE-BLOCK-END */
  5342. &ANALYZE-RESUME
  5343. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_KOPF C-Win
  5344. PROCEDURE SAMMFAK_KOPF :
  5345. /*------------------------------------------------------------------------------
  5346. Purpose:
  5347. Parameters: <none>
  5348. Notes:
  5349. ------------------------------------------------------------------------------*/
  5350. DEF VAR kk AS INT NO-UNDO.
  5351. DEF VAR xString AS CHAR NO-UNDO.
  5352. DEF VAR iSeite AS INT NO-UNDO.
  5353. iSeite = VSeite.
  5354. RUN VIPER_NEUE_SEITE.
  5355. IF VSeite = 1 AND
  5356. VSeite > iSeite THEN DO:
  5357. REPEAT WHILE BAufko.Faknr = 0 TRANSACTION:
  5358. RUN "v8/steunr.p" ( INPUT 2, OUTPUT VFaknr ).
  5359. IF RETURN-VALUE <> '' THEN NEXT.
  5360. FIND Aufko WHERE RECID(Aufko) = RECID(BAufko).
  5361. Aufko.Faknr = VFaknr.
  5362. RELEASE Aufko.
  5363. END.
  5364. SFaknr = BAufko.Faknr.
  5365. FIND Adresse USE-INDEX Adresse-k1
  5366. WHERE Adresse.Firma = AdFirma
  5367. AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  5368. FIND LDebst USE-INDEX Debst-k1
  5369. WHERE LDebst.Firma = GVFirma
  5370. AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR.
  5371. FIND FDebst USE-INDEX Debst-k1
  5372. WHERE FDebst.Firma = GVFirma
  5373. AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR.
  5374. FIND Wust USE-INDEX Wust-k1
  5375. WHERE Wust.CodeK = LDebst.MWST
  5376. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  5377. LVSprcd = Adresse.Sprcd.
  5378. DebInkl = FALSE.
  5379. IF AVAILABLE Wust THEN DebInkl = Wust.Incl.
  5380. VBesrKopf = ''.
  5381. IF BAufko.Adresse[05] <> '' THEN DO:
  5382. i1 = 6.
  5383. DO ix = 1 TO 5:
  5384. CREATE tDokument.
  5385. ASSIGN tDokument.cGruppe = 'KOPF'
  5386. tDokument.iZeile = 1
  5387. tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99')
  5388. tDokument.cInhalt = BAufko.Adresse[ix].
  5389. i1 = i1 + 1.
  5390. VBesrKopf[i1] = BAufko.Adresse[ix].
  5391. END.
  5392. END.
  5393. ELSE DO:
  5394. DO ix = 5 TO 11:
  5395. CREATE tDokument.
  5396. ASSIGN tDokument.cGruppe = 'KOPF'
  5397. tDokument.iZeile = 1
  5398. tDokument.cFeld = 'Adresse_' + STRING(ix,'99')
  5399. tDokument.cInhalt = Adresse.Anschrift[ix].
  5400. VBesrKopf[ix] = Adresse.Anschrift[ix].
  5401. END.
  5402. END.
  5403. CREATE tDokument.
  5404. ASSIGN tDokument.cGruppe = 'KOPF'
  5405. tDokument.iZeile = 1
  5406. tDokument.cFeld = 'Ort_Datum'
  5407. tDokument.cInhalt = TRIM(SUBSTRING(FormText[07],01,20))
  5408. + " "
  5409. + STRING(FDatum,"99.99.9999").
  5410. CREATE tDokument.
  5411. ASSIGN tDokument.cGruppe = 'KOPF'
  5412. tDokument.iZeile = 1
  5413. tDokument.cFeld = 'T_Dokument'
  5414. tDokument.cInhalt = (IF BAufko.Auf_Tot >= 0
  5415. THEN TRIM(SUBSTRING(FormText[02],01,20))
  5416. ELSE TRIM(SUBSTRING(FormText[02],21,20))).
  5417. CREATE tDokument.
  5418. ASSIGN tDokument.cGruppe = 'KOPF'
  5419. tDokument.iZeile = 1
  5420. tDokument.cFeld = 'Aufnr'
  5421. tDokument.cInhalt = STRING(SFaknr,'z999999').
  5422. CREATE tDokument.
  5423. ASSIGN tDokument.cGruppe = 'KOPF'
  5424. tDokument.iZeile = 1
  5425. tDokument.cFeld = 'Knr'
  5426. tDokument.cInhalt = STRING(BAufko.Fak_Knr,'999999').
  5427. END.
  5428. IF VSeite > iSeite THEN RUN VIPER_ADRESSE ( VDokArt ).
  5429. END PROCEDURE.
  5430. /* _UIB-CODE-BLOCK-END */
  5431. &ANALYZE-RESUME
  5432. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUMMENRABATTE C-Win
  5433. PROCEDURE SUMMENRABATTE :
  5434. /*------------------------------------------------------------------------------
  5435. Purpose:
  5436. Parameters: <none>
  5437. Notes:
  5438. ------------------------------------------------------------------------------*/
  5439. DEF VAR RText AS CHAR FORMAT "x(20)" NO-UNDO.
  5440. DEF VAR WText AS CHAR NO-UNDO.
  5441. /* Auftragsrabatte --------------------------------------------------- */
  5442. i5 = 0.
  5443. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0
  5444. BY TRabSumm.Rab_Summ:
  5445. Rundbetr = TRabSumm.Auf_Rab.
  5446. IF Rundbetr < 0 THEN RText = VZusText.
  5447. ELSE RText = VRabText.
  5448. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1
  5449. WHERE AufRabSu.Firma = BAufko.Firma
  5450. AND AufRabSu.Aufnr = BAufko.Aufnr
  5451. AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
  5452. IF AufRabSu.F_Proz_Betr THEN WText = "%".
  5453. ELSE WText = "Fr.".
  5454. RabWert = ABSOLUT(AufRabSu.F_Wert).
  5455. SUBSTRING(VZeile,042) = RText
  5456. + " "
  5457. + TRabSumm.Bez.
  5458. SUBSTRING(VZeile,096) = STRING(RabWert,"z9.99-")
  5459. + WText.
  5460. SUBSTRING(VZeile,102) = STRING(- Rundbetr,"->>>,>>9.99").
  5461. { v8/putstream.i "1" }
  5462. VFak_Betr = VFak_Betr - Rundbetr.
  5463. i5 = i5 + 1.
  5464. END.
  5465. /* Abholrabatt ------------------------------------------------------- */
  5466. FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0
  5467. BY TRabSumm.Rab_Summ:
  5468. Rundbetr = TRabSumm.Abh_Rab.
  5469. IF Rundbetr < 0 THEN RText = VZusText.
  5470. ELSE RText = VRabText.
  5471. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1
  5472. WHERE AufRabSu.Firma = BAufko.Firma
  5473. AND AufRabSu.Aufnr = BAufko.Aufnr
  5474. AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ.
  5475. IF AufRabSu.A_Proz_Betr THEN WText = "%".
  5476. ELSE WText = "Fr.".
  5477. RabWert = ABSOLUT(AufRabSu.A_Wert).
  5478. SUBSTRING(VZeile,042) = RText
  5479. + " "
  5480. + TRabSumm.Bez.
  5481. SUBSTRING(VZeile,096) = STRING(RabWert,"z9.99-")
  5482. + WText.
  5483. SUBSTRING(VZeile,102) = STRING(- Rundbetr,"->>>,>>9.99").
  5484. { v8/putstream.i "1" }
  5485. VFak_Betr = VFak_Betr - Rundbetr.
  5486. i5 = i5 + 1.
  5487. END.
  5488. /* ---------------------------------------------------------------------- */
  5489. /* Spezialpreis-Auftragsrabatte ---------------------------------------- */
  5490. FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0
  5491. BY TSpeRab.Rab_Grp:
  5492. FIND Tabel USE-INDEX Tabel-k1
  5493. WHERE Tabel.Firma = GVFirma
  5494. AND Tabel.RecArt = 'ARABGRP'
  5495. AND Tabel.CodeC = ''
  5496. AND Tabel.CodeI = TSpeRab.Rab_Grp
  5497. AND Tabel.Sprcd = 1 NO-LOCK.
  5498. Rundbetr = TSpeRab.Auf_Betr.
  5499. IF Rundbetr < 0 THEN RText = VZusText.
  5500. ELSE RText = VRabText.
  5501. FIND FIRST AufSpRab USE-INDEX AufSpRab-k1
  5502. WHERE AufSpRab.Firma = BAufko.Firma
  5503. AND AufSpRab.Aufnr = BAufko.Aufnr
  5504. AND AufSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK.
  5505. IF AufSpRab.Auf_Proz_Betr THEN WText = "%".
  5506. ELSE WText = "Fr.".
  5507. RabWert = ABSOLUT(AufSpRab.Auf_Wert).
  5508. SUBSTRING(VZeile,042) = RText
  5509. + " "
  5510. + TRIM(Tabel.Bez1).
  5511. SUBSTRING(VZeile,096) = STRING(RabWert,"z9.99-")
  5512. + WText.
  5513. SUBSTRING(VZeile,102) = STRING(- Rundbetr,"->>>,>>9.99").
  5514. { v8/putstream.i "1" }
  5515. VFak_Betr = VFak_Betr - Rundbetr.
  5516. i5 = i5 + 1.
  5517. END.
  5518. IF i5 > 0 THEN DO:
  5519. SUBSTRING(VZeile,042) = TRIM(SUBSTRING(FormText[14],21,20)).
  5520. SUBSTRING(VZeile,102) = STRING(VFak_Betr,"->>>,>>9.99").
  5521. { v8/putstreamf.i "1" }
  5522. END.
  5523. END PROCEDURE.
  5524. /* _UIB-CODE-BLOCK-END */
  5525. &ANALYZE-RESUME
  5526. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERSANDART C-Win
  5527. PROCEDURE VERSANDART :
  5528. /*------------------------------------------------------------------------------
  5529. Purpose:
  5530. Parameters: <none>
  5531. Notes:
  5532. ------------------------------------------------------------------------------*/
  5533. XVersand = ''.
  5534. FIND Tabel USE-INDEX Tabel-k1
  5535. WHERE Tabel.Firma = GVFirma
  5536. AND Tabel.RecArt = 'LIEFART'
  5537. AND Tabel.CodeC = ''
  5538. AND Tabel.CodeI = BAufko.Lief_Bed
  5539. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  5540. IF AVAILABLE Tabel THEN XVersand = Tabel.Bez1.
  5541. END PROCEDURE.
  5542. /* _UIB-CODE-BLOCK-END */
  5543. &ANALYZE-RESUME
  5544. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK C-Win
  5545. PROCEDURE VESR_DRUCK :
  5546. /*------------------------------------------------------------------------------
  5547. Purpose:
  5548. Parameters: <none>
  5549. Notes:
  5550. ------------------------------------------------------------------------------*/
  5551. IF VBesr = 0 THEN RETURN.
  5552. DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
  5553. DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
  5554. DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
  5555. DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
  5556. DEF VAR VSZeile AS CHAR FORMAT "x(58)".
  5557. DEF VAR VZeile AS CHAR FORMAT "x(58)".
  5558. DEF VAR XArt AS INT.
  5559. DEF VAR XAnz AS INT.
  5560. DEF VAR XBetr AS CHAR FORMAT "x(20)".
  5561. DEF VAR VESR_P AS CHAR FORMAT "x(02)".
  5562. DEF VAR VESR AS CHAR FORMAT "x(02)".
  5563. DEF VAR XBetrag AS CHAR FORMAT "x(12)".
  5564. DO WHILE TRUE:
  5565. { v8/putstream.i "15" }
  5566. PZBetrag = ''.
  5567. IF Rundbetr < 0 THEN DO:
  5568. PZBetrag = FILL('*', 13).
  5569. PZReferenz = FILL('*', 27).
  5570. PZTNummer = FILL('*', 09).
  5571. XBetrag = FILL('*', 12).
  5572. END.
  5573. ELSE DO:
  5574. IF Rundbetr > 0
  5575. THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
  5576. IF Rundbetr = 0
  5577. THEN PZBetrag = " 04 ".
  5578. PZReferenz = "92876000000"
  5579. + STRING(VesrKnr,"999999")
  5580. + "0"
  5581. + STRING(VesrFnr,"999999")
  5582. + "00".
  5583. PZTNummer = "01004578".
  5584. XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999").
  5585. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
  5586. INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
  5587. END.
  5588. SUBSTRING(VZeile,061) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  5589. { v8/putstream.i "2" }
  5590. FIND Adresse USE-INDEX Adresse-k1
  5591. WHERE Adresse.Firma = AdFirma
  5592. AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
  5593. VVesr = "".
  5594. IF Rundbetr <> 0 THEN DO:
  5595. SUBSTRING(VVesr[01],02) = STRING(XBetrag,"XXXXXXXXXX XX").
  5596. SUBSTRING(VVesr[01],31) = STRING(XBetrag,"XXXXXXXXXX XX").
  5597. END.
  5598. SUBSTRING(VVesr[01],61) = Adresse.Anschrift[07].
  5599. SUBSTRING(VVesr[02],61) = Adresse.Anschrift[08].
  5600. SUBSTRING(VVesr[03],61) = Adresse.Anschrift[09].
  5601. SUBSTRING(VVesr[04],61) = Adresse.Anschrift[10].
  5602. SUBSTRING(VVesr[05],61) = Adresse.Anschrift[11].
  5603. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  5604. SUBSTRING(VVesr[03],04) = SUBSTRING(VZeile,01,14).
  5605. SUBSTRING(VVesr[04],01) = SUBSTRING(VZeile,16,17).
  5606. SUBSTRING(VVesr[05],01) = Adresse.Anschrift[08].
  5607. SUBSTRING(VVesr[06],01) = Adresse.Anschrift[09].
  5608. SUBSTRING(VVesr[07],01) = Adresse.Anschrift[10].
  5609. SUBSTRING(VVesr[08],01) = Adresse.Anschrift[11].
  5610. SUBSTRING(VVesr[09],25) = STRING(VSZeile,"x(53)").
  5611. SUBSTRING(VVesr[09],82) = "H".
  5612. VVesr[09] = BDrucker.Dru10cpi
  5613. + BDrucker.DruLQb
  5614. + CHR(27) + "k" + CHR(05)
  5615. + VVesr[09]
  5616. + CHR(27) + "k" + CHR(00)
  5617. + BDrucker.DruLQe
  5618. + BDrucker.Dru12cpi.
  5619. DO ix = 1 TO 10:
  5620. VZeile = VVesr[ix].
  5621. { v8/putstream.i "1" }
  5622. END.
  5623. LEAVE.
  5624. END.
  5625. END PROCEDURE.
  5626. /* _UIB-CODE-BLOCK-END */
  5627. &ANALYZE-RESUME
  5628. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK01 C-Win
  5629. PROCEDURE VESR_DRUCK01 :
  5630. /*------------------------------------------------------------------------------
  5631. Purpose:
  5632. Parameters: <none>
  5633. Notes:
  5634. ------------------------------------------------------------------------------*/
  5635. DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
  5636. DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
  5637. DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
  5638. DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
  5639. DEF VAR VSZeile AS CHAR FORMAT "x(58)".
  5640. DEF VAR VZeile AS CHAR FORMAT "x(58)".
  5641. DEF VAR XArt AS INT.
  5642. DEF VAR XAnz AS INT.
  5643. DEF VAR XBetr AS CHAR FORMAT "x(20)".
  5644. DEF VAR VESR_P AS CHAR FORMAT "x(02)".
  5645. DEF VAR VESR AS CHAR FORMAT "x(02)".
  5646. DEF VAR XBetrag AS CHAR FORMAT "x(12)".
  5647. DO WHILE TRUE:
  5648. { v8/putstream.i "15" }
  5649. PZBetrag = ''.
  5650. IF Rundbetr < 0 THEN DO:
  5651. PZBetrag = FILL('*', 13).
  5652. PZReferenz = FILL('*', 27).
  5653. PZTNummer = FILL('*', 09).
  5654. XBetrag = FILL('*', 12).
  5655. END.
  5656. ELSE DO:
  5657. IF Rundbetr > 0
  5658. THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
  5659. IF Rundbetr = 0
  5660. THEN PZBetrag = " 04 ".
  5661. PZReferenz = "92876000000"
  5662. + STRING(VesrKnr,"999999")
  5663. + "0"
  5664. + STRING(VesrFnr,"999999")
  5665. + "00".
  5666. PZTNummer = "01004578".
  5667. XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999").
  5668. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
  5669. INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
  5670. END.
  5671. SUBSTRING(VZeile,061) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  5672. { v8/putstream.i "2" }
  5673. FIND Adresse USE-INDEX Adresse-k1
  5674. WHERE Adresse.Firma = AdFirma
  5675. AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
  5676. VVesr = "".
  5677. IF Rundbetr <> 0 THEN DO:
  5678. SUBSTRING(VVesr[01],02) = STRING(XBetrag,"XXXXXXXXXX XX").
  5679. SUBSTRING(VVesr[01],31) = STRING(XBetrag,"XXXXXXXXXX XX").
  5680. END.
  5681. SUBSTRING(VVesr[01],61) = Adresse.Anschrift[07].
  5682. SUBSTRING(VVesr[02],61) = Adresse.Anschrift[08].
  5683. SUBSTRING(VVesr[03],61) = Adresse.Anschrift[09].
  5684. SUBSTRING(VVesr[04],61) = Adresse.Anschrift[10].
  5685. SUBSTRING(VVesr[05],61) = Adresse.Anschrift[11].
  5686. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  5687. SUBSTRING(VVesr[03],04) = SUBSTRING(VZeile,01,14).
  5688. SUBSTRING(VVesr[04],01) = SUBSTRING(VZeile,16,17).
  5689. SUBSTRING(VVesr[05],01) = Adresse.Anschrift[08].
  5690. SUBSTRING(VVesr[06],01) = Adresse.Anschrift[09].
  5691. SUBSTRING(VVesr[07],01) = Adresse.Anschrift[10].
  5692. SUBSTRING(VVesr[08],01) = Adresse.Anschrift[11].
  5693. SUBSTRING(VVesr[09],25) = STRING(VSZeile,"x(53)").
  5694. SUBSTRING(VVesr[09],82) = "H".
  5695. VVesr[09] = BDrucker.Dru10cpi
  5696. + BDrucker.DruLQb
  5697. + CHR(27) + "k" + CHR(05)
  5698. + VVesr[09]
  5699. + CHR(27) + "k" + CHR(00)
  5700. + BDrucker.DruLQe
  5701. + BDrucker.Dru12cpi.
  5702. DO ix = 1 TO 10:
  5703. VZeile = VVesr[ix].
  5704. { v8/putstream.i "1" }
  5705. END.
  5706. LEAVE.
  5707. END.
  5708. END PROCEDURE.
  5709. /* _UIB-CODE-BLOCK-END */
  5710. &ANALYZE-RESUME
  5711. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK02 C-Win
  5712. PROCEDURE VESR_DRUCK02 :
  5713. /*------------------------------------------------------------------------------
  5714. Purpose:
  5715. Parameters: <none>
  5716. Notes:
  5717. ------------------------------------------------------------------------------*/
  5718. DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
  5719. DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
  5720. DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
  5721. DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
  5722. DEF VAR VSZeile AS CHAR FORMAT "x(58)".
  5723. DEF VAR VZeile AS CHAR FORMAT "x(58)".
  5724. DEF VAR XArt AS INT.
  5725. DEF VAR XAnz AS INT.
  5726. DEF VAR XBetr AS CHAR FORMAT "x(20)".
  5727. DEF VAR VESR_P AS CHAR FORMAT "x(02)".
  5728. DEF VAR VESR AS CHAR FORMAT "x(02)".
  5729. DEF VAR XBetrag AS CHAR FORMAT "x(12)".
  5730. FIND Tabel USE-INDEX Tabel-k1
  5731. WHERE Tabel.Firma = GVFirma
  5732. AND Tabel.RecArt = 'FAKDRU'
  5733. AND Tabel.CodeC = 'BESR02'
  5734. AND Tabel.CodeI = 0
  5735. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  5736. IF NOT AVAILABLE Tabel THEN RETURN.
  5737. FIND XSchrift USE-INDEX Schrift-k1
  5738. WHERE XSchrift.Schname = Tabel.Bez1
  5739. AND XSchrift.Schbild = Tabel.Bez2 NO-LOCK NO-ERROR.
  5740. IF NOT AVAILABLE XSchrift THEN RETURN.
  5741. FIND XDrucker USE-INDEX Drucker-k1
  5742. WHERE XDrucker.Drucker = XSchrift.Schdru NO-LOCK NO-ERROR.
  5743. IF NOT AVAILABLE XDrucker THEN RETURN.
  5744. VTempVESR = VTemp + "VESR".
  5745. XSchacht = Tabel.Dec_3.
  5746. OUTPUT STREAM VOut_Stream TO VALUE(VTempVESR).
  5747. DO WHILE TRUE:
  5748. VVesr = ''.
  5749. SUBSTRING(VVesr[03],001) = 'Bank Zimmerberg AG'.
  5750. SUBSTRING(VVesr[03],028) = 'Bank Zimmerberg AG'.
  5751. SUBSTRING(VVesr[04],001) = '8810 Horgen '.
  5752. SUBSTRING(VVesr[04],028) = '8810 Horgen '.
  5753. VVesr[03] = XDrucker.dru12cpi + VVesr[03].
  5754. SUBSTRING(VVesr[07],001) = 'Huber Getränkehandlung AG'.
  5755. SUBSTRING(VVesr[07],028) = 'Huber Getränkehandlung AG'.
  5756. SUBSTRING(VVesr[07],094) = ''.
  5757. SUBSTRING(VVesr[08],001) = 'Allmendstrasse 91'.
  5758. SUBSTRING(VVesr[08],028) = 'Allmendstrasse 91'.
  5759. SUBSTRING(VVesr[09],001) = '8041 Zürich'.
  5760. SUBSTRING(VVesr[09],028) = '8041 Zürich'.
  5761. VVesr[07] = XDrucker.dru12cpi + VVesr[07].
  5762. PZBetrag = ''.
  5763. XBetrag = ''.
  5764. IF Rundbetr < 0 THEN DO:
  5765. PZBetrag = FILL('*', 13).
  5766. PZReferenz = FILL('*', 27).
  5767. PZTNummer = FILL('*', 09).
  5768. XBetrag = FILL('*', 12).
  5769. END.
  5770. ELSE DO:
  5771. IF Rundbetr > 0
  5772. THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
  5773. IF Rundbetr = 0
  5774. THEN PZBetrag = " 04 ".
  5775. PZReferenz = "80401100000"
  5776. + STRING(VesrKnr,"999999")
  5777. + "0"
  5778. + STRING(VesrFnr,"999999")
  5779. + "00".
  5780. PZTNummer = "01007648".
  5781. IF Rundbetr > 0
  5782. THEN XBetrag = STRING((Rundbetr * 100),"zzzzzz999").
  5783. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
  5784. INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
  5785. END.
  5786. SUBSTRING(VVesr[11],013) = ' 01-7648-2'.
  5787. SUBSTRING(VVesr[11],042) = ' 01-7648-2'.
  5788. SUBSTRING(VVesr[09],059) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  5789. SUBSTRING(VVesr[13],02) = STRING(XBetrag,"X X X X X X X X X").
  5790. SUBSTRING(VVesr[13],26) = STRING(XBetrag,"X X X X X X X X X").
  5791. VVesr[13] = XDrucker.dru10cpi + VVesr[13] + XDrucker.dru12cpi.
  5792. FIND Adresse USE-INDEX Adresse-k1
  5793. WHERE Adresse.Firma = AdFirma
  5794. AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
  5795. SUBSTRING(VVesr[14],59) = Adresse.Anschrift[07].
  5796. SUBSTRING(VVesr[15],59) = Adresse.Anschrift[08].
  5797. SUBSTRING(VVesr[16],59) = Adresse.Anschrift[09].
  5798. SUBSTRING(VVesr[17],59) = Adresse.Anschrift[10].
  5799. SUBSTRING(VVesr[18],59) = Adresse.Anschrift[11].
  5800. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  5801. SUBSTRING(VVesr[15],04) = SUBSTRING(VZeile,01,14).
  5802. SUBSTRING(VVesr[16],01) = SUBSTRING(VZeile,16,17).
  5803. SUBSTRING(VVesr[17],01) = SUBSTRING(Adresse.Anschrift[08],01,25).
  5804. SUBSTRING(VVesr[18],01) = SUBSTRING(Adresse.Anschrift[09],01,25).
  5805. SUBSTRING(VVesr[19],01) = SUBSTRING(Adresse.Anschrift[10],01,25).
  5806. SUBSTRING(VVesr[20],01) = SUBSTRING(Adresse.Anschrift[11],01,25).
  5807. SUBSTRING(VVesr[21],01) = 'H'.
  5808. SUBSTRING(VVesr[21],26) = STRING(VSZeile,"x(53)").
  5809. VVesr[21] = XDrucker.DruInvB
  5810. + VVesr[21]
  5811. + XDrucker.DruInvE.
  5812. VZeile = FILL(CHR(10), Tabel.Int_2).
  5813. PUT STREAM VOut_Stream CONTROL VZeile.
  5814. PUT STREAM VOut_Stream CONTROL CHR(27) '='.
  5815. DO ix = 1 TO 15:
  5816. VZeile = ''.
  5817. VZeile = VBesrKopf[ix] + CHR(10).
  5818. PUT STREAM VOut_Stream CONTROL VZeile.
  5819. END.
  5820. VZeile = FILL(CHR(10), 20).
  5821. PUT STREAM VOut_Stream CONTROL VZeile.
  5822. DO ix = 1 TO 21:
  5823. VZeile = VVesr[ix] + CHR(10).
  5824. PUT STREAM VOut_Stream CONTROL VZeile.
  5825. END.
  5826. LEAVE.
  5827. END.
  5828. OUTPUT STREAM VOut_Stream CLOSE.
  5829. END PROCEDURE.
  5830. /* _UIB-CODE-BLOCK-END */
  5831. &ANALYZE-RESUME
  5832. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK03 C-Win
  5833. PROCEDURE VESR_DRUCK03 :
  5834. /*------------------------------------------------------------------------------
  5835. Purpose:
  5836. Parameters: <none>
  5837. Notes:
  5838. ------------------------------------------------------------------------------*/
  5839. DEF VAR VVESR AS CHAR FORMAT "x(99)" EXTENT 25.
  5840. DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
  5841. DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
  5842. DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
  5843. DEF VAR VSZeile AS CHAR FORMAT "x(58)".
  5844. DEF VAR VZeile AS CHAR FORMAT "x(58)".
  5845. DEF VAR XArt AS INT.
  5846. DEF VAR XAnz AS INT.
  5847. DEF VAR XBetr AS CHAR FORMAT "x(20)".
  5848. DEF VAR VESR_P AS CHAR FORMAT "x(02)".
  5849. DEF VAR VESR AS CHAR FORMAT "x(02)".
  5850. DEF VAR XBetrag AS CHAR FORMAT "x(12)".
  5851. DEF VAR ii AS INT NO-UNDO.
  5852. DO WHILE TRUE:
  5853. { v8/putstream.i "07" }
  5854. VZeile = ''.
  5855. SUBSTRING(VZeile,01) = 'Bank Zimmerberg AG'.
  5856. SUBSTRING(VZeile,29) = 'Bank Zimmerberg AG'.
  5857. { v8/putstream.i "01" }
  5858. SUBSTRING(VZeile,01) = '8810 Horgen '.
  5859. SUBSTRING(VZeile,29) = '8810 Horgen '.
  5860. { v8/putstream.i "02" }
  5861. SUBSTRING(VZeile,01) = 'Huber Getränkehandlung AG'.
  5862. SUBSTRING(VZeile,29) = 'Huber Getränkehandlung AG'.
  5863. { v8/putstream.i "01" }
  5864. SUBSTRING(VZeile,01) = 'Allmendstrasse 91'.
  5865. SUBSTRING(VZeile,29) = 'Allmendstrasse 91'.
  5866. { v8/putstream.i "01" }
  5867. SUBSTRING(VZeile,01) = '8041 Zürich'.
  5868. SUBSTRING(VZeile,29) = '8041 Zürich'.
  5869. { v8/putstream.i "1" }
  5870. PZBetrag = ''.
  5871. IF Rundbetr < 0 THEN DO:
  5872. PZBetrag = FILL('*', 13).
  5873. PZReferenz = FILL('*', 27).
  5874. PZTNummer = FILL('*', 09).
  5875. XBetrag = FILL('*', 12).
  5876. END.
  5877. ELSE DO:
  5878. IF Rundbetr > 0
  5879. THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
  5880. IF Rundbetr = 0
  5881. THEN PZBetrag = " 04 ".
  5882. PZReferenz = "80401100000"
  5883. + STRING(VesrKnr,"999999")
  5884. + "0"
  5885. + STRING(VesrFnr,"999999")
  5886. + "00".
  5887. PZTNummer = "01007648".
  5888. XBetrag = STRING((Rundbetr * 100),"zzzzzz999").
  5889. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
  5890. INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
  5891. END.
  5892. SUBSTRING(VZeile,061) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  5893. { v8/putstream.i "2" }
  5894. SUBSTRING(VZeile,12) = '01-7648-2'.
  5895. SUBSTRING(VZeile,43) = '01-7648-2'.
  5896. { v8/putstream.i "2" }
  5897. IF Rundbetr <> 0 THEN DO:
  5898. DO ii = 9 TO 1 BY -1:
  5899. IF SUBSTRING(XBetrag,ii,01) <> '' THEN NEXT.
  5900. SUBSTRING(XBetrag,ii) = '-'.
  5901. LEAVE.
  5902. END.
  5903. SUBSTRING(VZeile,01) = STRING(XBetrag," X X X X X X X X X").
  5904. SUBSTRING(VZeile,25) = STRING(XBetrag," X X X X X X X X X").
  5905. END.
  5906. VZeile = BDrucker.Dru10cpi + VZeile + BDrucker.Dru12cpi.
  5907. { v8/putstream.i "1" }
  5908. FIND Adresse USE-INDEX Adresse-k1
  5909. WHERE Adresse.Firma = AdFirma
  5910. AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
  5911. VVesr = "".
  5912. SUBSTRING(VVesr[01],61) = Adresse.Anschrift[07].
  5913. SUBSTRING(VVesr[02],61) = Adresse.Anschrift[08].
  5914. SUBSTRING(VVesr[03],61) = Adresse.Anschrift[09].
  5915. SUBSTRING(VVesr[04],61) = Adresse.Anschrift[10].
  5916. SUBSTRING(VVesr[05],61) = Adresse.Anschrift[11].
  5917. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  5918. SUBSTRING(VVesr[02],10) = SUBSTRING(VZeile,01,14).
  5919. SUBSTRING(VVesr[03],07) = SUBSTRING(VZeile,16,17).
  5920. SUBSTRING(VVesr[04],01) = Adresse.Anschrift[08].
  5921. SUBSTRING(VVesr[05],01) = Adresse.Anschrift[09].
  5922. SUBSTRING(VVesr[06],01) = Adresse.Anschrift[10].
  5923. SUBSTRING(VVesr[07],01) = Adresse.Anschrift[11].
  5924. SUBSTRING(VVesr[08],25) = STRING(VSZeile,"x(53)").
  5925. /*
  5926. SUBSTRING(VVesr[08],82) = "H".
  5927. */
  5928. VVesr[08] = BDrucker.Dru10cpi
  5929. + BDrucker.DruLQb
  5930. + CHR(27) + "k" + CHR(05)
  5931. + VVesr[08]
  5932. + CHR(27) + "k" + '0'
  5933. + BDrucker.DruLQe
  5934. + BDrucker.Dru12cpi.
  5935. DO ix = 1 TO 10:
  5936. VZeile = VVesr[ix].
  5937. { v8/putstream.i "1" }
  5938. END.
  5939. LEAVE.
  5940. END.
  5941. END PROCEDURE.
  5942. /* _UIB-CODE-BLOCK-END */
  5943. &ANALYZE-RESUME
  5944. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK04 C-Win
  5945. PROCEDURE VESR_DRUCK04 :
  5946. /*------------------------------------------------------------------------------
  5947. Purpose:
  5948. Parameters: <none>
  5949. Notes:
  5950. ------------------------------------------------------------------------------*/
  5951. DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
  5952. DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
  5953. DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
  5954. DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
  5955. DEF VAR VSZeile AS CHAR FORMAT "x(58)".
  5956. DEF VAR VZeile AS CHAR FORMAT "x(58)".
  5957. DEF VAR XArt AS INT.
  5958. DEF VAR XAnz AS INT.
  5959. DEF VAR XBetr AS CHAR FORMAT "x(20)".
  5960. DEF VAR VESR_P AS CHAR FORMAT "x(02)".
  5961. DEF VAR VESR AS CHAR FORMAT "x(02)".
  5962. DEF VAR XBetrag AS CHAR FORMAT "x(12)".
  5963. FIND Tabel USE-INDEX Tabel-k1
  5964. WHERE Tabel.Firma = GVFirma
  5965. AND Tabel.RecArt = 'FAKDRU'
  5966. AND Tabel.CodeC = 'BESR02'
  5967. AND Tabel.CodeI = 0
  5968. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  5969. IF NOT AVAILABLE Tabel THEN RETURN.
  5970. FIND XSchrift USE-INDEX Schrift-k1
  5971. WHERE XSchrift.Schname = Tabel.Bez1
  5972. AND XSchrift.Schbild = Tabel.Bez2 NO-LOCK NO-ERROR.
  5973. IF NOT AVAILABLE XSchrift THEN RETURN.
  5974. FIND XDrucker USE-INDEX Drucker-k1
  5975. WHERE XDrucker.Drucker = XSchrift.Schdru NO-LOCK NO-ERROR.
  5976. IF NOT AVAILABLE XDrucker THEN RETURN.
  5977. VTempVESR = VTemp + "VESR".
  5978. XSchacht = Tabel.Dec_3.
  5979. OUTPUT STREAM VOut_Stream TO VALUE(VTempVESR).
  5980. DO WHILE TRUE:
  5981. VVesr = ''.
  5982. SUBSTRING(VVesr[03],001) = 'Bank Zimmerberg AG'.
  5983. SUBSTRING(VVesr[03],028) = 'Bank Zimmerberg AG'.
  5984. SUBSTRING(VVesr[04],001) = '8810 Horgen '.
  5985. SUBSTRING(VVesr[04],028) = '8810 Horgen '.
  5986. VVesr[03] = XDrucker.dru12cpi + VVesr[03].
  5987. SUBSTRING(VVesr[07],001) = 'Huber Getränkehandlung AG'.
  5988. SUBSTRING(VVesr[07],028) = 'Huber Getränkehandlung AG'.
  5989. SUBSTRING(VVesr[07],094) = ''.
  5990. SUBSTRING(VVesr[08],001) = 'Allmendstrasse 91'.
  5991. SUBSTRING(VVesr[08],028) = 'Allmendstrasse 91'.
  5992. SUBSTRING(VVesr[09],001) = '8041 Zürich'.
  5993. SUBSTRING(VVesr[09],028) = '8041 Zürich'.
  5994. VVesr[07] = XDrucker.dru12cpi + VVesr[07].
  5995. PZBetrag = ''.
  5996. XBetrag = ''.
  5997. IF Rundbetr < 0 THEN DO:
  5998. PZBetrag = FILL('*', 13).
  5999. PZReferenz = FILL('*', 27).
  6000. PZTNummer = FILL('*', 09).
  6001. XBetrag = FILL('*', 12).
  6002. END.
  6003. ELSE DO:
  6004. IF Rundbetr > 0
  6005. THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
  6006. IF Rundbetr = 0
  6007. THEN PZBetrag = " 04 ".
  6008. PZReferenz = "80401100000"
  6009. + STRING(VesrKnr,"999999")
  6010. + "0"
  6011. + STRING(VesrFnr,"999999")
  6012. + "00".
  6013. PZTNummer = "01007648".
  6014. IF Rundbetr > 0
  6015. THEN XBetrag = STRING((Rundbetr * 100),"zzzzzz999").
  6016. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
  6017. INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
  6018. END.
  6019. SUBSTRING(VVesr[11],013) = ' 01-7648-2'.
  6020. SUBSTRING(VVesr[11],042) = ' 01-7648-2'.
  6021. SUBSTRING(VVesr[09],059) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  6022. SUBSTRING(VVesr[13],02) = STRING(XBetrag,"X X X X X X X X X").
  6023. SUBSTRING(VVesr[13],26) = STRING(XBetrag,"X X X X X X X X X").
  6024. VVesr[13] = XDrucker.dru10cpi + VVesr[13] + XDrucker.dru12cpi.
  6025. FIND Adresse USE-INDEX Adresse-k1
  6026. WHERE Adresse.Firma = AdFirma
  6027. AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
  6028. SUBSTRING(VVesr[14],59) = Adresse.Anschrift[07].
  6029. SUBSTRING(VVesr[15],59) = Adresse.Anschrift[08].
  6030. SUBSTRING(VVesr[16],59) = Adresse.Anschrift[09].
  6031. SUBSTRING(VVesr[17],59) = Adresse.Anschrift[10].
  6032. SUBSTRING(VVesr[18],59) = Adresse.Anschrift[11].
  6033. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  6034. SUBSTRING(VVesr[15],04) = SUBSTRING(VZeile,01,14).
  6035. SUBSTRING(VVesr[16],01) = SUBSTRING(VZeile,16,17).
  6036. SUBSTRING(VVesr[17],01) = SUBSTRING(Adresse.Anschrift[08],01,25).
  6037. SUBSTRING(VVesr[18],01) = SUBSTRING(Adresse.Anschrift[09],01,25).
  6038. SUBSTRING(VVesr[19],01) = SUBSTRING(Adresse.Anschrift[10],01,25).
  6039. SUBSTRING(VVesr[20],01) = SUBSTRING(Adresse.Anschrift[11],01,25).
  6040. SUBSTRING(VVesr[21],01) = 'H'.
  6041. SUBSTRING(VVesr[21],26) = STRING(VSZeile,"x(53)").
  6042. VVesr[21] = XDrucker.DruInvB
  6043. + VVesr[21]
  6044. + XDrucker.DruInvE.
  6045. VZeile = FILL(CHR(10), Tabel.Int_2).
  6046. PUT STREAM VOut_Stream CONTROL VZeile.
  6047. /* Halbe Zeilenschaltung -------------------------
  6048. PUT STREAM VOut_Stream CONTROL CHR(27) '='.
  6049. */
  6050. DO ix = 1 TO 15:
  6051. VZeile = ''.
  6052. VZeile = ' ' + VBesrKopf[ix] + CHR(10).
  6053. PUT STREAM VOut_Stream CONTROL VZeile.
  6054. END.
  6055. VZeile = FILL(CHR(10), 20).
  6056. PUT STREAM VOut_Stream CONTROL VZeile.
  6057. DO ix = 1 TO 21:
  6058. VZeile = VVesr[ix] + (IF ix < 21 THEN CHR(10) ELSE '').
  6059. PUT STREAM VOut_Stream CONTROL VZeile.
  6060. END.
  6061. LEAVE.
  6062. END.
  6063. OUTPUT STREAM VOut_Stream CLOSE.
  6064. END PROCEDURE.
  6065. /* _UIB-CODE-BLOCK-END */
  6066. &ANALYZE-RESUME
  6067. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK05 C-Win
  6068. PROCEDURE VESR_DRUCK05 :
  6069. /*------------------------------------------------------------------------------
  6070. Purpose:
  6071. Parameters: <none>
  6072. Notes:
  6073. ------------------------------------------------------------------------------*/
  6074. DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25.
  6075. DEF VAR PZBetrag AS CHAR FORMAT "x(13)".
  6076. DEF VAR PZReferenz AS CHAR FORMAT "x(27)".
  6077. DEF VAR PZTNummer AS CHAR FORMAT "x(09)".
  6078. DEF VAR VSZeile AS CHAR FORMAT "x(58)".
  6079. DEF VAR VZeile AS CHAR FORMAT "x(58)".
  6080. DEF VAR XArt AS INT.
  6081. DEF VAR XAnz AS INT.
  6082. DEF VAR XBetr AS CHAR FORMAT "x(20)".
  6083. DEF VAR VESR_P AS CHAR FORMAT "x(02)".
  6084. DEF VAR VESR AS CHAR FORMAT "x(02)".
  6085. DEF VAR XBetrag AS CHAR FORMAT "x(12)".
  6086. DEF VAR ii AS INT NO-UNDO.
  6087. DO WHILE TRUE:
  6088. { v8/putstream.i "07" }
  6089. VZeile = ''.
  6090. SUBSTRING(VZeile,01) = 'Bank Zimmerberg AG'.
  6091. SUBSTRING(VZeile,29) = 'Bank Zimmerberg AG'.
  6092. { v8/putstream.i "01" }
  6093. SUBSTRING(VZeile,01) = '8810 Horgen '.
  6094. SUBSTRING(VZeile,29) = '8810 Horgen '.
  6095. { v8/putstream.i "02" }
  6096. SUBSTRING(VZeile,01) = 'Huber Getränkehandlung AG'.
  6097. SUBSTRING(VZeile,29) = 'Huber Getränkehandlung AG'.
  6098. { v8/putstream.i "01" }
  6099. SUBSTRING(VZeile,01) = 'Allmendstrasse 91'.
  6100. SUBSTRING(VZeile,29) = 'Allmendstrasse 91'.
  6101. { v8/putstream.i "01" }
  6102. SUBSTRING(VZeile,01) = '8041 Zürich'.
  6103. SUBSTRING(VZeile,29) = '8041 Zürich'.
  6104. { v8/putstream.i "1" }
  6105. PZBetrag = ''.
  6106. IF Rundbetr < 0 THEN DO:
  6107. PZBetrag = FILL('*', 13).
  6108. PZReferenz = FILL('*', 27).
  6109. PZTNummer = FILL('*', 09).
  6110. XBetrag = FILL('*', 12).
  6111. END.
  6112. ELSE DO:
  6113. IF Rundbetr > 0
  6114. THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 ").
  6115. IF Rundbetr = 0
  6116. THEN PZBetrag = " 04 ".
  6117. PZReferenz = "80401100000"
  6118. + STRING(VesrKnr,"999999")
  6119. + "0"
  6120. + STRING(VesrFnr,"999999")
  6121. + "00".
  6122. PZTNummer = "01007648".
  6123. XBetrag = STRING((Rundbetr * 100),"zzzzzz999").
  6124. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz,
  6125. INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ).
  6126. END.
  6127. SUBSTRING(VZeile,061) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  6128. { v8/putstream.i "2" }
  6129. SUBSTRING(VZeile,12) = '01-7648-2'.
  6130. SUBSTRING(VZeile,43) = '01-7648-2'.
  6131. { v8/putstream.i "2" }
  6132. IF Rundbetr <> 0 THEN DO:
  6133. DO ii = 9 TO 1 BY -1:
  6134. IF SUBSTRING(XBetrag,ii,01) <> '' THEN NEXT.
  6135. SUBSTRING(XBetrag,ii) = '-'.
  6136. LEAVE.
  6137. END.
  6138. SUBSTRING(VZeile,01) = STRING(XBetrag," X X X X X X X X X").
  6139. SUBSTRING(VZeile,25) = STRING(XBetrag," X X X X X X X X X").
  6140. END.
  6141. VZeile = BDrucker.Dru10cpi + VZeile + BDrucker.Dru12cpi.
  6142. { v8/putstream.i "1" }
  6143. FIND Adresse USE-INDEX Adresse-k1
  6144. WHERE Adresse.Firma = AdFirma
  6145. AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR.
  6146. VVesr = "".
  6147. SUBSTRING(VVesr[01],61) = Adresse.Anschrift[07].
  6148. SUBSTRING(VVesr[02],61) = Adresse.Anschrift[08].
  6149. SUBSTRING(VVesr[03],61) = Adresse.Anschrift[09].
  6150. SUBSTRING(VVesr[04],61) = Adresse.Anschrift[10].
  6151. SUBSTRING(VVesr[05],61) = Adresse.Anschrift[11].
  6152. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX").
  6153. SUBSTRING(VVesr[02],10) = SUBSTRING(VZeile,01,14).
  6154. SUBSTRING(VVesr[03],07) = SUBSTRING(VZeile,16,17).
  6155. SUBSTRING(VVesr[04],01) = Adresse.Anschrift[08].
  6156. SUBSTRING(VVesr[05],01) = Adresse.Anschrift[09].
  6157. SUBSTRING(VVesr[06],01) = Adresse.Anschrift[10].
  6158. SUBSTRING(VVesr[07],01) = Adresse.Anschrift[11].
  6159. SUBSTRING(VVesr[08],25) = STRING(VSZeile,"x(53)").
  6160. SUBSTRING(VVesr[08],82) = "H".
  6161. VVesr[08] = BDrucker.DruLQb
  6162. + BDrucker.DruLQe
  6163. + BDrucker.Dru12cpi.
  6164. DO ix = 1 TO 10:
  6165. VZeile = VVesr[ix].
  6166. { v8/putstream.i "1" }
  6167. END.
  6168. LEAVE.
  6169. END.
  6170. END PROCEDURE.
  6171. /* _UIB-CODE-BLOCK-END */
  6172. &ANALYZE-RESUME
  6173. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_ADRESSE C-Win
  6174. PROCEDURE VIPER_ADRESSE :
  6175. /*------------------------------------------------------------------------------
  6176. Purpose:
  6177. Parameters: <none>
  6178. Notes:
  6179. ------------------------------------------------------------------------------*/
  6180. DEF INPUT PARAMETER ipString AS CHAR NO-UNDO.
  6181. DEF VAR cZellen AS CHAR NO-UNDO.
  6182. DEF VAR cWerte AS CHAR NO-UNDO.
  6183. FIND FIRST tDokument
  6184. WHERE tDokument.cGruppe = 'KOPF'
  6185. AND tDokument.iZeile = 1
  6186. AND tDokument.cFeld = 'Seite' NO-ERROR.
  6187. IF NOT AVAILABLE tDokument THEN DO:
  6188. CREATE tDokument.
  6189. ASSIGN tDokument.cGruppe = 'KOPF'
  6190. tDokument.iZeile = 1
  6191. tDokument.cFeld = 'Seite'.
  6192. END.
  6193. tDokument.cInhalt = STRING(VSeite,'z9').
  6194. cZellen = ''.
  6195. cWerte = ''.
  6196. FOR EACH tDokument
  6197. WHERE tDokument.cGruppe = 'Kopf'
  6198. BREAK BY tDokument.cGruppe
  6199. BY tDokument.cFeld:
  6200. cWerte = cWerte
  6201. + tDokument.cInhalt.
  6202. cZellen = cZellen
  6203. + tDokument.cFeld.
  6204. IF NOT LAST-OF ( tDokument.cGruppe ) THEN ASSIGN cWerte = cWerte + CHR(01)
  6205. cZellen = cZellen + ','.
  6206. END.
  6207. RUN vpr_SetDelimiter (CHR(01)).
  6208. RUN vpr_setGroupText ('Kopf', cZellen, cWerte).
  6209. RUN vpr_FlushGroup ('Kopf').
  6210. IF VSeite = 1 AND
  6211. ipString <> 'SammFak' THEN DO:
  6212. cZellen = ''.
  6213. cWerte = ''.
  6214. FOR EACH tDokument
  6215. WHERE tDokument.cGruppe = 'KopfDetail'
  6216. BREAK BY tDokument.cGruppe
  6217. BY tDokument.cFeld:
  6218. cWerte = cWerte
  6219. + tDokument.cInhalt.
  6220. cZellen = cZellen
  6221. + tDokument.cFeld.
  6222. IF NOT LAST-OF ( tDokument.cGruppe ) THEN ASSIGN cWerte = cWerte + CHR(01)
  6223. cZellen = cZellen + ','.
  6224. END.
  6225. RUN vpr_SetDelimiter (CHR(01)).
  6226. RUN vpr_setGroupText ('KopfDetail', cZellen, cWerte).
  6227. RUN vpr_FlushGroup ('KopfDetail').
  6228. END.
  6229. RUN vpr_FlushGroup ('Fusstext').
  6230. RUN vpr_FlushGroup ('Ueberschrift').
  6231. END PROCEDURE.
  6232. /* _UIB-CODE-BLOCK-END */
  6233. &ANALYZE-RESUME
  6234. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_ARTIKELZEILE C-Win
  6235. PROCEDURE VIPER_ARTIKELZEILE :
  6236. /*------------------------------------------------------------------------------
  6237. Purpose:
  6238. Parameters: <none>
  6239. Notes:
  6240. ------------------------------------------------------------------------------*/
  6241. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  6242. DEF VAR cString AS CHAR NO-UNDO.
  6243. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK.
  6244. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK.
  6245. iArtZeile = iArtZeile + 1.
  6246. DO WHILE Aufze.Artnr = 0:
  6247. cString = Aufze.Bez1.
  6248. IF Aufze.Bez1 <> '' THEN DO:
  6249. cString = cString
  6250. + (IF cString = '' THEN '' ELSE CHR(10))
  6251. + Aufze.Bez2.
  6252. END.
  6253. CREATE tDokument.
  6254. ASSIGN tDokument.cGruppe = 'ArtikelZeile1'
  6255. tDokument.iZeile = iArtZeile
  6256. tDokument.cFeld = 'Bez1'
  6257. tDokument.cInhalt = cString.
  6258. RETURN.
  6259. END.
  6260. FIND Artst OF Aufze NO-LOCK.
  6261. FIND GGebinde WHERE GGebinde.Firma = GVFirma
  6262. AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR.
  6263. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  6264. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  6265. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  6266. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  6267. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'KGebinde', KGebinde.Kbez ).
  6268. IF Aufze.VGeb_Me <> 0 THEN DO:
  6269. cString = STRING(Aufze.VGeb_Me,'->>>>')
  6270. + 'x '
  6271. + VGebinde.KBez.
  6272. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'VGebinde', cString ).
  6273. END.
  6274. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Menge', STRING(Aufze.MGeli,'->>,>>9') ).
  6275. cString = Aufze.Bez1.
  6276. IF Aufze.Bez2 <> '' THEN DO:
  6277. cString = cString
  6278. + (IF cString = '' THEN '' ELSE CHR(10))
  6279. + Aufze.Bez2.
  6280. END.
  6281. IF Aufze.Aktion THEN DO:
  6282. cString = cString
  6283. + (IF cString = '' THEN '' ELSE CHR(10))
  6284. + Aufze.Aktion_Text.
  6285. END.
  6286. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', cString ).
  6287. IF Aufze.Jahr > 9 THEN DO:
  6288. cString = STRING(Aufze.Jahr,"9999").
  6289. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'JG', cString ).
  6290. END.
  6291. IF Aufze.Alk_Gehalt <> 0 THEN DO:
  6292. cString = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  6293. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Alk%', cString ).
  6294. END.
  6295. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', STRING(Aufze.Artnr,"999999") ).
  6296. IF FPreis THEN DO:
  6297. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis' , STRING(Aufze.Preis ,'>,>>9.99') ).
  6298. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', STRING(Aufze.Bru_Betr,'->>>,>>9.99') ).
  6299. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC' , STRING(Aufze.WuCd ,'z9') ).
  6300. END.
  6301. DO WHILE FPreis:
  6302. IF Aufze.Rab_Betr = 0 THEN LEAVE.
  6303. iArtZeile = iArtZeile + 1.
  6304. RabWert = ABSOLUTE(Aufze.Rab_Wert).
  6305. IF Aufze.Rab_Art = 3 THEN RabText = VEpzText.
  6306. ELSE DO:
  6307. IF Aufze.Rab_Betr < 0 THEN RabText = VZusText.
  6308. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText.
  6309. END.
  6310. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(RabText) ).
  6311. IF Aufze.Rab_Art = 1 THEN cString = STRING(RabWert,"->9.9%").
  6312. IF Aufze.Rab_Art = 2 OR
  6313. Aufze.Rab_Art = 3 THEN cString = STRING(RabWert,"-9.99").
  6314. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis', cString ).
  6315. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Aufze.Rab_Betr,"->>>,>>9.99")) ).
  6316. LEAVE.
  6317. END.
  6318. DO WHILE FPreis:
  6319. IF Aufze.Zus_Betr = 0 THEN LEAVE.
  6320. iArtZeile = iArtZeile + 1.
  6321. RabWert = ABSOLUTE(Aufze.Zus_Wert).
  6322. IF Aufze.Zus_Art = 3 THEN RabText = VEpzText.
  6323. ELSE DO:
  6324. IF Aufze.Zus_Betr < 0 THEN RabText = VRabText.
  6325. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText.
  6326. END.
  6327. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(RabText) ).
  6328. IF Aufze.Zus_Art = 1 THEN cString = STRING(RabWert,"->9.9%").
  6329. IF Aufze.Zus_Art = 2 OR
  6330. Aufze.Zus_Art = 3 THEN cString = STRING(RabWert,"-9.99").
  6331. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis', cString ).
  6332. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(+ Aufze.Zus_Betr,"->>>,>>9.99")) ).
  6333. LEAVE.
  6334. END.
  6335. /* ---- Summengruppen-Total -------------------------------------------- */
  6336. IF Aufze.Rab_Su_Grp <> 0 THEN DO:
  6337. FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR.
  6338. IF AVAILABLE TRabSumm THEN DO:
  6339. TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab.
  6340. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab.
  6341. END.
  6342. END.
  6343. /* ---- Warengruppen-Totale -------------------------------------------- */
  6344. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp
  6345. AND TUmsGrp.MWst = Aufze.WuCd
  6346. AND TUmsGrp.Ansatz = Aufze.Mwst% NO-ERROR.
  6347. IF NOT AVAILABLE TUmsGrp THEN DO:
  6348. FIND WarenGrp NO-LOCK USE-INDEX WarenGrp-k1
  6349. WHERE WarenGrp.Firma = GVFirma
  6350. AND WarenGrp.Wgr = Artst.Wg_Grp NO-ERROR.
  6351. CREATE TUmsGrp.
  6352. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp
  6353. TUmsGrp.Mwst = Aufze.WuCd
  6354. TUmsGrp.Ansatz = Aufze.MWST%.
  6355. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1.
  6356. ELSE TUmsGrp.Bez = "??????????".
  6357. END.
  6358. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr
  6359. + Aufze.Net_Betr
  6360. - Aufze.Auf_Rab
  6361. - Aufze.Abh_Rab.
  6362. /*
  6363. RUN VIPER_AUSGABE_GRUPPE ( 'ArtikelZeile1' ).
  6364. */
  6365. END PROCEDURE.
  6366. /* _UIB-CODE-BLOCK-END */
  6367. &ANALYZE-RESUME
  6368. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_AUSGABE_ARTIKELZEILE C-Win
  6369. PROCEDURE VIPER_AUSGABE_ARTIKELZEILE :
  6370. /*------------------------------------------------------------------------------
  6371. Purpose:
  6372. Parameters: <none>
  6373. Notes:
  6374. ------------------------------------------------------------------------------*/
  6375. DEF VAR cZellen AS CHAR NO-UNDO.
  6376. DEF VAR cWerte AS CHAR NO-UNDO.
  6377. DEF VAR iPos AS INT NO-UNDO.
  6378. FOR EACH tDokument
  6379. WHERE tDokument.cGruppe = 'ArtikelZeile1'
  6380. BREAK BY tDokument.cGruppe
  6381. BY tDokument.iZeile:
  6382. IF FIRST-OF ( tDokument.cGruppe ) THEN DO:
  6383. iVPagePos = vpr_getPageVPos() + 20.
  6384. RUN vpr_setPageVPos ( iVPagePos ).
  6385. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
  6386. END.
  6387. IF FIRST-OF ( tDokument.iZeile ) THEN DO:
  6388. cZellen = ''.
  6389. cWerte = ''.
  6390. END.
  6391. cWerte = cWerte
  6392. + tDokument.cInhalt.
  6393. cZellen = cZellen
  6394. + tDokument.cFeld.
  6395. IF NOT LAST-OF ( tDokument.iZeile ) THEN DO:
  6396. ASSIGN cWerte = cWerte + CHR(01)
  6397. cZellen = cZellen + ','.
  6398. NEXT.
  6399. END.
  6400. RUN vpr_SetDelimiter (CHR(01)).
  6401. RUN vpr_setGroupText ('ArtikelZeile1', cZellen, cWerte).
  6402. iVPagePos = vpr_getPageVPos().
  6403. iPos = iVPagePos + vpr_getGroupHeight('ArtikelZeile1').
  6404. IF iPos > iVMaxPos THEN DO:
  6405. RUN VIPER_NEUE_SEITE.
  6406. RUN VIPER_ADRESSE ('').
  6407. iVPagePos = vpr_getPageVPos() + 20.
  6408. RUN vpr_setPageVPos ( iVPagePos ).
  6409. RUN vpr_setGroupText ('ArtikelZeile1', cZellen, cWerte).
  6410. END.
  6411. RUN vpr_FlushGroup ('ArtikelZeile1').
  6412. iVPagePos = vpr_getPageVPos().
  6413. IF LAST-OF ( tDokument.cGruppe ) THEN LEAVE.
  6414. iVPagePos = vpr_getPageVPos().
  6415. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ).
  6416. END.
  6417. FOR EACH tDokument
  6418. WHERE tDokument.cGruppe = 'ArtikelZeile1':
  6419. DELETE tDokument.
  6420. END.
  6421. END PROCEDURE.
  6422. /* _UIB-CODE-BLOCK-END */
  6423. &ANALYZE-RESUME
  6424. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_AUSGABE_GRUPPE C-Win
  6425. PROCEDURE VIPER_AUSGABE_GRUPPE :
  6426. /*------------------------------------------------------------------------------
  6427. Purpose:
  6428. Parameters: <none>
  6429. Notes:
  6430. ------------------------------------------------------------------------------*/
  6431. DEF INPUT PARAMETER ipGruppe AS CHAR NO-UNDO.
  6432. DEF VAR cZellen AS CHAR NO-UNDO.
  6433. DEF VAR cWerte AS CHAR NO-UNDO.
  6434. DEF VAR iSpace AS INT NO-UNDO.
  6435. iSpace = vpr_getPageVPos().
  6436. FOR EACH tDokument NO-LOCK
  6437. WHERE tDokument.cGruppe = ipGruppe
  6438. BREAK BY tDokument.cGruppe
  6439. BY tDokument.iZeile:
  6440. IF FIRST-OF ( tDokument.iZeile ) THEN iSpace = iSpace + 40.
  6441. END.
  6442. IF iSpace > iVMaxPos THEN DO:
  6443. RUN vpr_NewPage.
  6444. RUN vpr_InitGroups('').
  6445. IF iZaehler = iLauf THEN RUN vpr_initGraphObj.
  6446. VSeite = VSeite + 1.
  6447. RUN VIPER_ADRESSE (VDokArt).
  6448. END.
  6449. iVPagePos = vpr_getPageVPos().
  6450. CASE ipGruppe:
  6451. WHEN 'Gebindeabrechnung' THEN DO:
  6452. iVPagePos = iVPagePos + 20.
  6453. RUN vpr_setGroupVPos ( 'GebindeabrechnungTitel', iVPagePos ).
  6454. RUN vpr_FlushGroup ( 'GebindeabrechnungTitel').
  6455. iVPagePos = vpr_getPageVPos().
  6456. END.
  6457. OTHERWISE DO:
  6458. END.
  6459. END CASE.
  6460. FOR EACH tDokument
  6461. WHERE tDokument.cGruppe = ipGruppe
  6462. BREAK BY tDokument.cGruppe
  6463. BY tDokument.iZeile:
  6464. IF FIRST-OF ( tDokument.cGruppe ) THEN DO:
  6465. IF ipGruppe <> 'Kondition' AND
  6466. ipGruppe <> 'BESR' AND
  6467. ipGruppe <> 'ADRESSE' THEN DO:
  6468. iVPagePos = vpr_getPageVPos().
  6469. RUN vpr_setGroupVPos ( ipGruppe, iVPagePos ).
  6470. END.
  6471. END.
  6472. IF FIRST-OF ( tDokument.iZeile ) THEN DO:
  6473. cZellen = ''.
  6474. cWerte = ''.
  6475. END.
  6476. cWerte = cWerte
  6477. + tDokument.cInhalt.
  6478. cZellen = cZellen
  6479. + tDokument.cFeld.
  6480. IF NOT LAST-OF ( tDokument.iZeile ) THEN DO:
  6481. ASSIGN cWerte = cWerte + CHR(01)
  6482. cZellen = cZellen + ','.
  6483. NEXT.
  6484. END.
  6485. RUN vpr_SetDelimiter (CHR(01)).
  6486. RUN vpr_setGroupText (ipGruppe, cZellen, cWerte).
  6487. RUN vpr_FlushGroup (ipGruppe).
  6488. END.
  6489. FOR EACH tDokument
  6490. WHERE tDokument.cGruppe = ipGruppe:
  6491. DELETE tDokument.
  6492. END.
  6493. END PROCEDURE.
  6494. /* _UIB-CODE-BLOCK-END */
  6495. &ANALYZE-RESUME
  6496. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_BESR C-Win
  6497. PROCEDURE VIPER_BESR :
  6498. /*------------------------------------------------------------------------------
  6499. Purpose:
  6500. Parameters: <none>
  6501. Notes:
  6502. ------------------------------------------------------------------------------*/
  6503. DEF INPUT PARAMETER ipDokument AS CHAR NO-UNDO.
  6504. DEF VAR ix AS INT NO-UNDO.
  6505. DEF VAR cFeld AS CHAR NO-UNDO.
  6506. DEF VAR cInhalt AS CHAR NO-UNDO.
  6507. DEF VAR cVorlage AS CHAR NO-UNDO.
  6508. DEF VAR iKopfZeile AS INT NO-UNDO.
  6509. DEF VAR PZBetrag AS CHAR NO-UNDO.
  6510. DEF VAR PZReferenz AS CHAR NO-UNDO.
  6511. DEF VAR PZTNNummer AS CHAR NO-UNDO.
  6512. DEF VAR cReferenz AS CHAR NO-UNDO.
  6513. DEF VAR cInstall AS CHAR NO-UNDO.
  6514. IF Rundbetr < 0 THEN RETURN.
  6515. RUN vpr_NewPage.
  6516. cInstall = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR.
  6517. cVorlage = cInstall + '/' + ipDokument + '.vfr'.
  6518. RUN vpr_LoadVFR (cVorlage).
  6519. RUN vpr_ActivateReport (ipDokument).
  6520. RUN vpr_SetDocAttrib ( "PAPERSIZE=A4").
  6521. RUN vpr_InitGroups ("").
  6522. RUN vpr_initGraphObj.
  6523. IF VSchachtBesr > 0 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtBesr ).
  6524. RUN vpr_SetGroupAttrib ("ADRESSE", "Fixed=true").
  6525. RUN vpr_SetGroupAttrib ("BESR" , "Fixed=true").
  6526. FIND Adresse NO-LOCK USE-INDEX Adresse-k1
  6527. WHERE Adresse.Firma = AdFirma
  6528. AND Adresse.Knr = BAufko.Fak_Knr NO-ERROR.
  6529. iKopfZeile = 1.
  6530. VBesrKopf = ''.
  6531. IF BAufko.Adresse[05] <> '' THEN DO:
  6532. i1 = 6.
  6533. DO ix = 1 TO 5:
  6534. CREATE tDokument.
  6535. ASSIGN tDokument.cGruppe = 'ADRESSE'
  6536. tDokument.iZeile = 1
  6537. tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99')
  6538. tDokument.cInhalt = BAufko.Adresse[ix].
  6539. i1 = i1 + 1.
  6540. VBesrKopf[i1] = BAufko.Adresse[ix].
  6541. END.
  6542. END.
  6543. ELSE DO:
  6544. DO ix = 6 TO 11:
  6545. CREATE tDokument.
  6546. ASSIGN tDokument.cGruppe = 'ADRESSE'
  6547. tDokument.iZeile = 1
  6548. tDokument.cFeld = 'Adresse_' + STRING(ix,'99')
  6549. tDokument.cInhalt = Adresse.Anschrift[ix].
  6550. VBesrKopf[ix] = Adresse.Anschrift[ix].
  6551. END.
  6552. END.
  6553. DO ix = 6 TO 11:
  6554. CREATE tDokument.
  6555. ASSIGN tDokument.cGruppe = 'BESR'
  6556. tDokument.iZeile = 1
  6557. tDokument.cFeld = 'Adresse_R_' + STRING(ix,'99')
  6558. tDokument.cInhalt = VBesrKopf[ix].
  6559. IF ix < 7 THEN NEXT.
  6560. CREATE tDokument.
  6561. ASSIGN tDokument.cGruppe = 'BESR'
  6562. tDokument.iZeile = 1
  6563. tDokument.cFeld = 'Adresse_L_' + STRING(ix,'99')
  6564. tDokument.cInhalt = VBesrKopf[ix].
  6565. END.
  6566. IF Rundbetr > 0.00 THEN DO:
  6567. cFeld = STRING(Rundbetr,'zzzzzz9.99').
  6568. cFeld = REPLACE(cFeld, '.', ' ').
  6569. cFeld = STRING(cFeld,'X X X X X X X X X X').
  6570. END.
  6571. ELSE cFeld = ''.
  6572. RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Betrag_L', cFeld ).
  6573. RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Betrag_R', cFeld ).
  6574. IF Rundbetr > 0 THEN PZBetrag = '01' + STRING(Rundbetr * 100,'9999999999 ').
  6575. ELSE PZBetrag = ' 04 '.
  6576. PZReferenz = '80401100000'
  6577. + STRING(bAufko.Fak_Knr,'999999')
  6578. + '0'
  6579. + STRING(bAufko.Faknr ,'999999')
  6580. + '00'.
  6581. PZTNNummer = '01007648'.
  6582. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag, INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNNummer, OUTPUT cReferenz ).
  6583. RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Referenz_OCRB', cReferenz ).
  6584. RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Referenz_R', STRING(PZReferenz,'XX XXXXX XXXXX XXXXX XXXXX XXXXX') ).
  6585. RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Referenz_L', STRING(PZReferenz,'XX XXXXX XXXXX XXXXX XXXXX XXXXX') ).
  6586. RUN VIPER_AUSGABE_GRUPPE ( 'ADRESSE' ).
  6587. RUN VIPER_AUSGABE_GRUPPE ( 'BESR' ).
  6588. END PROCEDURE.
  6589. /* _UIB-CODE-BLOCK-END */
  6590. &ANALYZE-RESUME
  6591. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_CREATE_DOKUMENT C-Win
  6592. PROCEDURE VIPER_CREATE_DOKUMENT :
  6593. /*------------------------------------------------------------------------------
  6594. Purpose:
  6595. Parameters: <none>
  6596. Notes:
  6597. ------------------------------------------------------------------------------*/
  6598. DEF INPUT PARAMETER ipGruppe AS CHAR NO-UNDO.
  6599. DEF INPUT PARAMETER ipZeile AS INT NO-UNDO.
  6600. DEF INPUT PARAMETER ipFeld AS CHAR NO-UNDO.
  6601. DEF INPUT PARAMETER ipInhalt AS CHAR NO-UNDO.
  6602. CREATE tDokument.
  6603. ASSIGN tDokument.cGruppe = ipGruppe
  6604. tDokument.iZeile = ipZeile
  6605. tDokument.cFeld = ipFeld
  6606. tDokument.cInhalt = ipInhalt.
  6607. END PROCEDURE.
  6608. /* _UIB-CODE-BLOCK-END */
  6609. &ANALYZE-RESUME
  6610. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_INIT C-Win
  6611. PROCEDURE VIPER_INIT :
  6612. /*------------------------------------------------------------------------------
  6613. Purpose:
  6614. Parameters: <none>
  6615. Notes:
  6616. ------------------------------------------------------------------------------*/
  6617. DEF INPUT PARAMETER ipDokument AS CHAR NO-UNDO.
  6618. DEF VAR cVorlage AS CHAR NO-UNDO.
  6619. DEF VAR cZellen AS CHAR NO-UNDO.
  6620. DEF VAR cZelle AS CHAR NO-UNDO.
  6621. DEF VAR cGruppe AS CHAR NO-UNDO.
  6622. DEF VAR ii AS INT NO-UNDO.
  6623. DEF VAR cInstall AS CHAR NO-UNDO.
  6624. cInstall = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR.
  6625. IF NOT ipDokument BEGINS 'Samm' THEN DO:
  6626. cVorlage = cInstall + '/' + ipDokument + '.vfr'.
  6627. cvpr_Dokument = ipDokument + '.vpr'.
  6628. RUN vpr_LoadVFR (cVorlage).
  6629. RUN vpr_ActivateReport (ipDokument).
  6630. RUN vpr_SelectPrinter (F_Drucker).
  6631. RUN vpr_setPrinterAttrib("duplex=1").
  6632. RUN vpr_ResetDoc.
  6633. RUN vpr_SetDocAttrib ( "PAPERSIZE=A4").
  6634. RUN vpr_SetPreviewMode ('Direct').
  6635. RUN vpr_setDocTitle ( ipDokument ).
  6636. RUN vpr_InitGroups ("").
  6637. RUN vpr_initGraphObj.
  6638. END.
  6639. ELSE DO:
  6640. IF iZaehler = 1 THEN DO:
  6641. cVorlage = cInstall + '/' + ipDokument + '.vfr'.
  6642. cvpr_Dokument = ipDokument + '.vpr'.
  6643. RUN vpr_LoadVFR (cVorlage).
  6644. RUN vpr_ActivateReport (ipDokument).
  6645. RUN vpr_SelectPrinter (F_Drucker).
  6646. RUN vpr_setPrinterAttrib("duplex=1").
  6647. RUN vpr_ResetDoc.
  6648. RUN vpr_SetDocAttrib ( "PAPERSIZE=A4").
  6649. RUN vpr_SetPreviewMode ('Direct').
  6650. RUN vpr_setDocTitle ( ipDokument ).
  6651. IF VSchachtOrig > 0 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtOrig ).
  6652. END.
  6653. ELSE DO:
  6654. RUN vpr_NewPage.
  6655. IF VSchachtKopi > 0 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtKopi ).
  6656. END.
  6657. RUN vpr_InitGroups("").
  6658. IF iZaehler = iLauf THEN RUN vpr_InitGraphObj.
  6659. END.
  6660. RUN vpr_SetGroupAttrib ("Kopf" , "Fixed=true").
  6661. RUN vpr_SetGroupAttrib ("Fusstext" , "Fixed=true").
  6662. RUN vpr_SetGroupAttrib ("Kondition", "Fixed=true").
  6663. CASE ipDokument:
  6664. WHEN 'Faktura' OR
  6665. WHEN 'SammFak' THEN iVMaxPos = 2600.
  6666. OTHERWISE iVMaxPos = 2650.
  6667. END CASE.
  6668. END PROCEDURE.
  6669. /* _UIB-CODE-BLOCK-END */
  6670. &ANALYZE-RESUME
  6671. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_NEUE_SEITE C-Win
  6672. PROCEDURE VIPER_NEUE_SEITE :
  6673. /*------------------------------------------------------------------------------
  6674. Purpose:
  6675. Parameters: <none>
  6676. Notes:
  6677. ------------------------------------------------------------------------------*/
  6678. DEF VAR iPos AS INT NO-UNDO.
  6679. DO WHILE TRUE:
  6680. IF VSeite = 0 THEN DO:
  6681. RUN vpr_InitGroups('').
  6682. IF iZaehler = iLauf THEN RUN vpr_initGraphObj.
  6683. VSeite = VSeite + 1.
  6684. LEAVE.
  6685. END.
  6686. IF VDokArt = 'SammFak' THEN DO:
  6687. iPos = vpr_getPageVPos().
  6688. IF (iPos + 160) < iVMaxPos THEN DO:
  6689. iPos = iPos + 20.
  6690. RUN vpr_setPageVPos ( iPos ).
  6691. LEAVE.
  6692. END.
  6693. END.
  6694. RUN vpr_NewPage.
  6695. RUN vpr_InitGroups('').
  6696. IF iZaehler = 1 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtOrig ).
  6697. ELSE RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtKopi ).
  6698. IF iZaehler = iLauf THEN RUN vpr_initGraphObj.
  6699. VSeite = VSeite + 1.
  6700. LEAVE.
  6701. END.
  6702. END PROCEDURE.
  6703. /* _UIB-CODE-BLOCK-END */
  6704. &ANALYZE-RESUME
  6705. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_RUECKSTAND C-Win
  6706. PROCEDURE VIPER_RUECKSTAND :
  6707. /*------------------------------------------------------------------------------
  6708. Purpose:
  6709. Parameters: <none>
  6710. Notes:
  6711. ------------------------------------------------------------------------------*/
  6712. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  6713. DEF VAR cString AS CHAR NO-UNDO.
  6714. FIND tRueckst WHERE RECID(tRueckst) = ipRecid NO-LOCK.
  6715. FIND Aufze WHERE RECID(Aufze) = tRueckst.Zeile NO-LOCK.
  6716. iArtZeile = iArtZeile + 1.
  6717. DO WHILE Aufze.Artnr = 0:
  6718. CREATE tDokument.
  6719. ASSIGN tDokument.cGruppe = 'ArtikelZeile1'
  6720. tDokument.iZeile = iArtZeile
  6721. tDokument.cFeld = 'Bez1'
  6722. tDokument.cInhalt = Aufze.Bez1.
  6723. IF Aufze.Bez2 <> '' THEN DO:
  6724. iArtZeile = iArtZeile + 1.
  6725. CREATE tDokument.
  6726. ASSIGN tDokument.cGruppe = 'ArtikelZeile1'
  6727. tDokument.iZeile = iArtZeile
  6728. tDokument.cFeld = 'Bez1'
  6729. tDokument.cInhalt = Aufze.Bez2.
  6730. END.
  6731. RETURN.
  6732. END.
  6733. FIND Artst OF Aufze NO-LOCK.
  6734. FIND VGebinde WHERE VGebinde.Firma = GVFirma
  6735. AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR.
  6736. FIND KGebinde WHERE KGebinde.Firma = GVFirma
  6737. AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR.
  6738. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'KGebinde', KGebinde.Kbez ).
  6739. IF Aufze.VGeb_Ru <> 0 THEN DO:
  6740. cString = STRING(Aufze.VGeb_Ru,'->>>>')
  6741. + 'x '
  6742. + VGebinde.KBez.
  6743. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'VGebinde', cString ).
  6744. END.
  6745. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Menge', STRING(Aufze.MRuek,'->>,>>9') ).
  6746. cString = Aufze.Bez1.
  6747. IF Aufze.Bez2 <> '' THEN cString = cString
  6748. + (IF cString = '' THEN '' ELSE CHR(10))
  6749. + Aufze.Bez2.
  6750. IF Aufze.Aktion THEN cString = cString
  6751. + (IF cString = '' THEN '' ELSE CHR(10))
  6752. + Aufze.Aktion_Text.
  6753. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', cString ).
  6754. IF Aufze.Jahr > 9 THEN DO:
  6755. cString = STRING(Aufze.Jahr,"9999").
  6756. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'JG', cString ).
  6757. END.
  6758. IF Aufze.Alk_Gehalt <> 0 THEN DO:
  6759. cString = STRING(Aufze.Alk_Gehalt,"zz9.9%").
  6760. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Alk%', cString ).
  6761. END.
  6762. /*
  6763. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', STRING(Aufze.Artnr,"999999") ).
  6764. IF FPreis THEN DO:
  6765. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis', STRING(Aufze.Preis,'>,>>9.999') ).
  6766. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', STRING(Aufze.Bru_Betr ,'->>>,>>9.99') ).
  6767. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC', STRING(Aufze.WuCd,'z9') ).
  6768. END.
  6769. */
  6770. RUN VIPER_AUSGABE_GRUPPE ( 'ArtikelZeile1' ).
  6771. END PROCEDURE.
  6772. /* _UIB-CODE-BLOCK-END */
  6773. &ANALYZE-RESUME
  6774. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WIRTESONNTAG C-Win
  6775. PROCEDURE WIRTESONNTAG :
  6776. /*------------------------------------------------------------------------------
  6777. Purpose:
  6778. Parameters: <none>
  6779. Notes:
  6780. ------------------------------------------------------------------------------*/
  6781. XWirtesonntag = ''.
  6782. FIND Tabel USE-INDEX Tabel-k1
  6783. WHERE Tabel.Firma = GVFirma
  6784. AND Tabel.RecArt = 'WISO'
  6785. AND Tabel.CodeC = ''
  6786. AND Tabel.CodeI = BAufko.Wirt_So
  6787. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  6788. IF NOT AVAILABLE Tabel THEN DO:
  6789. XWirtesonntag = BAufko.Wirt_So_Text.
  6790. RETURN.
  6791. END.
  6792. IF LENGTH(Tabel.Bez1) > 4 THEN XWirtesonntag = Tabel.Bez1.
  6793. IF BAufko.Wirt_So_Text <> '' THEN DO:
  6794. IF XWirtesonntag <> '' THEN XWirtesonntag = XWirtesonntag + " / ".
  6795. XWirtesonntag = XWirtesonntag + BAufko.Wirt_So_Text.
  6796. END.
  6797. END PROCEDURE.
  6798. /* _UIB-CODE-BLOCK-END */
  6799. &ANALYZE-RESUME
  6800. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WORKFILE C-Win
  6801. PROCEDURE WORKFILE :
  6802. /*------------------------------------------------------------------------------
  6803. Purpose:
  6804. Parameters: <none>
  6805. Notes:
  6806. ------------------------------------------------------------------------------*/
  6807. FIND BSchrift NO-LOCK USE-INDEX Schrift-k1
  6808. WHERE BSchrift.Schname = BLiDruck.ListDru
  6809. AND BSchrift.Schbild = BLiDruck.ListBild NO-ERROR.
  6810. FIND BDrucker NO-LOCK USE-INDEX Drucker-k1
  6811. WHERE BDrucker.Drucker = BSchrift.Schdru NO-ERROR.
  6812. DOpen = FALSE.
  6813. VTemp = ''.
  6814. IF AVAILABLE bDrucker THEN DO:
  6815. IF BDrucker.Emul = 'TERMINAL' THEN DO:
  6816. FOR EACH XTermOut:
  6817. DELETE XTermOut.
  6818. END.
  6819. VZNr = 0.
  6820. RETURN.
  6821. END.
  6822. END.
  6823. lViper = TRUE.
  6824. CASE VDokArt:
  6825. WHEN 'RUESTSCHEIN' THEN lViper = FALSE.
  6826. WHEN 'BESR' THEN lViper = FALSE.
  6827. WHEN 'PALETTEN' OR
  6828. WHEN 'LADEPAPIER' THEN lViper = FALSE.
  6829. WHEN 'BESR02' OR
  6830. WHEN 'BESR04' THEN lViper = FALSE.
  6831. END.
  6832. IF lViper THEN RETURN.
  6833. DO WHILE TRUE TRANSACTION:
  6834. FIND Tabel USE-INDEX Tabel-k1
  6835. WHERE Tabel.Firma = GVFirma
  6836. AND Tabel.RecArt = 'TEMPFILE'
  6837. AND Tabel.CodeI = 0
  6838. AND Tabel.CodeC = 'AUFTRAG'
  6839. AND Tabel.Sprcd = 1 NO-ERROR.
  6840. IF NOT AVAILABLE Tabel THEN DO:
  6841. CREATE Tabel.
  6842. ASSIGN Tabel.Firma = GVFirma
  6843. Tabel.RecArt = 'TEMPFILE'
  6844. Tabel.CodeI = 0
  6845. Tabel.CodeC = 'AUFTRAG'
  6846. Tabel.Sprcd = 1.
  6847. END.
  6848. ASSIGN Tabel.Bez1 = SESSION:TEMP-DIR
  6849. Tabel.Int_1 = Tabel.Int_1 + 1.
  6850. VTemp = Tabel.Bez1 + 'Faktura' + STRING(Tabel.Int_1) + '.tmp'.
  6851. RELEASE Tabel.
  6852. LEAVE.
  6853. END.
  6854. DOpen = TRUE.
  6855. END PROCEDURE.
  6856. /* _UIB-CODE-BLOCK-END */
  6857. &ANALYZE-RESUME