b-p_inventar.w 155 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. /* Temp-Table and Buffer definitions */
  8. DEFINE TEMP-TABLE XSchrift NO-UNDO LIKE Schrift.
  9. DEFINE NEW SHARED TEMP-TABLE XTermOut NO-UNDO LIKE TermOut.
  10. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS B-table-Win
  11. /*------------------------------------------------------------------------
  12. File:
  13. Description: from BROWSER.W - Basic SmartBrowser Object Template
  14. Input Parameters:
  15. <none>
  16. Output Parameters:
  17. <none>
  18. ------------------------------------------------------------------------*/
  19. /* This .W file was created with the Progress UIB. */
  20. /*----------------------------------------------------------------------*/
  21. /* Create an unnamed pool to store all the widgets created
  22. by this procedure. This is a good default which assures
  23. that this procedure's triggers and internal procedures
  24. will execute in this procedure's storage, and that proper
  25. cleanup will occur on deletion of the procedure. */
  26. CREATE WIDGET-POOL.
  27. /* *************************** Definitions ************************** */
  28. /* Parameters Definitions --- */
  29. /* Local Variable Definitions --- */
  30. DEF VAR AltSchname LIKE Schrift.Schname NO-UNDO.
  31. DEF VAR QOpen AS LOG NO-UNDO.
  32. DEF VAR FOpen AS LOG NO-UNDO.
  33. DEF VAR OBreite AS INT.
  34. DEF VAR VProgname AS CHAR NO-UNDO.
  35. DEF VAR XArtnr LIKE Artst.Artnr.
  36. DEF VAR ARecid AS RECID INIT -1 NO-UNDO.
  37. DEF VAR BRecid AS RECID INIT -1 NO-UNDO.
  38. DEF VAR FInit AS LOG NO-UNDO.
  39. DEF VAR Aktive AS LOG NO-UNDO.
  40. DEF VAR cCodeArt AS CHAR INIT 'P0206100' NO-UNDO.
  41. DEF VAR cBarCode AS CHAR NO-UNDO.
  42. DEF VAR iLager AS INT NO-UNDO.
  43. /* ------------------------------------------------------------------------- */
  44. DEF VAR VArtnr LIKE Artst.Artnr NO-UNDO.
  45. DEF VAR BArtnr LIKE Artst.Artnr NO-UNDO.
  46. DEF VAR VInhalt LIKE Artst.Inhalt NO-UNDO.
  47. DEF VAR BInhalt LIKE Artst.Inhalt NO-UNDO.
  48. DEF VAR VWgr LIKE Artst.Wg_Grp NO-UNDO.
  49. DEF VAR BWgr LIKE Artst.Wg_Grp NO-UNDO.
  50. DEF VAR VPgr LIKE Artst.Prod_Grp NO-UNDO.
  51. DEF VAR BPgr LIKE Artst.Prod_Grp NO-UNDO.
  52. DEF VAR VAgr LIKE Artst.Art_Grp NO-UNDO.
  53. DEF VAR BAgr LIKE Artst.Art_Grp NO-UNDO.
  54. DEF VAR VHerst LIKE Artst.Herst NO-UNDO.
  55. DEF VAR BHerst LIKE Artst.Herst NO-UNDO.
  56. DEF VAR VDatum AS DATE FORMAT "99.99.9999" NO-UNDO.
  57. DEF VAR VPerDat AS DATE FORMAT "99.99.9999" NO-UNDO.
  58. DEF VAR VInvDat AS DATE FORMAT "99.99.9999" NO-UNDO.
  59. DEF VAR VZweite AS LOG NO-UNDO.
  60. DEF VAR VGebinde AS LOG NO-UNDO.
  61. DEF VAR VPreis AS INT NO-UNDO.
  62. DEF VAR VInvneu AS DEC DECIMALS 4 NO-UNDO.
  63. DEF VAR VBestand AS DEC DECIMALS 4 NO-UNDO.
  64. DEF VAR VBetrag AS DEC DECIMALS 4 NO-UNDO.
  65. DEF VAR VVerlust AS DEC DECIMALS 4 NO-UNDO.
  66. DEF VAR VInvwert AS DEC DECIMALS 4 NO-UNDO.
  67. DEF VAR VLagwert AS DEC DECIMALS 4 NO-UNDO.
  68. DEF VAR VEingang AS DEC DECIMALS 4 NO-UNDO.
  69. DEF VAR VAusgang AS DEC DECIMALS 4 NO-UNDO.
  70. DEF VAR VVorMonat AS DEC DECIMALS 4 NO-UNDO.
  71. DEF VAR VKGebMe AS DEC DECIMALS 4 NO-UNDO.
  72. DEF VAR VVGebMe AS DEC DECIMALS 4 NO-UNDO.
  73. DEF VAR VKGebPr AS DEC DECIMALS 4 NO-UNDO.
  74. DEF VAR VVGebPr AS DEC DECIMALS 4 NO-UNDO.
  75. DEF VAR VKGebWe AS DEC DECIMALS 4 NO-UNDO.
  76. DEF VAR VVGebWe AS DEC DECIMALS 4 NO-UNDO.
  77. DEF VAR VJJ AS INT NO-UNDO.
  78. DEF VAR VMM AS INT NO-UNDO.
  79. DEF VAR VGebInh AS INT NO-UNDO.
  80. DEF VAR VGebText AS CHAR NO-UNDO.
  81. DEF VAR VLkz AS CHAR NO-UNDO.
  82. DEF VAR FLandSort AS LOG NO-UNDO.
  83. DEF VAR FLager AS LOG NO-UNDO.
  84. DEF VAR FBestand AS LOG NO-UNDO.
  85. DEF VAR FAusverk AS LOG NO-UNDO.
  86. DEF VAR Sprcd AS INT NO-UNDO.
  87. DEF VAR FAltBest AS LOG NO-UNDO.
  88. DEF VAR AufSort AS INT NO-UNDO.
  89. DEF VAR XWgr AS CHAR FORMAT "x(30)" NO-UNDO.
  90. DEF VAR XPgr AS CHAR FORMAT "x(30)" NO-UNDO.
  91. DEF VAR XAgr AS CHAR FORMAT "x(30)" NO-UNDO.
  92. DEF VAR XLkz AS CHAR FORMAT "x(30)" NO-UNDO.
  93. DEF VAR XStern AS CHAR FORMAT "x" NO-UNDO.
  94. DEF VAR VTotal0 AS DEC EXTENT 10.
  95. DEF VAR VTotal1 AS DEC EXTENT 10.
  96. DEF VAR VTotal2 AS DEC EXTENT 10.
  97. DEF VAR VTotal3 AS DEC EXTENT 10.
  98. DEF VAR VTotal4 AS DEC EXTENT 10.
  99. DEF VAR VTotal5 AS DEC EXTENT 10.
  100. DEF VAR VZeile AS CHAR FORMAT "x(180)".
  101. DEF VAR RRand AS INT INIT 0.
  102. DEF VAR VExcelZeile AS INT INIT 0.
  103. DEF VAR cDateiName AS CHAR NO-UNDO.
  104. DEF STREAM Inp_Stream.
  105. DEF STREAM Out_Stream.
  106. DEF BUFFER BArtLief FOR ArtLief.
  107. DEF BUFFER BArtst FOR Artst.
  108. DEF BUFFER BAdresse FOR Adresse.
  109. DEF TEMP-TABLE TArtst LIKE Artst
  110. FIELD Bez1 AS CHAR
  111. FIELD Bez2 AS CHAR
  112. FIELD Preis AS DEC DECIMALS 4
  113. FIELD Verlust AS DEC DECIMALS 4
  114. FIELD KGeb_Wert AS DEC DECIMALS 4
  115. FIELD VGeb_Wert AS DEC DECIMALS 4
  116. FIELD LagOrt AS CHAR
  117. FIELD cSort AS CHAR.
  118. DEF TEMP-TABLE TExcel FIELD Zeile AS INT
  119. FIELD Sonder AS INT
  120. FIELD Feld AS CHAR EXTENT 20.
  121. /* ---------- Globale Variablen ---------------------------------- */
  122. { v8/globvar.i" " " " "SHARED" }
  123. { v8/debivar.i " " " " "SHARED" }
  124. { v8/artivar.i " " " " "SHARED" }
  125. { v8/contvar.i " " " " "SHARED" }
  126. { v8/listtitv.i "NEW" "SHARED" }
  127. /* _UIB-CODE-BLOCK-END */
  128. &ANALYZE-RESUME
  129. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  130. /* ******************** Preprocessor Definitions ******************** */
  131. &Scoped-define PROCEDURE-TYPE SmartBrowser
  132. &Scoped-define DB-AWARE no
  133. &Scoped-define ADM-SUPPORTED-LINKS Record-Source,Record-Target,TableIO-Target
  134. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  135. &Scoped-define FRAME-NAME F-Main
  136. &Scoped-define BROWSE-NAME Br_Druckername
  137. /* Internal Tables (found by Frame, Query & Browse Queries) */
  138. &Scoped-define INTERNAL-TABLES XSchrift Schrift
  139. /* Definitions for BROWSE Br_Druckername */
  140. &Scoped-define FIELDS-IN-QUERY-Br_Druckername XSchrift.Schname
  141. &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Druckername
  142. &Scoped-define QUERY-STRING-Br_Druckername FOR EACH XSchrift NO-LOCK ~
  143. BY XSchrift.Schname
  144. &Scoped-define OPEN-QUERY-Br_Druckername OPEN QUERY Br_Druckername FOR EACH XSchrift NO-LOCK ~
  145. BY XSchrift.Schname.
  146. &Scoped-define TABLES-IN-QUERY-Br_Druckername XSchrift
  147. &Scoped-define FIRST-TABLE-IN-QUERY-Br_Druckername XSchrift
  148. /* Definitions for BROWSE Br_Schriftbild */
  149. &Scoped-define FIELDS-IN-QUERY-Br_Schriftbild Schrift.Schbild
  150. &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Schriftbild
  151. &Scoped-define QUERY-STRING-Br_Schriftbild FOR EACH Schrift NO-LOCK ~
  152. BY Schrift.Schbild
  153. &Scoped-define OPEN-QUERY-Br_Schriftbild OPEN QUERY Br_Schriftbild FOR EACH Schrift NO-LOCK ~
  154. BY Schrift.Schbild.
  155. &Scoped-define TABLES-IN-QUERY-Br_Schriftbild Schrift
  156. &Scoped-define FIRST-TABLE-IN-QUERY-Br_Schriftbild Schrift
  157. /* Definitions for FRAME F-Main */
  158. /* Standard List Definitions */
  159. &Scoped-Define ENABLED-FIELDS Listen.ENr[2] Listen.VFl[6] Listen.VNr[1] ~
  160. Listen.VNr[4] Listen.BNr[1] Listen.BNr[4] Listen.VNr[2] Listen.BNr[2] ~
  161. Listen.VNr[5] Listen.BNr[5] Listen.VNr[6] Listen.BNr[6] Listen.VNr[3] ~
  162. Listen.BNr[3] Listen.EDa[1] Listen.VFl[4] Listen.ENr[1] Listen.VFl[1] ~
  163. Listen.VFl[2] Listen.VFl[3] Listen.VFl[5] Listen.VFl[7]
  164. &Scoped-define ENABLED-TABLES Listen
  165. &Scoped-define FIRST-ENABLED-TABLE Listen
  166. &Scoped-Define ENABLED-OBJECTS Br_Schriftbild Br_Druckername F_Sort F_TZZ ~
  167. F_KZZ F_FZZ F_LQ F_KOPIE F_SCHACHT CB_Lager F_USER F_Programm CB_Land ~
  168. F_Zeichen Btn_Start Btn_Ende Btn_Excel RECT-37 RECT-38 RECT-39 RECT-40 ~
  169. RECT-41 RECT-42
  170. &Scoped-Define DISPLAYED-FIELDS Listen.ENr[2] Listen.VFl[6] Listen.VNr[1] ~
  171. Listen.VNr[4] Listen.BNr[1] Listen.BNr[4] Listen.VNr[2] Listen.BNr[2] ~
  172. Listen.VNr[5] Listen.BNr[5] Listen.VNr[6] Listen.BNr[6] Listen.VNr[3] ~
  173. Listen.BNr[3] Listen.EDa[1] Listen.VFl[4] Listen.ENr[1] Listen.VFl[1] ~
  174. Listen.VFl[2] Listen.VFl[3] Listen.VFl[5] Listen.VFl[7]
  175. &Scoped-define DISPLAYED-TABLES Listen
  176. &Scoped-define FIRST-DISPLAYED-TABLE Listen
  177. &Scoped-Define DISPLAYED-OBJECTS F_Sort F_TZZ F_KZZ F_FZZ F_LQ F_KOPIE ~
  178. F_SCHACHT CB_Lager F_USER F_Programm CB_Land F_Zeichen
  179. /* Custom List Definitions */
  180. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  181. &Scoped-define List-1 F_Sort F_TZZ F_KZZ F_FZZ F_LQ F_KOPIE F_SCHACHT ~
  182. F_USER F_Programm F_Zeichen
  183. &Scoped-define List-2 Listen.ENr[2] Listen.VFl[6] Listen.VNr[1] ~
  184. Listen.VNr[4] Listen.BNr[1] Listen.BNr[4] Listen.VNr[2] Listen.BNr[2] ~
  185. Listen.VNr[5] Listen.BNr[5] Listen.VNr[6] Listen.BNr[6] Listen.VNr[3] ~
  186. Listen.BNr[3] Listen.EDa[1] Listen.VFl[4] Listen.ENr[1] Listen.VFl[1] ~
  187. Listen.VFl[2] Listen.VFl[3] Listen.VFl[5] Listen.VFl[7]
  188. /* _UIB-PREPROCESSOR-BLOCK-END */
  189. &ANALYZE-RESUME
  190. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Foreign Keys" B-table-Win _INLINE
  191. /* Actions: ? adm/support/keyedit.w ? ? ? */
  192. /* STRUCTURED-DATA
  193. <KEY-OBJECT>
  194. &BROWSE-NAME
  195. </KEY-OBJECT>
  196. <FOREIGN-KEYS>
  197. </FOREIGN-KEYS
  198. ><EXECUTING-CODE>
  199. **************************
  200. * Set attributes related to FOREIGN KEYS
  201. */
  202. RUN set-attribute-list (
  203. 'Keys-Accepted = "",
  204. Keys-Supplied = ""':U).
  205. /**************************
  206. </EXECUTING-CODE> */
  207. /* _UIB-CODE-BLOCK-END */
  208. &ANALYZE-RESUME
  209. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Advanced Query Options" B-table-Win _INLINE
  210. /* Actions: ? adm/support/advqedit.w ? ? ? */
  211. /* STRUCTURED-DATA
  212. <KEY-OBJECT>
  213. &BROWSE-NAME
  214. </KEY-OBJECT>
  215. <SORTBY-OPTIONS>
  216. </SORTBY-OPTIONS>
  217. <SORTBY-RUN-CODE>
  218. ************************
  219. * Set attributes related to SORTBY-OPTIONS */
  220. RUN set-attribute-list (
  221. 'SortBy-Options = ""':U).
  222. /************************
  223. </SORTBY-RUN-CODE>
  224. <FILTER-ATTRIBUTES>
  225. </FILTER-ATTRIBUTES> */
  226. /* _UIB-CODE-BLOCK-END */
  227. &ANALYZE-RESUME
  228. /* *********************** Control Definitions ********************** */
  229. /* Definitions of the field level widgets */
  230. DEFINE BUTTON Btn_Ende
  231. LABEL "&Ende"
  232. SIZE 11 BY 1.
  233. DEFINE BUTTON Btn_Excel
  234. LABEL "E&xcel"
  235. SIZE 11 BY 1.
  236. DEFINE BUTTON Btn_Start
  237. LABEL "&Starten"
  238. SIZE 11 BY 1.
  239. DEFINE VARIABLE CB_Lager AS CHARACTER FORMAT "X(256)":U
  240. LABEL "Lager"
  241. VIEW-AS COMBO-BOX INNER-LINES 5
  242. LIST-ITEM-PAIRS "Item 1","Item 1"
  243. DROP-DOWN-LIST
  244. SIZE 25 BY 1 NO-UNDO.
  245. DEFINE VARIABLE CB_Land AS CHARACTER FORMAT "X(256)":U
  246. LABEL "Land"
  247. VIEW-AS COMBO-BOX INNER-LINES 5
  248. LIST-ITEM-PAIRS "Item 1","Item 1"
  249. DROP-DOWN-LIST
  250. SIZE 20 BY 1
  251. BGCOLOR 15 NO-UNDO.
  252. DEFINE VARIABLE F_FZZ AS INTEGER FORMAT "999":U INITIAL 0
  253. LABEL "Fusszeilen"
  254. VIEW-AS FILL-IN NATIVE
  255. SIZE 6 BY 1 TOOLTIP "Wieviele Zeilen müssen am Ende der Seite leer bleiben"
  256. BGCOLOR 15 NO-UNDO.
  257. DEFINE VARIABLE F_KOPIE AS INTEGER FORMAT "9":U INITIAL 0
  258. LABEL "Anz. Kopien"
  259. VIEW-AS FILL-IN NATIVE
  260. SIZE 4 BY 1 TOOLTIP "Anzahl Listenkopien"
  261. BGCOLOR 15 NO-UNDO.
  262. DEFINE VARIABLE F_KZZ AS INTEGER FORMAT "999":U INITIAL 0
  263. LABEL "Kopfzeilen"
  264. VIEW-AS FILL-IN NATIVE
  265. SIZE 6 BY 1 TOOLTIP "Wieviele leere Kopfzeilen müssen gedruckt werden"
  266. BGCOLOR 15 NO-UNDO.
  267. DEFINE VARIABLE F_LQ AS LOGICAL FORMAT "j/n":U INITIAL NO
  268. LABEL "Schönschrift"
  269. VIEW-AS FILL-IN NATIVE
  270. SIZE 4 BY 1 TOOLTIP "Wieviele Zeilen müssen am Ende der Seite leer bleiben"
  271. BGCOLOR 15 NO-UNDO.
  272. DEFINE VARIABLE F_Programm AS CHARACTER FORMAT "X(20)":U INITIAL "INVENTAR"
  273. LABEL "Programm"
  274. VIEW-AS FILL-IN NATIVE
  275. SIZE 25 BY 1
  276. BGCOLOR 15 NO-UNDO.
  277. DEFINE VARIABLE F_SCHACHT AS INTEGER FORMAT "9":U INITIAL 0
  278. LABEL "Schacht"
  279. VIEW-AS FILL-IN NATIVE
  280. SIZE 4 BY 1 TOOLTIP "Welcher Schacht muss angesteuer werden"
  281. BGCOLOR 15 NO-UNDO.
  282. DEFINE VARIABLE F_TZZ AS INTEGER FORMAT "999":U INITIAL 0
  283. LABEL "Zeilen"
  284. VIEW-AS FILL-IN NATIVE
  285. SIZE 6 BY 1 TOOLTIP "Wieviele Zeilen hat die ganze Seite"
  286. BGCOLOR 15 NO-UNDO.
  287. DEFINE VARIABLE F_USER AS CHARACTER FORMAT "X(20)":U
  288. LABEL "Benutzer"
  289. VIEW-AS FILL-IN NATIVE
  290. SIZE 25 BY 1
  291. BGCOLOR 15 NO-UNDO.
  292. DEFINE VARIABLE F_Zeichen AS INTEGER FORMAT "zzz,zz9":U INITIAL 0
  293. LABEL "Anz. Zeichen"
  294. VIEW-AS FILL-IN NATIVE
  295. SIZE 12 BY 1
  296. BGCOLOR 15 NO-UNDO.
  297. DEFINE VARIABLE F_Sort AS INTEGER
  298. VIEW-AS RADIO-SET VERTICAL
  299. RADIO-BUTTONS
  300. "Inventaraufnahme", 1,
  301. "Inventar", 2,
  302. "Bestand", 3
  303. SIZE 30.8 BY 2.19 NO-UNDO.
  304. DEFINE RECTANGLE RECT-37
  305. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  306. SIZE 73 BY 7.38.
  307. DEFINE RECTANGLE RECT-38
  308. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  309. SIZE 50 BY 7.38.
  310. DEFINE RECTANGLE RECT-39
  311. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  312. SIZE 125 BY 1.52.
  313. DEFINE RECTANGLE RECT-40
  314. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  315. SIZE 69 BY 12.38.
  316. DEFINE RECTANGLE RECT-41
  317. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  318. SIZE 50 BY 11.43.
  319. DEFINE RECTANGLE RECT-42
  320. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  321. SIZE 127 BY 23.33.
  322. /* Query definitions */
  323. &ANALYZE-SUSPEND
  324. DEFINE QUERY Br_Druckername FOR
  325. XSchrift SCROLLING.
  326. DEFINE QUERY Br_Schriftbild FOR
  327. Schrift SCROLLING.
  328. &ANALYZE-RESUME
  329. /* Browse definitions */
  330. DEFINE BROWSE Br_Druckername
  331. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Druckername B-table-Win _STRUCTURED
  332. QUERY Br_Druckername NO-LOCK DISPLAY
  333. XSchrift.Schname COLUMN-LABEL "Drucker" FORMAT "x(30)":U
  334. WIDTH 28
  335. /* _UIB-CODE-BLOCK-END */
  336. &ANALYZE-RESUME
  337. WITH NO-ASSIGN NO-ROW-MARKERS SEPARATORS SIZE 33 BY 6.91
  338. BGCOLOR 15 .
  339. DEFINE BROWSE Br_Schriftbild
  340. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Schriftbild B-table-Win _STRUCTURED
  341. QUERY Br_Schriftbild DISPLAY
  342. Schrift.Schbild FORMAT "x(30)":U WIDTH 28
  343. /* _UIB-CODE-BLOCK-END */
  344. &ANALYZE-RESUME
  345. WITH NO-ROW-MARKERS SEPARATORS SIZE 33 BY 6.91
  346. BGCOLOR 15 .
  347. /* ************************ Frame Definitions *********************** */
  348. DEFINE FRAME F-Main
  349. Br_Schriftbild AT ROW 1.71 COL 41
  350. Br_Druckername AT ROW 1.71 COL 4
  351. Listen.ENr[2] AT ROW 21.14 COL 25 NO-LABEL
  352. VIEW-AS RADIO-SET VERTICAL
  353. RADIO-BUTTONS
  354. "Sort Waren-,Prod-,Artikelgruppe,Artnr,Inhalt", 0,
  355. "Sort Land,Inhalt,Bezeichnung", 1,
  356. "Nach Lagerort", 2,
  357. "Nach Suchbegriff", 3
  358. SIZE 45.6 BY 2.86
  359. Listen.VFl[6] AT ROW 19.71 COL 79
  360. LABEL "nur ausverkaufte Artikel"
  361. VIEW-AS TOGGLE-BOX
  362. SIZE 32 BY 1
  363. F_Sort AT ROW 6.05 COL 93 NO-LABEL
  364. F_TZZ AT ROW 9.76 COL 10 COLON-ALIGNED
  365. F_KZZ AT ROW 9.76 COL 29 COLON-ALIGNED
  366. F_FZZ AT ROW 9.76 COL 49 COLON-ALIGNED
  367. F_LQ AT ROW 9.76 COL 72 COLON-ALIGNED
  368. F_KOPIE AT ROW 9.76 COL 92 COLON-ALIGNED
  369. F_SCHACHT AT ROW 9.76 COL 109 COLON-ALIGNED
  370. CB_Lager AT ROW 12.52 COL 23 COLON-ALIGNED WIDGET-ID 2
  371. Listen.VNr[1] AT ROW 13.52 COL 23 COLON-ALIGNED HELP
  372. ""
  373. LABEL "von - bis Artikelnr." FORMAT "999999"
  374. VIEW-AS FILL-IN NATIVE
  375. SIZE 11 BY 1
  376. BGCOLOR 15
  377. Listen.VNr[4] AT ROW 13.52 COL 34 COLON-ALIGNED NO-LABEL FORMAT "9999"
  378. VIEW-AS FILL-IN NATIVE
  379. SIZE 8 BY 1
  380. BGCOLOR 15
  381. Listen.BNr[1] AT ROW 13.52 COL 49 COLON-ALIGNED HELP
  382. ""
  383. LABEL "-" FORMAT "999999"
  384. VIEW-AS FILL-IN NATIVE
  385. SIZE 11 BY 1
  386. BGCOLOR 15
  387. Listen.BNr[4] AT ROW 13.52 COL 60 COLON-ALIGNED NO-LABEL FORMAT "9999"
  388. VIEW-AS FILL-IN NATIVE
  389. SIZE 8 BY 1
  390. BGCOLOR 15
  391. Listen.VNr[2] AT ROW 14.52 COL 23 COLON-ALIGNED
  392. LABEL "von - bis Warengrp." FORMAT "999"
  393. VIEW-AS FILL-IN NATIVE
  394. SIZE 7 BY 1
  395. BGCOLOR 15
  396. Listen.BNr[2] AT ROW 14.52 COL 49 COLON-ALIGNED
  397. LABEL "-" FORMAT "999"
  398. VIEW-AS FILL-IN NATIVE
  399. SIZE 7 BY 1
  400. BGCOLOR 15
  401. Listen.VNr[5] AT ROW 15.52 COL 23 COLON-ALIGNED
  402. LABEL "von - bis Prodgrp." FORMAT "999"
  403. VIEW-AS FILL-IN NATIVE
  404. SIZE 7 BY 1
  405. BGCOLOR 15
  406. Listen.BNr[5] AT ROW 15.52 COL 49 COLON-ALIGNED
  407. LABEL "-" FORMAT "999"
  408. VIEW-AS FILL-IN NATIVE
  409. SIZE 7 BY 1
  410. BGCOLOR 15
  411. F_USER AT ROW 2.29 COL 91 COLON-ALIGNED NO-TAB-STOP
  412. Listen.VNr[6] AT ROW 16.52 COL 23 COLON-ALIGNED
  413. LABEL "von - bis Artikelgrp." FORMAT "999"
  414. VIEW-AS FILL-IN NATIVE
  415. SIZE 7 BY 1
  416. BGCOLOR 15
  417. Listen.BNr[6] AT ROW 16.52 COL 49 COLON-ALIGNED
  418. LABEL "-" FORMAT "999"
  419. VIEW-AS FILL-IN NATIVE
  420. SIZE 7 BY 1
  421. BGCOLOR 15
  422. Listen.VNr[3] AT ROW 17.52 COL 23 COLON-ALIGNED
  423. LABEL "von - bis Hersteller" FORMAT "999"
  424. VIEW-AS FILL-IN NATIVE
  425. SIZE 7 BY 1
  426. BGCOLOR 15
  427. Listen.BNr[3] AT ROW 17.52 COL 49 COLON-ALIGNED
  428. LABEL "-" FORMAT "999"
  429. VIEW-AS FILL-IN NATIVE
  430. SIZE 7 BY 1
  431. BGCOLOR 15
  432. F_Programm AT ROW 3.14 COL 91 COLON-ALIGNED NO-TAB-STOP
  433. Listen.EDa[1] AT ROW 18.52 COL 23 COLON-ALIGNED HELP
  434. "" AUTO-RETURN
  435. LABEL "per Datum" FORMAT "99.99.9999"
  436. VIEW-AS FILL-IN NATIVE
  437. SIZE 16 BY 1
  438. BGCOLOR 15
  439. WITH 1 DOWN KEEP-TAB-ORDER OVERLAY
  440. SIDE-LABELS NO-UNDERLINE THREE-D
  441. AT COL 1 ROW 1 SCROLLABLE .
  442. /* DEFINE FRAME statement is approaching 4K Bytes. Breaking it up */
  443. DEFINE FRAME F-Main
  444. CB_Land AT ROW 19.52 COL 23 COLON-ALIGNED
  445. Listen.VFl[4] AT ROW 19.52 COL 51
  446. LABEL "Land sortieren"
  447. VIEW-AS TOGGLE-BOX
  448. SIZE 20 BY 1
  449. Listen.ENr[1] AT ROW 12.29 COL 79 NO-LABEL
  450. VIEW-AS RADIO-SET VERTICAL
  451. RADIO-BUTTONS
  452. "Bewertung zu DEP", 1,
  453. "Bewertung zu LEP", 2,
  454. "Bewertung zu Listen EP", 3,
  455. "Bewertung zu VP", 4
  456. SIZE 32 BY 3
  457. Listen.VFl[1] AT ROW 15.71 COL 79
  458. LABEL "zweite Artikelzeile andrucken"
  459. VIEW-AS TOGGLE-BOX
  460. SIZE 32 BY 1
  461. Listen.VFl[2] AT ROW 16.71 COL 79 HELP
  462. ""
  463. LABEL "Gebindewert andrucken"
  464. VIEW-AS TOGGLE-BOX
  465. SIZE 32 BY 1
  466. Listen.VFl[3] AT ROW 17.71 COL 79
  467. LABEL "Nur Artikel mit Lagerführung"
  468. VIEW-AS TOGGLE-BOX
  469. SIZE 32 BY 1
  470. Listen.VFl[5] AT ROW 18.71 COL 79
  471. LABEL "nur mit Bestand"
  472. VIEW-AS TOGGLE-BOX
  473. SIZE 32 BY 1
  474. F_Zeichen AT ROW 4.1 COL 91 COLON-ALIGNED NO-TAB-STOP
  475. Listen.VFl[7] AT ROW 20.71 COL 79
  476. LABEL "Bestand bei Inventaraufnahme"
  477. VIEW-AS TOGGLE-BOX
  478. SIZE 37.2 BY 1
  479. Btn_Start AT ROW 12.52 COL 115.4
  480. Btn_Ende AT ROW 14.05 COL 115.4
  481. Btn_Excel AT ROW 15.52 COL 115.4
  482. RECT-37 AT ROW 1.48 COL 3
  483. RECT-38 AT ROW 1.48 COL 78
  484. RECT-39 AT ROW 9.52 COL 3
  485. RECT-40 AT ROW 11.95 COL 3
  486. RECT-41 AT ROW 11.95 COL 78
  487. RECT-42 AT ROW 1.24 COL 2
  488. WITH 1 DOWN KEEP-TAB-ORDER OVERLAY
  489. SIDE-LABELS NO-UNDERLINE THREE-D
  490. AT COL 1 ROW 1 SCROLLABLE .
  491. /* *********************** Procedure Settings ************************ */
  492. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  493. /* Settings for THIS-PROCEDURE
  494. Type: SmartBrowser
  495. Allow: Basic,Browse
  496. Frames: 1
  497. Add Fields to: EXTERNAL-TABLES
  498. Other Settings: PERSISTENT-ONLY COMPILE
  499. Temp-Tables and Buffers:
  500. TABLE: XSchrift T "?" NO-UNDO AnaDat Schrift
  501. TABLE: XTermOut T "NEW SHARED" NO-UNDO AnaDat TermOut
  502. END-TABLES.
  503. */
  504. /* This procedure should always be RUN PERSISTENT. Report the error, */
  505. /* then cleanup and return. */
  506. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  507. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  508. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  509. RETURN.
  510. END.
  511. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  512. /* ************************* Create Window ************************** */
  513. &ANALYZE-SUSPEND _CREATE-WINDOW
  514. /* DESIGN Window definition (used by the UIB)
  515. CREATE WINDOW B-table-Win ASSIGN
  516. HEIGHT = 23.81
  517. WIDTH = 130.
  518. /* END WINDOW DEFINITION */
  519. */
  520. &ANALYZE-RESUME
  521. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB B-table-Win
  522. /* ************************* Included-Libraries *********************** */
  523. {src/adm/method/browser.i}
  524. /* _UIB-CODE-BLOCK-END */
  525. &ANALYZE-RESUME
  526. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  527. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  528. /* SETTINGS FOR WINDOW B-table-Win
  529. NOT-VISIBLE,,RUN-PERSISTENT */
  530. /* SETTINGS FOR FRAME F-Main
  531. NOT-VISIBLE FRAME-NAME Size-to-Fit Custom */
  532. /* BROWSE-TAB Br_Schriftbild 1 F-Main */
  533. /* BROWSE-TAB Br_Druckername Br_Schriftbild F-Main */
  534. ASSIGN
  535. FRAME F-Main:SCROLLABLE = FALSE
  536. FRAME F-Main:HIDDEN = TRUE.
  537. /* SETTINGS FOR FILL-IN Listen.BNr[1] IN FRAME F-Main
  538. 2 EXP-LABEL EXP-FORMAT EXP-HELP */
  539. /* SETTINGS FOR FILL-IN Listen.BNr[2] IN FRAME F-Main
  540. 2 EXP-LABEL EXP-FORMAT */
  541. /* SETTINGS FOR FILL-IN Listen.BNr[3] IN FRAME F-Main
  542. 2 EXP-LABEL EXP-FORMAT */
  543. /* SETTINGS FOR FILL-IN Listen.BNr[4] IN FRAME F-Main
  544. 2 EXP-LABEL EXP-FORMAT */
  545. /* SETTINGS FOR FILL-IN Listen.BNr[5] IN FRAME F-Main
  546. 2 EXP-LABEL EXP-FORMAT */
  547. /* SETTINGS FOR FILL-IN Listen.BNr[6] IN FRAME F-Main
  548. 2 EXP-LABEL EXP-FORMAT */
  549. /* SETTINGS FOR FILL-IN Listen.EDa[1] IN FRAME F-Main
  550. 2 EXP-LABEL EXP-FORMAT EXP-HELP */
  551. /* SETTINGS FOR RADIO-SET Listen.ENr[1] IN FRAME F-Main
  552. 2 */
  553. /* SETTINGS FOR RADIO-SET Listen.ENr[2] IN FRAME F-Main
  554. 2 */
  555. /* SETTINGS FOR FILL-IN F_FZZ IN FRAME F-Main
  556. 1 */
  557. /* SETTINGS FOR FILL-IN F_KOPIE IN FRAME F-Main
  558. 1 */
  559. /* SETTINGS FOR FILL-IN F_KZZ IN FRAME F-Main
  560. 1 */
  561. /* SETTINGS FOR FILL-IN F_LQ IN FRAME F-Main
  562. 1 */
  563. /* SETTINGS FOR FILL-IN F_Programm IN FRAME F-Main
  564. 1 */
  565. ASSIGN
  566. F_Programm:READ-ONLY IN FRAME F-Main = TRUE.
  567. /* SETTINGS FOR FILL-IN F_SCHACHT IN FRAME F-Main
  568. 1 */
  569. /* SETTINGS FOR RADIO-SET F_Sort IN FRAME F-Main
  570. 1 */
  571. /* SETTINGS FOR FILL-IN F_TZZ IN FRAME F-Main
  572. 1 */
  573. /* SETTINGS FOR FILL-IN F_USER IN FRAME F-Main
  574. 1 */
  575. ASSIGN
  576. F_USER:READ-ONLY IN FRAME F-Main = TRUE.
  577. /* SETTINGS FOR FILL-IN F_Zeichen IN FRAME F-Main
  578. 1 */
  579. ASSIGN
  580. F_Zeichen:READ-ONLY IN FRAME F-Main = TRUE.
  581. /* SETTINGS FOR TOGGLE-BOX Listen.VFl[1] IN FRAME F-Main
  582. 2 EXP-LABEL */
  583. /* SETTINGS FOR TOGGLE-BOX Listen.VFl[2] IN FRAME F-Main
  584. 2 EXP-LABEL EXP-HELP */
  585. /* SETTINGS FOR TOGGLE-BOX Listen.VFl[3] IN FRAME F-Main
  586. 2 EXP-LABEL */
  587. /* SETTINGS FOR TOGGLE-BOX Listen.VFl[4] IN FRAME F-Main
  588. 2 EXP-LABEL */
  589. /* SETTINGS FOR TOGGLE-BOX Listen.VFl[5] IN FRAME F-Main
  590. 2 EXP-LABEL */
  591. /* SETTINGS FOR TOGGLE-BOX Listen.VFl[6] IN FRAME F-Main
  592. 2 EXP-LABEL */
  593. /* SETTINGS FOR TOGGLE-BOX Listen.VFl[7] IN FRAME F-Main
  594. 2 EXP-LABEL */
  595. /* SETTINGS FOR FILL-IN Listen.VNr[1] IN FRAME F-Main
  596. 2 EXP-LABEL EXP-FORMAT EXP-HELP */
  597. /* SETTINGS FOR FILL-IN Listen.VNr[2] IN FRAME F-Main
  598. 2 EXP-LABEL EXP-FORMAT */
  599. /* SETTINGS FOR FILL-IN Listen.VNr[3] IN FRAME F-Main
  600. 2 EXP-LABEL EXP-FORMAT */
  601. /* SETTINGS FOR FILL-IN Listen.VNr[4] IN FRAME F-Main
  602. 2 EXP-LABEL EXP-FORMAT */
  603. /* SETTINGS FOR FILL-IN Listen.VNr[5] IN FRAME F-Main
  604. 2 EXP-LABEL EXP-FORMAT */
  605. /* SETTINGS FOR FILL-IN Listen.VNr[6] IN FRAME F-Main
  606. 2 EXP-LABEL EXP-FORMAT */
  607. /* _RUN-TIME-ATTRIBUTES-END */
  608. &ANALYZE-RESUME
  609. /* Setting information for Queries and Browse Widgets fields */
  610. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Druckername
  611. /* Query rebuild information for BROWSE Br_Druckername
  612. _TblList = "Temp-Tables.XSchrift"
  613. _Options = "NO-LOCK"
  614. _OrdList = "Temp-Tables.XSchrift.Schname|yes"
  615. _FldNameList[1] > Temp-Tables.XSchrift.Schname
  616. "XSchrift.Schname" "Drucker" ? "character" ? ? ? ? ? ? no ? no no "28" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  617. _Query is NOT OPENED
  618. */ /* BROWSE Br_Druckername */
  619. &ANALYZE-RESUME
  620. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Schriftbild
  621. /* Query rebuild information for BROWSE Br_Schriftbild
  622. _TblList = "AnaDat.Schrift"
  623. _OrdList = "AnaDat.Schrift.Schbild|yes"
  624. _FldNameList[1] > AnaDat.Schrift.Schbild
  625. "Schrift.Schbild" ? ? "character" ? ? ? ? ? ? no ? no no "28" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  626. _Query is NOT OPENED
  627. */ /* BROWSE Br_Schriftbild */
  628. &ANALYZE-RESUME
  629. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  630. /* Query rebuild information for FRAME F-Main
  631. _Options = "NO-LOCK"
  632. _Query is NOT OPENED
  633. */ /* FRAME F-Main */
  634. &ANALYZE-RESUME
  635. /* ************************ Control Triggers ************************ */
  636. &Scoped-define SELF-NAME F-Main
  637. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F-Main B-table-Win
  638. ON GO OF FRAME F-Main
  639. DO:
  640. DO TRANSACTION:
  641. FIND Listen WHERE RECID(Listen) = ARecid.
  642. Listen.Listfl = ''.
  643. END.
  644. RUN new-state ('drucken_ende':U).
  645. END.
  646. /* _UIB-CODE-BLOCK-END */
  647. &ANALYZE-RESUME
  648. &Scoped-define BROWSE-NAME Br_Druckername
  649. &Scoped-define SELF-NAME Br_Druckername
  650. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Druckername B-table-Win
  651. ON ROW-ENTRY OF Br_Druckername IN FRAME F-Main
  652. DO:
  653. /* This code displays initial values for newly added or copied rows. */
  654. {src/adm/template/brsentry.i}
  655. END.
  656. /* _UIB-CODE-BLOCK-END */
  657. &ANALYZE-RESUME
  658. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Druckername B-table-Win
  659. ON ROW-LEAVE OF Br_Druckername IN FRAME F-Main
  660. DO:
  661. /* Do not disable this code or no updates will take place except
  662. by pressing the Save button on an Update SmartPanel. */
  663. {src/adm/template/brsleave.i}
  664. END.
  665. /* _UIB-CODE-BLOCK-END */
  666. &ANALYZE-RESUME
  667. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Druckername B-table-Win
  668. ON VALUE-CHANGED OF Br_Druckername IN FRAME F-Main
  669. DO:
  670. DEF VAR VRecid AS RECID NO-UNDO.
  671. {src/adm/template/brschnge.i}
  672. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  673. ASchname = XSchrift.Schname.
  674. RUN dispatch IN THIS-PROCEDURE ('open-query':U).
  675. IF NUM-RESULTS('Br_Schriftbild':U) = ? THEN LEAVE.
  676. IF NUM-RESULTS('Br_Schriftbild':U) = 0 THEN LEAVE.
  677. FIND FIRST BSchrift WHERE BSchrift.Schname = ASchname
  678. AND BSchrift.Schbild = ASchbild NO-LOCK NO-ERROR.
  679. IF AVAILABLE BSchrift THEN VRecid = RECID(BSchrift).
  680. ELSE DO:
  681. GET FIRST Br_Schriftbild.
  682. VRecid = RECID(Schrift).
  683. END.
  684. REPOSITION Br_Schriftbild TO RECID(VRecid).
  685. ASchbild = Schrift.Schbild.
  686. LEAVE.
  687. END.
  688. END.
  689. /* _UIB-CODE-BLOCK-END */
  690. &ANALYZE-RESUME
  691. &Scoped-define BROWSE-NAME Br_Schriftbild
  692. &Scoped-define SELF-NAME Br_Schriftbild
  693. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Schriftbild B-table-Win
  694. ON ROW-ENTRY OF Br_Schriftbild IN FRAME F-Main
  695. DO:
  696. /* This code displays initial values for newly added or copied rows. */
  697. {src/adm/template/brsentry.i}
  698. END.
  699. /* _UIB-CODE-BLOCK-END */
  700. &ANALYZE-RESUME
  701. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Schriftbild B-table-Win
  702. ON ROW-LEAVE OF Br_Schriftbild IN FRAME F-Main
  703. DO:
  704. /* Do not disable this code or no updates will take place except
  705. by pressing the Save button on an Update SmartPanel. */
  706. {src/adm/template/brsleave.i}
  707. END.
  708. /* _UIB-CODE-BLOCK-END */
  709. &ANALYZE-RESUME
  710. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Schriftbild B-table-Win
  711. ON VALUE-CHANGED OF Br_Schriftbild IN FRAME F-Main
  712. DO:
  713. {src/adm/template/brschnge.i}
  714. IF ASchbild <> Schrift.Schbild THEN DO:
  715. ASSIGN F_TZZ = Schrift.Schzztot
  716. F_KZZ = Schrift.Schzzbeg
  717. F_FZZ = Schrift.Schzzend.
  718. DISPLAY {&List-1} WITH FRAME {&FRAME-NAME}.
  719. END.
  720. ASchbild = Schrift.Schbild.
  721. END.
  722. /* _UIB-CODE-BLOCK-END */
  723. &ANALYZE-RESUME
  724. &Scoped-define SELF-NAME Btn_Ende
  725. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Ende B-table-Win
  726. ON CHOOSE OF Btn_Ende IN FRAME F-Main /* Ende */
  727. DO:
  728. DO TRANSACTION:
  729. FIND Listen WHERE RECID(Listen) = ARecid.
  730. Listen.Listfl = ''.
  731. Listen.ECh[01] = CB_Land:SCREEN-VALUE IN FRAME {&FRAME-NAME}.
  732. END.
  733. { v8/druck_ende.i }
  734. RUN new-state ('Seite_1':U).
  735. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  736. END.
  737. /* _UIB-CODE-BLOCK-END */
  738. &ANALYZE-RESUME
  739. &Scoped-define SELF-NAME Btn_Excel
  740. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel B-table-Win
  741. ON CHOOSE OF Btn_Excel IN FRAME F-Main /* Excel */
  742. DO:
  743. DO TRANSACTION WITH FRAME {&FRAME-NAME}:
  744. ASSIGN {&List-1}.
  745. iLager = INTEGER(CB_Lager:SCREEN-VALUE).
  746. i1 = Br_Druckername:NUM-SELECTED-ROWS.
  747. IF i1 = 0 THEN RETURN NO-APPLY.
  748. Br_Druckername:FETCH-SELECTED-ROW(1).
  749. i1 = Br_Schriftbild:NUM-SELECTED-ROWS.
  750. IF i1 = 0 THEN RETURN NO-APPLY.
  751. Br_Schriftbild:FETCH-SELECTED-ROW(1).
  752. FIND Listen WHERE RECID(Listen) = ARecid.
  753. FIND LiDruck WHERE RECID(LiDruck) = BRecid.
  754. ASSIGN Breite = F_Zeichen
  755. Listen.Sort = F_Sort
  756. Listen.ProgWahl = F_Sort
  757. LiDruck.Listtzz = F_TZZ
  758. LiDruck.Listkzz = F_KZZ
  759. LiDruck.Listfzz = F_FZZ
  760. LiDruck.Listlq = F_LQ
  761. LiDruck.ListCopy = F_KOPIE
  762. LiDruck.Schacht = F_SCHACHT
  763. LiDruck.Listdru = XSchrift.Schname
  764. LiDruck.Listbild = Schrift.Schbild.
  765. IF LiDruck.ListCopy = 0 THEN LiDruck.ListCopy = 1.
  766. ASSIGN {&List-2}.
  767. IF VNr[01] = 0 AND BNr[01] = 0 THEN BNr[01] = 999999.
  768. IF VNr[01] > BNr[01] THEN BNr[01] = VNr[01].
  769. IF VNr[04] = 0 AND BNr[04] = 0 THEN BNr[04] = 9999.
  770. IF VNr[04] > BNr[04] THEN BNr[04] = VNr[04].
  771. IF VNr[02] = 0 AND BNr[02] = 0 THEN BNr[02] = 999.
  772. IF VNr[02] > BNr[02] THEN BNr[02] = VNr[02].
  773. IF VNr[05] = 0 AND BNr[05] = 0 THEN BNr[05] = 999.
  774. IF VNr[05] > BNr[05] THEN BNr[05] = VNr[05].
  775. IF VNr[06] = 0 AND BNr[06] = 0 THEN BNr[06] = 999.
  776. IF VNr[06] > BNr[06] THEN BNr[06] = VNr[06].
  777. IF VNr[03] = 0 AND BNr[03] = 0 THEN BNr[03] = 999.
  778. IF VNr[03] > BNr[03] THEN BNr[03] = VNr[03].
  779. ECh[01] = CB_Land:SCREEN-VALUE IN FRAME {&FRAME-NAME}.
  780. VGebinde = VFl[02].
  781. fAltBest = VFl[07].
  782. AufSort = ENr[02].
  783. DISPLAY {&List-2} WITH FRAME {&FRAME-NAME}.
  784. ASSIGN LiDruck.ProgWahl = Listen.ProgWahl
  785. LiDruck.Listprog = TRIM(F_Programm) + STRING(Listen.ProgWahl,'99').
  786. RELEASE Listen .
  787. RELEASE LiDruck.
  788. END.
  789. FIND Listen WHERE RECID(Listen ) = ARecid NO-LOCK.
  790. FIND LiDruck WHERE RECID(LiDruck) = BRecid NO-LOCK.
  791. DISABLE Btn_Start WITH FRAME {&FRAME-NAME}.
  792. DISABLE Btn_Ende WITH FRAME {&FRAME-NAME}.
  793. DISABLE Btn_Excel WITH FRAME {&FRAME-NAME}.
  794. RUN EXCEL.
  795. DO TRANSACTION WITH FRAME {&FRAME-NAME}:
  796. FIND Listen WHERE RECID(Listen) = ARecid.
  797. ASSIGN Listen.Listfl = ''.
  798. RELEASE Listen .
  799. END.
  800. FIND Listen WHERE RECID(Listen ) = ARecid NO-LOCK.
  801. ENABLE Btn_Start WITH FRAME {&FRAME-NAME}.
  802. ENABLE Btn_Ende WITH FRAME {&FRAME-NAME}.
  803. ENABLE Btn_Excel WITH FRAME {&FRAME-NAME}.
  804. RETURN NO-APPLY.
  805. END.
  806. /* _UIB-CODE-BLOCK-END */
  807. &ANALYZE-RESUME
  808. &Scoped-define SELF-NAME Btn_Start
  809. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Start B-table-Win
  810. ON CHOOSE OF Btn_Start IN FRAME F-Main /* Starten */
  811. DO:
  812. DO TRANSACTION WITH FRAME {&FRAME-NAME}:
  813. ASSIGN {&List-1}.
  814. iLager = INTEGER(CB_Lager:SCREEN-VALUE).
  815. i1 = Br_Druckername:NUM-SELECTED-ROWS.
  816. IF i1 = 0 THEN RETURN NO-APPLY.
  817. Br_Druckername:FETCH-SELECTED-ROW(1).
  818. i1 = Br_Schriftbild:NUM-SELECTED-ROWS.
  819. IF i1 = 0 THEN RETURN NO-APPLY.
  820. Br_Schriftbild:FETCH-SELECTED-ROW(1).
  821. FIND Listen WHERE RECID(Listen) = ARecid.
  822. FIND LiDruck WHERE RECID(LiDruck) = BRecid.
  823. ASSIGN Breite = F_Zeichen
  824. Listen.Sort = F_Sort
  825. Listen.ProgWahl = F_Sort
  826. LiDruck.Listtzz = F_TZZ
  827. LiDruck.Listkzz = F_KZZ
  828. LiDruck.Listfzz = F_FZZ
  829. LiDruck.Listlq = F_LQ
  830. LiDruck.ListCopy = F_KOPIE
  831. LiDruck.Schacht = F_SCHACHT
  832. LiDruck.Listdru = XSchrift.Schname
  833. LiDruck.Listbild = Schrift.Schbild.
  834. IF LiDruck.ListCopy = 0 THEN LiDruck.ListCopy = 1.
  835. ASSIGN {&List-2}.
  836. IF VNr[01] = 0 AND BNr[01] = 0 THEN BNr[01] = 999999.
  837. IF VNr[01] > BNr[01] THEN BNr[01] = VNr[01].
  838. IF VNr[04] = 0 AND BNr[04] = 0 THEN BNr[04] = 9999.
  839. IF VNr[04] > BNr[04] THEN BNr[04] = VNr[04].
  840. IF VNr[02] = 0 AND BNr[02] = 0 THEN BNr[02] = 999.
  841. IF VNr[02] > BNr[02] THEN BNr[02] = VNr[02].
  842. IF VNr[03] = 0 AND BNr[03] = 0 THEN BNr[03] = 999.
  843. IF VNr[03] > BNr[03] THEN BNr[03] = VNr[03].
  844. IF VNr[05] = 0 AND BNr[05] = 0 THEN BNr[05] = 999.
  845. IF VNr[05] > BNr[05] THEN BNr[05] = VNr[05].
  846. IF VNr[06] = 0 AND BNr[06] = 0 THEN BNr[06] = 999.
  847. IF VNr[06] > BNr[06] THEN BNr[06] = VNr[06].
  848. ECh[01] = CB_Land:SCREEN-VALUE IN FRAME {&FRAME-NAME}.
  849. VGebinde = VFl[02].
  850. fAltBest = VFl[07].
  851. AufSort = ENr[02].
  852. DISPLAY {&List-2} WITH FRAME {&FRAME-NAME}.
  853. ASSIGN LiDruck.ProgWahl = Listen.ProgWahl
  854. LiDruck.Listprog = TRIM(F_Programm) + STRING(Listen.ProgWahl,'99').
  855. RELEASE Listen .
  856. RELEASE LiDruck.
  857. END.
  858. FIND Listen WHERE RECID(Listen ) = ARecid NO-LOCK.
  859. FIND LiDruck WHERE RECID(LiDruck) = BRecid NO-LOCK.
  860. DISABLE Btn_Start WITH FRAME {&FRAME-NAME}.
  861. DISABLE Btn_Ende WITH FRAME {&FRAME-NAME}.
  862. DISABLE Btn_Excel WITH FRAME {&FRAME-NAME}.
  863. RUN LIBILD.
  864. IF F_Sort = 2 THEN Breite = F_Zeichen.
  865. RUN DRUCKEN.
  866. DO TRANSACTION WITH FRAME {&FRAME-NAME}:
  867. FIND Listen WHERE RECID(Listen) = ARecid.
  868. ASSIGN Listen.Listfl = ''.
  869. RELEASE Listen .
  870. END.
  871. FIND Listen WHERE RECID(Listen ) = ARecid NO-LOCK.
  872. ENABLE Btn_Start WITH FRAME {&FRAME-NAME}.
  873. ENABLE Btn_Ende WITH FRAME {&FRAME-NAME}.
  874. ENABLE Btn_Excel WITH FRAME {&FRAME-NAME}.
  875. RETURN NO-APPLY.
  876. END.
  877. /* _UIB-CODE-BLOCK-END */
  878. &ANALYZE-RESUME
  879. &Scoped-define SELF-NAME CB_Lager
  880. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Lager B-table-Win
  881. ON VALUE-CHANGED OF CB_Lager IN FRAME F-Main /* Lager */
  882. DO:
  883. iLager = INTEGER(SELF:SCREEN-VALUE).
  884. END.
  885. /* _UIB-CODE-BLOCK-END */
  886. &ANALYZE-RESUME
  887. &Scoped-define SELF-NAME Listen.ENr[2]
  888. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Listen.ENr[2] B-table-Win
  889. ON VALUE-CHANGED OF Listen.ENr[2] IN FRAME F-Main /* ENr */
  890. DO:
  891. IF INTEGER(SELF:SCREEN-VALUE) = 0 THEN Btn_Start:SENSITIVE = TRUE.
  892. ELSE Btn_Start:SENSITIVE = FALSE.
  893. END.
  894. /* _UIB-CODE-BLOCK-END */
  895. &ANALYZE-RESUME
  896. &Scoped-define SELF-NAME F_Sort
  897. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Sort B-table-Win
  898. ON VALUE-CHANGED OF F_Sort IN FRAME F-Main
  899. DO:
  900. DO WITH FRAME {&FRAME-NAME}:
  901. F_Sort = INTEGER(F_Sort:SCREEN-VALUE).
  902. FIND LiBild USE-INDEX LiBild-k1
  903. WHERE LiBild.Sprcd = GVSprcd
  904. AND LiBild.Prog = F_Programm + STRING(F_Sort,"99")
  905. AND LiBild.Tenr = 1 NO-LOCK.
  906. F_Zeichen = INTEGER(SUBSTRING(LiBild.Litext,02,03)).
  907. IF VFl[02]:SCREEN-VALUE = '1' AND
  908. F_Sort = 2 THEN F_Zeichen = F_Zeichen + 20.
  909. DISPLAY F_Zeichen.
  910. IF F_Sort = 1 THEN DO:
  911. Listen.ENr[01]:SENSITIVE = FALSE.
  912. Listen.ENr[02]:SENSITIVE = TRUE.
  913. Listen.EDa[01]:SENSITIVE = FALSE.
  914. Listen.VFl[07]:SENSITIVE = TRUE .
  915. END.
  916. ELSE DO:
  917. Listen.ENr[01]:SENSITIVE = TRUE.
  918. Listen.ENr[02]:SENSITIVE = FALSE.
  919. Listen.EDa[01]:SENSITIVE = TRUE.
  920. Listen.VFl[07]:SENSITIVE = FALSE.
  921. END.
  922. IF F_Sort = 2 OR
  923. F_Sort = 3 THEN DO:
  924. VFl[02]:SENSITIVE = TRUE.
  925. END.
  926. ELSE DO WITH FRAME {&FRAME-NAME}:
  927. VFl[02]:SENSITIVE = FALSE.
  928. END.
  929. IF F_Sort = 3 THEN DO:
  930. Listen.EDa[01]:SENSITIVE = TRUE.
  931. END.
  932. ELSE DO:
  933. Listen.EDa[01]:SENSITIVE = FALSE.
  934. END.
  935. END.
  936. END.
  937. /* _UIB-CODE-BLOCK-END */
  938. &ANALYZE-RESUME
  939. &Scoped-define SELF-NAME Listen.VFl[1]
  940. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Listen.VFl[1] B-table-Win
  941. ON RETURN OF Listen.VFl[1] IN FRAME F-Main /* zweite Artikelzeile andrucken */
  942. DO:
  943. APPLY 'TAB' TO SELF.
  944. RETURN NO-APPLY.
  945. END.
  946. /* _UIB-CODE-BLOCK-END */
  947. &ANALYZE-RESUME
  948. &Scoped-define SELF-NAME Listen.VFl[2]
  949. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Listen.VFl[2] B-table-Win
  950. ON RETURN OF Listen.VFl[2] IN FRAME F-Main /* Gebindewert andrucken */
  951. DO:
  952. APPLY 'TAB' TO SELF.
  953. RETURN NO-APPLY.
  954. END.
  955. /* _UIB-CODE-BLOCK-END */
  956. &ANALYZE-RESUME
  957. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Listen.VFl[2] B-table-Win
  958. ON VALUE-CHANGED OF Listen.VFl[2] IN FRAME F-Main /* Gebindewert andrucken */
  959. DO:
  960. IF VFL[2]:SCREEN-VALUE = '0' THEN F_Zeichen = F_Zeichen - 20.
  961. ELSE F_Zeichen = F_Zeichen + 20.
  962. DISPLAY F_Zeichen WITH FRAME {&FRAME-NAME}.
  963. END.
  964. /* _UIB-CODE-BLOCK-END */
  965. &ANALYZE-RESUME
  966. &Scoped-define SELF-NAME Listen.VFl[3]
  967. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Listen.VFl[3] B-table-Win
  968. ON RETURN OF Listen.VFl[3] IN FRAME F-Main /* Nur Artikel mit Lagerführung */
  969. DO:
  970. APPLY 'TAB' TO SELF.
  971. RETURN NO-APPLY.
  972. END.
  973. /* _UIB-CODE-BLOCK-END */
  974. &ANALYZE-RESUME
  975. &Scoped-define SELF-NAME Listen.VFl[5]
  976. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Listen.VFl[5] B-table-Win
  977. ON RETURN OF Listen.VFl[5] IN FRAME F-Main /* nur mit Bestand */
  978. DO:
  979. APPLY 'TAB' TO SELF.
  980. RETURN NO-APPLY.
  981. END.
  982. /* _UIB-CODE-BLOCK-END */
  983. &ANALYZE-RESUME
  984. &Scoped-define BROWSE-NAME Br_Druckername
  985. &UNDEFINE SELF-NAME
  986. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK B-table-Win
  987. /* *************************** Main Block *************************** */
  988. Aktive = DYNAMIC-FUNCTION('getSuperAktiv') NO-ERROR.
  989. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  990. RUN dispatch IN THIS-PROCEDURE ('initialize':U).
  991. &ENDIF
  992. ON END-ERROR ANYWHERE
  993. DO:
  994. DO TRANSACTION:
  995. FIND Listen WHERE RECID(Listen) = ARecid.
  996. Listen.Listfl = ''.
  997. RELEASE Listen.
  998. END.
  999. END.
  1000. /* _UIB-CODE-BLOCK-END */
  1001. &ANALYZE-RESUME
  1002. /* ********************** Internal Procedures *********************** */
  1003. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available B-table-Win _ADM-ROW-AVAILABLE
  1004. PROCEDURE adm-row-available :
  1005. /*------------------------------------------------------------------------------
  1006. Purpose: Dispatched to this procedure when the Record-
  1007. Source has a new row available. This procedure
  1008. tries to get the new row (or foriegn keys) from
  1009. the Record-Source and process it.
  1010. Parameters: <none>
  1011. ------------------------------------------------------------------------------*/
  1012. /* Define variables needed by this internal procedure. */
  1013. {src/adm/template/row-head.i}
  1014. /* Process the newly available records (i.e. display fields,
  1015. open queries, and/or pass records on to any RECORD-TARGETS). */
  1016. {src/adm/template/row-end.i}
  1017. END PROCEDURE.
  1018. /* _UIB-CODE-BLOCK-END */
  1019. &ANALYZE-RESUME
  1020. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_INVENTARAUFNAHME B-table-Win
  1021. PROCEDURE AUSGABE_INVENTARAUFNAHME :
  1022. /*------------------------------------------------------------------------------
  1023. Purpose:
  1024. Parameters: <none>
  1025. Notes:
  1026. ------------------------------------------------------------------------------*/
  1027. DEF VAR XWgr AS CHAR NO-UNDO.
  1028. DEF VAR XPro AS CHAR NO-UNDO.
  1029. DEF VAR XAgr AS CHAR NO-UNDO.
  1030. DEF VAR Zelle AS CHAR NO-UNDO.
  1031. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  1032. DEF VAR cVorlage AS CHAR NO-UNDO.
  1033. DEF VAR cDokument AS CHAR NO-UNDO.
  1034. DEF VAR cDaten AS CHAR NO-UNDO.
  1035. DEF VAR VTexte AS CHAR NO-UNDO INIT ';;'.
  1036. FOR EACH TExcel:
  1037. DELETE TExcel.
  1038. END.
  1039. IF AufSort = 0 THEN DO:
  1040. FOR EACH TArtst BREAK BY TArtst.Wg_Grp
  1041. BY TArtst.Prod_Grp
  1042. BY TArtst.Art_Grp
  1043. BY TArtst.Artnr
  1044. BY TArtst.Inhalt
  1045. BY TArtst.Jahr :
  1046. IF FIRST-OF ( TArtst.Wg_Grp ) THEN DO:
  1047. FIND WarenGrp USE-INDEX WarenGrp-k1
  1048. WHERE WarenGrp.Firma = GVFirma
  1049. AND WarenGrp.Wgr = TArtst.Wg_Grp NO-LOCK NO-ERROR.
  1050. IF AVAILABLE WarenGrp THEN XWgr = WarenGrp.Bez1.
  1051. ELSE XWgr = FILL('?', 20).
  1052. END.
  1053. IF FIRST-OF ( TArtst.Prod_Grp ) THEN DO:
  1054. FIND ProdGrp USE-INDEX ProdGrp-k1
  1055. WHERE ProdGrp.Firma = GVFirma
  1056. AND ProdGrp.Wgr = TArtst.Wg_Grp
  1057. AND ProdGrp.Prod_Grp = TArtst.Prod_Grp NO-LOCK NO-ERROR.
  1058. IF AVAILABLE ProdGrp THEN XPgr = ProdGrp.Bez1.
  1059. ELSE XPgr = FILL('?', 20).
  1060. END.
  1061. IF FIRST-OF ( TArtst.Art_Grp ) THEN DO:
  1062. FIND ArtikGrp USE-INDEX ArtikGrp-k1
  1063. WHERE ArtikGrp.Firma = GVFirma
  1064. AND ArtikGrp.Wgr = TArtst.Wg_Grp
  1065. AND ArtikGrp.Prod_Grp = TArtst.Prod_Grp
  1066. AND ArtikGrp.Art_Grp = TArtst.Art_Grp NO-LOCK NO-ERROR.
  1067. IF AVAILABLE ArtikGrp THEN XAgr = ArtikGrp.Bez1.
  1068. ELSE XAgr = FILL('?', 20).
  1069. END.
  1070. IF XWgr <> '' AND XWgr BEGINS '-' THEN XWgr = ''.
  1071. IF XPgr <> '' AND XPgr BEGINS '-' THEN XPgr = ''.
  1072. IF XAgr <> '' AND XAgr BEGINS '-' THEN XAgr = ''.
  1073. IF XWgr <> '' THEN DO:
  1074. ENTRY(1, VTexte, ';') = XWgr.
  1075. RUN NEUEZEILE.
  1076. ASSIGN TExcel.Sonder = 1
  1077. TExcel.Feld[01] = XWgr.
  1078. END.
  1079. IF XPgr <> '' THEN DO:
  1080. ENTRY(2, VTexte, ';') = XPgr.
  1081. RUN NEUEZEILE.
  1082. ASSIGN TExcel.Sonder = 1
  1083. TExcel.Feld[01] = XPgr.
  1084. END.
  1085. IF XAgr <> '' THEN DO:
  1086. ENTRY(3, VTexte, ';') = XAgr.
  1087. RUN NEUEZEILE.
  1088. ASSIGN TExcel.Sonder = 1
  1089. TExcel.Feld[01] = XAgr.
  1090. END.
  1091. XWgr = ''.
  1092. XPGr = ''.
  1093. XAgr = ''.
  1094. FIND KGebinde USE-INDEX KGebinde-k1
  1095. WHERE KGebinde.Firma = GVFirma
  1096. AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR.
  1097. IF AVAILABLE KGebinde THEN DO:
  1098. VGebInh = KGebinde.Inhalt.
  1099. VGebText = KGebinde.KBez.
  1100. END.
  1101. VInvneu = TArtst.Bestand.
  1102. VBestand = TArtst.Bestand.
  1103. VVerlust = TArtst.Verlust.
  1104. IF VInvneu > 0 THEN VInvwert = VInvneu * VBetrag.
  1105. ELSE VInvwert = 0.
  1106. IF VBestand > 0 THEN VLagwert = VBestand * VBetrag.
  1107. ELSE VLagwert = 0.
  1108. RUN NEUEZEILE.
  1109. ASSIGN TExcel.Feld[02] = STRING(TArtst.Artnr ,"999999")
  1110. TExcel.Feld[03] = STRING(TArtst.Inhalt ,"9999")
  1111. TExcel.Feld[04] = TArtst.Bez1
  1112. TExcel.Feld[05] = TRIM(STRING(TArtst.Jahr ,"zzzz"))
  1113. TExcel.Feld[07] = TRIM(STRING(VGebInh ,"zzzz"))
  1114. TExcel.Feld[08] = VGebText
  1115. TExcel.Feld[09] = TRIM(STRING(TArtst.Bestand ,"->>>>>>>9.99"))
  1116. TExcel.Feld[11] = '__________'
  1117. TExcel.Feld[12] = '__________'
  1118. TExcel.Feld[13] = '__________'.
  1119. IF TArtst.Alk_Gehalt > 0 THEN
  1120. TExcel.Feld[06] = TRIM(STRING(TArtst.Alk_Gehalt,"z9.99%")).
  1121. IF TArtst.Bez2 <> '' THEN DO:
  1122. RUN NEUEZEILE.
  1123. TExcel.Feld[04] = TArtst.Bez2.
  1124. END.
  1125. IF LAST-OF ( TArtst.Art_Grp ) THEN DO:
  1126. RUN NEUEZEILE.
  1127. END.
  1128. END.
  1129. END.
  1130. IF AufSort = 1 THEN DO:
  1131. FOR EACH TArtst BREAK BY TArtst.Herk_Lkz
  1132. BY TArtst.Inhalt
  1133. BY TArtst.Bez1
  1134. BY TArtst.Jahr :
  1135. IF FIRST-OF ( TArtst.Herk_Lkz ) THEN DO:
  1136. FIND Land USE-INDEX Land-k2
  1137. WHERE Land.Lkz = TArtst.Herk_Lkz NO-LOCK NO-ERROR.
  1138. IF AVAILABLE Land THEN XWgr = Land.Bez.
  1139. ELSE XWgr = FILL('?', 20).
  1140. END.
  1141. IF XWgr <> '' AND XWgr BEGINS '-' THEN XWgr = ''.
  1142. IF XPgr <> '' AND XPgr BEGINS '-' THEN XPgr = ''.
  1143. IF XAgr <> '' AND XAgr BEGINS '-' THEN XAgr = ''.
  1144. IF XWgr <> '' THEN DO:
  1145. ENTRY(1, VTexte, ';') = XWgr.
  1146. RUN NEUEZEILE.
  1147. ASSIGN TExcel.Sonder = 1
  1148. TExcel.Feld[01] = XWgr.
  1149. END.
  1150. IF XPgr <> '' THEN DO:
  1151. ENTRY(2, VTexte, ';') = XPgr.
  1152. RUN NEUEZEILE.
  1153. ASSIGN TExcel.Sonder = 1
  1154. TExcel.Feld[01] = XPgr.
  1155. END.
  1156. IF XAgr <> '' THEN DO:
  1157. ENTRY(3, VTexte, ';') = XAgr.
  1158. RUN NEUEZEILE.
  1159. ASSIGN TExcel.Sonder = 1
  1160. TExcel.Feld[01] = XAgr.
  1161. END.
  1162. XWgr = ''.
  1163. XPGr = ''.
  1164. XAgr = ''.
  1165. FIND KGebinde USE-INDEX KGebinde-k1
  1166. WHERE KGebinde.Firma = GVFirma
  1167. AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR.
  1168. IF AVAILABLE KGebinde THEN DO:
  1169. VGebInh = KGebinde.Inhalt.
  1170. VGebText = KGebinde.KBez.
  1171. END.
  1172. VInvneu = TArtst.Bestand.
  1173. VBestand = TArtst.Bestand.
  1174. VVerlust = TArtst.Verlust.
  1175. IF VInvneu > 0 THEN VInvwert = VInvneu * VBetrag.
  1176. ELSE VInvwert = 0.
  1177. IF VBestand > 0 THEN VLagwert = VBestand * VBetrag.
  1178. ELSE VLagwert = 0.
  1179. RUN NEUEZEILE.
  1180. ASSIGN TExcel.Feld[02] = STRING(TArtst.Artnr ,"999999")
  1181. TExcel.Feld[03] = STRING(TArtst.Inhalt ,"9999")
  1182. TExcel.Feld[04] = TArtst.Bez1
  1183. TExcel.Feld[05] = TRIM(STRING(TArtst.Jahr ,"zzzz"))
  1184. TExcel.Feld[07] = TRIM(STRING(VGebInh ,"zzzz"))
  1185. TExcel.Feld[08] = VGebText
  1186. TExcel.Feld[09] = TRIM(STRING(TArtst.Bestand ,"->>>>>>>9.99"))
  1187. TExcel.Feld[11] = '__________'
  1188. TExcel.Feld[12] = '__________'
  1189. TExcel.Feld[13] = '__________'.
  1190. IF TArtst.Alk_Gehalt > 0 THEN
  1191. TExcel.Feld[06] = TRIM(STRING(TArtst.Alk_Gehalt,"z9.99%")).
  1192. IF TArtst.Bez2 <> '' THEN DO:
  1193. RUN NEUEZEILE.
  1194. TExcel.Feld[04] = TArtst.Bez2.
  1195. END.
  1196. IF LAST-OF ( TArtst.Herk_Lkz ) THEN DO:
  1197. RUN NEUEZEILE.
  1198. END.
  1199. END.
  1200. END.
  1201. IF AufSort = 2 OR
  1202. AufSort = 3 THEN DO:
  1203. FOR EACH TArtst BREAK BY TArtst.cSort
  1204. BY TArtst.Inhalt
  1205. BY TArtst.Bez1
  1206. BY TArtst.Jahr :
  1207. XWgr = ''.
  1208. XPGr = ''.
  1209. XAgr = ''.
  1210. FIND KGebinde USE-INDEX KGebinde-k1
  1211. WHERE KGebinde.Firma = GVFirma
  1212. AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR.
  1213. IF AVAILABLE KGebinde THEN DO:
  1214. VGebInh = KGebinde.Inhalt.
  1215. VGebText = KGebinde.KBez.
  1216. END.
  1217. VInvneu = TArtst.Bestand.
  1218. VBestand = TArtst.Bestand.
  1219. VVerlust = TArtst.Verlust.
  1220. IF VInvneu > 0 THEN VInvwert = VInvneu * VBetrag.
  1221. ELSE VInvwert = 0.
  1222. IF VBestand > 0 THEN VLagwert = VBestand * VBetrag.
  1223. ELSE VLagwert = 0.
  1224. RUN NEUEZEILE.
  1225. ASSIGN TExcel.Feld[02] = STRING(TArtst.Artnr ,"999999")
  1226. TExcel.Feld[03] = STRING(TArtst.Inhalt ,"9999")
  1227. TExcel.Feld[04] = TArtst.Bez1
  1228. TExcel.Feld[05] = TRIM(STRING(TArtst.Jahr ,"zzzz"))
  1229. TExcel.Feld[07] = TRIM(STRING(VGebInh ,"zzzz"))
  1230. TExcel.Feld[08] = VGebText
  1231. TExcel.Feld[09] = TRIM(STRING(TArtst.Bestand ,"->>>>>>>9.99"))
  1232. TExcel.Feld[11] = '__________'
  1233. TExcel.Feld[12] = '__________'
  1234. TExcel.Feld[13] = '__________'.
  1235. IF TArtst.Alk_Gehalt > 0 THEN
  1236. TExcel.Feld[06] = TRIM(STRING(TArtst.Alk_Gehalt,"z9.99%")).
  1237. IF TArtst.Bez2 <> '' THEN DO:
  1238. RUN NEUEZEILE.
  1239. TExcel.Feld[04] = TArtst.Bez2.
  1240. END.
  1241. END.
  1242. END.
  1243. cVorlage = 'InventarAufnahme.xls'.
  1244. cDokument = 'InventarAufnahme.xls'.
  1245. cDaten = 'InventarAufnahme.txt'.
  1246. cDateiName = cDokument + CHR(01) + cVorlage.
  1247. RUN CREATEDATEI ( INPUT cDateiName ).
  1248. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1249. cDokument = RETURN-VALUE.
  1250. cDateiName = cDaten.
  1251. RUN CREATEDATEI ( INPUT cDateiName ).
  1252. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1253. cDaten = RETURN-VALUE.
  1254. OUTPUT TO VALUE(cDaten).
  1255. FOR EACH TExcel:
  1256. PUT CONTROL TExcel.Feld[01] '£'
  1257. TExcel.Feld[02] '£'
  1258. TExcel.Feld[03] '£'
  1259. TExcel.Feld[04] '£'
  1260. TExcel.Feld[05] '£'
  1261. TExcel.Feld[06] '£'
  1262. TExcel.Feld[07] '£'
  1263. TExcel.Feld[08] '£'
  1264. TExcel.Feld[09] '£'
  1265. TExcel.Feld[10] '£'
  1266. TExcel.Feld[11] '£'
  1267. TExcel.Feld[12] '£'
  1268. TExcel.Feld[13] CHR(13).
  1269. END.
  1270. OUTPUT CLOSE.
  1271. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  1272. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  1273. RUN FEHLER ( INPUT 1035 ).
  1274. RETURN.
  1275. END.
  1276. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ).
  1277. IF NOT ja THEN DO:
  1278. RUN FEHLER ( INPUT 1040 ).
  1279. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1280. RETURN NO-APPLY.
  1281. END.
  1282. Zelle = 'A5'.
  1283. excelAppl:Range(Zelle):SELECT.
  1284. excelAppl:SELECTION:FormulaR1C1 = 'TEXT;' + cDaten.
  1285. excelAppl:APPLICATION:RUN ( 'DateiEinfügen' ).
  1286. /*
  1287. RUN KOPF ( INPUT excelAppl ).
  1288. */
  1289. Zelle = 'A1'.
  1290. excelAppl:Range(Zelle):SELECT.
  1291. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1292. END PROCEDURE.
  1293. /* _UIB-CODE-BLOCK-END */
  1294. &ANALYZE-RESUME
  1295. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_INVENTARBESTAND B-table-Win
  1296. PROCEDURE AUSGABE_INVENTARBESTAND :
  1297. /*------------------------------------------------------------------------------
  1298. Purpose:
  1299. Parameters: <none>
  1300. Notes:
  1301. ------------------------------------------------------------------------------*/
  1302. DEF VAR XWgr AS CHAR NO-UNDO.
  1303. DEF VAR XPro AS CHAR NO-UNDO.
  1304. DEF VAR XAgr AS CHAR NO-UNDO.
  1305. DEF VAR Zelle AS CHAR NO-UNDO.
  1306. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  1307. DEF VAR cVorlage AS CHAR NO-UNDO.
  1308. DEF VAR cDokument AS CHAR NO-UNDO.
  1309. DEF VAR cDaten AS CHAR NO-UNDO.
  1310. DEF VAR VTexte AS CHAR NO-UNDO INIT ';;'.
  1311. FOR EACH TExcel:
  1312. DELETE TExcel.
  1313. END.
  1314. FOR EACH TArtst BREAK BY TArtst.Wg_Grp
  1315. BY TArtst.Prod_Grp
  1316. BY TArtst.Art_Grp
  1317. BY TArtst.Artnr
  1318. BY TArtst.Inhalt
  1319. BY TArtst.Jahr :
  1320. IF FIRST-OF ( TArtst.Wg_Grp ) THEN DO:
  1321. FIND WarenGrp USE-INDEX WarenGrp-k1
  1322. WHERE WarenGrp.Firma = GVFirma
  1323. AND WarenGrp.Wgr = TArtst.Wg_Grp NO-LOCK NO-ERROR.
  1324. IF AVAILABLE WarenGrp THEN XWgr = WarenGrp.Bez1.
  1325. ELSE XWgr = FILL('?', 20).
  1326. END.
  1327. IF FIRST-OF ( TArtst.Prod_Grp ) THEN DO:
  1328. FIND ProdGrp USE-INDEX ProdGrp-k1
  1329. WHERE ProdGrp.Firma = GVFirma
  1330. AND ProdGrp.Wgr = TArtst.Wg_Grp
  1331. AND ProdGrp.Prod_Grp = TArtst.Prod_Grp NO-LOCK NO-ERROR.
  1332. IF AVAILABLE ProdGrp THEN XPgr = ProdGrp.Bez1.
  1333. ELSE XPgr = FILL('?', 20).
  1334. END.
  1335. IF FIRST-OF ( TArtst.Art_Grp ) THEN DO:
  1336. FIND ArtikGrp USE-INDEX ArtikGrp-k1
  1337. WHERE ArtikGrp.Firma = GVFirma
  1338. AND ArtikGrp.Wgr = TArtst.Wg_Grp
  1339. AND ArtikGrp.Prod_Grp = TArtst.Prod_Grp
  1340. AND ArtikGrp.Art_Grp = TArtst.Art_Grp NO-LOCK NO-ERROR.
  1341. IF AVAILABLE ArtikGrp THEN XAgr = ArtikGrp.Bez1.
  1342. ELSE XAgr = FILL('?', 20).
  1343. END.
  1344. IF XWgr <> '' AND XWgr BEGINS '-' THEN XWgr = ''.
  1345. IF XPgr <> '' AND XPgr BEGINS '-' THEN XPgr = ''.
  1346. IF XAgr <> '' AND XAgr BEGINS '-' THEN XAgr = ''.
  1347. IF XWgr <> '' THEN DO:
  1348. ENTRY(1, VTexte, ';') = XWgr.
  1349. RUN NEUEZEILE.
  1350. ASSIGN TExcel.Sonder = 1
  1351. TExcel.Feld[01] = XWgr.
  1352. END.
  1353. IF XPgr <> '' THEN DO:
  1354. ENTRY(2, VTexte, ';') = XPgr.
  1355. RUN NEUEZEILE.
  1356. ASSIGN TExcel.Sonder = 1
  1357. TExcel.Feld[01] = XPgr.
  1358. END.
  1359. IF XAgr <> '' THEN DO:
  1360. ENTRY(3, VTexte, ';') = XAgr.
  1361. RUN NEUEZEILE.
  1362. ASSIGN TExcel.Sonder = 1
  1363. TExcel.Feld[01] = XAgr.
  1364. END.
  1365. XWgr = ''.
  1366. XPGr = ''.
  1367. XAgr = ''.
  1368. VKGebPr = 0.
  1369. VVGebPr = 0.
  1370. VKGebWe = 0.
  1371. VVGebWe = 0.
  1372. VGebInh = 0.
  1373. VGebText = '?????????'.
  1374. FIND KGebinde USE-INDEX KGebinde-k1
  1375. WHERE KGebinde.Firma = GVFirma
  1376. AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR.
  1377. FIND VGebinde USE-INDEX VGebinde-k1
  1378. WHERE VGebinde.Firma = GVFirma
  1379. AND VGebinde.Geb_Cd = TArtst.VGeb_Cd NO-LOCK NO-ERROR.
  1380. IF AVAILABLE KGebinde THEN DO:
  1381. VGebInh = KGebinde.Inhalt.
  1382. VGebText = KGebinde.KBez.
  1383. END.
  1384. IF VGebinde THEN DO:
  1385. VKGebPr = KGebinde.Depot.
  1386. VVGebPr = VGebinde.Depot.
  1387. IF KGebinde.Geb_Kto <> '' THEN DO:
  1388. FIND GebKonto USE-INDEX GebKonto-k1
  1389. WHERE GebKonto.Geb_Cd = KGebinde.Geb_Kto NO-LOCK NO-ERROR.
  1390. IF AVAILABLE GebKonto THEN VKGebPr = GebKonto.Depot.
  1391. END.
  1392. IF VGebinde.Geb_Kto <> '' THEN DO:
  1393. FIND GebKonto USE-INDEX GebKonto-k1
  1394. WHERE GebKonto.Geb_Cd = VGebinde.Geb_Kto NO-LOCK NO-ERROR.
  1395. IF AVAILABLE GebKonto THEN VVGebPr = GebKonto.Depot.
  1396. END.
  1397. VKGebWe = TArtst.KGeb_Wert * VKGebPr.
  1398. VVGebWe = TArtst.VGeb_Wert * VVGebPr.
  1399. END.
  1400. FIND ArtUms USE-INDEX ArtUms-k1
  1401. WHERE ArtUms.Firma = TArtst.Firma
  1402. AND ArtUms.Jahr = VJJ
  1403. AND ArtUms.Artnr = TArtst.Artnr
  1404. AND ArtUms.Inhalt = TArtst.Inhalt
  1405. AND ArtUms.Jahrg = TArtst.Jahr NO-LOCK NO-ERROR.
  1406. VBetrag = TArtst.Preis.
  1407. VVorMonat = 0.
  1408. IF AVAILABLE ArtUms THEN DO:
  1409. VVorMonat = ArtUms.Me_Mon[VMM].
  1410. END.
  1411. VInvneu = TArtst.Bestand.
  1412. VBestand = TArtst.Bestand.
  1413. VVerlust = TArtst.Verlust.
  1414. IF VInvneu > 0 THEN VInvwert = VInvneu * VBetrag.
  1415. ELSE VInvwert = 0.
  1416. IF VBestand > 0 THEN VLagwert = VBestand * VBetrag.
  1417. ELSE VLagwert = 0.
  1418. RUN NEUEZEILE.
  1419. ASSIGN TExcel.Feld[02] = STRING(TArtst.Artnr ,"999999")
  1420. TExcel.Feld[03] = STRING(TArtst.Inhalt,"9999")
  1421. TExcel.Feld[04] = TArtst.Bez1
  1422. TExcel.Feld[05] = TRIM(STRING(TArtst.Jahr ,"zzzz"))
  1423. TExcel.Feld[07] = TRIM(STRING(VGebInh ,"zzzz"))
  1424. TExcel.Feld[08] = VGebText
  1425. TExcel.Feld[09] = TRIM(STRING(VInvneu ,"->>>>>>>>9"))
  1426. TExcel.Feld[10] = TRIM(STRING(VVerlust ,"->>>>>>>>9"))
  1427. TExcel.Feld[11] = TRIM(STRING(VBetrag ,"->>>>>9.99"))
  1428. TExcel.Feld[12] = TRIM(STRING(VInvwert ,"->>>>>9.99")).
  1429. IF TArtst.Alk_Gehalt > 0 THEN
  1430. TExcel.Feld[06] = STRING(TArtst.Alk_Gehalt,"z9.99%").
  1431. IF VGebinde THEN DO:
  1432. TExcel.Feld[13] = TRIM(STRING(VKGebWe ,"->>>>>9.99")).
  1433. TExcel.Feld[14] = TRIM(STRING(VVGebWe ,"->>>>>9.99")).
  1434. END.
  1435. IF TArtst.Bez2 <> '' THEN DO:
  1436. RUN NEUEZEILE.
  1437. TExcel.Feld[04] = TArtst.Bez2.
  1438. END.
  1439. VTotal0[01] = VTotal0[01] + VInvneu.
  1440. VTotal0[02] = VTotal0[02] + VVerlust.
  1441. VTotal0[03] = VTotal0[03] + VInvwert.
  1442. VTotal0[04] = VTotal0[04] + VBestand.
  1443. VTotal0[05] = VTotal0[05] + VLagwert.
  1444. VTotal0[06] = VTotal0[06] + VKGebWe .
  1445. VTotal0[07] = VTotal0[07] + VVGebWe .
  1446. VTotal1[01] = VTotal1[01] + VInvneu.
  1447. VTotal1[02] = VTotal1[02] + VVerlust.
  1448. VTotal1[03] = VTotal1[03] + VInvwert.
  1449. VTotal1[04] = VTotal1[04] + VBestand.
  1450. VTotal1[05] = VTotal1[05] + VLagwert.
  1451. VTotal1[06] = VTotal1[06] + VKGebWe .
  1452. VTotal1[07] = VTotal1[07] + VVGebWe .
  1453. VTotal2[01] = VTotal2[01] + VInvneu.
  1454. VTotal2[02] = VTotal2[02] + VVerlust.
  1455. VTotal2[03] = VTotal2[03] + VInvwert.
  1456. VTotal2[04] = VTotal2[04] + VBestand.
  1457. VTotal2[05] = VTotal2[05] + VLagwert.
  1458. VTotal2[06] = VTotal2[06] + VKGebWe .
  1459. VTotal2[07] = VTotal2[07] + VVGebWe .
  1460. VTotal3[01] = VTotal3[01] + VInvneu.
  1461. VTotal3[02] = VTotal3[02] + VVerlust.
  1462. VTotal3[03] = VTotal3[03] + VInvwert.
  1463. VTotal3[04] = VTotal3[04] + VBestand.
  1464. VTotal3[05] = VTotal3[05] + VLagwert.
  1465. VTotal3[06] = VTotal3[06] + VKGebWe .
  1466. VTotal3[07] = VTotal3[07] + VVGebWe .
  1467. IF LAST-OF ( TArtst.Art_Grp ) THEN DO:
  1468. XAgr = ENTRY(3, VTexte, ';').
  1469. IF XAgr <> '' THEN DO:
  1470. RUN NEUEZEILE.
  1471. TExcel.Feld[01] = 'Total ' + XAgr.
  1472. TExcel.Feld[09] = TRIM(STRING(VTotal3[01],'->>>>>>9')).
  1473. TExcel.Feld[10] = TRIM(STRING(VTotal3[02],'->>>>>>9')).
  1474. TExcel.Feld[12] = TRIM(STRING(VTotal3[03],'->>>>>>>>9')).
  1475. IF VGebinde THEN DO:
  1476. TExcel.Feld[13] = TRIM(STRING(VTotal3[06],'->>>>>>>>9')).
  1477. TExcel.Feld[14] = TRIM(STRING(VTotal3[07],'->>>>>>>>9')).
  1478. END.
  1479. END.
  1480. VTotal3 = 0.
  1481. XAgr = ''.
  1482. END.
  1483. IF LAST-OF ( TArtst.Prod_Grp ) THEN DO:
  1484. XPgr = ENTRY(2, VTexte, ';').
  1485. IF XPgr <> '' THEN DO:
  1486. RUN NEUEZEILE.
  1487. TExcel.Feld[01] = 'Total ' + XPgr.
  1488. TExcel.Feld[09] = TRIM(STRING(VTotal2[01],'->>>>>>9')).
  1489. TExcel.Feld[10] = TRIM(STRING(VTotal2[02],'->>>>>>9')).
  1490. TExcel.Feld[12] = TRIM(STRING(VTotal2[03],'->>>>>>>>9')).
  1491. IF VGebinde THEN DO:
  1492. TExcel.Feld[13] = TRIM(STRING(VTotal2[06],'->>>>>>>>9')).
  1493. TExcel.Feld[14] = TRIM(STRING(VTotal2[07],'->>>>>>>>9')).
  1494. END.
  1495. END.
  1496. VTotal2 = 0.
  1497. XPgr = ''.
  1498. END.
  1499. IF LAST-OF ( TArtst.Wg_Grp ) THEN DO:
  1500. XWgr = ENTRY(1, VTexte, ';').
  1501. IF XWgr <> '' THEN DO:
  1502. RUN NEUEZEILE.
  1503. TExcel.Feld[01] = 'Total ' + XWgr.
  1504. TExcel.Feld[09] = TRIM(STRING(VTotal1[01],'->>>>>>9')).
  1505. TExcel.Feld[10] = TRIM(STRING(VTotal1[02],'->>>>>>9')).
  1506. TExcel.Feld[12] = TRIM(STRING(VTotal1[03],'->>>>>>>>9')).
  1507. IF VGebinde THEN DO:
  1508. TExcel.Feld[13] = TRIM(STRING(VTotal1[06],'->>>>>>>>9')).
  1509. TExcel.Feld[14] = TRIM(STRING(VTotal1[07],'->>>>>>>>9')).
  1510. END.
  1511. END.
  1512. VTotal1 = 0.
  1513. XWgr = ''.
  1514. END.
  1515. IF LAST-OF ( TArtst.Art_Grp ) THEN DO:
  1516. RUN NEUEZEILE.
  1517. END.
  1518. END.
  1519. RUN NEUEZEILE.
  1520. RUN NEUEZEILE.
  1521. TExcel.Feld[01] = 'Gesamttotal'.
  1522. TExcel.Feld[09] = TRIM(STRING(VTotal0[01],'->>>>>>9')).
  1523. TExcel.Feld[10] = TRIM(STRING(VTotal0[02],'->>>>>>9')).
  1524. TExcel.Feld[12] = TRIM(STRING(VTotal0[03],'->>>>>>>>9')).
  1525. IF VGebinde THEN DO:
  1526. TExcel.Feld[13] = TRIM(STRING(VTotal0[06],'->>>>>>>>9')).
  1527. TExcel.Feld[14] = TRIM(STRING(VTotal0[07],'->>>>>>>>9')).
  1528. END.
  1529. cVorlage = 'InventarBestand.xls'.
  1530. cDokument = 'InventarBestand.xls'.
  1531. cDaten = 'InventarBestand.txt'.
  1532. cDateiName = cDokument + CHR(01) + cVorlage.
  1533. RUN CREATEDATEI ( INPUT cDateiName ).
  1534. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1535. cDokument = RETURN-VALUE.
  1536. cDateiName = cDaten.
  1537. RUN CREATEDATEI ( INPUT cDateiName ).
  1538. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1539. cDaten = RETURN-VALUE.
  1540. OUTPUT TO VALUE(cDaten).
  1541. FOR EACH TExcel:
  1542. PUT CONTROL TExcel.Feld[01] '£'
  1543. TExcel.Feld[02] '£'
  1544. TExcel.Feld[03] '£'
  1545. TExcel.Feld[04] '£'
  1546. TExcel.Feld[05] '£'
  1547. TExcel.Feld[06] '£'
  1548. TExcel.Feld[07] '£'
  1549. TExcel.Feld[08] '£'
  1550. TExcel.Feld[09] '£'
  1551. TExcel.Feld[10] '£'
  1552. TExcel.Feld[11] '£'
  1553. TExcel.Feld[12] '£'
  1554. TExcel.Feld[13] '£'
  1555. TExcel.Feld[14] CHR(13).
  1556. END.
  1557. OUTPUT CLOSE.
  1558. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  1559. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  1560. RUN FEHLER ( INPUT 1035 ).
  1561. RETURN.
  1562. END.
  1563. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ).
  1564. IF NOT ja THEN DO:
  1565. RUN FEHLER ( INPUT 1040 ).
  1566. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1567. RETURN NO-APPLY.
  1568. END.
  1569. Zelle = 'A5'.
  1570. excelAppl:Range(Zelle):SELECT.
  1571. excelAppl:SELECTION:FormulaR1C1 = 'TEXT;' + cDaten.
  1572. excelAppl:APPLICATION:RUN ( 'DateiEinfügen' ).
  1573. RUN KOPF ( INPUT excelAppl ).
  1574. Zelle = 'A1'.
  1575. excelAppl:Range(Zelle):SELECT.
  1576. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1577. END PROCEDURE.
  1578. /* _UIB-CODE-BLOCK-END */
  1579. &ANALYZE-RESUME
  1580. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_LAGERBESTAND B-table-Win
  1581. PROCEDURE AUSGABE_LAGERBESTAND :
  1582. /*------------------------------------------------------------------------------
  1583. Purpose:
  1584. Parameters: <none>
  1585. Notes:
  1586. ------------------------------------------------------------------------------*/
  1587. DEF VAR XWgr AS CHAR NO-UNDO.
  1588. DEF VAR XPro AS CHAR NO-UNDO.
  1589. DEF VAR XAgr AS CHAR NO-UNDO.
  1590. DEF VAR Zelle AS CHAR NO-UNDO.
  1591. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  1592. DEF VAR cVorlage AS CHAR NO-UNDO.
  1593. DEF VAR cDokument AS CHAR NO-UNDO.
  1594. DEF VAR cDaten AS CHAR NO-UNDO.
  1595. DEF VAR VTexte AS CHAR NO-UNDO INIT ';;'.
  1596. FOR EACH TExcel:
  1597. DELETE TExcel.
  1598. END.
  1599. FOR EACH TArtst BREAK BY TArtst.Wg_Grp
  1600. BY TArtst.Prod_Grp
  1601. BY TArtst.Art_Grp
  1602. BY TArtst.Artnr
  1603. BY TArtst.Inhalt
  1604. BY TArtst.Jahr :
  1605. IF FIRST-OF ( TArtst.Wg_Grp ) THEN DO:
  1606. FIND WarenGrp USE-INDEX WarenGrp-k1
  1607. WHERE WarenGrp.Firma = GVFirma
  1608. AND WarenGrp.Wgr = TArtst.Wg_Grp NO-LOCK NO-ERROR.
  1609. IF AVAILABLE WarenGrp THEN XWgr = WarenGrp.Bez1.
  1610. ELSE XWgr = FILL('?', 20).
  1611. END.
  1612. IF FIRST-OF ( TArtst.Prod_Grp ) THEN DO:
  1613. FIND ProdGrp USE-INDEX ProdGrp-k1
  1614. WHERE ProdGrp.Firma = GVFirma
  1615. AND ProdGrp.Wgr = TArtst.Wg_Grp
  1616. AND ProdGrp.Prod_Grp = TArtst.Prod_Grp NO-LOCK NO-ERROR.
  1617. IF AVAILABLE ProdGrp THEN XPgr = ProdGrp.Bez1.
  1618. ELSE XPgr = FILL('?', 20).
  1619. END.
  1620. IF FIRST-OF ( TArtst.Art_Grp ) THEN DO:
  1621. FIND ArtikGrp USE-INDEX ArtikGrp-k1
  1622. WHERE ArtikGrp.Firma = GVFirma
  1623. AND ArtikGrp.Wgr = TArtst.Wg_Grp
  1624. AND ArtikGrp.Prod_Grp = TArtst.Prod_Grp
  1625. AND ArtikGrp.Art_Grp = TArtst.Art_Grp NO-LOCK NO-ERROR.
  1626. IF AVAILABLE ArtikGrp THEN XAgr = ArtikGrp.Bez1.
  1627. ELSE XAgr = FILL('?', 20).
  1628. END.
  1629. IF XWgr <> '' AND XWgr BEGINS '-' THEN XWgr = ''.
  1630. IF XPgr <> '' AND XPgr BEGINS '-' THEN XPgr = ''.
  1631. IF XAgr <> '' AND XAgr BEGINS '-' THEN XAgr = ''.
  1632. IF XWgr <> '' THEN DO:
  1633. ENTRY(1, VTexte, ';') = XWgr.
  1634. RUN NEUEZEILE.
  1635. ASSIGN TExcel.Sonder = 1
  1636. TExcel.Feld[01] = XWgr.
  1637. END.
  1638. IF XPgr <> '' THEN DO:
  1639. ENTRY(2, VTexte, ';') = XPgr.
  1640. RUN NEUEZEILE.
  1641. ASSIGN TExcel.Sonder = 1
  1642. TExcel.Feld[01] = XPgr.
  1643. END.
  1644. IF XAgr <> '' THEN DO:
  1645. ENTRY(3, VTexte, ';') = XAgr.
  1646. RUN NEUEZEILE.
  1647. ASSIGN TExcel.Sonder = 1
  1648. TExcel.Feld[01] = XAgr.
  1649. END.
  1650. XWgr = ''.
  1651. XPGr = ''.
  1652. XAgr = ''.
  1653. VKGebPr = 0.
  1654. VVGebPr = 0.
  1655. VKGebWe = 0.
  1656. VVGebWe = 0.
  1657. VGebInh = 0.
  1658. VGebText = '?????????'.
  1659. FIND KGebinde USE-INDEX KGebinde-k1
  1660. WHERE KGebinde.Firma = GVFirma
  1661. AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR.
  1662. FIND VGebinde USE-INDEX VGebinde-k1
  1663. WHERE VGebinde.Firma = GVFirma
  1664. AND VGebinde.Geb_Cd = TArtst.VGeb_Cd NO-LOCK NO-ERROR.
  1665. IF AVAILABLE KGebinde THEN DO:
  1666. VGebInh = KGebinde.Inhalt.
  1667. VGebText = KGebinde.KBez.
  1668. END.
  1669. IF VGebinde THEN DO:
  1670. VKGebPr = KGebinde.Depot.
  1671. VVGebPr = VGebinde.Depot.
  1672. IF KGebinde.Geb_Kto <> '' THEN DO:
  1673. FIND GebKonto USE-INDEX GebKonto-k1
  1674. WHERE GebKonto.Geb_Cd = KGebinde.Geb_Kto NO-LOCK NO-ERROR.
  1675. IF AVAILABLE GebKonto THEN VKGebPr = GebKonto.Depot.
  1676. END.
  1677. IF VGebinde.Geb_Kto <> '' THEN DO:
  1678. FIND GebKonto USE-INDEX GebKonto-k1
  1679. WHERE GebKonto.Geb_Cd = VGebinde.Geb_Kto NO-LOCK NO-ERROR.
  1680. IF AVAILABLE GebKonto THEN VVGebPr = GebKonto.Depot.
  1681. END.
  1682. VKGebWe = TArtst.KGeb_Wert * VKGebPr.
  1683. VVGebWe = TArtst.VGeb_Wert * VVGebPr.
  1684. END.
  1685. FIND ArtUms USE-INDEX ArtUms-k1
  1686. WHERE ArtUms.Firma = TArtst.Firma
  1687. AND ArtUms.Jahr = VJJ
  1688. AND ArtUms.Artnr = TArtst.Artnr
  1689. AND ArtUms.Inhalt = TArtst.Inhalt
  1690. AND ArtUms.Jahrg = TArtst.Jahr NO-LOCK NO-ERROR.
  1691. VBetrag = TArtst.Preis.
  1692. VVorMonat = 0.
  1693. IF AVAILABLE ArtUms THEN DO:
  1694. VVorMonat = ArtUms.Me_Mon[VMM].
  1695. END.
  1696. VInvneu = TArtst.Bestand.
  1697. VBestand = TArtst.Bestand.
  1698. VVerlust = TArtst.Verlust.
  1699. IF VInvneu > 0 THEN VInvwert = VInvneu * VBetrag.
  1700. ELSE VInvwert = 0.
  1701. IF VBestand > 0 THEN VLagwert = VBestand * VBetrag.
  1702. ELSE VLagwert = 0.
  1703. RUN NEUEZEILE.
  1704. ASSIGN TExcel.Feld[02] = STRING(TArtst.Artnr ,"999999")
  1705. TExcel.Feld[03] = STRING(TArtst.Inhalt,"9999")
  1706. TExcel.Feld[04] = TArtst.Bez1
  1707. TExcel.Feld[05] = TRIM(STRING(TArtst.Jahr ,"zzzz"))
  1708. TExcel.Feld[07] = TRIM(STRING(VGebInh ,"zzzz"))
  1709. TExcel.Feld[08] = VGebText
  1710. TExcel.Feld[09] = TRIM(STRING(VBestand ,"->>>>>>>>9"))
  1711. TExcel.Feld[10] = TRIM(STRING(VBetrag ,"->>>>>>9.99"))
  1712. TExcel.Feld[11] = TRIM(STRING(VLagWert ,"->>>>>>>>9.99"))
  1713. TExcel.Feld[12] = TRIM(STRING(VKGebWe ,"->>>>>9.99")).
  1714. TExcel.Feld[13] = TRIM(STRING(VVGebWe ,"->>>>>9.99")).
  1715. TExcel.Feld[14] = TRIM(STRING(VVorMonat ,"->>>>>>>>>")).
  1716. IF TArtst.Alk_Gehalt > 0 THEN
  1717. TExcel.Feld[06] = STRING(TArtst.Alk_Gehalt,"z9.99%").
  1718. IF TArtst.Bez2 <> '' THEN DO:
  1719. RUN NEUEZEILE.
  1720. TExcel.Feld[04] = TArtst.Bez2.
  1721. END.
  1722. VTotal0[01] = VTotal0[01] + VInvneu.
  1723. VTotal0[02] = VTotal0[02] + VVerlust.
  1724. VTotal0[03] = VTotal0[03] + VInvwert.
  1725. VTotal0[04] = VTotal0[04] + VBestand.
  1726. VTotal0[05] = VTotal0[05] + VLagwert.
  1727. VTotal0[06] = VTotal0[06] + VKGebWe .
  1728. VTotal0[07] = VTotal0[07] + VVGebWe .
  1729. VTotal1[01] = VTotal1[01] + VInvneu.
  1730. VTotal1[02] = VTotal1[02] + VVerlust.
  1731. VTotal1[03] = VTotal1[03] + VInvwert.
  1732. VTotal1[04] = VTotal1[04] + VBestand.
  1733. VTotal1[05] = VTotal1[05] + VLagwert.
  1734. VTotal1[06] = VTotal1[06] + VKGebWe .
  1735. VTotal1[07] = VTotal1[07] + VVGebWe .
  1736. VTotal2[01] = VTotal2[01] + VInvneu.
  1737. VTotal2[02] = VTotal2[02] + VVerlust.
  1738. VTotal2[03] = VTotal2[03] + VInvwert.
  1739. VTotal2[04] = VTotal2[04] + VBestand.
  1740. VTotal2[05] = VTotal2[05] + VLagwert.
  1741. VTotal2[06] = VTotal2[06] + VKGebWe .
  1742. VTotal2[07] = VTotal2[07] + VVGebWe .
  1743. VTotal3[01] = VTotal3[01] + VInvneu.
  1744. VTotal3[02] = VTotal3[02] + VVerlust.
  1745. VTotal3[03] = VTotal3[03] + VInvwert.
  1746. VTotal3[04] = VTotal3[04] + VBestand.
  1747. VTotal3[05] = VTotal3[05] + VLagwert.
  1748. VTotal3[06] = VTotal3[06] + VKGebWe .
  1749. VTotal3[07] = VTotal3[07] + VVGebWe .
  1750. IF LAST-OF ( TArtst.Art_Grp ) THEN DO:
  1751. XAgr = ENTRY(3, VTexte, ';').
  1752. IF XAgr <> '' THEN DO:
  1753. RUN NEUEZEILE.
  1754. TExcel.Feld[01] = 'Total ' + XAgr.
  1755. TExcel.Feld[09] = TRIM(STRING(VTotal3[04],'->>>>>>>>9')).
  1756. TExcel.Feld[11] = TRIM(STRING(VTotal3[05],'->>>>>>>>9')).
  1757. TExcel.Feld[12] = TRIM(STRING(VTotal3[06],'->>>>>>>>9')).
  1758. TExcel.Feld[13] = TRIM(STRING(VTotal3[07],'->>>>>>>>9')).
  1759. END.
  1760. VTotal3 = 0.
  1761. XAgr = ''.
  1762. END.
  1763. IF LAST-OF ( TArtst.Prod_Grp ) THEN DO:
  1764. XPgr = ENTRY(2, VTexte, ';').
  1765. IF XPgr <> '' THEN DO:
  1766. RUN NEUEZEILE.
  1767. TExcel.Feld[01] = 'Total ' + XPgr.
  1768. TExcel.Feld[09] = TRIM(STRING(VTotal2[04],'->>>>>>>>9')).
  1769. TExcel.Feld[11] = TRIM(STRING(VTotal2[05],'->>>>>>>>9')).
  1770. TExcel.Feld[12] = TRIM(STRING(VTotal2[06],'->>>>>>>>9')).
  1771. TExcel.Feld[13] = TRIM(STRING(VTotal2[07],'->>>>>>>>9')).
  1772. END.
  1773. VTotal2 = 0.
  1774. XPgr = ''.
  1775. END.
  1776. IF LAST-OF ( TArtst.Wg_Grp ) THEN DO:
  1777. XWgr = ENTRY(1, VTexte, ';').
  1778. IF XWgr <> '' THEN DO:
  1779. RUN NEUEZEILE.
  1780. TExcel.Feld[01] = 'Total ' + XWgr.
  1781. TExcel.Feld[09] = TRIM(STRING(VTotal1[04],'->>>>>>>>9')).
  1782. TExcel.Feld[11] = TRIM(STRING(VTotal1[05],'->>>>>>>>9')).
  1783. TExcel.Feld[12] = TRIM(STRING(VTotal1[06],'->>>>>>>>9')).
  1784. TExcel.Feld[13] = TRIM(STRING(VTotal1[07],'->>>>>>>>9')).
  1785. END.
  1786. VTotal1 = 0.
  1787. XWgr = ''.
  1788. END.
  1789. IF LAST-OF ( TArtst.Art_Grp ) THEN DO:
  1790. RUN NEUEZEILE.
  1791. END.
  1792. END.
  1793. RUN NEUEZEILE.
  1794. RUN NEUEZEILE.
  1795. TExcel.Feld[01] = 'Gesamttotal'.
  1796. TExcel.Feld[09] = TRIM(STRING(VTotal0[04],'->>>>>>>>9')).
  1797. TExcel.Feld[11] = TRIM(STRING(VTotal0[05],'->>>>>>>>9')).
  1798. TExcel.Feld[12] = TRIM(STRING(VTotal0[06],'->>>>>>>>9')).
  1799. TExcel.Feld[13] = TRIM(STRING(VTotal0[07],'->>>>>>>>9')).
  1800. cVorlage = 'LagerBestand.xls'.
  1801. cDokument = 'LagerBestand.xls'.
  1802. cDaten = 'LagerBestand.txt'.
  1803. cDateiName = cDokument + CHR(01) + cVorlage.
  1804. RUN CREATEDATEI ( INPUT cDateiName ).
  1805. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1806. cDokument = RETURN-VALUE.
  1807. cDateiName = cDaten.
  1808. RUN CREATEDATEI ( INPUT cDateiName ).
  1809. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  1810. cDaten = RETURN-VALUE.
  1811. OUTPUT TO VALUE(cDaten).
  1812. FOR EACH TExcel:
  1813. PUT CONTROL TExcel.Feld[01] '£'
  1814. TExcel.Feld[02] '£'
  1815. TExcel.Feld[03] '£'
  1816. TExcel.Feld[04] '£'
  1817. TExcel.Feld[05] '£'
  1818. TExcel.Feld[06] '£'
  1819. TExcel.Feld[07] '£'
  1820. TExcel.Feld[08] '£'
  1821. TExcel.Feld[09] '£'
  1822. TExcel.Feld[10] '£'
  1823. TExcel.Feld[11] '£'
  1824. TExcel.Feld[12] '£'
  1825. TExcel.Feld[13] '£'
  1826. TExcel.Feld[14] CHR(13).
  1827. END.
  1828. OUTPUT CLOSE.
  1829. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  1830. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  1831. RUN FEHLER ( INPUT 1035 ).
  1832. RETURN.
  1833. END.
  1834. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ).
  1835. IF NOT ja THEN DO:
  1836. RUN FEHLER ( INPUT 1040 ).
  1837. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1838. RETURN NO-APPLY.
  1839. END.
  1840. Zelle = 'A5'.
  1841. excelAppl:Range(Zelle):SELECT.
  1842. excelAppl:SELECTION:FormulaR1C1 = 'TEXT;' + cDaten.
  1843. excelAppl:APPLICATION:RUN ( 'DateiEinfügen' ).
  1844. RUN KOPF ( INPUT excelAppl ).
  1845. Zelle = 'A1'.
  1846. excelAppl:Range(Zelle):SELECT.
  1847. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1848. END PROCEDURE.
  1849. /* _UIB-CODE-BLOCK-END */
  1850. &ANALYZE-RESUME
  1851. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI B-table-Win _DEFAULT-DISABLE
  1852. PROCEDURE disable_UI :
  1853. /*------------------------------------------------------------------------------
  1854. Purpose: DISABLE the User Interface
  1855. Parameters: <none>
  1856. Notes: Here we clean-up the user-interface by deleting
  1857. dynamic widgets we have created and/or hide
  1858. frames. This procedure is usually called when
  1859. we are ready to "clean-up" after running.
  1860. ------------------------------------------------------------------------------*/
  1861. /* Hide all frames. */
  1862. HIDE FRAME F-Main.
  1863. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  1864. END PROCEDURE.
  1865. /* _UIB-CODE-BLOCK-END */
  1866. &ANALYZE-RESUME
  1867. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE B-table-Win
  1868. PROCEDURE DRUCKAUSGABE :
  1869. /*------------------------------------------------------------------------------
  1870. Purpose:
  1871. Parameters: <none>
  1872. Notes:
  1873. ------------------------------------------------------------------------------*/
  1874. DEF VAR sRecid AS RECID NO-UNDO.
  1875. DEF VAR iSchacht AS INT NO-UNDO.
  1876. DEF VAR iSize AS INT NO-UNDO.
  1877. sRecid = RECID(Schrift).
  1878. iSchacht = LiDruck.Schacht.
  1879. iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, cDateiName ,
  1880. sRecid ,
  1881. iSchacht ,
  1882. 240 , /* Blockgrösse */
  1883. 'ibm850' ,
  1884. 1 ). /* AnzahlKopien */
  1885. IF iSize = 0 THEN DO:
  1886. MESSAGE 'Druckvorgang gescheitert !!! '
  1887. VIEW-AS ALERT-BOX ERROR.
  1888. END.
  1889. END PROCEDURE.
  1890. /* _UIB-CODE-BLOCK-END */
  1891. &ANALYZE-RESUME
  1892. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN B-table-Win
  1893. PROCEDURE DRUCKEN :
  1894. /*------------------------------------------------------------------------------
  1895. Purpose:
  1896. Parameters: <none>
  1897. Notes:
  1898. ------------------------------------------------------------------------------*/
  1899. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR.
  1900. RUN FUELLEN_TEMPFILE.
  1901. RUN LISTTIT1.
  1902. cDateiName = SESSION:TEMP-DIR + 'Inventar' + STRING(TIME,'999999').
  1903. Sprcd = 1.
  1904. Sprcd = DYNAMIC-FUNCTION('GETFWSPRCD') NO-ERROR.
  1905. IF Sprcd = ? THEN Sprcd = 1.
  1906. IF AufSort = 2 OR
  1907. AufSort = 3 THEN DO:
  1908. RUN SORT03.
  1909. END.
  1910. ELSE DO:
  1911. IF NOT FLandSort THEN DO:
  1912. IF VSort = 1 THEN RUN SORT01.
  1913. IF VSort = 2 THEN RUN SORT02.
  1914. IF VSort = 3 THEN RUN SORT02.
  1915. END.
  1916. ELSE DO:
  1917. IF VSort = 1 THEN RUN SORT11.
  1918. IF VSort = 2 THEN RUN SORT12.
  1919. IF VSort = 3 THEN RUN SORT12.
  1920. END.
  1921. END.
  1922. APPLY 'CHOOSE' TO Btn_Ende IN FRAME {&FRAME-NAME}.
  1923. RETURN NO-APPLY.
  1924. END PROCEDURE.
  1925. /* _UIB-CODE-BLOCK-END */
  1926. &ANALYZE-RESUME
  1927. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL B-table-Win
  1928. PROCEDURE EXCEL :
  1929. /*------------------------------------------------------------------------------
  1930. Purpose:
  1931. Parameters: <none>
  1932. Notes:
  1933. ------------------------------------------------------------------------------*/
  1934. DEF VAR XWgr AS CHAR NO-UNDO.
  1935. DEF VAR XPro AS CHAR NO-UNDO.
  1936. DEF VAR XAgr AS CHAR NO-UNDO.
  1937. DEF VAR VTexte AS CHAR NO-UNDO.
  1938. DEF VAR VMakroDatei AS CHAR NO-UNDO.
  1939. DEF VAR VExcelDatei AS CHAR NO-UNDO.
  1940. DEF VAR Zelle AS CHAR NO-UNDO.
  1941. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  1942. DEF VAR AktZei AS INT NO-UNDO.
  1943. DEF VAR MaxZei AS INT NO-UNDO.
  1944. DEF VAR FSW AS LOG NO-UNDO.
  1945. RUN FUELLEN_TEMPFILE.
  1946. CASE VSort:
  1947. WHEN 1 THEN RUN AUSGABE_INVENTARAUFNAHME.
  1948. WHEN 2 THEN RUN AUSGABE_INVENTARBESTAND .
  1949. WHEN 3 THEN RUN AUSGABE_LAGERBESTAND .
  1950. END CASE.
  1951. APPLY 'CHOOSE' TO Btn_Ende IN FRAME {&FRAME-NAME}.
  1952. RETURN NO-APPLY.
  1953. END PROCEDURE.
  1954. /* _UIB-CODE-BLOCK-END */
  1955. &ANALYZE-RESUME
  1956. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_TEMPFILE B-table-Win
  1957. PROCEDURE FUELLEN_TEMPFILE :
  1958. /*------------------------------------------------------------------------------
  1959. Purpose:
  1960. Parameters: <none>
  1961. Notes:
  1962. ------------------------------------------------------------------------------*/
  1963. VSort = Listen.Sort.
  1964. VArtnr = Listen.VNr[01].
  1965. BArtnr = Listen.BNr[01].
  1966. VInhalt = Listen.VNr[04].
  1967. BInhalt = Listen.BNr[04].
  1968. VWgr = Listen.VNr[02].
  1969. BWgr = Listen.BNr[02].
  1970. VPgr = Listen.VNr[05].
  1971. BPgr = Listen.BNr[05].
  1972. VAgr = Listen.VNr[06].
  1973. BAgr = Listen.BNr[06].
  1974. VHerst = Listen.VNr[03].
  1975. BHerst = Listen.BNr[03].
  1976. VPreis = Listen.ENr[01].
  1977. VDatum = Listen.EDa[01].
  1978. VPerDat = Listen.EDa[01].
  1979. VZweite = Listen.VFl[01].
  1980. VGebinde = Listen.VFl[02].
  1981. VLkz = Listen.ECh[01].
  1982. FLandSort = Listen.VFl[04].
  1983. FLager = Listen.VFl[03].
  1984. FBestand = Listen.VFl[05].
  1985. FAusverk = Listen.VFl[06].
  1986. IF VLkz = '0' THEN VLkz = ''.
  1987. FOR EACH TArtst:
  1988. DELETE TArtst.
  1989. END.
  1990. IF VSort = 2 THEN VDatum = ?.
  1991. FIND Steuer NO-LOCK
  1992. WHERE Steuer.Firma = GVFirma.
  1993. FOR EACH Artst USE-INDEX Artst-k1
  1994. WHERE Artst.Firma = GVFirma
  1995. AND Artst.Artnr >= VArtnr
  1996. AND Artst.Artnr <= BArtnr
  1997. AND Artst.Inhalt >= VInhalt
  1998. AND Artst.Inhalt <= BInhalt
  1999. AND Artst.Wg_Grp >= VWgr
  2000. AND Artst.Wg_Grp <= BWgr
  2001. AND Artst.Prod_Grp >= VPgr
  2002. AND Artst.Prod_Grp <= BPgr
  2003. AND Artst.Art_Grp >= VAgr
  2004. AND Artst.Art_Grp <= BAgr
  2005. AND Artst.Herst >= VHerst
  2006. AND Artst.Herst <= BHerst
  2007. AND ((VLkz = '') OR
  2008. (Artst.Herk_Lkz = VLkz))
  2009. AND Artst.Aktiv = TRUE NO-LOCK:
  2010. IF FLager AND
  2011. NOT Artst.Lager THEN NEXT.
  2012. IF FAusverk AND
  2013. Artst.Ausverk <> 9 THEN NEXT.
  2014. FIND ArtLager NO-LOCK
  2015. WHERE ArtLager.Firma = Artst.Firma
  2016. AND ArtLager.Artnr = Artst.Artnr
  2017. AND ArtLager.Inhalt = Artst.Inhalt
  2018. AND ArtLager.Jahr = Artst.Jahr
  2019. AND ArtLager.Lager = iLager NO-ERROR.
  2020. IF NOT AVAILABLE ArtLager THEN NEXT.
  2021. VInvneu = 0.
  2022. VBestand = 0.
  2023. VKGebMe = 0.
  2024. VVGebMe = 0.
  2025. VVerlust = 0.
  2026. VEingang = 0.
  2027. VAusgang = 0.
  2028. DO WHILE VSort = 1:
  2029. IF NOT fAltBest THEN VBestand = ArtLager.Bestand.
  2030. ELSE DO:
  2031. FIND FIRST ArtLager OF Artst NO-LOCK NO-ERROR.
  2032. VBestand = ArtLager.Bestand_Alt.
  2033. END.
  2034. LEAVE.
  2035. END.
  2036. DO WHILE VSort = 2:
  2037. Ja = FALSE.
  2038. FOR EACH ArtLager OF Artst NO-LOCK
  2039. WHERE ArtLager.Lager = iLager:
  2040. IF VDatum = ? THEN VDatum = ArtLager.Datum_Inv.
  2041. IF VDatum = ? THEN NEXT.
  2042. VInvneu = VInvneu + ArtLager.Inv_Best.
  2043. VBestand = VBestand + ArtLager.Bestand_Alt.
  2044. END.
  2045. VVerlust = VBestand - VInvneu.
  2046. VBestand = VInvNeu.
  2047. IF VDatum = ? THEN LEAVE.
  2048. FOR EACH Artbw USE-INDEX Artbw-k7
  2049. WHERE Artbw.Firma = Artst.Firma
  2050. AND Artbw.Artnr = Artst.Artnr
  2051. AND Artbw.Inhalt = Artst.Inhalt
  2052. AND Artbw.Jahr = Artst.Jahr
  2053. AND Artbw.Tr_Art = 21
  2054. AND Artbw.Lager = iLager
  2055. AND Artbw.Datum = VDatum NO-LOCK:
  2056. VKGebMe = VKGebMe + Artbw.KGeb_Me.
  2057. VVGebMe = VVGebMe + Artbw.VGeb_Me.
  2058. END.
  2059. IF VInvNeu = 0 AND
  2060. VKGebMe = 0 AND
  2061. VVGebMe = 0 THEN LEAVE.
  2062. Ja = TRUE.
  2063. LEAVE.
  2064. END.
  2065. IF VSort = 2 AND Ja = FALSE THEN NEXT.
  2066. DO WHILE VSort = 3:
  2067. IF VDatum = ? THEN DO:
  2068. VBestand = ArtLager.Bestand.
  2069. LEAVE.
  2070. END.
  2071. VInvDat = ?.
  2072. FIND FIRST Artbw NO-LOCK USE-INDEX Artbw-k7
  2073. WHERE Artbw.Firma = Artst.Firma
  2074. AND Artbw.Artnr = Artst.Artnr
  2075. AND Artbw.Inhalt = Artst.Inhalt
  2076. AND Artbw.Jahr = Artst.Jahr
  2077. AND Artbw.Datum <= VDatum
  2078. AND Artbw.Tr_Art = 21
  2079. AND Artbw.Lager = iLager NO-ERROR.
  2080. IF AVAILABLE Artbw THEN DO:
  2081. VInvDat = Artbw.Datum.
  2082. FOR EACH Artbw USE-INDEX Artbw-k7
  2083. WHERE Artbw.Firma = Artst.Firma
  2084. AND Artbw.Artnr = Artst.Artnr
  2085. AND Artbw.Inhalt = Artst.Inhalt
  2086. AND Artbw.Jahr = Artst.Jahr
  2087. AND Artbw.Tr_Art = 21
  2088. AND Artbw.Lager = iLager
  2089. AND Artbw.Datum = VInvDat NO-LOCK:
  2090. VInvNeu = VInvNeu + Artbw.Menge.
  2091. END.
  2092. END.
  2093. ELSE VInvDat = 01/01/0001.
  2094. FOR EACH Artbw USE-INDEX Artbw-k2
  2095. WHERE Artbw.Firma = Artst.Firma
  2096. AND Artbw.Artnr = Artst.Artnr
  2097. AND Artbw.Inhalt = Artst.Inhalt
  2098. AND Artbw.Jahr = Artst.Jahr
  2099. AND Artbw.Lager = iLager
  2100. AND Artbw.Datum > VInvDat
  2101. AND Artbw.Datum <= VDatum NO-LOCK:
  2102. IF Artbw.Tr_Art > 20 THEN NEXT.
  2103. IF Artbw.Tr_Art > 10 THEN VEingang = VEingang + Artbw.Menge.
  2104. ELSE VAusgang = VAusgang + Artbw.Menge.
  2105. END.
  2106. VBestand = VInvNeu + VEingang - VAusgang.
  2107. LEAVE.
  2108. END.
  2109. FIND Artbez USE-INDEX Artbez-k1
  2110. WHERE Artbez.Firma = Artst.Firma
  2111. AND Artbez.Artnr = Artst.Artnr
  2112. AND Artbez.Inhalt = Artst.Inhalt
  2113. AND Artbez.Jahr = Artst.Jahr
  2114. AND Artbez.Sprcd = Sprcd NO-LOCK NO-ERROR.
  2115. IF NOT AVAILABLE Artbez THEN DO:
  2116. FIND FIRST Artbez USE-INDEX Artbez-k1
  2117. WHERE Artbez.Firma = Artst.Firma
  2118. AND Artbez.Artnr = Artst.Artnr
  2119. AND Artbez.Inhalt = Artst.Inhalt
  2120. AND Artbez.Jahr = Artst.Jahr
  2121. NO-LOCK NO-ERROR.
  2122. END.
  2123. CASE VPreis:
  2124. WHEN 1 THEN DO:
  2125. VBetrag = Artst.DEP.
  2126. IF VBetrag = 0 THEN VBetrag = Artst.LEP.
  2127. IF VBetrag = 0 THEN VBetrag = Artst.Listen_Ep.
  2128. END.
  2129. WHEN 2 THEN DO:
  2130. VBetrag = Artst.LEP.
  2131. IF VBetrag = 0 THEN VBetrag = Artst.DEP.
  2132. IF VBetrag = 0 THEN VBetrag = Artst.Listen_Ep.
  2133. IF VSort = 2 THEN DO:
  2134. IF VPreis = 1 THEN DO:
  2135. FIND LAST Artbw NO-LOCK USE-INDEX Artbw-k7
  2136. WHERE Artbw.Firma = Artst.Firma
  2137. AND Artbw.Artnr = Artst.Artnr
  2138. AND Artbw.Inhalt = Artst.Inhalt
  2139. AND Artbw.Jahr = Artst.Jahr
  2140. AND Artbw.Tr_Art = 1
  2141. AND Artbw.Datum <= VDatum NO-ERROR.
  2142. IF AVAILABLE Artbw THEN VPreis = Artbw.EP.
  2143. END.
  2144. IF VPreis = 2 THEN DO:
  2145. FIND LAST Artbw NO-LOCK USE-INDEX Artbw-k7
  2146. WHERE Artbw.Firma = Artst.Firma
  2147. AND Artbw.Artnr = Artst.Artnr
  2148. AND Artbw.Inhalt = Artst.Inhalt
  2149. AND Artbw.Jahr = Artst.Jahr
  2150. AND Artbw.Tr_Art = 11
  2151. AND Artbw.Datum <= VDatum NO-ERROR.
  2152. IF AVAILABLE Artbw THEN VPreis = Artbw.Preis.
  2153. END.
  2154. END.
  2155. END.
  2156. WHEN 3 THEN DO:
  2157. VBetrag = Artst.Listen_EP.
  2158. IF VBetrag = 0 THEN VBetrag = Artst.DEP.
  2159. IF VBetrag = 0 THEN VBetrag = Artst.LEP.
  2160. END.
  2161. WHEN 4 THEN DO:
  2162. FIND LAST ArtPreis USE-INDEX ArtPreis-k1
  2163. WHERE ArtPreis.Firma = Artst.Firma
  2164. AND ArtPreis.Artnr = Artst.Artnr
  2165. AND ArtPreis.Inhalt = Artst.Inhalt
  2166. AND ArtPreis.Jahr = Artst.Jahr
  2167. AND ArtPreis.Preis_Grp = Steuer.Fwi14
  2168. AND ArtPreis.Ab_Datum <= TODAY
  2169. AND ArtPreis.Aktion = FALSE NO-LOCK NO-ERROR.
  2170. IF AVAILABLE ArtPreis THEN VBetrag = ArtPreis.VK_Netto.
  2171. IF VBetrag = 0 THEN VBetrag = Artst.DEP.
  2172. IF VBetrag = 0 THEN VBetrag = Artst.LEP.
  2173. IF VBetrag = 0 THEN VBetrag = Artst.Listen_Ep.
  2174. END.
  2175. END CASE.
  2176. IF VSort > 1 AND
  2177. FBestand AND
  2178. VBestand < 1 THEN NEXT.
  2179. IF VSort = 3 THEN DO:
  2180. VKGebMe = VBestand.
  2181. FIND VGebinde USE-INDEX VGebinde-k1
  2182. WHERE VGebinde.Firma = Artst.Firma
  2183. AND VGebinde.Geb_Cd = Artst.VGeb_Cd NO-LOCK NO-ERROR.
  2184. IF AVAILABLE VGebinde AND
  2185. VGebinde.Inhalt > 0 THEN DO:
  2186. VVGebMe = VBestand / VGebinde.Inhalt.
  2187. END.
  2188. END.
  2189. CREATE TArtst.
  2190. BUFFER-COPY Artst TO TArtst
  2191. ASSIGN TArtst.Bez1 = ArtBez.Bez1
  2192. TArtst.Bez2 = ArtBez.Bez2
  2193. TArtst.Preis = VBetrag
  2194. TArtst.Bestand = VBestand
  2195. TArtst.Verlust = VVerlust
  2196. TArtst.KGeb_Wert = VKGebMe
  2197. TArtst.VGeb_Wert = VVGebMe.
  2198. TArtst.LagOrt = DYNAMIC-FUNCTION('getLagerort':U, INPUT iLager ,
  2199. INPUT TArtst.Artnr ,
  2200. INPUT TArtst.Inhalt,
  2201. INPUT TArtst.Jahr ) NO-ERROR.
  2202. IF Artbez.Bez2_Druck = FALSE THEN TArtst.Bez2 = ''.
  2203. IF NOT VZweite THEN TArtst.Bez2 = ''.
  2204. IF AufSort = 2 THEN TArtst.cSort = TArtst.LagOrt.
  2205. IF AufSort = 3 THEN TArtst.cSort = TArtst.Suchbe.
  2206. END.
  2207. FOR EACH TArtst WHERE TArtst.Ausverk = 9
  2208. AND TArtst.Bestand < 1:
  2209. DELETE TArtst.
  2210. END.
  2211. END PROCEDURE.
  2212. /* _UIB-CODE-BLOCK-END */
  2213. &ANALYZE-RESUME
  2214. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF B-table-Win
  2215. PROCEDURE KOPF :
  2216. /*------------------------------------------------------------------------------
  2217. Purpose:
  2218. Parameters: <none>
  2219. Notes:
  2220. ------------------------------------------------------------------------------*/
  2221. DEF INPUT PARAMETER eh AS COM-HANDLE NO-UNDO.
  2222. DEF VAR Zelle AS CHAR NO-UNDO.
  2223. DEF VAR rechts AS INT NO-UNDO.
  2224. DEF VAR mitte AS INT NO-UNDO.
  2225. DEF VAR i1 AS INT NO-UNDO.
  2226. DEF VAR Breite AS DEC DECIMALS 4 NO-UNDO.
  2227. DEF VAR TotBre AS DEC DECIMALS 4 NO-UNDO.
  2228. DEF VAR DifBre AS DEC DECIMALS 4 NO-UNDO.
  2229. DEF VAR FHoch AS LOG NO-UNDO.
  2230. DEF VAR cString AS CHAR NO-UNDO.
  2231. CASE VSort:
  2232. WHEN 2 THEN DO:
  2233. Zelle = 'G1'.
  2234. eh:Range(Zelle):Select.
  2235. cString = eh:Selection:VALUE
  2236. + ' '
  2237. + STRING(VDatum,'99.99.9999').
  2238. eh:Selection:VALUE = cString.
  2239. IF VGebinde THEN RETURN.
  2240. Zelle = 'M:N'.
  2241. eh:COLUMNS(Zelle):Select.
  2242. eh:Selection:EntireColumn:HIDDEN = TRUE .
  2243. END.
  2244. WHEN 3 THEN DO:
  2245. IF VPerDat = ? THEN RETURN.
  2246. Zelle = 'G1'.
  2247. eh:Range(Zelle):Select.
  2248. cString = eh:Selection:VALUE
  2249. + ' '
  2250. + STRING(VPerDat,'99.99.9999').
  2251. eh:Selection:VALUE = cString.
  2252. END.
  2253. END CASE.
  2254. /*
  2255. IF VPerDat <> ? THEN DO:
  2256. VTexte = excelAppl:ActiveCell:FormulaR1C1.
  2257. VTexte = VTexte + ' per ' + STRING(VPerDat,'99.99.9999').
  2258. excelAppl:ActiveCell:FormulaR1C1 = VTexte.
  2259. bKol = '0.3;0.5;6.0;25.0;7.0;8.0;6.0;6.0;7.0;7.0;6.0;6.0;6.0;7.0;7.0;6.0'.
  2260. FKol = TRUE.
  2261. IF NOT T_Vorjahr THEN DO:
  2262. FKol[12] = FALSE.
  2263. FKol[13] = FALSE.
  2264. FKol[14] = FALSE.
  2265. FKol[15] = FALSE.
  2266. FKol[16] = FALSE.
  2267. END.
  2268. IF NOT T_Menge THEN ASSIGN FKol[07] = FALSE
  2269. FKol[12] = FALSE.
  2270. IF NOT T_Liter THEN ASSIGN FKol[08] = FALSE
  2271. FKol[13] = FALSE.
  2272. IF NOT T_Ep THEN ASSIGN FKol[09] = FALSE
  2273. FKol[14] = FALSE.
  2274. IF NOT T_Vp THEN ASSIGN FKol[10] = FALSE
  2275. FKol[15] = FALSE.
  2276. IF NOT T_Marge THEN ASSIGN FKol[11] = FALSE
  2277. FKol[16] = FALSE.
  2278. DO i1 = 7 TO 16:
  2279. IF FKol[i1] THEN rechts = 64 + i1.
  2280. END.
  2281. mitte = 69.
  2282. IF AnzKol > 2 THEN mitte = 70.
  2283. IF AnzKol > 5 THEN mitte = 71.
  2284. IF AnzKol > 8 THEN mitte = 72.
  2285. IF AnzKol > 11 THEN mitte = 73.
  2286. Breite = 0.
  2287. TotBre = 0.
  2288. DO i1 = 1 TO 16.
  2289. TotBre = TotBre + DECIMAL(ENTRY(i1, bKol, ';')).
  2290. IF FKol[i1] THEN Breite = Breite + DECIMAL(ENTRY(i1, bKol, ';')).
  2291. END.
  2292. IF Breite < 77.5 THEN DO:
  2293. FHoch = TRUE.
  2294. DifBre = (77.5 - Breite) / AnzKol.
  2295. END.
  2296. ELSE DO:
  2297. FHoch = FALSE.
  2298. DifBre = (TotBre - Breite) / AnzKol.
  2299. END.
  2300. IF DifBre < 0.2 THEN DIfBre = 0.
  2301. FIND Steuer USE-INDEX Steuer-k1
  2302. WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
  2303. Zelle = 'B1'.
  2304. eh:Range(Zelle):Select.
  2305. eh:Selection:VALUE = Steuer.Firma1.
  2306. Zelle = CHR(mitte) + '1'.
  2307. eh:Range(Zelle):Select.
  2308. eh:Selection:VALUE = 'Debitor-Umsätze ('
  2309. + cVer
  2310. + ')'.
  2311. Zelle = CHR(rechts) + '1'.
  2312. eh:Range(Zelle):Select.
  2313. eh:Selection:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  2314. Zelle = 'B2'.
  2315. eh:Range(Zelle):Select.
  2316. eh:Selection:VALUE = Steuer.Ort.
  2317. Zelle = CHR(mitte) + '2'.
  2318. eh:Range(Zelle):Select.
  2319. eh:Selection:VALUE = STRING(F_VonDatum,'99.99.9999')
  2320. + ' - '
  2321. + STRING(F_BisDatum,'99.99.9999').
  2322. Zelle = CHR(rechts) + '2'.
  2323. eh:Range(Zelle):Select.
  2324. eh:Selection:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  2325. Zelle = CHR(mitte) + '1:' + CHR(mitte) + '2'.
  2326. eh:Range(Zelle):Select.
  2327. eh:Selection:HorizontalAlignment = -4108.
  2328. DO i1 = 1 TO 16:
  2329. eh:Range('A1'):Select.
  2330. Zelle = CHR(64 + i1) + ':' + CHR(64 + i1).
  2331. eh:COLUMNS(Zelle):Select.
  2332. IF FKol[i1] THEN eh:Selection:EntireColumn:HIDDEN = FALSE.
  2333. ELSE eh:Selection:EntireColumn:HIDDEN = TRUE .
  2334. IF NOT FKol[i1] THEN NEXT.
  2335. Breite = DECIMAL(ENTRY(i1, bKol, ';')).
  2336. IF i1 > 6 THEN Breite = Breite + DifBre.
  2337. eh:Selection:ColumnWidth = Breite.
  2338. IF i1 = 08 AND T_Hl THEN eh:Selection:NumberFormat = "0.00".
  2339. IF i1 = 13 AND T_Hl THEN eh:Selection:NumberFormat = "0.00".
  2340. END.
  2341. IF FHoch THEN eh:ActiveSheet:PageSetup:ORIENTATION = 1.
  2342. eh:Range('G3:K3'):Select.
  2343. eh:Selection:MergeCells = TRUE.
  2344. eh:Range('G3'):Select.
  2345. eh:Selection:Value = 'aktive Periode'.
  2346. eh:Range('L3:P3'):Select.
  2347. eh:Selection:MergeCells = TRUE.
  2348. eh:Range('L3'):Select.
  2349. eh:Selection:Value = 'Vorperiode'.
  2350. */
  2351. END PROCEDURE.
  2352. /* _UIB-CODE-BLOCK-END */
  2353. &ANALYZE-RESUME
  2354. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIBILD B-table-Win
  2355. PROCEDURE LIBILD :
  2356. /*------------------------------------------------------------------------------
  2357. Purpose:
  2358. Parameters: <none>
  2359. Notes:
  2360. ------------------------------------------------------------------------------*/
  2361. { v8/libild.i }
  2362. END PROCEDURE.
  2363. /* _UIB-CODE-BLOCK-END */
  2364. &ANALYZE-RESUME
  2365. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LISTTIT1 B-table-Win
  2366. PROCEDURE LISTTIT1 :
  2367. /*------------------------------------------------------------------------------
  2368. Purpose:
  2369. Parameters: <none>
  2370. Notes:
  2371. ------------------------------------------------------------------------------*/
  2372. IF VSort = 2 THEN DO:
  2373. CASE VPreis:
  2374. WHEN 1 THEN Tittxt = TRIM(SUBSTRING(Helptext[12],01,35)).
  2375. WHEN 2 THEN Tittxt = TRIM(SUBSTRING(Helptext[12],36,35)).
  2376. WHEN 3 THEN Tittxt = TRIM(SUBSTRING(Helptext[13],01,35)).
  2377. WHEN 4 THEN Tittxt = TRIM(SUBSTRING(Helptext[13],36,35)).
  2378. END CASE.
  2379. IF NOT VGebinde THEN DO:
  2380. Helptext[04] = SUBSTRING(Helptext[04],01,43).
  2381. END.
  2382. SUBSTRING(Helptext[01],02) = STRING(F_Zeichen,'999').
  2383. END.
  2384. IF VSort = 3 THEN DO:
  2385. CASE VPreis:
  2386. WHEN 1 THEN Tittxt = TRIM(SUBSTRING(Helptext[12],01,35)).
  2387. WHEN 2 THEN Tittxt = TRIM(SUBSTRING(Helptext[12],36,35)).
  2388. WHEN 3 THEN Tittxt = TRIM(SUBSTRING(Helptext[13],01,35)).
  2389. WHEN 4 THEN Tittxt = TRIM(SUBSTRING(Helptext[13],36,35)).
  2390. END CASE.
  2391. IF VDatum <> ? THEN DO:
  2392. Tittxt = Tittxt + ' Bestand per: ' + STRING(VDatum,'99.99.9999').
  2393. END.
  2394. END.
  2395. { v8/listtit1.i }
  2396. END PROCEDURE.
  2397. /* _UIB-CODE-BLOCK-END */
  2398. &ANALYZE-RESUME
  2399. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LISTTIT2 B-table-Win
  2400. PROCEDURE LISTTIT2 :
  2401. /*------------------------------------------------------------------------------
  2402. Purpose:
  2403. Parameters: <none>
  2404. Notes:
  2405. ------------------------------------------------------------------------------*/
  2406. { v8/listtit2.i }
  2407. END PROCEDURE.
  2408. /* _UIB-CODE-BLOCK-END */
  2409. &ANALYZE-RESUME
  2410. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-display-fields B-table-Win
  2411. PROCEDURE local-display-fields :
  2412. /*------------------------------------------------------------------------------
  2413. Purpose: Override standard ADM method
  2414. Notes:
  2415. ------------------------------------------------------------------------------*/
  2416. RUN dispatch IN THIS-PROCEDURE ( INPUT 'display-fields':U ) .
  2417. DISPLAY {&List-1} WITH FRAME {&FRAME-NAME}.
  2418. IF ARecid > -1 THEN DO:
  2419. FIND Listen WHERE RECID(Listen) = ARecid NO-LOCK.
  2420. DISPLAY {&List-2} WITH FRAME {&FRAME-NAME}.
  2421. END.
  2422. ENABLE {&List-2} WITH FRAME {&FRAME-NAME}.
  2423. FIND LiBild USE-INDEX LiBild-k1
  2424. WHERE LiBild.Sprcd = GVSprcd
  2425. AND LiBild.Prog = F_Programm + STRING(F_Sort,"99")
  2426. AND LiBild.Tenr = 1 NO-LOCK.
  2427. F_Zeichen = INTEGER(SUBSTRING(LiBild.Litext,02,03)).
  2428. IF Listen.VFl[02] = TRUE THEN F_Zeichen = F_Zeichen + 20.
  2429. DISPLAY F_Zeichen WITH FRAME {&FRAME-NAME}.
  2430. IF F_Sort = 1 THEN DO WITH FRAME {&FRAME-NAME}:
  2431. Listen.ENr[01]:SENSITIVE = FALSE.
  2432. Listen.VFl[07]:SENSITIVE = TRUE .
  2433. END.
  2434. ELSE DO WITH FRAME {&FRAME-NAME}:
  2435. Listen.ENr[01]:SENSITIVE = TRUE.
  2436. Listen.VFl[07]:SENSITIVE = FALSE.
  2437. END.
  2438. IF F_Sort > 1 THEN DO WITH FRAME {&FRAME-NAME}:
  2439. VFl[02]:SENSITIVE = TRUE.
  2440. END.
  2441. ELSE DO WITH FRAME {&FRAME-NAME}:
  2442. VFl[02]:SENSITIVE = FALSE.
  2443. END.
  2444. IF F_Sort = 3 THEN DO WITH FRAME {&FRAME-NAME}:
  2445. Listen.EDa[01]:SENSITIVE = TRUE.
  2446. END.
  2447. ELSE DO WITH FRAME {&FRAME-NAME}:
  2448. Listen.EDa[01]:SENSITIVE = FALSE.
  2449. END.
  2450. DO WITH FRAME {&FRAME-NAME}:
  2451. CB_Land:SCREEN-VALUE = '0' NO-ERROR.
  2452. CB_Land:SCREEN-VALUE = Listen.ECh[01] NO-ERROR.
  2453. END.
  2454. END PROCEDURE.
  2455. /* _UIB-CODE-BLOCK-END */
  2456. &ANALYZE-RESUME
  2457. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-hide B-table-Win
  2458. PROCEDURE local-hide :
  2459. /*------------------------------------------------------------------------------
  2460. Purpose: Override standard ADM method
  2461. Notes:
  2462. ------------------------------------------------------------------------------*/
  2463. DO TRANSACTION:
  2464. FIND Listen WHERE RECID(Listen) = ARecid.
  2465. Listen.Listfl = ''.
  2466. END.
  2467. RUN dispatch IN THIS-PROCEDURE ( INPUT 'hide':U ) .
  2468. END PROCEDURE.
  2469. /* _UIB-CODE-BLOCK-END */
  2470. &ANALYZE-RESUME
  2471. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-initialize B-table-Win
  2472. PROCEDURE local-initialize :
  2473. /*------------------------------------------------------------------------------
  2474. Purpose: Override standard ADM method
  2475. Notes:
  2476. ------------------------------------------------------------------------------*/
  2477. DEF BUFFER BListen FOR Listen.
  2478. DEF VAR VListnr LIKE Listen.Listnr.
  2479. DEF VAR VRecid AS RECID.
  2480. F_USER = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR.
  2481. QOpen = FALSE.
  2482. FInit = TRUE.
  2483. FOpen = FALSE.
  2484. RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) .
  2485. RUN OPEN_XSCHRIFT.
  2486. VProgname = TRIM(F_USER) + '!' + TRIM(F_Programm).
  2487. FIND FIRST Listen USE-INDEX Listen-k1
  2488. WHERE Listen.Firma = GVFirma
  2489. AND Listen.Progname = VProgname
  2490. AND Listen.Listfl = '' NO-LOCK NO-ERROR.
  2491. REPEAT TRANSACTION:
  2492. IF NOT AVAILABLE Listen THEN DO:
  2493. FIND LAST BListen USE-INDEX Listen-k1
  2494. WHERE BListen.Firma = GVFirma NO-LOCK NO-ERROR.
  2495. IF AVAILABLE BListen THEN VListnr = BListen.Listnr + 1.
  2496. ELSE VListnr = 1.
  2497. CREATE Listen.
  2498. ASSIGN Listen.Firma = GVFirma
  2499. Listen.Listnr = VListnr
  2500. Listen.Progname = VProgname
  2501. Listen.Listfl = ''
  2502. Listen.Jahr = GVJahr
  2503. Listen.Sprcd = GVSprcd
  2504. Listen.Sort = 1
  2505. Listen.ProgWahl = 1.
  2506. END.
  2507. ARecid = RECID(Listen).
  2508. FIND LiDruck USE-INDEX LiDruck-k1
  2509. WHERE LiDruck.Firma = GVFirma
  2510. AND LiDruck.Listnr = Listen.Listnr
  2511. AND LiDruck.ProgWahl = Listen.ProgWahl NO-LOCK NO-ERROR.
  2512. IF NOT AVAILABLE LiDruck THEN DO:
  2513. CREATE LiDruck.
  2514. ASSIGN LiDruck.Firma = GVFirma
  2515. LiDruck.Listnr = Listen.Listnr
  2516. LiDruck.ProgWahl = Listen.ProgWahl
  2517. LiDruck.Listprog = TRIM(F_Programm) + STRING(Listen.ProgWahl,'99')
  2518. LiDruck.ListCopy = 1
  2519. LiDruck.Schacht = 0
  2520. LiDruck.Listlq = FALSE.
  2521. END.
  2522. BRecid = RECID(LiDruck).
  2523. FIND Listen WHERE RECID(Listen) = ARecid.
  2524. Listen.Listfl = 'A'.
  2525. RELEASE Listen.
  2526. RELEASE LiDruck.
  2527. LEAVE.
  2528. END. /* TRANSACTION */
  2529. FIND Listen WHERE RECID(Listen) = ARecid NO-LOCK.
  2530. FIND LiDruck WHERE RECID(LiDruck) = BRecid NO-LOCK.
  2531. FOpen = TRUE.
  2532. ASchname = LiDruck.ListDru.
  2533. ASchbild = LiDruck.ListBild.
  2534. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  2535. IF NUM-RESULTS('Br_Druckername':U) = ? THEN LEAVE.
  2536. IF NUM-RESULTS('Br_Druckername':U) = 0 THEN LEAVE.
  2537. FIND FIRST XSchrift WHERE XSchrift.Schname = ASchname NO-LOCK NO-ERROR.
  2538. IF AVAILABLE XSchrift THEN VRecid = RECID(XSchrift).
  2539. ELSE DO:
  2540. GET FIRST Br_Druckername.
  2541. VRecid = RECID(XSchrift).
  2542. END.
  2543. REPOSITION Br_Druckername TO RECID(VRecid).
  2544. ASchname = XSchrift.Schname.
  2545. RUN dispatch IN THIS-PROCEDURE ('open-query':U).
  2546. IF NUM-RESULTS('Br_Schriftbild':U) = ? THEN LEAVE.
  2547. IF NUM-RESULTS('Br_Schriftbild':U) = 0 THEN LEAVE.
  2548. FIND FIRST BSchrift WHERE BSchrift.Schname = ASchname
  2549. AND BSchrift.Schbild = ASchbild NO-LOCK NO-ERROR.
  2550. IF AVAILABLE BSchrift THEN VRecid = RECID(BSchrift).
  2551. ELSE DO:
  2552. GET FIRST Br_Schriftbild.
  2553. VRecid = RECID(Schrift).
  2554. END.
  2555. REPOSITION Br_Schriftbild TO RECID(VRecid).
  2556. ASchbild = Schrift.Schbild.
  2557. LEAVE.
  2558. END.
  2559. RUN LIBILD.
  2560. F_Zeichen = Breite.
  2561. F_Sort = Listen.Sort.
  2562. F_TZZ = LiDruck.Listtzz.
  2563. F_KZZ = LiDruck.Listkzz.
  2564. F_FZZ = LiDruck.Listfzz.
  2565. F_LQ = LiDruck.Listlq.
  2566. F_KOPIE = LiDruck.ListCopy.
  2567. F_SCHACHT = LiDruck.Schacht.
  2568. OBreite = Breite.
  2569. DO WITH FRAME {&FRAME-NAME}:
  2570. IF Aktive THEN DO:
  2571. iLager = DYNAMIC-FUNCTION('getBenLager':U).
  2572. RUN COMBO_LAGER ( CB_Lager:HANDLE ) NO-ERROR.
  2573. RUN COMBO_LAND ( INPUT CB_Land:HANDLE ) NO-ERROR.
  2574. CB_Land :ADD-LAST('Alle' , '0' ) NO-ERROR.
  2575. CB_Lager:SCREEN-VALUE = STRING(iLager,'999999') NO-ERROR.
  2576. END.
  2577. IF F_Sort = 1 THEN ENr[02] :SENSITIVE = TRUE .
  2578. ELSE ENr[02] :SENSITIVE = FALSE.
  2579. IF ENr[02] = 0 THEN Btn_Start:SENSITIVE = TRUE .
  2580. ELSE Btn_Start:SENSITIVE = FALSE.
  2581. END.
  2582. RUN dispatch IN THIS-PROCEDURE ('display-fields':U).
  2583. END PROCEDURE.
  2584. /* _UIB-CODE-BLOCK-END */
  2585. &ANALYZE-RESUME
  2586. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-open-query B-table-Win
  2587. PROCEDURE local-open-query :
  2588. /*------------------------------------------------------------------------------
  2589. Purpose: Override standard ADM method
  2590. Notes:
  2591. ------------------------------------------------------------------------------*/
  2592. IF FOpen = FALSE THEN RETURN NO-APPLY.
  2593. DO WITH FRAME {&FRAME-NAME}:
  2594. IF QOpen = TRUE THEN DO:
  2595. CLOSE QUERY Br_Schriftbild.
  2596. END.
  2597. QOpen = FALSE.
  2598. OPEN QUERY Br_Schriftbild
  2599. FOR EACH Schrift USE-INDEX Schrift-k1
  2600. WHERE Schrift.Schname = ASchname NO-LOCK.
  2601. Br_Schriftbild:SET-REPOSITIONED-ROW(6, "ALWAYS").
  2602. QOpen = TRUE.
  2603. END.
  2604. END PROCEDURE.
  2605. /* _UIB-CODE-BLOCK-END */
  2606. &ANALYZE-RESUME
  2607. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-row-changed B-table-Win
  2608. PROCEDURE local-row-changed :
  2609. /*------------------------------------------------------------------------------
  2610. Purpose: Override standard ADM method
  2611. Notes:
  2612. ------------------------------------------------------------------------------*/
  2613. RUN dispatch IN THIS-PROCEDURE ( INPUT 'row-changed':U ) .
  2614. OPEN QUERY Br_Schriftbild
  2615. FOR EACH Schrift WHERE Schrift.Schname = XSchrift.Schname NO-LOCK.
  2616. IF AVAILABLE LiDruck THEN DO:
  2617. FIND BSchrift WHERE BSchrift.Schname = LiDruck.ListDru
  2618. AND BSchrift.Schbild = LiDruck.ListBild NO-LOCK NO-ERROR.
  2619. IF AVAILABLE BSchrift THEN DO:
  2620. REPOSITION Br_Schriftbild TO RECID RECID(BSchrift) NO-ERROR.
  2621. END.
  2622. END.
  2623. APPLY 'VALUE-CHANGED' TO BROWSE Br_Schriftbild.
  2624. END PROCEDURE.
  2625. /* _UIB-CODE-BLOCK-END */
  2626. &ANALYZE-RESUME
  2627. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view B-table-Win
  2628. PROCEDURE local-view :
  2629. /*------------------------------------------------------------------------------
  2630. Purpose: Override standard ADM method
  2631. Notes:
  2632. ------------------------------------------------------------------------------*/
  2633. RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) .
  2634. IF ARecid < 0 THEN RETURN.
  2635. FIND Listen WHERE RECID(Listen) = ARecid NO-LOCK.
  2636. RUN dispatch IN THIS-PROCEDURE ('display-fields':U).
  2637. END PROCEDURE.
  2638. /* _UIB-CODE-BLOCK-END */
  2639. &ANALYZE-RESUME
  2640. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUEZEILE B-table-Win
  2641. PROCEDURE NEUEZEILE :
  2642. /*------------------------------------------------------------------------------
  2643. Purpose:
  2644. Parameters: <none>
  2645. Notes:
  2646. ------------------------------------------------------------------------------*/
  2647. VExcelZeile = VExcelZeile + 1.
  2648. CREATE TExcel.
  2649. ASSIGN TExcel.Zeile = VExcelZeile.
  2650. RETURN.
  2651. END PROCEDURE.
  2652. /* _UIB-CODE-BLOCK-END */
  2653. &ANALYZE-RESUME
  2654. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPEN_XSCHRIFT B-table-Win
  2655. PROCEDURE OPEN_XSCHRIFT :
  2656. /*------------------------------------------------------------------------------
  2657. Purpose:
  2658. Parameters: <none>
  2659. Notes:
  2660. ------------------------------------------------------------------------------*/
  2661. DO WITH FRAME {&FRAME-NAME}:
  2662. FOR EACH XSchrift:
  2663. DELETE XSchrift.
  2664. END.
  2665. AltSchname = ''.
  2666. FOR EACH Schrift NO-LOCK:
  2667. IF Schrift.Schname = AltSchname THEN NEXT.
  2668. CREATE XSchrift.
  2669. BUFFER-COPY Schrift TO XSchrift.
  2670. AltSchname = Schrift.Schname.
  2671. END.
  2672. OPEN QUERY Br_Druckername
  2673. FOR EACH XSchrift NO-LOCK.
  2674. Br_Druckername:SET-REPOSITIONED-ROW(6, "ALWAYS").
  2675. END.
  2676. END PROCEDURE.
  2677. /* _UIB-CODE-BLOCK-END */
  2678. &ANALYZE-RESUME
  2679. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records B-table-Win _ADM-SEND-RECORDS
  2680. PROCEDURE send-records :
  2681. /*------------------------------------------------------------------------------
  2682. Purpose: Send record ROWID's for all tables used by
  2683. this file.
  2684. Parameters: see template/snd-head.i
  2685. ------------------------------------------------------------------------------*/
  2686. /* Define variables needed by this internal procedure. */
  2687. {src/adm/template/snd-head.i}
  2688. /* For each requested table, put it's ROWID in the output list. */
  2689. {src/adm/template/snd-list.i "Schrift"}
  2690. {src/adm/template/snd-list.i "XSchrift"}
  2691. /* Deal with any unexpected table requests before closing. */
  2692. {src/adm/template/snd-end.i}
  2693. END PROCEDURE.
  2694. /* _UIB-CODE-BLOCK-END */
  2695. &ANALYZE-RESUME
  2696. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SORT01 B-table-Win
  2697. PROCEDURE SORT01 :
  2698. /*------------------------------------------------------------------------------
  2699. Purpose:
  2700. Parameters: <none>
  2701. Notes:
  2702. ------------------------------------------------------------------------------*/
  2703. DO PRESELECT
  2704. EACH TArtst NO-LOCK
  2705. BREAK BY TArtst.Wg_Grp
  2706. BY TArtst.Prod_Grp
  2707. BY TArtst.Art_Grp
  2708. BY TArtst.LagOrt
  2709. BY TArtst.Bez
  2710. BY TArtst.Artnr
  2711. BY TArtst.Inhalt
  2712. BY TArtst.Jahr :
  2713. DO VCopy = 1 TO LiDruck.ListCopy:
  2714. LNeu = TRUE.
  2715. VZeile = "".
  2716. VTotal0 = 0.
  2717. VTotal1 = 0.
  2718. XWgr = ''.
  2719. XPgr = ''.
  2720. XAgr = ''.
  2721. IF BDrucker.Emul <> "TERMINAL" THEN DO:
  2722. OUTPUT TO VALUE(cDateiName) PAGED PAGE-SIZE 150.
  2723. DOpen = TRUE.
  2724. END.
  2725. ELSE DO:
  2726. FOR EACH XTermOut:
  2727. DELETE XTermOut.
  2728. END.
  2729. DOpen = FALSE.
  2730. VZNr = 0.
  2731. VLine = 0.
  2732. VSeite = 0.
  2733. END.
  2734. REPEAT:
  2735. IF LNeu THEN FIND FIRST TArtst.
  2736. ELSE FIND NEXT TArtst.
  2737. IF NOT AVAILABLE TArtst THEN LEAVE.
  2738. LNeu = FALSE.
  2739. IF FIRST-OF ( TArtst.Wg_Grp ) THEN DO:
  2740. FIND WarenGrp USE-INDEX WarenGrp-k1
  2741. WHERE WarenGrp.Firma = GVFirma
  2742. AND WarenGrp.Wgr = TArtst.Wg_Grp NO-LOCK NO-ERROR.
  2743. IF AVAILABLE WarenGrp THEN XWgr = WarenGrp.Bez1.
  2744. ELSE XWgr = FILL('?', 20).
  2745. END.
  2746. IF FIRST-OF ( TArtst.Prod_Grp ) THEN DO:
  2747. FIND ProdGrp USE-INDEX ProdGrp-k1
  2748. WHERE ProdGrp.Firma = GVFirma
  2749. AND ProdGrp.Wgr = TArtst.Wg_Grp
  2750. AND ProdGrp.Prod_Grp = TArtst.Prod_Grp NO-LOCK NO-ERROR.
  2751. IF AVAILABLE ProdGrp THEN XPgr = ProdGrp.Bez1.
  2752. ELSE XPgr = FILL('?', 20).
  2753. END.
  2754. IF FIRST-OF ( TArtst.Art_Grp ) THEN DO:
  2755. FIND ArtikGrp USE-INDEX ArtikGrp-k1
  2756. WHERE ArtikGrp.Firma = GVFirma
  2757. AND ArtikGrp.Wgr = TArtst.Wg_Grp
  2758. AND ArtikGrp.Prod_Grp = TArtst.Prod_Grp
  2759. AND ArtikGrp.Art_Grp = TArtst.Art_Grp NO-LOCK NO-ERROR.
  2760. IF AVAILABLE ArtikGrp THEN XAgr = ArtikGrp.Bez1.
  2761. ELSE XAgr = FILL('?', 20).
  2762. END.
  2763. RUN LISTTIT2.
  2764. IF XWgr <> '' AND XWgr BEGINS '-' THEN XWgr = ''.
  2765. IF XPgr <> '' AND XPgr BEGINS '-' THEN XPgr = ''.
  2766. IF XAgr <> '' AND XAgr BEGINS '-' THEN XAgr = ''.
  2767. IF XWgr <> '' THEN DO:
  2768. VZeile = XWgr.
  2769. { v8/putzeilf.i "1" }
  2770. END.
  2771. IF XPgr <> '' THEN DO:
  2772. VZeile = XPgr.
  2773. { v8/putzeilf.i "1" }
  2774. END.
  2775. IF XAgr <> '' THEN DO:
  2776. VZeile = XAgr.
  2777. { v8/putzeilf.i "1" }
  2778. END.
  2779. XWgr = ''.
  2780. XPGr = ''.
  2781. XAgr = ''.
  2782. VGebInh = 0.
  2783. VGebText = '??????????'.
  2784. FIND Artbez USE-INDEX Artbez-k1
  2785. WHERE Artbez.Firma = TArtst.Firma
  2786. AND Artbez.Artnr = TArtst.Artnr
  2787. AND Artbez.Inhalt = TArtst.Inhalt
  2788. AND Artbez.Jahr = TArtst.Jahr
  2789. AND Artbez.Sprcd = Sprcd NO-LOCK NO-ERROR.
  2790. IF NOT AVAILABLE Artbez THEN DO:
  2791. FIND FIRST Artbez USE-INDEX Artbez-k1
  2792. WHERE Artbez.Firma = TArtst.Firma
  2793. AND Artbez.Artnr = TArtst.Artnr
  2794. AND Artbez.Inhalt = TArtst.Inhalt
  2795. AND Artbez.Jahr = TArtst.Jahr NO-LOCK NO-ERROR.
  2796. END.
  2797. FIND KGebinde USE-INDEX KGebinde-k1
  2798. WHERE KGebinde.Firma = GVFirma
  2799. AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR.
  2800. IF AVAILABLE KGebinde THEN DO:
  2801. VGebInh = KGebinde.Inhalt.
  2802. VGebText = KGebinde.KBez.
  2803. END.
  2804. SUBSTRING(VZeile,001) = STRING(TArtst.Artnr ,'999999').
  2805. SUBSTRING(VZeile,008) = STRING(TArtst.Inhalt ,'9999').
  2806. IF AVAILABLE ArtBez THEN SUBSTRING(VZeile,014) = STRING(ArtBez.Bez1,'x(30)').
  2807. ELSE SUBSTRING(VZeile,014) = STRING(TArtst.Bez ,'x(30)').
  2808. SUBSTRING(VZeile,046) = STRING(TArtst.Jahr ,'zzzz').
  2809. IF TArtst.Alk_Gehalt <> 0 THEN
  2810. SUBSTRING(VZeile,052) = STRING(TArtst.Alk_Gehalt ,'z9.99').
  2811. SUBSTRING(VZeile,059) = STRING(VGebInh ,'zzzz').
  2812. SUBSTRING(VZeile,065) = STRING(VGebText ,'x(10)').
  2813. SUBSTRING(VZeile,077) = STRING(TArtst.Bestand ,'zzz,zz9-').
  2814. SUBSTRING(VZeile,090) = '_____ _____ _____'.
  2815. { v8/putzeile.i "1" }
  2816. IF VZweite THEN DO:
  2817. IF AVAILABLE ArtBez THEN DO:
  2818. IF Artbez.Bez2 <> '' AND
  2819. Artbez.Bez2_Druck THEN DO:
  2820. SUBSTRING(VZeile,014) = STRING(Artbez.Bez2 ,'x(30)').
  2821. { v8/putzeile.i "1" }
  2822. END.
  2823. END.
  2824. END.
  2825. IF LAST-OF ( TArtst.Wg_Grp ) OR
  2826. LAST-OF ( TArtst.Prod_Grp) OR
  2827. LAST-OF ( TArtst.Art_Grp ) THEN DO:
  2828. { v8/putzeile.i "1" }
  2829. END.
  2830. END. /* REPEAT */
  2831. TiDruck = TRUE.
  2832. IF DOpen = TRUE THEN DO:
  2833. OUTPUT CLOSE.
  2834. RUN DRUCKAUSGABE.
  2835. OS-DELETE VALUE(cDateiName) NO-ERROR.
  2836. END.
  2837. ELSE DO:
  2838. RUN "v8/d-liste.w" ( INPUT Helptext[02] ).
  2839. END.
  2840. END. /* Kopien */
  2841. END. /* DO PRESELECT */
  2842. END PROCEDURE.
  2843. /* _UIB-CODE-BLOCK-END */
  2844. &ANALYZE-RESUME
  2845. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SORT02 B-table-Win
  2846. PROCEDURE SORT02 :
  2847. /*------------------------------------------------------------------------------
  2848. Purpose:
  2849. Parameters: <none>
  2850. Notes:
  2851. ------------------------------------------------------------------------------*/
  2852. DO PRESELECT
  2853. EACH TArtst NO-LOCK
  2854. BREAK BY TArtst.Wg_Grp
  2855. BY TArtst.Prod_Grp
  2856. BY TArtst.Art_Grp
  2857. BY TArtst.Artnr
  2858. BY TArtst.Inhalt
  2859. BY TArtst.Jahr :
  2860. DO VCopy = 1 TO LiDruck.ListCopy:
  2861. LNeu = TRUE.
  2862. VZeile = "".
  2863. VTotal0 = 0.
  2864. VTotal1 = 0.
  2865. VTotal2 = 0.
  2866. VTotal3 = 0.
  2867. VTotal4 = 0.
  2868. VTotal5 = 0.
  2869. XWgr = ''.
  2870. XPgr = ''.
  2871. XAgr = ''.
  2872. IF VDatum = ? THEN VDatum = TODAY.
  2873. VJJ = YEAR (VDatum).
  2874. VMM = MONTH(VDatum).
  2875. IF VMM = 1 THEN DO:
  2876. VMM = 12.
  2877. VJJ = VJJ - 1.
  2878. END.
  2879. ELSE DO:
  2880. VMM = VMM - 1.
  2881. END.
  2882. IF BDrucker.Emul <> "TERMINAL" THEN DO:
  2883. OUTPUT TO VALUE(cDateiName) PAGED PAGE-SIZE 150.
  2884. DOpen = TRUE.
  2885. END.
  2886. ELSE DO:
  2887. FOR EACH XTermOut:
  2888. DELETE XTermOut.
  2889. END.
  2890. DOpen = FALSE.
  2891. VZNr = 0.
  2892. VLine = 0.
  2893. VSeite = 0.
  2894. END.
  2895. REPEAT:
  2896. IF LNeu THEN FIND FIRST TArtst NO-ERROR.
  2897. ELSE FIND NEXT TArtst NO-ERROR.
  2898. IF NOT AVAILABLE TArtst THEN LEAVE.
  2899. LNeu = FALSE.
  2900. RUN LISTTIT2.
  2901. IF FIRST-OF ( TArtst.Wg_Grp ) THEN DO:
  2902. FIND WarenGrp USE-INDEX WarenGrp-k1
  2903. WHERE WarenGrp.Firma = GVFirma
  2904. AND WarenGrp.Wgr = TArtst.Wg_Grp NO-LOCK NO-ERROR.
  2905. IF AVAILABLE WarenGrp THEN XWgr = WarenGrp.Bez1.
  2906. ELSE XWgr = FILL('?', 20).
  2907. IF XWgr <> '' AND
  2908. NOT XWgr BEGINS '-' THEN DO:
  2909. VZeile = XWgr.
  2910. { v8/putzeilf.i "1" }
  2911. END.
  2912. END.
  2913. IF FIRST-OF ( TArtst.Prod_Grp ) THEN DO:
  2914. FIND ProdGrp USE-INDEX ProdGrp-k1
  2915. WHERE ProdGrp.Firma = GVFirma
  2916. AND ProdGrp.Wgr = TArtst.Wg_Grp
  2917. AND ProdGrp.Prod_Grp = TArtst.Prod_Grp NO-LOCK NO-ERROR.
  2918. IF AVAILABLE ProdGrp THEN XPgr = ProdGrp.Bez1.
  2919. ELSE XPgr = FILL('?', 20).
  2920. IF XPgr <> '' AND
  2921. NOT XPgr BEGINS '-' THEN DO:
  2922. VZeile = XPgr.
  2923. { v8/putzeilf.i "1" }
  2924. END.
  2925. END.
  2926. IF FIRST-OF ( TArtst.Art_Grp ) THEN DO:
  2927. FIND ArtikGrp USE-INDEX ArtikGrp-k1
  2928. WHERE ArtikGrp.Firma = GVFirma
  2929. AND ArtikGrp.Wgr = TArtst.Wg_Grp
  2930. AND ArtikGrp.Prod_Grp = TArtst.Prod_Grp
  2931. AND ArtikGrp.Art_Grp = TArtst.Art_Grp NO-LOCK NO-ERROR.
  2932. IF AVAILABLE ArtikGrp THEN XAgr = ArtikGrp.Bez1.
  2933. ELSE XAgr = FILL('?', 20).
  2934. IF XAgr <> '' AND
  2935. NOT XAgr BEGINS '-' THEN DO:
  2936. VZeile = XAgr.
  2937. { v8/putzeilf.i "1" }
  2938. END.
  2939. END.
  2940. IF XWgr <> '' AND XWgr BEGINS '-' THEN XWgr = ''.
  2941. IF XPgr <> '' AND XPgr BEGINS '-' THEN XPgr = ''.
  2942. IF XAgr <> '' AND XAgr BEGINS '-' THEN XAgr = ''.
  2943. VKGebPr = 0.
  2944. VVGebPr = 0.
  2945. VKGebWe = 0.
  2946. VVGebWe = 0.
  2947. VGebInh = 0.
  2948. VGebText = '?????????'.
  2949. FIND KGebinde USE-INDEX KGebinde-k1
  2950. WHERE KGebinde.Firma = GVFirma
  2951. AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR.
  2952. FIND VGebinde USE-INDEX VGebinde-k1
  2953. WHERE VGebinde.Firma = GVFirma
  2954. AND VGebinde.Geb_Cd = TArtst.VGeb_Cd NO-LOCK NO-ERROR.
  2955. IF AVAILABLE KGebinde THEN DO:
  2956. VGebInh = KGebinde.Inhalt.
  2957. VGebText = KGebinde.KBez.
  2958. END.
  2959. IF VGebinde AND
  2960. VSort > 1 THEN DO:
  2961. VKGebPr = KGebinde.Depot.
  2962. VVGebPr = VGebinde.Depot.
  2963. IF KGebinde.Geb_Kto <> '' THEN DO:
  2964. FIND GebKonto USE-INDEX GebKonto-k1
  2965. WHERE GebKonto.Geb_Cd = KGebinde.Geb_Kto NO-LOCK NO-ERROR.
  2966. IF AVAILABLE GebKonto THEN VKGebPr = GebKonto.Depot.
  2967. END.
  2968. IF VGebinde.Geb_Kto <> '' THEN DO:
  2969. FIND GebKonto USE-INDEX GebKonto-k1
  2970. WHERE GebKonto.Geb_Cd = VGebinde.Geb_Kto NO-LOCK NO-ERROR.
  2971. IF AVAILABLE GebKonto THEN VVGebPr = GebKonto.Depot.
  2972. END.
  2973. VKGebWe = TArtst.KGeb_Wert * VKGebPr.
  2974. VVGebWe = TArtst.VGeb_Wert * VVGebPr.
  2975. END.
  2976. FIND ArtUms USE-INDEX ArtUms-k1
  2977. WHERE ArtUms.Firma = TArtst.Firma
  2978. AND ArtUms.Jahr = VJJ
  2979. AND ArtUms.Artnr = TArtst.Artnr
  2980. AND ArtUms.Inhalt = TArtst.Inhalt
  2981. AND ArtUms.Jahrg = TArtst.Jahr NO-LOCK NO-ERROR.
  2982. VBetrag = TArtst.Preis.
  2983. VVorMonat = 0.
  2984. IF AVAILABLE ArtUms THEN DO:
  2985. VVorMonat = ArtUms.Me_Mon[VMM].
  2986. END.
  2987. VInvneu = TArtst.Bestand.
  2988. VBestand = TArtst.Bestand.
  2989. VVerlust = TArtst.Verlust.
  2990. VInvwert = VInvneu * VBetrag.
  2991. VLagwert = VBestand * VBetrag.
  2992. SUBSTRING(VZeile,001) = STRING(TArtst.Artnr ,'999999').
  2993. SUBSTRING(VZeile,008) = STRING(TArtst.Inhalt ,'9999').
  2994. SUBSTRING(VZeile,014) = STRING(TArtst.Bez1 ,'x(30)').
  2995. SUBSTRING(VZeile,046) = STRING(TArtst.Jahr ,'zzzz').
  2996. IF TArtst.Alk_Gehalt <> 0 THEN
  2997. SUBSTRING(VZeile,052) = STRING(TArtst.Alk_Gehalt ,'z9.99').
  2998. SUBSTRING(VZeile,059) = STRING(VGebInh ,'zzzz').
  2999. SUBSTRING(VZeile,065) = STRING(VGebText ,'x(10)').
  3000. IF VSort = 2 THEN DO:
  3001. SUBSTRING(VZeile,076) = STRING(VInvneu ,'zzzz,zz9-').
  3002. SUBSTRING(VZeile,087) = STRING(VVerlust ,'zzz,zz9-').
  3003. SUBSTRING(VZeile,096) = STRING(VBetrag ,'zzz9.999').
  3004. SUBSTRING(VZeile,104) = STRING(VInvwert ,'zz,zzz,zz9-').
  3005. IF VGebinde THEN DO:
  3006. SUBSTRING(VZeile,115) = STRING(VKGebWe ,'z,zzz,zz9-').
  3007. SUBSTRING(VZeile,125) = STRING(VVGebWe ,'z,zzz,zz9-').
  3008. END.
  3009. END.
  3010. IF VSort = 3 THEN DO:
  3011. SUBSTRING(VZeile,076) = STRING(VBestand ,'zzzz,zz9-').
  3012. SUBSTRING(VZeile,086) = STRING(VBetrag ,'zzz9.999').
  3013. SUBSTRING(VZeile,096) = STRING(VLagwert ,'zz,zzz,zz9-').
  3014. SUBSTRING(VZeile,107) = STRING(VVorMonat ,'zzzz,zz9-').
  3015. IF VGebinde THEN DO:
  3016. SUBSTRING(VZeile,116) = STRING(VKGebWe ,'z,zzz,zz9-').
  3017. SUBSTRING(VZeile,126) = STRING(VVGebWe ,'z,zzz,zz9-').
  3018. END.
  3019. END.
  3020. VTotal0[01] = VTotal0[01] + VInvneu.
  3021. VTotal0[02] = VTotal0[02] + VVerlust.
  3022. VTotal0[03] = VTotal0[03] + VInvwert.
  3023. VTotal0[04] = VTotal0[04] + VBestand.
  3024. VTotal0[05] = VTotal0[05] + VLagwert.
  3025. VTotal0[06] = VTotal0[06] + VKGebWe .
  3026. VTotal0[07] = VTotal0[07] + VVGebWe .
  3027. VTotal1[01] = VTotal1[01] + VInvneu.
  3028. VTotal1[02] = VTotal1[02] + VVerlust.
  3029. VTotal1[03] = VTotal1[03] + VInvwert.
  3030. VTotal1[04] = VTotal1[04] + VBestand.
  3031. VTotal1[05] = VTotal1[05] + VLagwert.
  3032. VTotal1[06] = VTotal1[06] + VKGebWe .
  3033. VTotal1[07] = VTotal1[07] + VVGebWe .
  3034. VTotal2[01] = VTotal2[01] + VInvneu.
  3035. VTotal2[02] = VTotal2[02] + VVerlust.
  3036. VTotal2[03] = VTotal2[03] + VInvwert.
  3037. VTotal2[04] = VTotal2[04] + VBestand.
  3038. VTotal2[05] = VTotal2[05] + VLagwert.
  3039. VTotal2[06] = VTotal2[06] + VKGebWe .
  3040. VTotal2[07] = VTotal2[07] + VVGebWe .
  3041. VTotal3[01] = VTotal3[01] + VInvneu.
  3042. VTotal3[02] = VTotal3[02] + VVerlust.
  3043. VTotal3[03] = VTotal3[03] + VInvwert.
  3044. VTotal3[04] = VTotal3[04] + VBestand.
  3045. VTotal3[05] = VTotal3[05] + VLagwert.
  3046. VTotal3[06] = VTotal3[06] + VKGebWe .
  3047. VTotal3[07] = VTotal3[07] + VVGebWe .
  3048. { v8/putzeile.i "1" }
  3049. IF VZweite THEN DO:
  3050. IF TArtst.Bez2 <> '' THEN DO:
  3051. SUBSTRING(VZeile,014) = STRING(Artbez.Bez2 ,'x(30)').
  3052. { v8/putzeile.i "1" }
  3053. END.
  3054. END.
  3055. IF LAST-OF ( TArtst.Art_Grp ) THEN DO:
  3056. IF XAgr <> '' THEN DO:
  3057. VZeile = 'Total ' + XAgr.
  3058. IF VSort = 2 THEN DO:
  3059. SUBSTRING(VZeile,077) = STRING(VTotal3[01] ,'zzz,zz9-').
  3060. SUBSTRING(VZeile,087) = STRING(VTotal3[02] ,'zzz,zz9-').
  3061. SUBSTRING(VZeile,104) = STRING(VTotal3[03] ,'zz,zzz,zz9-').
  3062. IF VGebinde THEN DO:
  3063. SUBSTRING(VZeile,115) = STRING(VTotal3[06] ,'z,zzz,zz9-').
  3064. SUBSTRING(VZeile,125) = STRING(VTotal3[07] ,'z,zzz,zz9-').
  3065. END.
  3066. END.
  3067. IF VSort = 3 THEN DO:
  3068. SUBSTRING(VZeile,077) = STRING(VTotal3[04] ,'zzz,zz9-').
  3069. SUBSTRING(VZeile,096) = STRING(VTotal3[05] ,'zz,zzz,zz9-').
  3070. IF VGebinde THEN DO:
  3071. SUBSTRING(VZeile,116) = STRING(VTotal3[06] ,'z,zzz,zz9-').
  3072. SUBSTRING(VZeile,126) = STRING(VTotal3[07] ,'z,zzz,zz9-').
  3073. END.
  3074. END.
  3075. { v8/putzeilf.i "1" }
  3076. END.
  3077. VTotal3 = 0.
  3078. END.
  3079. IF LAST-OF ( TArtst.Prod_Grp ) THEN DO:
  3080. IF XPgr <> '' THEN DO:
  3081. VZeile = 'Total ' + XPgr.
  3082. IF VSort = 2 THEN DO:
  3083. SUBSTRING(VZeile,077) = STRING(VTotal2[01] ,'zzz,zz9-').
  3084. SUBSTRING(VZeile,087) = STRING(VTotal2[02] ,'zzz,zz9-').
  3085. SUBSTRING(VZeile,104) = STRING(VTotal2[03] ,'zz,zzz,zz9-').
  3086. IF VGebinde THEN DO:
  3087. SUBSTRING(VZeile,115) = STRING(VTotal2[06] ,'z,zzz,zz9-').
  3088. SUBSTRING(VZeile,125) = STRING(VTotal2[07] ,'z,zzz,zz9-').
  3089. END.
  3090. END.
  3091. IF VSort = 3 THEN DO:
  3092. SUBSTRING(VZeile,077) = STRING(VTotal2[04] ,'zzz,zz9-').
  3093. SUBSTRING(VZeile,096) = STRING(VTotal2[05] ,'zz,zzz,zz9-').
  3094. IF VGebinde THEN DO:
  3095. SUBSTRING(VZeile,116) = STRING(VTotal2[06] ,'z,zzz,zz9-').
  3096. SUBSTRING(VZeile,126) = STRING(VTotal2[07] ,'z,zzz,zz9-').
  3097. END.
  3098. END.
  3099. { v8/putzeilf.i "1" }
  3100. END.
  3101. VTotal2 = 0.
  3102. END.
  3103. IF LAST-OF ( TArtst.Wg_Grp ) THEN DO:
  3104. IF XWgr <> '' THEN DO:
  3105. VZeile = 'Total ' + XWgr.
  3106. IF VSort = 2 THEN DO:
  3107. SUBSTRING(VZeile,077) = STRING(VTotal1[01] ,'zzz,zz9-').
  3108. SUBSTRING(VZeile,087) = STRING(VTotal1[02] ,'zzz,zz9-').
  3109. SUBSTRING(VZeile,104) = STRING(VTotal1[03] ,'zz,zzz,zz9-').
  3110. IF VGebinde THEN DO:
  3111. SUBSTRING(VZeile,115) = STRING(VTotal1[06] ,'z,zzz,zz9-').
  3112. SUBSTRING(VZeile,125) = STRING(VTotal1[07] ,'z,zzz,zz9-').
  3113. END.
  3114. END.
  3115. IF VSort = 3 THEN DO:
  3116. SUBSTRING(VZeile,077) = STRING(VTotal1[04] ,'zzz,zz9-').
  3117. SUBSTRING(VZeile,096) = STRING(VTotal1[05] ,'zz,zzz,zz9-').
  3118. IF VGebinde THEN DO:
  3119. SUBSTRING(VZeile,116) = STRING(VTotal1[06] ,'z,zzz,zz9-').
  3120. SUBSTRING(VZeile,126) = STRING(VTotal1[07] ,'z,zzz,zz9-').
  3121. END.
  3122. END.
  3123. { v8/putzeilf.i "1" }
  3124. END.
  3125. VTotal1 = 0.
  3126. END.
  3127. IF LAST-OF ( TArtst.Wg_Grp ) OR
  3128. LAST-OF ( TArtst.Prod_Grp) OR
  3129. LAST-OF ( TArtst.Art_Grp ) THEN DO:
  3130. { v8/putzeile.i "1" }
  3131. END.
  3132. END. /* REPEAT */
  3133. VZeile = 'Gesamttotal'.
  3134. IF VSort = 2 THEN DO:
  3135. SUBSTRING(VZeile,077) = STRING(VTotal0[01] ,'zzz,zz9-').
  3136. SUBSTRING(VZeile,087) = STRING(VTotal0[02] ,'zzz,zz9-').
  3137. SUBSTRING(VZeile,104) = STRING(VTotal0[03] ,'zz,zzz,zz9-').
  3138. IF VGebinde THEN DO:
  3139. SUBSTRING(VZeile,115) = STRING(VTotal0[06] ,'z,zzz,zz9-').
  3140. SUBSTRING(VZeile,125) = STRING(VTotal0[07] ,'z,zzz,zz9-').
  3141. END.
  3142. END.
  3143. IF VSort = 3 THEN DO:
  3144. SUBSTRING(VZeile,077) = STRING(VTotal0[04] ,'zzz,zz9-').
  3145. SUBSTRING(VZeile,096) = STRING(VTotal0[05] ,'zz,zzz,zz9-').
  3146. IF VGebinde THEN DO:
  3147. SUBSTRING(VZeile,116) = STRING(VTotal0[06] ,'z,zzz,zz9-').
  3148. SUBSTRING(VZeile,126) = STRING(VTotal0[07] ,'z,zzz,zz9-').
  3149. END.
  3150. END.
  3151. { v8/putzeilf.i "2" }
  3152. VTotal0 = 0.
  3153. TiDruck = TRUE.
  3154. IF DOpen = TRUE THEN DO:
  3155. OUTPUT CLOSE.
  3156. RUN DRUCKAUSGABE.
  3157. OS-DELETE VALUE(cDateiName) NO-ERROR.
  3158. END.
  3159. ELSE DO:
  3160. RUN "v8/d-liste.w" ( INPUT Helptext[02] ).
  3161. END.
  3162. END. /* Kopien */
  3163. END. /* DO PRESELECT */
  3164. END PROCEDURE.
  3165. /* _UIB-CODE-BLOCK-END */
  3166. &ANALYZE-RESUME
  3167. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SORT03 B-table-Win
  3168. PROCEDURE SORT03 :
  3169. /*------------------------------------------------------------------------------
  3170. Purpose:
  3171. Parameters: <none>
  3172. Notes:
  3173. ------------------------------------------------------------------------------*/
  3174. DO PRESELECT
  3175. EACH TArtst NO-LOCK
  3176. BREAK BY TArtst.cSort
  3177. BY TArtst.Inhalt
  3178. BY TArtst.Bez1
  3179. BY TArtst.Jahr :
  3180. DO VCopy = 1 TO LiDruck.ListCopy:
  3181. LNeu = TRUE.
  3182. VZeile = "".
  3183. VTotal0 = 0.
  3184. VTotal1 = 0.
  3185. XWgr = ''.
  3186. XPgr = ''.
  3187. XAgr = ''.
  3188. IF BDrucker.Emul <> "TERMINAL" THEN DO:
  3189. OUTPUT TO VALUE(cDateiName) PAGED PAGE-SIZE 150.
  3190. DOpen = TRUE.
  3191. END.
  3192. ELSE DO:
  3193. FOR EACH XTermOut:
  3194. DELETE XTermOut.
  3195. END.
  3196. DOpen = FALSE.
  3197. VZNr = 0.
  3198. VLine = 0.
  3199. VSeite = 0.
  3200. END.
  3201. REPEAT:
  3202. IF LNeu THEN FIND FIRST TArtst.
  3203. ELSE FIND NEXT TArtst.
  3204. IF NOT AVAILABLE TArtst THEN LEAVE.
  3205. LNeu = FALSE.
  3206. RUN LISTTIT2.
  3207. XWgr = ''.
  3208. XPGr = ''.
  3209. XAgr = ''.
  3210. VGebInh = 0.
  3211. VGebText = '??????????'.
  3212. FIND Artbez USE-INDEX Artbez-k1
  3213. WHERE Artbez.Firma = TArtst.Firma
  3214. AND Artbez.Artnr = TArtst.Artnr
  3215. AND Artbez.Inhalt = TArtst.Inhalt
  3216. AND Artbez.Jahr = TArtst.Jahr
  3217. AND Artbez.Sprcd = Sprcd NO-LOCK NO-ERROR.
  3218. IF NOT AVAILABLE Artbez THEN DO:
  3219. FIND FIRST Artbez USE-INDEX Artbez-k1
  3220. WHERE Artbez.Firma = TArtst.Firma
  3221. AND Artbez.Artnr = TArtst.Artnr
  3222. AND Artbez.Inhalt = TArtst.Inhalt
  3223. AND Artbez.Jahr = TArtst.Jahr NO-LOCK NO-ERROR.
  3224. END.
  3225. FIND KGebinde USE-INDEX KGebinde-k1
  3226. WHERE KGebinde.Firma = GVFirma
  3227. AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR.
  3228. IF AVAILABLE KGebinde THEN DO:
  3229. VGebInh = KGebinde.Inhalt.
  3230. VGebText = KGebinde.KBez.
  3231. END.
  3232. SUBSTRING(VZeile,001) = STRING(TArtst.Artnr ,'999999').
  3233. SUBSTRING(VZeile,008) = STRING(TArtst.Inhalt ,'9999').
  3234. IF AVAILABLE ArtBez THEN SUBSTRING(VZeile,014) = STRING(ArtBez.Bez1,'x(30)').
  3235. ELSE SUBSTRING(VZeile,014) = STRING(TArtst.Bez ,'x(30)').
  3236. SUBSTRING(VZeile,046) = STRING(TArtst.Jahr ,'zzzz').
  3237. IF TArtst.Alk_Gehalt <> 0 THEN
  3238. SUBSTRING(VZeile,052) = STRING(TArtst.Alk_Gehalt ,'z9.99').
  3239. SUBSTRING(VZeile,059) = STRING(VGebInh ,'zzzz').
  3240. SUBSTRING(VZeile,065) = STRING(VGebText ,'x(10)').
  3241. SUBSTRING(VZeile,077) = STRING(TArtst.Bestand ,'zzz,zz9-').
  3242. SUBSTRING(VZeile,090) = '_____ _____ _____'.
  3243. { v8/putzeile.i "1" }
  3244. IF VZweite THEN DO:
  3245. IF AVAILABLE ArtBez THEN DO:
  3246. IF Artbez.Bez2 <> '' AND
  3247. Artbez.Bez2_Druck THEN DO:
  3248. SUBSTRING(VZeile,014) = STRING(Artbez.Bez2 ,'x(30)').
  3249. { v8/putzeile.i "1" }
  3250. END.
  3251. END.
  3252. END.
  3253. END. /* REPEAT */
  3254. TiDruck = TRUE.
  3255. IF DOpen = TRUE THEN DO:
  3256. OUTPUT CLOSE.
  3257. RUN DRUCKAUSGABE.
  3258. OS-DELETE VALUE(cDateiName) NO-ERROR.
  3259. END.
  3260. ELSE DO:
  3261. RUN "v8/d-liste.w" ( INPUT Helptext[02] ).
  3262. END.
  3263. END. /* Kopien */
  3264. END. /* DO PRESELECT */
  3265. END PROCEDURE.
  3266. /* _UIB-CODE-BLOCK-END */
  3267. &ANALYZE-RESUME
  3268. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SORT11 B-table-Win
  3269. PROCEDURE SORT11 :
  3270. /*------------------------------------------------------------------------------
  3271. Purpose:
  3272. Parameters: <none>
  3273. Notes:
  3274. ------------------------------------------------------------------------------*/
  3275. DO PRESELECT
  3276. EACH TArtst NO-LOCK
  3277. BREAK BY TArtst.Herk_Lkz
  3278. BY TArtst.Wg_Grp
  3279. BY TArtst.Prod_Grp
  3280. BY TArtst.Art_Grp
  3281. BY TArtst.LagOrt
  3282. BY TArtst.Bez
  3283. BY TArtst.Artnr
  3284. BY TArtst.Inhalt
  3285. BY TArtst.Jahr :
  3286. DO VCopy = 1 TO LiDruck.ListCopy:
  3287. LNeu = TRUE.
  3288. VZeile = "".
  3289. VTotal0 = 0.
  3290. VTotal1 = 0.
  3291. XWgr = ''.
  3292. XPgr = ''.
  3293. XAgr = ''.
  3294. IF BDrucker.Emul <> "TERMINAL" THEN DO:
  3295. OUTPUT TO VALUE(cDateiName) PAGED PAGE-SIZE 150.
  3296. DOpen = TRUE.
  3297. END.
  3298. ELSE DO:
  3299. FOR EACH XTermOut:
  3300. DELETE XTermOut.
  3301. END.
  3302. DOpen = FALSE.
  3303. VZNr = 0.
  3304. VLine = 0.
  3305. VSeite = 0.
  3306. END.
  3307. REPEAT:
  3308. IF LNeu THEN FIND FIRST TArtst.
  3309. ELSE FIND NEXT TArtst.
  3310. IF NOT AVAILABLE TArtst THEN LEAVE.
  3311. LNeu = FALSE.
  3312. IF FIRST-OF ( TArtst.Herk_Lkz ) THEN DO:
  3313. FIND Land USE-INDEX Land-k2
  3314. WHERE Land.Lkz = TArtst.Herk_Lkz NO-LOCK NO-ERROR.
  3315. IF AVAILABLE Land THEN XLkz = Land.Bez.
  3316. ELSE XLkz = FILL('?', 20).
  3317. END.
  3318. IF FIRST-OF ( TArtst.Wg_Grp ) THEN DO:
  3319. FIND WarenGrp USE-INDEX WarenGrp-k1
  3320. WHERE WarenGrp.Firma = GVFirma
  3321. AND WarenGrp.Wgr = TArtst.Wg_Grp NO-LOCK NO-ERROR.
  3322. IF AVAILABLE WarenGrp THEN XWgr = WarenGrp.Bez1.
  3323. ELSE XWgr = FILL('?', 20).
  3324. END.
  3325. IF FIRST-OF ( TArtst.Prod_Grp ) THEN DO:
  3326. FIND ProdGrp USE-INDEX ProdGrp-k1
  3327. WHERE ProdGrp.Firma = GVFirma
  3328. AND ProdGrp.Wgr = TArtst.Wg_Grp
  3329. AND ProdGrp.Prod_Grp = TArtst.Prod_Grp NO-LOCK NO-ERROR.
  3330. IF AVAILABLE ProdGrp THEN XPgr = ProdGrp.Bez1.
  3331. ELSE XPgr = FILL('?', 20).
  3332. END.
  3333. IF FIRST-OF ( TArtst.Art_Grp ) THEN DO:
  3334. FIND ArtikGrp USE-INDEX ArtikGrp-k1
  3335. WHERE ArtikGrp.Firma = GVFirma
  3336. AND ArtikGrp.Wgr = TArtst.Wg_Grp
  3337. AND ArtikGrp.Prod_Grp = TArtst.Prod_Grp
  3338. AND ArtikGrp.Art_Grp = TArtst.Art_Grp NO-LOCK NO-ERROR.
  3339. IF AVAILABLE ArtikGrp THEN XAgr = ArtikGrp.Bez1.
  3340. ELSE XAgr = FILL('?', 20).
  3341. END.
  3342. RUN LISTTIT2.
  3343. IF XWgr <> '' AND XWgr BEGINS '-' THEN XWgr = ''.
  3344. IF XPgr <> '' AND XPgr BEGINS '-' THEN XPgr = ''.
  3345. IF XAgr <> '' AND XAgr BEGINS '-' THEN XAgr = ''.
  3346. IF XLkz <> '' THEN DO:
  3347. VZeile = XLkz.
  3348. { v8/putzeilf.i "1" }
  3349. END.
  3350. IF XWgr <> '' THEN DO:
  3351. VZeile = XWgr.
  3352. { v8/putzeilf.i "1" }
  3353. END.
  3354. IF XPgr <> '' THEN DO:
  3355. VZeile = XPgr.
  3356. { v8/putzeilf.i "1" }
  3357. END.
  3358. IF XAgr <> '' THEN DO:
  3359. VZeile = XAgr.
  3360. { v8/putzeilf.i "1" }
  3361. END.
  3362. XWgr = ''.
  3363. XPGr = ''.
  3364. XAgr = ''.
  3365. XLkz = ''.
  3366. VGebInh = 0.
  3367. VGebText = '??????????'.
  3368. FIND Artbez USE-INDEX Artbez-k1
  3369. WHERE Artbez.Firma = TArtst.Firma
  3370. AND Artbez.Artnr = TArtst.Artnr
  3371. AND Artbez.Inhalt = TArtst.Inhalt
  3372. AND Artbez.Jahr = TArtst.Jahr
  3373. AND Artbez.Sprcd = Sprcd NO-LOCK NO-ERROR.
  3374. IF NOT AVAILABLE Artbez THEN DO:
  3375. FIND FIRST Artbez USE-INDEX Artbez-k1
  3376. WHERE Artbez.Firma = TArtst.Firma
  3377. AND Artbez.Artnr = TArtst.Artnr
  3378. AND Artbez.Inhalt = TArtst.Inhalt
  3379. AND Artbez.Jahr = TArtst.Jahr NO-LOCK NO-ERROR.
  3380. END.
  3381. FIND KGebinde USE-INDEX KGebinde-k1
  3382. WHERE KGebinde.Firma = GVFirma
  3383. AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR.
  3384. IF AVAILABLE KGebinde THEN DO:
  3385. VGebInh = KGebinde.Inhalt.
  3386. VGebText = KGebinde.KBez.
  3387. END.
  3388. SUBSTRING(VZeile,001) = STRING(TArtst.Artnr ,'999999').
  3389. SUBSTRING(VZeile,008) = STRING(TArtst.Inhalt ,'9999').
  3390. IF AVAILABLE ArtBez THEN SUBSTRING(VZeile,014) = STRING(ArtBez.Bez1,'x(30)').
  3391. ELSE SUBSTRING(VZeile,014) = STRING(TArtst.Bez ,'x(30)').
  3392. SUBSTRING(VZeile,046) = STRING(TArtst.Jahr ,'zzzz').
  3393. IF TArtst.Alk_Gehalt <> 0 THEN
  3394. SUBSTRING(VZeile,052) = STRING(TArtst.Alk_Gehalt ,'z9.99').
  3395. SUBSTRING(VZeile,059) = STRING(VGebInh ,'zzzz').
  3396. SUBSTRING(VZeile,065) = STRING(VGebText ,'x(10)').
  3397. SUBSTRING(VZeile,077) = STRING(TArtst.Bestand ,'zzz,zz9-').
  3398. SUBSTRING(VZeile,090) = '_____ _____ _____'.
  3399. { v8/putzeile.i "1" }
  3400. IF VZweite THEN DO:
  3401. IF AVAILABLE ArtBez THEN DO:
  3402. IF Artbez.Bez2 <> '' AND
  3403. Artbez.Bez2_Druck THEN DO:
  3404. SUBSTRING(VZeile,014) = STRING(Artbez.Bez2 ,'x(30)').
  3405. { v8/putzeile.i "1" }
  3406. END.
  3407. END.
  3408. END.
  3409. IF LAST-OF ( TArtst.Herk_Lkz) OR
  3410. LAST-OF ( TArtst.Wg_Grp ) OR
  3411. LAST-OF ( TArtst.Prod_Grp) OR
  3412. LAST-OF ( TArtst.Art_Grp ) THEN DO:
  3413. { v8/putzeile.i "1" }
  3414. END.
  3415. END. /* REPEAT */
  3416. TiDruck = TRUE.
  3417. IF DOpen = TRUE THEN DO:
  3418. OUTPUT CLOSE.
  3419. RUN DRUCKAUSGABE.
  3420. OS-DELETE VALUE(cDateiName) NO-ERROR.
  3421. END.
  3422. ELSE DO:
  3423. RUN "v8/d-liste.w" ( INPUT Helptext[02] ).
  3424. END.
  3425. END. /* Kopien */
  3426. END. /* DO PRESELECT */
  3427. END PROCEDURE.
  3428. /* _UIB-CODE-BLOCK-END */
  3429. &ANALYZE-RESUME
  3430. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SORT12 B-table-Win
  3431. PROCEDURE SORT12 :
  3432. /*------------------------------------------------------------------------------
  3433. Purpose:
  3434. Parameters: <none>
  3435. Notes:
  3436. ------------------------------------------------------------------------------*/
  3437. DO PRESELECT
  3438. EACH TArtst NO-LOCK
  3439. BREAK BY TArtst.Herk_Lkz
  3440. BY TArtst.Wg_Grp
  3441. BY TArtst.Prod_Grp
  3442. BY TArtst.Art_Grp
  3443. BY TArtst.Artnr
  3444. BY TArtst.Inhalt
  3445. BY TArtst.Jahr :
  3446. DO VCopy = 1 TO LiDruck.ListCopy:
  3447. LNeu = TRUE.
  3448. VZeile = "".
  3449. VTotal0 = 0.
  3450. VTotal1 = 0.
  3451. VTotal2 = 0.
  3452. VTotal3 = 0.
  3453. VTotal4 = 0.
  3454. VTotal5 = 0.
  3455. XWgr = ''.
  3456. XPgr = ''.
  3457. XAgr = ''.
  3458. IF VDatum = ? THEN VDatum = TODAY.
  3459. VJJ = YEAR (VDatum).
  3460. VMM = MONTH(VDatum).
  3461. IF VMM = 1 THEN DO:
  3462. VMM = 12.
  3463. VJJ = VJJ - 1.
  3464. END.
  3465. ELSE DO:
  3466. VMM = VMM - 1.
  3467. END.
  3468. IF BDrucker.Emul <> "TERMINAL" THEN DO:
  3469. OUTPUT TO VALUE(cDateiName) PAGED PAGE-SIZE 150.
  3470. DOpen = TRUE.
  3471. END.
  3472. ELSE DO:
  3473. FOR EACH XTermOut:
  3474. DELETE XTermOut.
  3475. END.
  3476. DOpen = FALSE.
  3477. VZNr = 0.
  3478. VLine = 0.
  3479. VSeite = 0.
  3480. END.
  3481. REPEAT:
  3482. IF LNeu THEN FIND FIRST TArtst NO-ERROR.
  3483. ELSE FIND NEXT TArtst NO-ERROR.
  3484. IF NOT AVAILABLE TArtst THEN LEAVE.
  3485. LNeu = FALSE.
  3486. RUN LISTTIT2.
  3487. IF FIRST-OF ( TArtst.Herk_Lkz ) THEN DO:
  3488. FIND Land USE-INDEX Land-k2
  3489. WHERE Land.Lkz = TArtst.Herk_Lkz NO-LOCK NO-ERROR.
  3490. IF AVAILABLE Land THEN XLkz = Land.Bez.
  3491. ELSE XLkz = FILL('?', 20).
  3492. VZeile = XLkz.
  3493. { v8/putzeilf.i "1" }
  3494. END.
  3495. IF FIRST-OF ( TArtst.Wg_Grp ) THEN DO:
  3496. FIND WarenGrp USE-INDEX WarenGrp-k1
  3497. WHERE WarenGrp.Firma = GVFirma
  3498. AND WarenGrp.Wgr = TArtst.Wg_Grp NO-LOCK NO-ERROR.
  3499. IF AVAILABLE WarenGrp THEN XWgr = WarenGrp.Bez1.
  3500. ELSE XWgr = FILL('?', 20).
  3501. IF XWgr <> '' AND
  3502. NOT XWgr BEGINS '-' THEN DO:
  3503. VZeile = XWgr.
  3504. { v8/putzeilf.i "1" }
  3505. END.
  3506. END.
  3507. IF FIRST-OF ( TArtst.Prod_Grp ) THEN DO:
  3508. FIND ProdGrp USE-INDEX ProdGrp-k1
  3509. WHERE ProdGrp.Firma = GVFirma
  3510. AND ProdGrp.Wgr = TArtst.Wg_Grp
  3511. AND ProdGrp.Prod_Grp = TArtst.Prod_Grp NO-LOCK NO-ERROR.
  3512. IF AVAILABLE ProdGrp THEN XPgr = ProdGrp.Bez1.
  3513. ELSE XPgr = FILL('?', 20).
  3514. IF XPgr <> '' AND
  3515. NOT XPgr BEGINS '-' THEN DO:
  3516. VZeile = XPgr.
  3517. { v8/putzeilf.i "1" }
  3518. END.
  3519. END.
  3520. IF FIRST-OF ( TArtst.Art_Grp ) THEN DO:
  3521. FIND ArtikGrp USE-INDEX ArtikGrp-k1
  3522. WHERE ArtikGrp.Firma = GVFirma
  3523. AND ArtikGrp.Wgr = TArtst.Wg_Grp
  3524. AND ArtikGrp.Prod_Grp = TArtst.Prod_Grp
  3525. AND ArtikGrp.Art_Grp = TArtst.Art_Grp NO-LOCK NO-ERROR.
  3526. IF AVAILABLE ArtikGrp THEN XAgr = ArtikGrp.Bez1.
  3527. ELSE XAgr = FILL('?', 20).
  3528. IF XAgr <> '' AND
  3529. NOT XAgr BEGINS '-' THEN DO:
  3530. VZeile = XAgr.
  3531. { v8/putzeilf.i "1" }
  3532. END.
  3533. END.
  3534. IF XWgr <> '' AND XWgr BEGINS '-' THEN XWgr = ''.
  3535. IF XPgr <> '' AND XPgr BEGINS '-' THEN XPgr = ''.
  3536. IF XAgr <> '' AND XAgr BEGINS '-' THEN XAgr = ''.
  3537. VKGebPr = 0.
  3538. VVGebPr = 0.
  3539. VKGebWe = 0.
  3540. VVGebWe = 0.
  3541. VGebInh = 0.
  3542. VGebText = '?????????'.
  3543. FIND KGebinde USE-INDEX KGebinde-k1
  3544. WHERE KGebinde.Firma = GVFirma
  3545. AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR.
  3546. FIND VGebinde USE-INDEX VGebinde-k1
  3547. WHERE VGebinde.Firma = GVFirma
  3548. AND VGebinde.Geb_Cd = TArtst.VGeb_Cd NO-LOCK NO-ERROR.
  3549. IF AVAILABLE KGebinde THEN DO:
  3550. VGebInh = KGebinde.Inhalt.
  3551. VGebText = KGebinde.KBez.
  3552. END.
  3553. IF VGebinde AND
  3554. VSort = 2 THEN DO:
  3555. VKGebPr = KGebinde.Depot.
  3556. VVGebPr = VGebinde.Depot.
  3557. IF KGebinde.Geb_Kto <> '' THEN DO:
  3558. FIND GebKonto USE-INDEX GebKonto-k1
  3559. WHERE GebKonto.Geb_Cd = KGebinde.Geb_Kto NO-LOCK NO-ERROR.
  3560. IF AVAILABLE GebKonto THEN VKGebPr = GebKonto.Depot.
  3561. END.
  3562. IF VGebinde.Geb_Kto <> '' THEN DO:
  3563. FIND GebKonto USE-INDEX GebKonto-k1
  3564. WHERE GebKonto.Geb_Cd = VGebinde.Geb_Kto NO-LOCK NO-ERROR.
  3565. IF AVAILABLE GebKonto THEN VVGebPr = GebKonto.Depot.
  3566. END.
  3567. VKGebWe = TArtst.KGeb_Wert * VKGebPr.
  3568. VVGebWe = TArtst.VGeb_Wert * VVGebPr.
  3569. END.
  3570. FIND ArtUms USE-INDEX ArtUms-k1
  3571. WHERE ArtUms.Firma = TArtst.Firma
  3572. AND ArtUms.Jahr = VJJ
  3573. AND ArtUms.Artnr = TArtst.Artnr
  3574. AND ArtUms.Inhalt = TArtst.Inhalt
  3575. AND ArtUms.Jahrg = TArtst.Jahr NO-LOCK NO-ERROR.
  3576. VBetrag = TArtst.Preis.
  3577. VVorMonat = 0.
  3578. IF AVAILABLE ArtUms THEN DO:
  3579. VVorMonat = ArtUms.Me_Mon[VMM].
  3580. END.
  3581. VInvneu = TArtst.Bestand.
  3582. VBestand = TArtst.Bestand.
  3583. VVerlust = TArtst.Verlust.
  3584. VInvwert = VInvneu * VBetrag.
  3585. VLagwert = VBestand * VBetrag.
  3586. SUBSTRING(VZeile,001) = STRING(TArtst.Artnr ,'999999').
  3587. SUBSTRING(VZeile,008) = STRING(TArtst.Inhalt,'9999').
  3588. SUBSTRING(VZeile,014) = STRING(TArtst.Bez1 ,'x(30)').
  3589. SUBSTRING(VZeile,046) = STRING(TArtst.Jahr ,'zzzz').
  3590. IF TArtst.Alk_Gehalt <> 0 THEN
  3591. SUBSTRING(VZeile,052) = STRING(TArtst.Alk_Gehalt,'z9.99').
  3592. SUBSTRING(VZeile,059) = STRING(VGebInh ,'zzzz').
  3593. SUBSTRING(VZeile,065) = STRING(VGebText,'x(10)').
  3594. IF VSort = 2 THEN DO:
  3595. SUBSTRING(VZeile,077) = STRING(VInvneu ,'zzz,zz9-').
  3596. SUBSTRING(VZeile,087) = STRING(VVerlust,'zzz,zz9-').
  3597. SUBSTRING(VZeile,096) = STRING(VBetrag ,'zzz9.999').
  3598. SUBSTRING(VZeile,104) = STRING(VInvwert,'zz,zzz,zz9-').
  3599. IF VGebinde THEN DO:
  3600. SUBSTRING(VZeile,115) = STRING(VKGebWe,'z,zzz,zz9-').
  3601. SUBSTRING(VZeile,125) = STRING(VVGebWe,'z,zzz,zz9-').
  3602. END.
  3603. END.
  3604. IF VSort = 3 THEN DO:
  3605. SUBSTRING(VZeile,077) = STRING(VBestand ,'zzz,zz9-').
  3606. SUBSTRING(VZeile,086) = STRING(VBetrag ,'zzz9.999').
  3607. SUBSTRING(VZeile,096) = STRING(VLagwert ,'zz,zzz,zz9-').
  3608. SUBSTRING(VZeile,108) = STRING(VVorMonat,'zzz,zz9-').
  3609. IF VGebinde THEN DO:
  3610. SUBSTRING(VZeile,116) = STRING(VKGebWe,'z,zzz,zz9-').
  3611. SUBSTRING(VZeile,126) = STRING(VVGebWe,'z,zzz,zz9-').
  3612. END.
  3613. END.
  3614. VTotal0[01] = VTotal0[01] + VInvneu.
  3615. VTotal0[02] = VTotal0[02] + VVerlust.
  3616. VTotal0[03] = VTotal0[03] + VInvwert.
  3617. VTotal0[04] = VTotal0[04] + VBestand.
  3618. VTotal0[05] = VTotal0[05] + VLagwert.
  3619. VTotal0[06] = VTotal0[06] + VKGebWe .
  3620. VTotal0[07] = VTotal0[07] + VVGebWe .
  3621. VTotal1[01] = VTotal1[01] + VInvneu.
  3622. VTotal1[02] = VTotal1[02] + VVerlust.
  3623. VTotal1[03] = VTotal1[03] + VInvwert.
  3624. VTotal1[04] = VTotal1[04] + VBestand.
  3625. VTotal1[05] = VTotal1[05] + VLagwert.
  3626. VTotal1[06] = VTotal1[06] + VKGebWe .
  3627. VTotal1[07] = VTotal1[07] + VVGebWe .
  3628. VTotal2[01] = VTotal2[01] + VInvneu.
  3629. VTotal2[02] = VTotal2[02] + VVerlust.
  3630. VTotal2[03] = VTotal2[03] + VInvwert.
  3631. VTotal2[04] = VTotal2[04] + VBestand.
  3632. VTotal2[05] = VTotal2[05] + VLagwert.
  3633. VTotal2[06] = VTotal2[06] + VKGebWe .
  3634. VTotal2[07] = VTotal2[07] + VVGebWe .
  3635. VTotal3[01] = VTotal3[01] + VInvneu.
  3636. VTotal3[02] = VTotal3[02] + VVerlust.
  3637. VTotal3[03] = VTotal3[03] + VInvwert.
  3638. VTotal3[04] = VTotal3[04] + VBestand.
  3639. VTotal3[05] = VTotal3[05] + VLagwert.
  3640. VTotal3[06] = VTotal3[06] + VKGebWe .
  3641. VTotal3[07] = VTotal3[07] + VVGebWe .
  3642. { v8/putzeile.i "1" }
  3643. IF VZweite THEN DO:
  3644. IF TArtst.Bez2 <> '' THEN DO:
  3645. SUBSTRING(VZeile,014) = STRING(Artbez.Bez2,'x(30)').
  3646. { v8/putzeile.i "1" }
  3647. END.
  3648. END.
  3649. IF LAST-OF ( TArtst.Art_Grp ) THEN DO:
  3650. IF XAgr <> '' THEN DO:
  3651. VZeile = 'Total ' + XAgr.
  3652. IF VSort = 2 THEN DO:
  3653. SUBSTRING(VZeile,077) = STRING(VTotal3[01],'zzz,zz9-').
  3654. SUBSTRING(VZeile,087) = STRING(VTotal3[02],'zzz,zz9-').
  3655. SUBSTRING(VZeile,104) = STRING(VTotal3[03],'zz,zzz,zz9-').
  3656. IF VGebinde THEN DO:
  3657. SUBSTRING(VZeile,115) = STRING(VTotal3[06],'z,zzz,zz9-').
  3658. SUBSTRING(VZeile,125) = STRING(VTotal3[07],'z,zzz,zz9-').
  3659. END.
  3660. END.
  3661. IF VSort = 3 THEN DO:
  3662. SUBSTRING(VZeile,077) = STRING(VTotal3[04],'zzz,zz9-').
  3663. SUBSTRING(VZeile,096) = STRING(VTotal3[05],'zz,zzz,zz9-').
  3664. IF VGebinde THEN DO:
  3665. SUBSTRING(VZeile,116) = STRING(VTotal3[06],'z,zzz,zz9-').
  3666. SUBSTRING(VZeile,126) = STRING(VTotal3[07],'z,zzz,zz9-').
  3667. END.
  3668. END.
  3669. { v8/putzeilf.i "1" }
  3670. END.
  3671. VTotal3 = 0.
  3672. END.
  3673. IF LAST-OF ( TArtst.Prod_Grp ) THEN DO:
  3674. IF XPgr <> '' THEN DO:
  3675. VZeile = 'Total ' + XPgr.
  3676. IF VSort = 2 THEN DO:
  3677. SUBSTRING(VZeile,077) = STRING(VTotal2[01],'zzz,zz9-').
  3678. SUBSTRING(VZeile,087) = STRING(VTotal2[02],'zzz,zz9-').
  3679. SUBSTRING(VZeile,104) = STRING(VTotal2[03],'zz,zzz,zz9-').
  3680. IF VGebinde THEN DO:
  3681. SUBSTRING(VZeile,115) = STRING(VTotal2[06],'z,zzz,zz9-').
  3682. SUBSTRING(VZeile,125) = STRING(VTotal2[07],'z,zzz,zz9-').
  3683. END.
  3684. END.
  3685. IF VSort = 3 THEN DO:
  3686. SUBSTRING(VZeile,077) = STRING(VTotal2[04],'zzz,zz9-').
  3687. SUBSTRING(VZeile,096) = STRING(VTotal2[05],'zz,zzz,zz9-').
  3688. IF VGebinde THEN DO:
  3689. SUBSTRING(VZeile,116) = STRING(VTotal2[06],'z,zzz,zz9-').
  3690. SUBSTRING(VZeile,126) = STRING(VTotal2[07],'z,zzz,zz9-').
  3691. END.
  3692. END.
  3693. { v8/putzeilf.i "1" }
  3694. END.
  3695. VTotal2 = 0.
  3696. END.
  3697. IF LAST-OF ( TArtst.Wg_Grp ) THEN DO:
  3698. IF XWgr <> '' THEN DO:
  3699. VZeile = 'Total ' + XWgr.
  3700. IF VSort = 2 THEN DO:
  3701. SUBSTRING(VZeile,077) = STRING(VTotal1[01],'zzz,zz9-').
  3702. SUBSTRING(VZeile,087) = STRING(VTotal1[02],'zzz,zz9-').
  3703. SUBSTRING(VZeile,104) = STRING(VTotal1[03],'zz,zzz,zz9-').
  3704. IF VGebinde THEN DO:
  3705. SUBSTRING(VZeile,115) = STRING(VTotal1[06],'z,zzz,zz9-').
  3706. SUBSTRING(VZeile,125) = STRING(VTotal1[07],'z,zzz,zz9-').
  3707. END.
  3708. END.
  3709. IF VSort = 3 THEN DO:
  3710. SUBSTRING(VZeile,077) = STRING(VTotal1[04],'zzz,zz9-').
  3711. SUBSTRING(VZeile,096) = STRING(VTotal1[05],'zz,zzz,zz9-').
  3712. IF VGebinde THEN DO:
  3713. SUBSTRING(VZeile,116) = STRING(VTotal1[06],'z,zzz,zz9-').
  3714. SUBSTRING(VZeile,126) = STRING(VTotal1[07],'z,zzz,zz9-').
  3715. END.
  3716. END.
  3717. { v8/putzeilf.i "1" }
  3718. END.
  3719. VTotal1 = 0.
  3720. END.
  3721. IF LAST-OF ( TArtst.Herk_Lkz) OR
  3722. LAST-OF ( TArtst.Wg_Grp ) OR
  3723. LAST-OF ( TArtst.Prod_Grp) OR
  3724. LAST-OF ( TArtst.Art_Grp ) THEN DO:
  3725. { v8/putzeile.i "1" }
  3726. END.
  3727. END. /* REPEAT */
  3728. VZeile = 'Gesamttotal'.
  3729. IF VSort = 2 THEN DO:
  3730. SUBSTRING(VZeile,077) = STRING(VTotal0[01],'zzz,zz9-').
  3731. SUBSTRING(VZeile,087) = STRING(VTotal0[02],'zzz,zz9-').
  3732. SUBSTRING(VZeile,104) = STRING(VTotal0[03],'zz,zzz,zz9-').
  3733. IF VGebinde THEN DO:
  3734. SUBSTRING(VZeile,115) = STRING(VTotal0[06],'z,zzz,zz9-').
  3735. SUBSTRING(VZeile,125) = STRING(VTotal0[07],'z,zzz,zz9-').
  3736. END.
  3737. END.
  3738. IF VSort = 3 THEN DO:
  3739. SUBSTRING(VZeile,077) = STRING(VTotal0[04],'zzz,zz9-').
  3740. SUBSTRING(VZeile,096) = STRING(VTotal0[05],'zz,zzz,zz9-').
  3741. IF VGebinde THEN DO:
  3742. SUBSTRING(VZeile,116) = STRING(VTotal0[06],'z,zzz,zz9-').
  3743. SUBSTRING(VZeile,126) = STRING(VTotal0[07],'z,zzz,zz9-').
  3744. END.
  3745. END.
  3746. { v8/putzeilf.i "2" }
  3747. VTotal0 = 0.
  3748. TiDruck = TRUE.
  3749. IF DOpen = TRUE THEN DO:
  3750. OUTPUT CLOSE.
  3751. RUN DRUCKAUSGABE.
  3752. OS-DELETE VALUE(cDateiName) NO-ERROR.
  3753. END.
  3754. ELSE DO:
  3755. RUN "v8/d-liste.w" ( INPUT Helptext[02] ).
  3756. END.
  3757. END. /* Kopien */
  3758. END. /* DO PRESELECT */
  3759. END PROCEDURE.
  3760. /* _UIB-CODE-BLOCK-END */
  3761. &ANALYZE-RESUME
  3762. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed B-table-Win
  3763. PROCEDURE state-changed :
  3764. /* -----------------------------------------------------------
  3765. Purpose:
  3766. Parameters: <none>
  3767. Notes:
  3768. -------------------------------------------------------------*/
  3769. DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
  3770. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
  3771. CASE p-state:
  3772. /* Object instance CASEs can go here to replace standard behavior
  3773. or add new cases. */
  3774. {src/adm/template/bstates.i}
  3775. END CASE.
  3776. END PROCEDURE.
  3777. /* _UIB-CODE-BLOCK-END */
  3778. &ANALYZE-RESUME