c-p_huber-neu.w 279 KB

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