c-p_wiederkehr.w 188 KB

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