c-p_oswald.w 151 KB

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