g-p_debums-detail.w 148 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME gDebitorumsatz
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gDebitorumsatz
  6. /*------------------------------------------------------------------------
  7. File:
  8. Description: from cntnrdlg.w - ADM2 SmartDialog Template
  9. Input Parameters:
  10. <none>
  11. Output Parameters:
  12. <none>
  13. Author:
  14. Created:
  15. ------------------------------------------------------------------------*/
  16. /* This .W file was created with the Progress AppBuilder. */
  17. /*----------------------------------------------------------------------*/
  18. /* Create an unnamed pool to store all the widgets created
  19. by this procedure. This is a good default which assures
  20. that this procedure's triggers and internal procedures
  21. will execute in this procedure's storage, and that proper
  22. cleanup will occur on deletion of the procedure. */
  23. CREATE WIDGET-POOL.
  24. /* *************************** Definitions ************************** */
  25. /* Parameters Definitions --- */
  26. /* Local Variable Definitions --- */
  27. DEFINE VARIABLE MaxPage AS INTEGER NO-UNDO.
  28. DEFINE VARIABLE AktSeite AS INTEGER NO-UNDO.
  29. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO.
  30. DEFINE VARIABLE Firma AS CHARACTER NO-UNDO.
  31. DEFINE VARIABLE AdFirma AS CHARACTER NO-UNDO.
  32. DEFINE VARIABLE cInstallation AS CHARACTER NO-UNDO.
  33. DEFINE VARIABLE iVer AS INTEGER NO-UNDO.
  34. DEFINE VARIABLE cVer AS CHARACTER NO-UNDO.
  35. DEFINE VARIABLE iVerband AS INTEGER NO-UNDO.
  36. DEFINE VARIABLE cVerband AS CHARACTER NO-UNDO.
  37. DEFINE VARIABLE iSubverband AS INTEGER NO-UNDO.
  38. DEFINE VARIABLE cSubverband AS CHARACTER NO-UNDO.
  39. DEFINE VARIABLE cVorlage AS CHARACTER NO-UNDO.
  40. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO.
  41. DEFINE VARIABLE cDokument AS CHARACTER NO-UNDO.
  42. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  43. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO.
  44. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO.
  45. DEFINE VARIABLE cZeile AS CHARACTER NO-UNDO.
  46. DEFINE VARIABLE AnzKol AS INTEGER NO-UNDO.
  47. DEFINE VARIABLE FKol AS LOG NO-UNDO EXTENT 20.
  48. DEFINE VARIABLE bKol AS CHARACTER NO-UNDO.
  49. DEFINE VARIABLE iAnzWgr AS INTEGER NO-UNDO.
  50. DEFINE VARIABLE iAnzPgr AS INTEGER NO-UNDO.
  51. DEFINE VARIABLE iAnzHer AS INTEGER NO-UNDO.
  52. DEFINE VARIABLE iAnzArt AS INTEGER NO-UNDO.
  53. DEFINE VARIABLE iAnzKunde AS INTEGER NO-UNDO INIT 0.
  54. DEFINE VARIABLE UmsKnr AS INTEGER NO-UNDO.
  55. DEFINE VARIABLE iHerst AS INTEGER NO-UNDO.
  56. DEFINE VARIABLE Ma_Lf AS DECIMAL NO-UNDO DECIMALS 4.
  57. DEFINE VARIABLE Ma_Vj AS DECIMAL NO-UNDO DECIMALS 4.
  58. DEFINE VARIABLE iAblauf AS INTEGER NO-UNDO.
  59. DEFINE VARIABLE lTotale AS LOGICAL NO-UNDO INIT FALSE.
  60. DEFINE VARIABLE lWgrTotale AS LOGICAL NO-UNDO INIT FALSE.
  61. DEFINE TEMP-TABLE tUmsatz
  62. FIELD RecArt AS CHARACTER
  63. FIELD Knr AS INTEGER
  64. FIELD Herst AS INTEGER
  65. FIELD Wgr AS INTEGER
  66. FIELD Pgr AS INTEGER
  67. FIELD Artnr AS INTEGER
  68. FIELD Inhalt AS INTEGER
  69. FIELD Jahr AS INTEGER
  70. FIELD Ep_Lf AS DECIMAL
  71. FIELD Ep_Vj AS DECIMAL
  72. FIELD Vp_Lf AS DECIMAL
  73. FIELD Vp_Vj AS DECIMAL
  74. FIELD Me_Lf AS DECIMAL
  75. FIELD Me_Vj AS DECIMAL
  76. FIELD Li_Lf AS DECIMAL DECIMALS 6
  77. FIELD Li_Vj AS DECIMAL DECIMALS 6
  78. FIELD Gr_Ep_Lf AS DECIMAL
  79. FIELD Gr_Ep_Vj AS DECIMAL
  80. FIELD Gr_Vp_Lf AS DECIMAL
  81. FIELD Gr_Vp_Vj AS DECIMAL
  82. FIELD Gr_Me_Lf AS DECIMAL
  83. FIELD Gr_Me_Vj AS DECIMAL
  84. FIELD Gr_Li_Lf AS DECIMAL DECIMALS 6
  85. FIELD Gr_Li_Vj AS DECIMAL DECIMALS 6
  86. FIELD KGeb_Cd AS CHARACTER
  87. FIELD Alk% AS DECIMAL
  88. INDEX tUmsatz-k1 IS PRIMARY
  89. RecArt
  90. Knr
  91. Herst
  92. Wgr
  93. Pgr
  94. Artnr
  95. Inhalt
  96. Jahr
  97. INDEX tUmsatz-k2
  98. RecArt
  99. Herst
  100. Wgr
  101. Pgr
  102. Artnr
  103. Inhalt
  104. Jahr .
  105. DEFINE TEMP-TABLE vUmsatz LIKE tUmsatz.
  106. DEFINE TEMP-TABLE wUmsatz LIKE tUmsatz.
  107. DEFINE BUFFER btUmsatz FOR tUmsatz.
  108. DEFINE BUFFER bDebst FOR Debst.
  109. DEFINE BUFFER bArtst FOR Artst.
  110. DEFINE BUFFER bArtbw FOR Artbw.
  111. DEFINE BUFFER bAufko FOR Aufko.
  112. DEFINE BUFFER bAufze FOR Aufze.
  113. /* _UIB-CODE-BLOCK-END */
  114. &ANALYZE-RESUME
  115. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  116. /* ******************** Preprocessor Definitions ******************** */
  117. &Scoped-define PROCEDURE-TYPE SmartDialog
  118. &Scoped-define DB-AWARE no
  119. &Scoped-define ADM-CONTAINER DIALOG-BOX
  120. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  121. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  122. &Scoped-define FRAME-NAME gDebitorumsatz
  123. /* Standard List Definitions */
  124. &Scoped-Define ENABLED-OBJECTS T_NurWgr F_VonKnr F_BisKnr CB_Vertreter ~
  125. CB_Verband CB_Subverband F_Kundengrp F_Preisgruppe T_Hersteller F_VonArtnr ~
  126. F_BisArtnr F_Hersteller F_Warengrp F_VonDatum F_BisDatum T_Menge T_Liter ~
  127. T_HL T_EP T_VP T_Marge T_Vorjahr T_Gratis T_SubGrpHerst T_OffeneAuf ~
  128. Btn_Cancel Btn_OK T_Lieferadresse T_Zusatz T_ProdTot RECT-12
  129. &Scoped-Define DISPLAYED-OBJECTS T_NurWgr F_VonKnr F_BisKnr CB_Vertreter ~
  130. CB_Verband CB_Subverband F_Kundengrp F_Preisgruppe T_Hersteller F_VonArtnr ~
  131. F_BisArtnr F_Hersteller F_Warengrp F_VonDatum F_BisDatum T_Menge T_Liter ~
  132. T_HL T_EP T_VP T_Marge T_Vorjahr T_Gratis T_SubGrpHerst T_OffeneAuf ~
  133. T_Lieferadresse T_Zusatz T_ProdTot
  134. /* Custom List Definitions */
  135. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  136. &Scoped-define List-6 T_NurWgr F_VonKnr F_BisKnr CB_Vertreter CB_Verband ~
  137. CB_Subverband F_Kundengrp F_Preisgruppe T_Hersteller F_VonArtnr F_BisArtnr ~
  138. F_Hersteller F_Warengrp F_VonDatum F_BisDatum T_Menge T_Liter T_HL T_EP ~
  139. T_VP T_Marge T_Vorjahr T_Gratis T_SubGrpHerst T_OffeneAuf T_Lieferadresse ~
  140. T_Zusatz T_ProdTot
  141. /* _UIB-PREPROCESSOR-BLOCK-END */
  142. &ANALYZE-RESUME
  143. /* ************************ Function Prototypes ********************** */
  144. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD GesamtTotal gDebitorumsatz
  145. FUNCTION GesamtTotal RETURNS CHARACTER PRIVATE
  146. ( /* parameter-definitions */ ) FORWARD.
  147. /* _UIB-CODE-BLOCK-END */
  148. &ANALYZE-RESUME
  149. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD HerstellerHerstSchluss gDebitorumsatz
  150. FUNCTION HerstellerHerstSchluss RETURNS CHARACTER
  151. ( ipcAdresse AS CHARACTER ) FORWARD.
  152. /* _UIB-CODE-BLOCK-END */
  153. &ANALYZE-RESUME
  154. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD HerstellerSchluss gDebitorumsatz
  155. FUNCTION HerstellerSchluss RETURNS CHARACTER
  156. ( ipcHerst AS CHARACTER ) FORWARD.
  157. /* _UIB-CODE-BLOCK-END */
  158. &ANALYZE-RESUME
  159. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD HerstellerStart gDebitorumsatz
  160. FUNCTION HerstellerStart RETURNS CHARACTER
  161. ( ipHerst AS INTEGER ) FORWARD.
  162. /* _UIB-CODE-BLOCK-END */
  163. &ANALYZE-RESUME
  164. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD KundenSchluss gDebitorumsatz
  165. FUNCTION KundenSchluss RETURNS CHARACTER
  166. ( ipcAdresse AS CHARACTER ) FORWARD.
  167. /* _UIB-CODE-BLOCK-END */
  168. &ANALYZE-RESUME
  169. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD ProduktegruppenSchluss gDebitorumsatz
  170. FUNCTION ProduktegruppenSchluss RETURNS CHARACTER
  171. ( ipcProdgrp AS CHARACTER ) FORWARD.
  172. /* _UIB-CODE-BLOCK-END */
  173. &ANALYZE-RESUME
  174. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD ProduktegruppenStart gDebitorumsatz
  175. FUNCTION ProduktegruppenStart RETURNS CHARACTER
  176. ( ipWgr AS INTEGER, ipPgr AS INTEGER ) FORWARD.
  177. /* _UIB-CODE-BLOCK-END */
  178. &ANALYZE-RESUME
  179. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD WarengruppenSchluss gDebitorumsatz
  180. FUNCTION WarengruppenSchluss RETURNS CHARACTER
  181. ( ipcWarenGrp AS CHARACTER ) FORWARD.
  182. /* _UIB-CODE-BLOCK-END */
  183. &ANALYZE-RESUME
  184. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD WarengruppenStart gDebitorumsatz
  185. FUNCTION WarengruppenStart RETURNS CHARACTER
  186. ( ipWgr AS INTEGER ) FORWARD.
  187. /* _UIB-CODE-BLOCK-END */
  188. &ANALYZE-RESUME
  189. /* *********************** Control Definitions ********************** */
  190. /* Define a dialog box */
  191. /* Definitions of the field level widgets */
  192. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  193. LABEL "&abbrechen"
  194. SIZE 14 BY 1.19.
  195. DEFINE BUTTON Btn_OK
  196. IMAGE-UP FILE "grafik/results%.ico":U
  197. IMAGE-INSENSITIVE FILE "grafik/results%.ico":U
  198. LABEL "Excel"
  199. SIZE 7 BY 1.71.
  200. DEFINE VARIABLE CB_Subverband AS CHARACTER FORMAT "X(256)":U
  201. LABEL "Subverband"
  202. VIEW-AS COMBO-BOX INNER-LINES 5
  203. LIST-ITEM-PAIRS "Item 1","Item 1"
  204. DROP-DOWN-LIST
  205. SIZE 40 BY 1
  206. BGCOLOR 15 NO-UNDO.
  207. DEFINE VARIABLE CB_Verband AS CHARACTER FORMAT "X(256)":U
  208. LABEL "Verband"
  209. VIEW-AS COMBO-BOX INNER-LINES 5
  210. LIST-ITEM-PAIRS "Item 1","Item 1"
  211. DROP-DOWN-LIST
  212. SIZE 40 BY 1
  213. BGCOLOR 15 NO-UNDO.
  214. DEFINE VARIABLE CB_Vertreter AS CHARACTER FORMAT "X(256)":U
  215. LABEL "Vertreter"
  216. VIEW-AS COMBO-BOX INNER-LINES 5
  217. LIST-ITEM-PAIRS "Item 1","Item 1"
  218. DROP-DOWN-LIST
  219. SIZE 40 BY 1
  220. BGCOLOR 15 NO-UNDO.
  221. DEFINE VARIABLE F_BisArtnr AS INTEGER FORMAT "999999":U INITIAL 0
  222. LABEL "-"
  223. VIEW-AS FILL-IN NATIVE
  224. SIZE 11 BY 1
  225. BGCOLOR 15 NO-UNDO.
  226. DEFINE VARIABLE F_BisDatum AS DATE FORMAT "99.99.9999":U
  227. LABEL "-"
  228. VIEW-AS FILL-IN NATIVE
  229. SIZE 16 BY 1
  230. BGCOLOR 15 NO-UNDO.
  231. DEFINE VARIABLE F_BisKnr AS INTEGER FORMAT "999999":U INITIAL 0
  232. LABEL "-"
  233. VIEW-AS FILL-IN NATIVE
  234. SIZE 11 BY 1
  235. BGCOLOR 15 NO-UNDO.
  236. DEFINE VARIABLE F_Hersteller AS CHARACTER FORMAT "X(256)":U
  237. LABEL "Hersteller"
  238. VIEW-AS FILL-IN NATIVE
  239. SIZE 46.4 BY 1
  240. BGCOLOR 15 NO-UNDO.
  241. DEFINE VARIABLE F_Kundengrp AS CHARACTER FORMAT "X(256)":U
  242. LABEL "Kudengruppen"
  243. VIEW-AS FILL-IN NATIVE
  244. SIZE 46.4 BY 1
  245. BGCOLOR 15 NO-UNDO.
  246. DEFINE VARIABLE F_Preisgruppe AS CHARACTER FORMAT "X(256)":U
  247. LABEL "Preisgruppen"
  248. VIEW-AS FILL-IN NATIVE
  249. SIZE 46.4 BY 1
  250. BGCOLOR 15 NO-UNDO.
  251. DEFINE VARIABLE F_VonArtnr AS INTEGER FORMAT "999999":U INITIAL 0
  252. LABEL "von - bis Artikelnummer"
  253. VIEW-AS FILL-IN NATIVE
  254. SIZE 11 BY 1
  255. BGCOLOR 15 NO-UNDO.
  256. DEFINE VARIABLE F_VonDatum AS DATE FORMAT "99.99.9999":U
  257. LABEL "von - bis Datum"
  258. VIEW-AS FILL-IN NATIVE
  259. SIZE 16 BY 1
  260. BGCOLOR 15 NO-UNDO.
  261. DEFINE VARIABLE F_VonKnr AS INTEGER FORMAT "999999":U INITIAL 0
  262. LABEL "von - bis Knr"
  263. VIEW-AS FILL-IN NATIVE
  264. SIZE 11 BY 1
  265. BGCOLOR 15 NO-UNDO.
  266. DEFINE VARIABLE F_Warengrp AS CHARACTER FORMAT "X(256)":U
  267. LABEL "Warengruppen"
  268. VIEW-AS FILL-IN NATIVE
  269. SIZE 46.4 BY 1
  270. BGCOLOR 15 NO-UNDO.
  271. DEFINE RECTANGLE RECT-12
  272. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  273. SIZE 100 BY 26.67.
  274. DEFINE VARIABLE T_EP AS LOGICAL INITIAL NO
  275. LABEL "Einstandsbeträge"
  276. VIEW-AS TOGGLE-BOX
  277. SIZE 30 BY 1 NO-UNDO.
  278. DEFINE VARIABLE T_Gratis AS LOGICAL INITIAL NO
  279. LABEL "Gratislieferungen"
  280. VIEW-AS TOGGLE-BOX
  281. SIZE 30 BY 1 NO-UNDO.
  282. DEFINE VARIABLE T_Hersteller AS LOGICAL INITIAL NO
  283. LABEL "Herstellerbezogen"
  284. VIEW-AS TOGGLE-BOX
  285. SIZE 47 BY 1 NO-UNDO.
  286. DEFINE VARIABLE T_HL AS LOGICAL INITIAL NO
  287. LABEL "Hektoliter"
  288. VIEW-AS TOGGLE-BOX
  289. SIZE 19.6 BY 1 NO-UNDO.
  290. DEFINE VARIABLE T_Lieferadresse AS LOGICAL INITIAL NO
  291. LABEL "auf Lieferadressen"
  292. VIEW-AS TOGGLE-BOX
  293. SIZE 30 BY 1 NO-UNDO.
  294. DEFINE VARIABLE T_Liter AS LOGICAL INITIAL NO
  295. LABEL "Liter"
  296. VIEW-AS TOGGLE-BOX
  297. SIZE 21.4 BY 1 NO-UNDO.
  298. DEFINE VARIABLE T_Marge AS LOGICAL INITIAL NO
  299. LABEL "Margenberechnung"
  300. VIEW-AS TOGGLE-BOX
  301. SIZE 30 BY 1 NO-UNDO.
  302. DEFINE VARIABLE T_Menge AS LOGICAL INITIAL NO
  303. LABEL "Mengen"
  304. VIEW-AS TOGGLE-BOX
  305. SIZE 30 BY .81 NO-UNDO.
  306. DEFINE VARIABLE T_NurWgr AS LOGICAL INITIAL NO
  307. LABEL "Nur Warengruppentotale"
  308. VIEW-AS TOGGLE-BOX
  309. SIZE 31 BY 1 NO-UNDO.
  310. DEFINE VARIABLE T_OffeneAuf AS LOGICAL INITIAL NO
  311. LABEL "offene Aufträge"
  312. VIEW-AS TOGGLE-BOX
  313. SIZE 30 BY 1 NO-UNDO.
  314. DEFINE VARIABLE T_ProdTot AS LOGICAL INITIAL NO
  315. LABEL "Produktegruppentotale"
  316. VIEW-AS TOGGLE-BOX
  317. SIZE 30 BY 1 NO-UNDO.
  318. DEFINE VARIABLE T_SubGrpHerst AS LOGICAL INITIAL NO
  319. LABEL "Hersteller-Totale (nur wenn nicht Hersteller bezogen)"
  320. VIEW-AS TOGGLE-BOX
  321. SIZE 54 BY 1 NO-UNDO.
  322. DEFINE VARIABLE T_Vorjahr AS LOGICAL INITIAL NO
  323. LABEL "Vorjahreszahlen"
  324. VIEW-AS TOGGLE-BOX
  325. SIZE 30 BY 1 NO-UNDO.
  326. DEFINE VARIABLE T_VP AS LOGICAL INITIAL NO
  327. LABEL "Verkaufsbeträge"
  328. VIEW-AS TOGGLE-BOX
  329. SIZE 30 BY 1 NO-UNDO.
  330. DEFINE VARIABLE T_Zusatz AS LOGICAL INITIAL NO
  331. LABEL "zusätzliche Rekap"
  332. VIEW-AS TOGGLE-BOX
  333. SIZE 30 BY 1 NO-UNDO.
  334. /* ************************ Frame Definitions *********************** */
  335. DEFINE FRAME gDebitorumsatz
  336. T_NurWgr AT ROW 23.52 COL 62 WIDGET-ID 18
  337. F_VonKnr AT ROW 1.52 COL 28 COLON-ALIGNED
  338. F_BisKnr AT ROW 1.52 COL 41 COLON-ALIGNED
  339. CB_Vertreter AT ROW 2.52 COL 28 COLON-ALIGNED
  340. CB_Verband AT ROW 3.52 COL 28 COLON-ALIGNED
  341. CB_Subverband AT ROW 4.52 COL 28 COLON-ALIGNED WIDGET-ID 4
  342. F_Kundengrp AT ROW 5.52 COL 28 COLON-ALIGNED
  343. F_Preisgruppe AT ROW 6.52 COL 28 COLON-ALIGNED
  344. T_Hersteller AT ROW 9 COL 30 WIDGET-ID 6
  345. F_VonArtnr AT ROW 10.24 COL 28 COLON-ALIGNED
  346. F_BisArtnr AT ROW 10.24 COL 41 COLON-ALIGNED
  347. F_Hersteller AT ROW 11.24 COL 28 COLON-ALIGNED
  348. F_Warengrp AT ROW 12.24 COL 28 COLON-ALIGNED
  349. F_VonDatum AT ROW 13.24 COL 28 COLON-ALIGNED
  350. F_BisDatum AT ROW 13.24 COL 47 COLON-ALIGNED
  351. T_Menge AT ROW 14.52 COL 30
  352. T_Liter AT ROW 15.52 COL 30
  353. T_HL AT ROW 15.52 COL 55
  354. T_EP AT ROW 16.52 COL 30
  355. T_VP AT ROW 17.52 COL 30
  356. T_Marge AT ROW 18.52 COL 30
  357. T_Vorjahr AT ROW 19.52 COL 30
  358. T_Gratis AT ROW 20.52 COL 30 WIDGET-ID 2
  359. T_SubGrpHerst AT ROW 7.62 COL 30 WIDGET-ID 8
  360. T_OffeneAuf AT ROW 21.52 COL 30 WIDGET-ID 10
  361. Btn_Cancel AT ROW 26.24 COL 55.8
  362. Btn_OK AT ROW 26 COL 30
  363. T_Lieferadresse AT ROW 22.52 COL 30 WIDGET-ID 12
  364. T_Zusatz AT ROW 23.52 COL 30 WIDGET-ID 14
  365. T_ProdTot AT ROW 24.52 COL 30 WIDGET-ID 16
  366. RECT-12 AT ROW 1.24 COL 2
  367. SPACE(0.99) SKIP(0.22)
  368. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  369. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  370. TITLE "Debitorumsätze (Detail)"
  371. CANCEL-BUTTON Btn_Cancel.
  372. /* *********************** Procedure Settings ************************ */
  373. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  374. /* Settings for THIS-PROCEDURE
  375. Type: SmartDialog
  376. Allow: Basic,Browse,DB-Fields,Query,Smart
  377. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  378. Design Page: 1
  379. Other Settings: COMPILE
  380. */
  381. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  382. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gDebitorumsatz
  383. /* ************************* Included-Libraries *********************** */
  384. {src/adm2/containr.i}
  385. /* _UIB-CODE-BLOCK-END */
  386. &ANALYZE-RESUME
  387. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  388. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  389. /* SETTINGS FOR DIALOG-BOX gDebitorumsatz
  390. FRAME-NAME Custom */
  391. ASSIGN
  392. FRAME gDebitorumsatz:SCROLLABLE = FALSE
  393. FRAME gDebitorumsatz:HIDDEN = TRUE.
  394. /* SETTINGS FOR COMBO-BOX CB_Subverband IN FRAME gDebitorumsatz
  395. 6 */
  396. /* SETTINGS FOR COMBO-BOX CB_Verband IN FRAME gDebitorumsatz
  397. 6 */
  398. /* SETTINGS FOR COMBO-BOX CB_Vertreter IN FRAME gDebitorumsatz
  399. 6 */
  400. /* SETTINGS FOR FILL-IN F_BisArtnr IN FRAME gDebitorumsatz
  401. 6 */
  402. /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME gDebitorumsatz
  403. 6 */
  404. /* SETTINGS FOR FILL-IN F_BisKnr IN FRAME gDebitorumsatz
  405. 6 */
  406. /* SETTINGS FOR FILL-IN F_Hersteller IN FRAME gDebitorumsatz
  407. 6 */
  408. /* SETTINGS FOR FILL-IN F_Kundengrp IN FRAME gDebitorumsatz
  409. 6 */
  410. /* SETTINGS FOR FILL-IN F_Preisgruppe IN FRAME gDebitorumsatz
  411. 6 */
  412. /* SETTINGS FOR FILL-IN F_VonArtnr IN FRAME gDebitorumsatz
  413. 6 */
  414. /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME gDebitorumsatz
  415. 6 */
  416. /* SETTINGS FOR FILL-IN F_VonKnr IN FRAME gDebitorumsatz
  417. 6 */
  418. /* SETTINGS FOR FILL-IN F_Warengrp IN FRAME gDebitorumsatz
  419. 6 */
  420. /* SETTINGS FOR TOGGLE-BOX T_EP IN FRAME gDebitorumsatz
  421. 6 */
  422. /* SETTINGS FOR TOGGLE-BOX T_Gratis IN FRAME gDebitorumsatz
  423. 6 */
  424. /* SETTINGS FOR TOGGLE-BOX T_Hersteller IN FRAME gDebitorumsatz
  425. 6 */
  426. /* SETTINGS FOR TOGGLE-BOX T_HL IN FRAME gDebitorumsatz
  427. 6 */
  428. /* SETTINGS FOR TOGGLE-BOX T_Lieferadresse IN FRAME gDebitorumsatz
  429. 6 */
  430. /* SETTINGS FOR TOGGLE-BOX T_Liter IN FRAME gDebitorumsatz
  431. 6 */
  432. /* SETTINGS FOR TOGGLE-BOX T_Marge IN FRAME gDebitorumsatz
  433. 6 */
  434. /* SETTINGS FOR TOGGLE-BOX T_Menge IN FRAME gDebitorumsatz
  435. 6 */
  436. /* SETTINGS FOR TOGGLE-BOX T_NurWgr IN FRAME gDebitorumsatz
  437. 6 */
  438. /* SETTINGS FOR TOGGLE-BOX T_OffeneAuf IN FRAME gDebitorumsatz
  439. 6 */
  440. /* SETTINGS FOR TOGGLE-BOX T_ProdTot IN FRAME gDebitorumsatz
  441. 6 */
  442. /* SETTINGS FOR TOGGLE-BOX T_SubGrpHerst IN FRAME gDebitorumsatz
  443. 6 */
  444. /* SETTINGS FOR TOGGLE-BOX T_Vorjahr IN FRAME gDebitorumsatz
  445. 6 */
  446. /* SETTINGS FOR TOGGLE-BOX T_VP IN FRAME gDebitorumsatz
  447. 6 */
  448. /* SETTINGS FOR TOGGLE-BOX T_Zusatz IN FRAME gDebitorumsatz
  449. 6 */
  450. /* _RUN-TIME-ATTRIBUTES-END */
  451. &ANALYZE-RESUME
  452. /* Setting information for Queries and Browse Widgets fields */
  453. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gDebitorumsatz
  454. /* Query rebuild information for DIALOG-BOX gDebitorumsatz
  455. _Options = "SHARE-LOCK"
  456. _Query is NOT OPENED
  457. */ /* DIALOG-BOX gDebitorumsatz */
  458. &ANALYZE-RESUME
  459. /* ************************ Control Triggers ************************ */
  460. &Scoped-define SELF-NAME gDebitorumsatz
  461. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gDebitorumsatz gDebitorumsatz
  462. ON END-ERROR OF FRAME gDebitorumsatz /* Debitorumsätze (Detail) */
  463. DO:
  464. RUN ENDE.
  465. RETURN NO-APPLY.
  466. END.
  467. /* _UIB-CODE-BLOCK-END */
  468. &ANALYZE-RESUME
  469. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gDebitorumsatz gDebitorumsatz
  470. ON GO OF FRAME gDebitorumsatz /* Debitorumsätze (Detail) */
  471. DO:
  472. /*
  473. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR.
  474. */
  475. END.
  476. /* _UIB-CODE-BLOCK-END */
  477. &ANALYZE-RESUME
  478. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gDebitorumsatz gDebitorumsatz
  479. ON WINDOW-CLOSE OF FRAME gDebitorumsatz /* Debitorumsätze (Detail) */
  480. DO:
  481. RUN ENDE.
  482. RETURN NO-APPLY.
  483. END.
  484. /* _UIB-CODE-BLOCK-END */
  485. &ANALYZE-RESUME
  486. &Scoped-define SELF-NAME Btn_Cancel
  487. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gDebitorumsatz
  488. ON CHOOSE OF Btn_Cancel IN FRAME gDebitorumsatz /* abbrechen */
  489. DO:
  490. RUN ENDE.
  491. RETURN NO-APPLY.
  492. END.
  493. /* _UIB-CODE-BLOCK-END */
  494. &ANALYZE-RESUME
  495. &Scoped-define SELF-NAME Btn_OK
  496. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gDebitorumsatz
  497. ON CHOOSE OF Btn_OK IN FRAME gDebitorumsatz /* Excel */
  498. DO:
  499. DO WITH FRAME {&FRAME-NAME}:
  500. Btn_OK:SENSITIVE = FALSE.
  501. Btn_Cancel:SENSITIVE = FALSE.
  502. SESSION:SET-WAIT-STATE ('GENERAL').
  503. END.
  504. RUN REPORT.
  505. DO WITH FRAME {&FRAME-NAME}:
  506. Btn_OK:SENSITIVE = TRUE.
  507. Btn_Cancel:SENSITIVE = TRUE.
  508. SESSION:SET-WAIT-STATE('').
  509. END.
  510. RUN ENDE.
  511. RETURN NO-APPLY.
  512. END.
  513. /* _UIB-CODE-BLOCK-END */
  514. &ANALYZE-RESUME
  515. &Scoped-define SELF-NAME CB_Subverband
  516. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Subverband gDebitorumsatz
  517. ON RETURN OF CB_Subverband IN FRAME gDebitorumsatz /* Subverband */
  518. DO:
  519. APPLY 'TAB' TO SELF.
  520. RETURN NO-APPLY.
  521. END.
  522. /* _UIB-CODE-BLOCK-END */
  523. &ANALYZE-RESUME
  524. &Scoped-define SELF-NAME CB_Verband
  525. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Verband gDebitorumsatz
  526. ON RETURN OF CB_Verband IN FRAME gDebitorumsatz /* Verband */
  527. DO:
  528. APPLY 'TAB' TO SELF.
  529. RETURN NO-APPLY.
  530. END.
  531. /* _UIB-CODE-BLOCK-END */
  532. &ANALYZE-RESUME
  533. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Verband gDebitorumsatz
  534. ON VALUE-CHANGED OF CB_Verband IN FRAME gDebitorumsatz /* Verband */
  535. DO:
  536. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  537. RUN COMBO_SUBVERBAND ( CB_Subverband:HANDLE, CB_Verband:SCREEN-VALUE ).
  538. cString = CB_Subverband:LIST-ITEM-PAIRS.
  539. IF cString <> '' THEN cString = cString + ';'.
  540. cString = cString + 'Alle Subverbände (999999);999999'.
  541. CB_Subverband:LIST-ITEM-PAIRS = cString.
  542. CB_Subverband:SCREEN-VALUE = '999999'.
  543. END.
  544. /* _UIB-CODE-BLOCK-END */
  545. &ANALYZE-RESUME
  546. &Scoped-define SELF-NAME CB_Vertreter
  547. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Vertreter gDebitorumsatz
  548. ON RETURN OF CB_Vertreter IN FRAME gDebitorumsatz /* Vertreter */
  549. DO:
  550. APPLY 'TAB' TO SELF.
  551. RETURN NO-APPLY.
  552. END.
  553. /* _UIB-CODE-BLOCK-END */
  554. &ANALYZE-RESUME
  555. &Scoped-define SELF-NAME F_BisKnr
  556. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_BisKnr gDebitorumsatz
  557. ON ALT-F OF F_BisKnr IN FRAME gDebitorumsatz /* - */
  558. DO:
  559. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  560. RUN 'g-suchen-adresse.w':U ( 'DEB', OUTPUT iRecid ).
  561. IF iRecid = ? OR
  562. iRecid = 0 THEN RETURN NO-APPLY.
  563. FIND Adresse NO-LOCK WHERE RECID(Adresse) = iRecid NO-ERROR.
  564. SELF:SCREEN-VALUE = STRING(Adresse.Knr).
  565. APPLY 'ENTRY' TO SELF.
  566. RETURN NO-APPLY.
  567. END.
  568. /* _UIB-CODE-BLOCK-END */
  569. &ANALYZE-RESUME
  570. &Scoped-define SELF-NAME F_Hersteller
  571. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Hersteller gDebitorumsatz
  572. ON RIGHT-MOUSE-CLICK OF F_Hersteller IN FRAME gDebitorumsatz /* Hersteller */
  573. DO:
  574. RUN g-auswahl-tabelle.w ( INPUT SELF, INPUT 'HERST' ).
  575. END.
  576. /* _UIB-CODE-BLOCK-END */
  577. &ANALYZE-RESUME
  578. &Scoped-define SELF-NAME F_Kundengrp
  579. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Kundengrp gDebitorumsatz
  580. ON RIGHT-MOUSE-CLICK OF F_Kundengrp IN FRAME gDebitorumsatz /* Kudengruppen */
  581. DO:
  582. RUN g-auswahl-tabelle.w ( INPUT SELF, INPUT 'KUNDGRP' ).
  583. END.
  584. /* _UIB-CODE-BLOCK-END */
  585. &ANALYZE-RESUME
  586. &Scoped-define SELF-NAME F_Preisgruppe
  587. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Preisgruppe gDebitorumsatz
  588. ON RIGHT-MOUSE-CLICK OF F_Preisgruppe IN FRAME gDebitorumsatz /* Preisgruppen */
  589. DO:
  590. RUN g-auswahl-tabelle.w ( INPUT SELF, INPUT 'PREGRP' ).
  591. END.
  592. /* _UIB-CODE-BLOCK-END */
  593. &ANALYZE-RESUME
  594. &Scoped-define SELF-NAME F_VonKnr
  595. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_VonKnr gDebitorumsatz
  596. ON ALT-F OF F_VonKnr IN FRAME gDebitorumsatz /* von - bis Knr */
  597. DO:
  598. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  599. RUN 'g-suchen-adresse.w':U ( 'DEB', OUTPUT iRecid ).
  600. IF iRecid = ? OR
  601. iRecid = 0 THEN RETURN NO-APPLY.
  602. FIND Adresse NO-LOCK WHERE RECID(Adresse) = iRecid NO-ERROR.
  603. SELF:SCREEN-VALUE = STRING(Adresse.Knr).
  604. F_BisKnr:SCREEN-VALUE = STRING(Adresse.Knr).
  605. APPLY 'ENTRY' TO SELF.
  606. RETURN NO-APPLY.
  607. END.
  608. /* _UIB-CODE-BLOCK-END */
  609. &ANALYZE-RESUME
  610. &Scoped-define SELF-NAME F_Warengrp
  611. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Warengrp gDebitorumsatz
  612. ON RIGHT-MOUSE-CLICK OF F_Warengrp IN FRAME gDebitorumsatz /* Warengruppen */
  613. DO:
  614. RUN g-auswahl-wgr.w ( INPUT SELF ).
  615. END.
  616. /* _UIB-CODE-BLOCK-END */
  617. &ANALYZE-RESUME
  618. &Scoped-define SELF-NAME T_EP
  619. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_EP gDebitorumsatz
  620. ON RETURN OF T_EP IN FRAME gDebitorumsatz /* Einstandsbeträge */
  621. DO:
  622. APPLY 'TAB' TO SELF.
  623. RETURN NO-APPLY.
  624. END.
  625. /* _UIB-CODE-BLOCK-END */
  626. &ANALYZE-RESUME
  627. &Scoped-define SELF-NAME T_Gratis
  628. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Gratis gDebitorumsatz
  629. ON RETURN OF T_Gratis IN FRAME gDebitorumsatz /* Gratislieferungen */
  630. DO:
  631. APPLY 'TAB' TO SELF.
  632. RETURN NO-APPLY.
  633. END.
  634. /* _UIB-CODE-BLOCK-END */
  635. &ANALYZE-RESUME
  636. &Scoped-define SELF-NAME T_Hersteller
  637. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Hersteller gDebitorumsatz
  638. ON RETURN OF T_Hersteller IN FRAME gDebitorumsatz /* Herstellerbezogen */
  639. DO:
  640. APPLY 'TAB' TO SELF.
  641. RETURN.
  642. END.
  643. /* _UIB-CODE-BLOCK-END */
  644. &ANALYZE-RESUME
  645. &Scoped-define SELF-NAME T_HL
  646. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_HL gDebitorumsatz
  647. ON RETURN OF T_HL IN FRAME gDebitorumsatz /* Hektoliter */
  648. DO:
  649. APPLY 'TAB' TO SELF.
  650. RETURN NO-APPLY.
  651. END.
  652. /* _UIB-CODE-BLOCK-END */
  653. &ANALYZE-RESUME
  654. &Scoped-define SELF-NAME T_Lieferadresse
  655. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Lieferadresse gDebitorumsatz
  656. ON RETURN OF T_Lieferadresse IN FRAME gDebitorumsatz /* auf Lieferadressen */
  657. DO:
  658. APPLY 'TAB' TO SELF.
  659. RETURN NO-APPLY.
  660. END.
  661. /* _UIB-CODE-BLOCK-END */
  662. &ANALYZE-RESUME
  663. &Scoped-define SELF-NAME T_Liter
  664. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Liter gDebitorumsatz
  665. ON RETURN OF T_Liter IN FRAME gDebitorumsatz /* Liter */
  666. DO:
  667. APPLY 'TAB' TO SELF.
  668. RETURN NO-APPLY.
  669. END.
  670. /* _UIB-CODE-BLOCK-END */
  671. &ANALYZE-RESUME
  672. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Liter gDebitorumsatz
  673. ON VALUE-CHANGED OF T_Liter IN FRAME gDebitorumsatz /* Liter */
  674. DO:
  675. DO WITH FRAME {&FRAME-NAME}:
  676. ASSIGN T_Liter .
  677. IF T_Liter = TRUE THEN T_HL:SENSITIVE = TRUE.
  678. ELSE T_HL:SENSITIVE = FALSE.
  679. END.
  680. END.
  681. /* _UIB-CODE-BLOCK-END */
  682. &ANALYZE-RESUME
  683. &Scoped-define SELF-NAME T_Marge
  684. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Marge gDebitorumsatz
  685. ON RETURN OF T_Marge IN FRAME gDebitorumsatz /* Margenberechnung */
  686. DO:
  687. APPLY 'TAB' TO SELF.
  688. RETURN NO-APPLY.
  689. END.
  690. /* _UIB-CODE-BLOCK-END */
  691. &ANALYZE-RESUME
  692. &Scoped-define SELF-NAME T_Menge
  693. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Menge gDebitorumsatz
  694. ON RETURN OF T_Menge IN FRAME gDebitorumsatz /* Mengen */
  695. DO:
  696. APPLY 'TAB' TO SELF.
  697. RETURN NO-APPLY.
  698. END.
  699. /* _UIB-CODE-BLOCK-END */
  700. &ANALYZE-RESUME
  701. &Scoped-define SELF-NAME T_OffeneAuf
  702. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_OffeneAuf gDebitorumsatz
  703. ON RETURN OF T_OffeneAuf IN FRAME gDebitorumsatz /* offene Aufträge */
  704. DO:
  705. APPLY 'TAB' TO SELF.
  706. RETURN NO-APPLY.
  707. END.
  708. /* _UIB-CODE-BLOCK-END */
  709. &ANALYZE-RESUME
  710. &Scoped-define SELF-NAME T_ProdTot
  711. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_ProdTot gDebitorumsatz
  712. ON RETURN OF T_ProdTot IN FRAME gDebitorumsatz /* Produktegruppentotale */
  713. DO:
  714. APPLY 'TAB' TO SELF.
  715. RETURN NO-APPLY.
  716. END.
  717. /* _UIB-CODE-BLOCK-END */
  718. &ANALYZE-RESUME
  719. &Scoped-define SELF-NAME T_SubGrpHerst
  720. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_SubGrpHerst gDebitorumsatz
  721. ON RETURN OF T_SubGrpHerst IN FRAME gDebitorumsatz /* Hersteller-Totale (nur wenn nicht Hersteller bezogen) */
  722. DO:
  723. APPLY 'TAB' TO SELF.
  724. RETURN.
  725. END.
  726. /* _UIB-CODE-BLOCK-END */
  727. &ANALYZE-RESUME
  728. &Scoped-define SELF-NAME T_Vorjahr
  729. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Vorjahr gDebitorumsatz
  730. ON RETURN OF T_Vorjahr IN FRAME gDebitorumsatz /* Vorjahreszahlen */
  731. DO:
  732. APPLY 'TAB' TO SELF.
  733. RETURN NO-APPLY.
  734. END.
  735. /* _UIB-CODE-BLOCK-END */
  736. &ANALYZE-RESUME
  737. &Scoped-define SELF-NAME T_VP
  738. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_VP gDebitorumsatz
  739. ON RETURN OF T_VP IN FRAME gDebitorumsatz /* Verkaufsbeträge */
  740. DO:
  741. APPLY 'TAB' TO SELF.
  742. RETURN NO-APPLY.
  743. END.
  744. /* _UIB-CODE-BLOCK-END */
  745. &ANALYZE-RESUME
  746. &Scoped-define SELF-NAME T_Zusatz
  747. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Zusatz gDebitorumsatz
  748. ON RETURN OF T_Zusatz IN FRAME gDebitorumsatz /* zusätzliche Rekap */
  749. DO:
  750. APPLY 'TAB' TO SELF.
  751. RETURN NO-APPLY.
  752. END.
  753. /* _UIB-CODE-BLOCK-END */
  754. &ANALYZE-RESUME
  755. &UNDEFINE SELF-NAME
  756. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gDebitorumsatz
  757. /* *************************** Main Block *************************** */
  758. MaxPage = 1.
  759. AktSeite = 1.
  760. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  761. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
  762. SESSION:DATA-ENTRY-RETURN = TRUE.
  763. /* TRIGGERS ------------------------------------------------------ */
  764. /*
  765. ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE
  766. DO:
  767. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  768. IF FMutFlag = FALSE THEN DO:
  769. RUN ENDE.
  770. RETURN NO-APPLY.
  771. END.
  772. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'CANCEL':U ).
  773. RETURN NO-APPLY.
  774. END.
  775. */
  776. /* ------------------------------------------------------------------ */
  777. {src/adm2/dialogmn.i}
  778. /* _UIB-CODE-BLOCK-END */
  779. &ANALYZE-RESUME
  780. /* ********************** Internal Procedures *********************** */
  781. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gDebitorumsatz _ADM-CREATE-OBJECTS
  782. PROCEDURE adm-create-objects :
  783. /*------------------------------------------------------------------------------
  784. Purpose: Create handles for all SmartObjects used in this procedure.
  785. After SmartObjects are initialized, then SmartLinks are added.
  786. Parameters: <none>
  787. ------------------------------------------------------------------------------*/
  788. END PROCEDURE.
  789. /* _UIB-CODE-BLOCK-END */
  790. &ANALYZE-RESUME
  791. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE gDebitorumsatz
  792. PROCEDURE AUSGABE :
  793. /*------------------------------------------------------------------------------
  794. Purpose:
  795. Parameters: <none>
  796. Notes:
  797. ------------------------------------------------------------------------------*/
  798. DEFINE INPUT PARAMETER ipArt AS INTEGER NO-UNDO.
  799. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  800. DEFINE VARIABLE cTitel AS CHARACTER INIT '' NO-UNDO.
  801. DEFINE VARIABLE cHerst AS CHARACTER INIT '' NO-UNDO.
  802. DEFINE VARIABLE cWgr AS CHARACTER INIT '' NO-UNDO.
  803. DEFINE VARIABLE cPgr AS CHARACTER INIT '' NO-UNDO.
  804. ASSIGN
  805. iAnzKunde = 0
  806. iAnzHer = 0
  807. iAnzWgr = 0
  808. iAnzPgr = 0
  809. iAnzArt = 0
  810. lTotale = FALSE.
  811. FOR EACH btUmsatz USE-INDEX tUmsatz-k1 NO-LOCK
  812. WHERE btUmsatz.RecArt = 'A'
  813. BREAK BY btUmsatz.Knr
  814. BY btUmsatz.Herst
  815. BY btUmsatz.Wgr
  816. BY btUmsatz.Pgr
  817. BY btUmsatz.Artnr
  818. BY btUmsatz.Inhalt
  819. BY btUmsatz.Jahr :
  820. IF FIRST-OF ( btUmsatz.Knr ) THEN
  821. DO:
  822. iAnzKunde = iAnzKunde + 1.
  823. CASE ipArt:
  824. WHEN 1 THEN
  825. DO:
  826. cTitel = DYNAMIC-FUNCTION('getAdressAnzeige':U, btUmsatz.Knr) NO-ERROR.
  827. END.
  828. WHEN 2 THEN
  829. DO:
  830. RUN FIND_VERBAND ( btUmsatz.Knr, OUTPUT cString ).
  831. cTitel = (IF cString <> '' THEN ENTRY(2, cString, CHR(01)) ELSE '?????').
  832. END.
  833. WHEN 3 THEN
  834. DO:
  835. RUN FIND_VERBAND ( btUmsatz.Knr, OUTPUT cString ).
  836. cTitel = (IF cString <> '' THEN ENTRY(2, cString, CHR(01)) ELSE '?????').
  837. END.
  838. END CASE.
  839. PUT CONTROL STRING(btUmsatz.Knr,'999999 ')
  840. cTitel CHR(10)
  841. '£' CHR(10).
  842. END.
  843. IF FIRST-OF ( btUmsatz.Herst ) THEN
  844. DO:
  845. cHerst = DYNAMIC-FUNCTION('HerstellerStart':U, btUmsatz.Herst) NO-ERROR.
  846. IF cHerst <> '' THEN PUT CONTROL '£' cHerst CHR(10).
  847. ASSIGN
  848. iAnzHer = iAnzHer + 1.
  849. iAnzArt = 0.
  850. END.
  851. IF FIRST-OF ( btUmsatz.Wgr ) THEN
  852. DO:
  853. cWgr = DYNAMIC-FUNCTION('WarengruppenStart':U, btUmsatz.Wgr) NO-ERROR.
  854. IF cWgr <> '' THEN PUT CONTROL '£' cWgr CHR(10).
  855. ASSIGN
  856. iAnzWgr = iAnzWgr + 1
  857. iAnzArt = 0.
  858. END.
  859. IF FIRST-OF ( btUmsatz.Pgr ) AND
  860. T_ProdTot THEN
  861. DO:
  862. cPgr = DYNAMIC-FUNCTION('ProduktegruppenStart':U, btUmsatz.Wgr, btUmsatz.Pgr) NO-ERROR.
  863. IF cPgr <> '' THEN PUT CONTROL '£' cPgr CHR(10).
  864. ASSIGN
  865. iAnzPgr = iAnzPgr + 1
  866. iAnzArt = 0.
  867. END.
  868. cZeile = ''.
  869. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1
  870. WHERE KGebinde.Firma = Firma
  871. AND KGebinde.Geb_Cd = btUmsatz.KGeb_Cd NO-ERROR.
  872. FIND Artst NO-LOCK USE-INDEX Artst-k1
  873. WHERE Artst.Firma = Firma
  874. AND Artst.Artnr = btUmsatz.Artnr
  875. AND Artst.Inhalt = btUmsatz.Inhalt
  876. AND Artst.Jahr = btUmsatz.Jahr NO-ERROR.
  877. FIND FIRST Artbez NO-LOCK USE-INDEX Artbez-k1
  878. WHERE Artbez.Firma = Firma
  879. AND Artbez.Artnr = btUmsatz.Artnr
  880. AND Artbez.Inhalt = btUmsatz.Inhalt
  881. AND Artbez.Jahr = btUmsatz.Jahr NO-ERROR.
  882. cZeile = cZeile + '££'
  883. + STRING(btUmsatz.Artnr,'999999').
  884. IF AVAILABLE Artbez THEN cZeile = cZeile + '£' + Artbez.Bez1.
  885. ELSE cZeile = cZeile + '£' + Artst.Bez.
  886. IF AVAILABLE KGebinde THEN cZeile = cZeile + '£' + KGebinde.KBez.
  887. ELSE cZeile = cZeile + '£ ? ' + STRING(btUmsatz.Inhalt,'9999') + ' ?'.
  888. cZeile = cZeile + '£'.
  889. IF btUmsatz.Jahr > 10 THEN cZeile = cZeile + STRING(btUmsatz.Jahr,'9999 ').
  890. IF btUmsatz.Alk% > 0 THEN cZeile = cZeile + STRING(btUmsatz.Alk%,'z9.99%').
  891. Ma_Vj = 0.
  892. Ma_Lf = 0.
  893. IF btUmsatz.Ep_Vj <> 0 AND
  894. btUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (btUmsatz.Ep_Vj * 100 / btUmsatz.Vp_Vj).
  895. IF btUmsatz.Ep_Lf <> 0 AND
  896. btUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (btUmsatz.Ep_Lf * 100 / btUmsatz.Vp_Lf).
  897. IF Ma_Vj < 999.99- THEN Ma_Vj = 999.99-.
  898. IF Ma_Vj > 999.99 THEN Ma_Vj = 999.99.
  899. IF Ma_Lf < 999.99- THEN Ma_Lf = 999.99-.
  900. IF Ma_Lf > 999.99 THEN Ma_Lf = 999.99.
  901. IF T_HL THEN
  902. DO:
  903. ASSIGN
  904. btUmsatz.Li_Lf = btUmsatz.Li_Lf / 100
  905. btUmsatz.Li_Vj = btUmsatz.Li_Vj / 100
  906. btUmsatz.Gr_Li_Lf = btUmsatz.Gr_Li_Lf / 100
  907. btUmsatz.Gr_Li_Vj = btUmsatz.Gr_Li_Vj / 100.
  908. END.
  909. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Me_Lf,'->>>>>>>>>'))
  910. + '£'.
  911. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>9.99')).
  912. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>>>>>')).
  913. cZeile = cZeile + '£'
  914. + TRIM(STRING(btUmsatz.Ep_Lf,'->>>>>>>>>')) + '£'
  915. + TRIM(STRING(btUmsatz.Vp_Lf,'->>>>>>>>>')) + '£'
  916. + TRIM(STRING(Ma_Lf ,'->>9.99')).
  917. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Me_Vj,'->>>>>>>>>'))
  918. + '£'.
  919. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>9.99')).
  920. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>>>>>')).
  921. cZeile = cZeile + '£'
  922. + TRIM(STRING(btUmsatz.Ep_Vj,'->>>>>>>>>')) + '£'
  923. + TRIM(STRING(btUmsatz.Vp_Vj,'->>>>>>>>>')) + '£'
  924. + TRIM(STRING(Ma_Vj ,'->>9.99')).
  925. cZeile = REPLACE(cZeile, '£0.00£', '££').
  926. PUT CONTROL cZeile CHR(10).
  927. cZeile = ''.
  928. DO WHILE TRUE.
  929. IF AVAILABLE Artbez AND
  930. Artbez.Bez2 <> '' THEN cZeile = '£££' + Artbez.Bez2.
  931. IF NOT T_Gratis THEN LEAVE.
  932. IF btUmsatz.Gr_Me_Lf = 0 AND
  933. btUmsatz.Gr_Me_VJ = 0 THEN LEAVE.
  934. IF cZeile = '' THEN cZeile = '£££'.
  935. cZeile = cZeile + '£GRATIS£'.
  936. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Me_Lf,'->>>>>>>>>'))
  937. + '£'.
  938. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>9.99')).
  939. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>>>>>')).
  940. cZeile = cZeile + '£'
  941. + TRIM(STRING(btUmsatz.Gr_Ep_Lf,'->>>>>>>>>')) + '£'
  942. + TRIM(STRING(btUmsatz.Gr_Vp_Lf,'->>>>>>>>>')) + '£'.
  943. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Me_Vj,'->>>>>>>>>'))
  944. + '£'.
  945. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>9.99')).
  946. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>>>>>')).
  947. cZeile = cZeile + '£'
  948. + TRIM(STRING(btUmsatz.Gr_Ep_Vj,'->>>>>>>>>')) + '£'
  949. + TRIM(STRING(btUmsatz.Gr_Vp_Vj,'->>>>>>>>>')).
  950. LEAVE.
  951. END.
  952. IF cZeile <> '' THEN
  953. DO:
  954. cZeile = REPLACE(cZeile, '£0.00£', '££').
  955. PUT CONTROL cZeile CHR(10).
  956. cZeile = ''.
  957. END.
  958. iAnzArt = iAnzArt + 1.
  959. IF NOT LAST-OF ( btUmsatz.Pgr ) THEN NEXT.
  960. IF T_ProdTot AND
  961. cPgr <> '' THEN
  962. DO:
  963. DYNAMIC-FUNCTION('ProduktegruppenSchluss':U, cPgr) NO-ERROR.
  964. iAnzArt = 0.
  965. PUT CONTROL '£' CHR(10).
  966. END.
  967. IF NOT LAST-OF ( btUmsatz.Wgr ) THEN NEXT.
  968. DYNAMIC-FUNCTION('WarengruppenSchluss':U, cWgr) NO-ERROR.
  969. iAnzPgr = 0.
  970. IF NOT LAST-OF ( btUmsatz.Herst ) THEN
  971. DO:
  972. PUT CONTROL '£' CHR(10).
  973. NEXT.
  974. END.
  975. iAnzHer = 0.
  976. IF T_SubGrpHerst THEN
  977. DO:
  978. DYNAMIC-FUNCTION('HerstellerSchluss':U, cHerst) NO-ERROR.
  979. END.
  980. IF NOT LAST-OF ( btUmsatz.Knr ) THEN
  981. DO:
  982. PUT CONTROL '£' CHR(10).
  983. NEXT.
  984. END.
  985. iAnzKunde = 0.
  986. DYNAMIC-FUNCTION('KundenSchluss':U, cTitel ) NO-ERROR.
  987. PUT CONTROL '£' CHR(10)
  988. '£' CHR(10).
  989. END.
  990. DYNAMIC-FUNCTION('GesamtTotal':U ) NO-ERROR.
  991. END PROCEDURE.
  992. /* _UIB-CODE-BLOCK-END */
  993. &ANALYZE-RESUME
  994. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_HERSTELLER gDebitorumsatz
  995. PROCEDURE AUSGABE_HERSTELLER :
  996. /*------------------------------------------------------------------------------
  997. Purpose:
  998. Parameters: <none>
  999. Notes:
  1000. ------------------------------------------------------------------------------*/
  1001. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1002. DEFINE VARIABLE cTitel AS CHARACTER NO-UNDO.
  1003. DEFINE VARIABLE cHerst AS CHARACTER NO-UNDO.
  1004. DEFINE VARIABLE cWgr AS CHARACTER NO-UNDO.
  1005. DEFINE VARIABLE cPgr AS CHARACTER NO-UNDO.
  1006. DEFINE VARIABLE iWert AS INTEGER NO-UNDO.
  1007. FOR EACH btUmsatz USE-INDEX tUmsatz-k1 NO-LOCK
  1008. WHERE btUmsatz.RecArt = 'A'
  1009. BREAK BY btUmsatz.Herst
  1010. BY btUmsatz.Wgr
  1011. BY btUmsatz.Pgr
  1012. BY btUmsatz.Artnr
  1013. BY btUmsatz.Inhalt
  1014. BY btUmsatz.Jahr :
  1015. IF FIRST-OF ( btUmsatz.Herst ) THEN
  1016. DO:
  1017. RUN FIND_HERSTELLER ( btUmsatz.Herst, OUTPUT cString ).
  1018. iWert = INTEGER(ENTRY(1, cString, CHR(01))) NO-ERROR.
  1019. ENTRY(1, cString, CHR(01)) = STRING(iWert,'999').
  1020. cHerst = REPLACE(cString, CHR(01), ' ').
  1021. PUT CONTROL STRING(btUmsatz.Herst,'999 ')
  1022. (IF cString = '' THEN '' ELSE ENTRY(2, cString, CHR(01))) CHR(10)
  1023. '£' CHR(10).
  1024. END.
  1025. IF FIRST-OF ( btUmsatz.Wgr ) THEN
  1026. DO:
  1027. cWgr = DYNAMIC-FUNCTION('WarengruppenStart':U, btUmsatz.Wgr) NO-ERROR.
  1028. IF cWgr <> '' THEN PUT CONTROL cWgr CHR(10).
  1029. END.
  1030. IF FIRST-OF ( btUmsatz.Pgr ) THEN
  1031. DO:
  1032. cPgr = DYNAMIC-FUNCTION('ProduktegruppenStart':U, btUmsatz.Wgr, btUmsatz.Pgr) NO-ERROR.
  1033. IF cPgr <> '' THEN PUT CONTROL '£' cPgr CHR(10).
  1034. END.
  1035. cZeile = ''.
  1036. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1
  1037. WHERE KGebinde.Firma = Firma
  1038. AND KGebinde.Geb_Cd = btUmsatz.KGeb_Cd NO-ERROR.
  1039. FIND Artst NO-LOCK USE-INDEX Artst-k1
  1040. WHERE Artst.Firma = Firma
  1041. AND Artst.Artnr = btUmsatz.Artnr
  1042. AND Artst.Inhalt = btUmsatz.Inhalt
  1043. AND Artst.Jahr = btUmsatz.Jahr NO-ERROR.
  1044. FIND FIRST Artbez NO-LOCK USE-INDEX Artbez-k1
  1045. WHERE Artbez.Firma = Firma
  1046. AND Artbez.Artnr = btUmsatz.Artnr
  1047. AND Artbez.Inhalt = btUmsatz.Inhalt
  1048. AND Artbez.Jahr = btUmsatz.Jahr NO-ERROR.
  1049. cZeile = cZeile + '££'
  1050. + STRING(btUmsatz.Artnr,'999999').
  1051. IF AVAILABLE Artbez THEN cZeile = cZeile + '£' + Artbez.Bez1.
  1052. ELSE cZeile = cZeile + '£' + Artst.Bez.
  1053. IF AVAILABLE KGebinde THEN cZeile = cZeile + '£' + KGebinde.KBez.
  1054. ELSE cZeile = cZeile + '£ ? ' + STRING(btUmsatz.Inhalt,'9999') + ' ?'.
  1055. cZeile = cZeile + '£'.
  1056. IF btUmsatz.Jahr > 10 THEN cZeile = cZeile + STRING(btUmsatz.Jahr,'9999 ').
  1057. IF btUmsatz.Alk% > 0 THEN cZeile = cZeile + STRING(btUmsatz.Alk%,'z9.99%').
  1058. Ma_Vj = 0.
  1059. Ma_Lf = 0.
  1060. IF btUmsatz.Ep_Vj <> 0 AND
  1061. btUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (btUmsatz.Ep_Vj * 100 / btUmsatz.Vp_Vj).
  1062. IF btUmsatz.Ep_Lf <> 0 AND
  1063. btUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (btUmsatz.Ep_Lf * 100 / btUmsatz.Vp_Lf).
  1064. IF Ma_Vj < 999.99- THEN Ma_Vj = 999.99-.
  1065. IF Ma_Vj > 999.99 THEN Ma_Vj = 999.99.
  1066. IF Ma_Lf < 999.99- THEN Ma_Lf = 999.99-.
  1067. IF Ma_Lf > 999.99 THEN Ma_Lf = 999.99.
  1068. IF T_HL THEN
  1069. DO:
  1070. ASSIGN
  1071. btUmsatz.Li_Lf = btUmsatz.Li_Lf / 100
  1072. btUmsatz.Li_Vj = btUmsatz.Li_Vj / 100
  1073. btUmsatz.Gr_Li_Lf = btUmsatz.Gr_Li_Lf / 100
  1074. btUmsatz.Gr_Li_Vj = btUmsatz.Gr_Li_Vj / 100.
  1075. END.
  1076. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Me_Lf,'->>>>>>>>>'))
  1077. + '£'.
  1078. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>9.99')).
  1079. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>>>>>')).
  1080. cZeile = cZeile + '£'
  1081. + TRIM(STRING(btUmsatz.Ep_Lf,'->>>>>>>>>')) + '£'
  1082. + TRIM(STRING(btUmsatz.Vp_Lf,'->>>>>>>>>')) + '£'
  1083. + TRIM(STRING(Ma_Lf ,'->>9.99')).
  1084. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Me_Vj,'->>>>>>>>>'))
  1085. + '£'.
  1086. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>9.99')).
  1087. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>>>>>')).
  1088. cZeile = cZeile + '£'
  1089. + TRIM(STRING(btUmsatz.Ep_Vj,'->>>>>>>>>')) + '£'
  1090. + TRIM(STRING(btUmsatz.Vp_Vj,'->>>>>>>>>')) + '£'
  1091. + TRIM(STRING(Ma_Vj ,'->>9.99')).
  1092. cZeile = REPLACE(cZeile, '£0.00£', '££').
  1093. PUT CONTROL cZeile CHR(10).
  1094. cZeile = ''.
  1095. DO WHILE TRUE.
  1096. IF AVAILABLE Artbez AND
  1097. Artbez.Bez2 <> '' THEN cZeile = '£££' + Artbez.Bez2.
  1098. IF NOT T_Gratis THEN LEAVE.
  1099. IF btUmsatz.Gr_Me_Lf = 0 AND
  1100. btUmsatz.Gr_Me_VJ = 0 THEN LEAVE.
  1101. IF cZeile = '' THEN cZeile = '£££'.
  1102. cZeile = cZeile + '£GRATIS£'.
  1103. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Me_Lf,'->>>>>>>>>'))
  1104. + '£'.
  1105. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>9.99')).
  1106. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>>>>>')).
  1107. cZeile = cZeile + '£'
  1108. + TRIM(STRING(btUmsatz.Gr_Ep_Lf,'->>>>>>>>>')) + '£'
  1109. + TRIM(STRING(btUmsatz.Gr_Vp_Lf,'->>>>>>>>>')) + '£'.
  1110. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Me_Vj,'->>>>>>>>>'))
  1111. + '£'.
  1112. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>9.99')).
  1113. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>>>>>')).
  1114. cZeile = cZeile + '£'
  1115. + TRIM(STRING(btUmsatz.Gr_Ep_Vj,'->>>>>>>>>')) + '£'
  1116. + TRIM(STRING(btUmsatz.Gr_Vp_Vj,'->>>>>>>>>')).
  1117. LEAVE.
  1118. END.
  1119. IF cZeile <> '' THEN
  1120. DO:
  1121. cZeile = REPLACE(cZeile, '£0.00£', '££').
  1122. PUT CONTROL cZeile CHR(10).
  1123. cZeile = ''.
  1124. END.
  1125. ASSIGN
  1126. iAnzArt = iAnzArt + 1
  1127. iAnzPgr = iAnzPgr + 1
  1128. iAnzWgr = iAnzWgr + 1
  1129. iAnzHer = iAnzHer + 1.
  1130. IF NOT LAST-OF ( btUmsatz.Pgr ) THEN NEXT.
  1131. IF iAnzArt > 1 AND
  1132. cPgr <> '' THEN DYNAMIC-FUNCTION('ProduktegruppenSchluss':U, cPgr) NO-ERROR.
  1133. iAnzArt = 0.
  1134. /* IF LAST-OF ( btUmsatz.Wgr ) AND */
  1135. /* iAnzPgr > 1 AND */
  1136. /* cPgr <> '' THEN DYNAMIC-FUNCTION('ProduktegruppenSchluss':U, cPgr) NO-ERROR.*/
  1137. IF NOT LAST-OF ( btUmsatz.Wgr ) THEN NEXT.
  1138. DYNAMIC-FUNCTION('WarengruppenSchluss':U, cWgr) NO-ERROR.
  1139. iAnzPgr = 0.
  1140. IF NOT LAST-OF ( btUmsatz.Herst ) THEN
  1141. DO:
  1142. PUT CONTROL '£' CHR(10).
  1143. NEXT.
  1144. END.
  1145. DYNAMIC-FUNCTION('HerstellerHerstSchluss':U, cHerst ) NO-ERROR.
  1146. PUT CONTROL '£' CHR(10)
  1147. '£' CHR(10).
  1148. END.
  1149. DYNAMIC-FUNCTION('GesamtTotal':U ) NO-ERROR.
  1150. END PROCEDURE.
  1151. /* _UIB-CODE-BLOCK-END */
  1152. &ANALYZE-RESUME
  1153. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_TOTALE gDebitorumsatz
  1154. PROCEDURE AUSGABE_TOTALE :
  1155. /*------------------------------------------------------------------------------*/
  1156. /* Purpose: */
  1157. /* Parameters: <none> */
  1158. /* Notes: */
  1159. /*------------------------------------------------------------------------------*/
  1160. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1161. DEFINE VARIABLE cTitel AS CHARACTER NO-UNDO.
  1162. DEFINE VARIABLE cWgr AS CHARACTER NO-UNDO.
  1163. DEFINE VARIABLE cPgr AS CHARACTER NO-UNDO.
  1164. DEFINE VARIABLE nLiLf AS DECIMAL NO-UNDO.
  1165. DEFINE VARIABLE nLiVj AS DECIMAL NO-UNDO.
  1166. DEFINE VARIABLE cRecArt AS CHARACTER NO-UNDO.
  1167. DEFINE BUFFER bArtst FOR Artst.
  1168. DEFINE BUFFER bArtbez FOR Artbez.
  1169. IF T_ProdTot THEN cRecArt = 'B'.
  1170. ELSE cRecArt = 'C'.
  1171. ASSIGN
  1172. iAnzKunde = 0
  1173. iAnzWgr = 0
  1174. iAnzPgr = 0
  1175. iAnzArt = 0.
  1176. /* Warengruppentotale (inlusive Artikeltotale) */
  1177. PUT CONTROL 'Warengruppen Gesamttotale' CHR(10).
  1178. lWgrTotale = TRUE.
  1179. FOR EACH btUmsatz
  1180. WHERE btUmsatz.RecArt = 'G'
  1181. AND btUmsatz.Knr = 999999
  1182. BREAK BY btUmsatz.Knr
  1183. BY btUmsatz.Wgr
  1184. BY btUmsatz.Artnr
  1185. BY btUmsatz.Inhalt
  1186. BY btUmsatz.Jahr
  1187. :
  1188. IF FIRST-OF ( btUmsatz.Wgr ) THEN
  1189. DO:
  1190. iAnzKunde = iAnzKunde + 1.
  1191. lTotale = FALSE.
  1192. cTitel = DYNAMIC-FUNCTION ('WarengruppenStart':U, btUmsatz.Wgr) NO-ERROR.
  1193. cWgr = cTitel.
  1194. PUT CONTROL '£' CHR(10)
  1195. '£'
  1196. cTitel CHR(10).
  1197. lTotale = TRUE.
  1198. END.
  1199. IF LAST-OF ( btUmsatz.Wgr ) THEN
  1200. DO:
  1201. cTitel = DYNAMIC-FUNCTION ('WarengruppenSchluss':U, cWgr) NO-ERROR.
  1202. NEXT.
  1203. END.
  1204. FIND FIRST bArtst NO-LOCK
  1205. WHERE bArtst.Firma = Firma
  1206. AND bArtst.Artnr = btUmsatz.Artnr
  1207. AND bArtst.Inhalt = btUmsatz.Inhalt
  1208. AND bArtst.Jahr = btUmsatz.Jahr.
  1209. FIND FIRST bArtBez OF bArtst NO-LOCK.
  1210. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1
  1211. WHERE KGebinde.Firma = Firma
  1212. AND KGebinde.Geb_Cd = btUmsatz.KGeb_Cd NO-ERROR.
  1213. PUT CONTROL '££'
  1214. STRING(btUmsatz.Artnr ,'999999') '£'
  1215. bArtbez.Bez1 '£'.
  1216. IF AVAILABLE KGebinde THEN PUT CONTROL KGebinde.KBez.
  1217. PUT CONTROL '£'.
  1218. IF btUmsatz.Jahr > 10 THEN PUT CONTROL STRING(btUmsatz.Jahr,'9999 ').
  1219. IF btUmsatz.Alk% > 0 THEN PUT CONTROL STRING(btUmsatz.Alk%,'z9.99%').
  1220. PUT CONTROL '£'.
  1221. iAnzArt = iAnzArt + 1.
  1222. Ma_Vj = 0.
  1223. Ma_Lf = 0.
  1224. IF btUmsatz.Ep_Vj <> 0 AND
  1225. btUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (btUmsatz.Ep_Vj * 100 / btUmsatz.Vp_Vj).
  1226. IF btUmsatz.Ep_Lf <> 0 AND
  1227. btUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (btUmsatz.Ep_Lf * 100 / btUmsatz.Vp_Lf).
  1228. IF Ma_Vj < 999.99- THEN Ma_Vj = 999.99-.
  1229. IF Ma_Vj > 999.99 THEN Ma_Vj = 999.99.
  1230. IF Ma_Lf < 999.99- THEN Ma_Lf = 999.99-.
  1231. IF Ma_Lf > 999.99 THEN Ma_Lf = 999.99.
  1232. IF T_HL THEN
  1233. DO:
  1234. ASSIGN
  1235. btUmsatz.Li_Lf = btUmsatz.Li_Lf / 100
  1236. btUmsatz.Li_Vj = btUmsatz.Li_Vj / 100
  1237. btUmsatz.Gr_Li_Lf = btUmsatz.Gr_Li_Lf / 100
  1238. btUmsatz.Gr_Li_Vj = btUmsatz.Gr_Li_Vj / 100.
  1239. END.
  1240. cZeile = ''.
  1241. cZeile = TRIM(STRING(btUmsatz.Me_Lf,'->>>>>>>>>'))
  1242. + '£'.
  1243. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>9.99')).
  1244. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>>>>>')).
  1245. cZeile = cZeile + '£'
  1246. + TRIM(STRING(btUmsatz.Ep_Lf,'->>>>>>>>>')) + '£'
  1247. + TRIM(STRING(btUmsatz.Vp_Lf,'->>>>>>>>>')) + '£'
  1248. + TRIM(STRING(Ma_Lf ,'->>9.99')).
  1249. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Me_Vj,'->>>>>>>>>'))
  1250. + '£'.
  1251. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>9.99')).
  1252. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>>>>>')).
  1253. cZeile = cZeile + '£'
  1254. + TRIM(STRING(btUmsatz.Ep_Vj,'->>>>>>>>>')) + '£'
  1255. + TRIM(STRING(btUmsatz.Vp_Vj,'->>>>>>>>>')) + '£'
  1256. + TRIM(STRING(Ma_Vj ,'->>9.99')).
  1257. cZeile = REPLACE(cZeile, '£0.00£', '££').
  1258. PUT CONTROL cZeile CHR(10).
  1259. cZeile = ''.
  1260. IF T_Gratis THEN
  1261. DO:
  1262. IF btUmsatz.Gr_Me_Lf <> 0 OR
  1263. btUmsatz.Gr_Me_VJ <> 0 THEN
  1264. DO:
  1265. cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(btUmsatz.Gr_Me_Lf,'->>>>>>>>>'))
  1266. + '£'.
  1267. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>9.99')).
  1268. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>>>>>')).
  1269. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Ep_Lf,'->>>>>>>>>'))
  1270. + '£' + TRIM(STRING(btUmsatz.Gr_Vp_Lf,'->>>>>>>>>'))
  1271. + '£'.
  1272. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Me_Vj,'->>>>>>>>>'))
  1273. + '£'.
  1274. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>9.99')).
  1275. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>>>>>')).
  1276. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Ep_Vj,'->>>>>>>>>'))
  1277. + '£' + TRIM(STRING(btUmsatz.Gr_Vp_Vj,'->>>>>>>>>'))
  1278. + '£'.
  1279. cZeile = REPLACE(cZeile, '£0.00£', '££').
  1280. PUT CONTROL cZeile CHR(10).
  1281. cZeile = ''.
  1282. END.
  1283. END.
  1284. IF btUmsatz.Artnr > 0 AND
  1285. bArtbez.Bez2 <> '' THEN PUT CONTROL '£££' bArtbez.Bez2 CHR(10).
  1286. cZeile = ''.
  1287. END.
  1288. lWgrTotale = FALSE.
  1289. IF T_NurWgr THEN
  1290. DO:
  1291. PUT CONTROL '£' CHR(10).
  1292. DYNAMIC-FUNCTION('GesamtTotal':U) NO-ERROR.
  1293. RETURN.
  1294. END.
  1295. ASSIGN
  1296. iAnzKunde = 0
  1297. iAnzWgr = 0
  1298. iAnzPgr = 0
  1299. iAnzArt = 0.
  1300. PUT CONTROL '£' CHR(10)
  1301. '£' CHR(10)
  1302. '£' CHR(10).
  1303. /* Warengruppen-, Produktegruppen-Totale pro Kunde */
  1304. FOR EACH btUmsatz
  1305. WHERE btUmsatz.RecArt = cRecArt
  1306. AND btUmsatz.Artnr = 9999999
  1307. BREAK BY btUmsatz.Knr
  1308. BY btUmsatz.Wgr
  1309. BY btUmsatz.Pgr
  1310. :
  1311. IF FIRST-OF ( btUmsatz.Knr ) THEN
  1312. DO:
  1313. iAnzKunde = iAnzKunde + 1.
  1314. cTitel = (IF btUmsatz.Knr <> 999999 THEN DYNAMIC-FUNCTION('getAdressAnzeige':U, btUmsatz.Knr) ELSE 'Warengruppen Gesamttotale').
  1315. PUT CONTROL STRING(btUmsatz.Knr,'999999 ')
  1316. cTitel CHR(10).
  1317. IF cRecArt = 'B' THEN PUT CONTROL '£' CHR(10).
  1318. iAnzWgr = 0.
  1319. END.
  1320. IF FIRST-OF ( btUmsatz.Wgr ) THEN
  1321. DO:
  1322. cWgr = DYNAMIC-FUNCTION('WarengruppenStart':U, btUmsatz.Wgr) NO-ERROR.
  1323. IF cWgr <> '' THEN PUT CONTROL '£' cWgr.
  1324. IF cRecArt = 'B' THEN PUT CONTROL CHR(10).
  1325. ELSE PUT CONTROL '£££'.
  1326. iAnzPgr = 0.
  1327. END.
  1328. IF FIRST-OF ( btUmsatz.Pgr ) AND
  1329. cRecArt = 'B' THEN
  1330. DO:
  1331. cPgr = DYNAMIC-FUNCTION('ProduktegruppenStart':U, btUmsatz.Wgr, btUmsatz.Pgr) NO-ERROR.
  1332. IF cPgr <> '' THEN PUT CONTROL '££' cPgr '££££'.
  1333. ELSE PUT CONTROL '££££££'.
  1334. END.
  1335. iAnzWgr = iAnzWgr + 1.
  1336. iAnzPgr = iAnzPgr + 1.
  1337. Ma_Vj = 0.
  1338. Ma_Lf = 0.
  1339. IF btUmsatz.Ep_Vj <> 0 AND
  1340. btUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (btUmsatz.Ep_Vj * 100 / btUmsatz.Vp_Vj).
  1341. IF btUmsatz.Ep_Lf <> 0 AND
  1342. btUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (btUmsatz.Ep_Lf * 100 / btUmsatz.Vp_Lf).
  1343. IF Ma_Vj < 999.99- THEN Ma_Vj = 999.99-.
  1344. IF Ma_Vj > 999.99 THEN Ma_Vj = 999.99.
  1345. IF Ma_Lf < 999.99- THEN Ma_Lf = 999.99-.
  1346. IF Ma_Lf > 999.99 THEN Ma_Lf = 999.99.
  1347. IF T_HL THEN
  1348. DO:
  1349. ASSIGN
  1350. btUmsatz.Li_Lf = btUmsatz.Li_Lf / 100
  1351. btUmsatz.Li_Vj = btUmsatz.Li_Vj / 100
  1352. btUmsatz.Gr_Li_Lf = btUmsatz.Gr_Li_Lf / 100
  1353. btUmsatz.Gr_Li_Vj = btUmsatz.Gr_Li_Vj / 100.
  1354. END.
  1355. cZeile = ''.
  1356. cZeile = TRIM(STRING(btUmsatz.Me_Lf,'->>>>>>>>>'))
  1357. + '£'.
  1358. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>9.99')).
  1359. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>>>>>')).
  1360. cZeile = cZeile + '£'
  1361. + TRIM(STRING(btUmsatz.Ep_Lf,'->>>>>>>>>')) + '£'
  1362. + TRIM(STRING(btUmsatz.Vp_Lf,'->>>>>>>>>')) + '£'
  1363. + TRIM(STRING(Ma_Lf ,'->>9.99')).
  1364. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Me_Vj,'->>>>>>>>>'))
  1365. + '£'.
  1366. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>9.99')).
  1367. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>>>>>')).
  1368. cZeile = cZeile + '£'
  1369. + TRIM(STRING(btUmsatz.Ep_Vj,'->>>>>>>>>')) + '£'
  1370. + TRIM(STRING(btUmsatz.Vp_Vj,'->>>>>>>>>')) + '£'
  1371. + TRIM(STRING(Ma_Vj ,'->>9.99')).
  1372. cZeile = REPLACE(cZeile, '£0.00£', '££').
  1373. PUT CONTROL cZeile CHR(10).
  1374. cZeile = ''.
  1375. IF T_Gratis THEN
  1376. DO:
  1377. IF btUmsatz.Gr_Me_Lf <> 0 OR
  1378. btUmsatz.Gr_Me_VJ <> 0 THEN
  1379. DO:
  1380. cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(btUmsatz.Gr_Me_Lf,'->>>>>>>>>'))
  1381. + '£'.
  1382. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>9.99')).
  1383. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>>>>>')).
  1384. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Ep_Lf,'->>>>>>>>>'))
  1385. + '£' + TRIM(STRING(btUmsatz.Gr_Vp_Lf,'->>>>>>>>>'))
  1386. + '£'.
  1387. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Me_Vj,'->>>>>>>>>'))
  1388. + '£'.
  1389. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>9.99')).
  1390. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>>>>>')).
  1391. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Ep_Vj,'->>>>>>>>>'))
  1392. + '£' + TRIM(STRING(btUmsatz.Gr_Vp_Vj,'->>>>>>>>>'))
  1393. + '£'.
  1394. cZeile = REPLACE(cZeile, '£0.00£', '££').
  1395. PUT CONTROL cZeile CHR(10).
  1396. cZeile = ''.
  1397. END.
  1398. END.
  1399. cZeile = ''.
  1400. IF LAST-OF ( btUmsatz.Wgr ) AND
  1401. iAnzWgr > 1 AND
  1402. cRecArt = 'B' THEN DYNAMIC-FUNCTION('WarengruppenSchluss':U, cWgr) NO-ERROR.
  1403. IF LAST-OF ( btUmsatz.Knr ) THEN DYNAMIC-FUNCTION('KundenSchluss':U, cTitel) NO-ERROR.
  1404. END.
  1405. DYNAMIC-FUNCTION('GesamtTotal':U) NO-ERROR.
  1406. PUT CONTROL '£' CHR(10)
  1407. '£' CHR(10)
  1408. 'Kundentotale' CHR(10).
  1409. /* Kundentotale */
  1410. cRecArt = 'E'.
  1411. FOR EACH btUmsatz
  1412. WHERE btUmsatz.RecArt = cRecArt
  1413. AND btUmsatz.Wgr = 9999
  1414. BREAK BY btUmsatz.Knr
  1415. BY btUmsatz.Wgr
  1416. :
  1417. iAnzKunde = iAnzKunde + 1.
  1418. cTitel = DYNAMIC-FUNCTION('getAdressAnzeige':U, btUmsatz.Knr) NO-ERROR.
  1419. PUT CONTROL '££'
  1420. STRING(btUmsatz.Knr,'999999')
  1421. '£'
  1422. cTitel
  1423. '£££'.
  1424. Ma_Vj = 0.
  1425. Ma_Lf = 0.
  1426. IF btUmsatz.Ep_Vj <> 0 AND
  1427. btUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (btUmsatz.Ep_Vj * 100 / btUmsatz.Vp_Vj).
  1428. IF btUmsatz.Ep_Lf <> 0 AND
  1429. btUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (btUmsatz.Ep_Lf * 100 / btUmsatz.Vp_Lf).
  1430. IF Ma_Vj < 999.99- THEN Ma_Vj = 999.99-.
  1431. IF Ma_Vj > 999.99 THEN Ma_Vj = 999.99.
  1432. IF Ma_Lf < 999.99- THEN Ma_Lf = 999.99-.
  1433. IF Ma_Lf > 999.99 THEN Ma_Lf = 999.99.
  1434. IF T_HL THEN
  1435. DO:
  1436. ASSIGN
  1437. btUmsatz.Li_Lf = btUmsatz.Li_Lf / 100
  1438. btUmsatz.Li_Vj = btUmsatz.Li_Vj / 100
  1439. btUmsatz.Gr_Li_Lf = btUmsatz.Gr_Li_Lf / 100
  1440. btUmsatz.Gr_Li_Vj = btUmsatz.Gr_Li_Vj / 100.
  1441. END.
  1442. cZeile = ''.
  1443. cZeile = TRIM(STRING(btUmsatz.Me_Lf,'->>>>>>>>>'))
  1444. + '£'.
  1445. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>9.99')).
  1446. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>>>>>')).
  1447. cZeile = cZeile + '£'
  1448. + TRIM(STRING(btUmsatz.Ep_Lf,'->>>>>>>>>')) + '£'
  1449. + TRIM(STRING(btUmsatz.Vp_Lf,'->>>>>>>>>')) + '£'
  1450. + TRIM(STRING(Ma_Lf ,'->>9.99')).
  1451. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Me_Vj,'->>>>>>>>>'))
  1452. + '£'.
  1453. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>9.99')).
  1454. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>>>>>')).
  1455. cZeile = cZeile + '£'
  1456. + TRIM(STRING(btUmsatz.Ep_Vj,'->>>>>>>>>')) + '£'
  1457. + TRIM(STRING(btUmsatz.Vp_Vj,'->>>>>>>>>')) + '£'
  1458. + TRIM(STRING(Ma_Vj ,'->>9.99')).
  1459. cZeile = REPLACE(cZeile, '£0.00£', '££').
  1460. PUT CONTROL cZeile CHR(10).
  1461. cZeile = ''.
  1462. IF T_Gratis THEN
  1463. DO:
  1464. IF btUmsatz.Gr_Me_Lf <> 0 OR
  1465. btUmsatz.Gr_Me_VJ <> 0 THEN
  1466. DO:
  1467. cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(btUmsatz.Gr_Me_Lf,'->>>>>>>>>'))
  1468. + '£'.
  1469. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>9.99')).
  1470. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>>>>>')).
  1471. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Ep_Lf,'->>>>>>>>>'))
  1472. + '£' + TRIM(STRING(btUmsatz.Gr_Vp_Lf,'->>>>>>>>>'))
  1473. + '£'.
  1474. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Me_Vj,'->>>>>>>>>'))
  1475. + '£'.
  1476. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>9.99')).
  1477. ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>>>>>')).
  1478. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Ep_Vj,'->>>>>>>>>'))
  1479. + '£' + TRIM(STRING(btUmsatz.Gr_Vp_Vj,'->>>>>>>>>'))
  1480. + '£'.
  1481. cZeile = REPLACE(cZeile, '£0.00£', '££').
  1482. PUT CONTROL cZeile CHR(10).
  1483. cZeile = ''.
  1484. END.
  1485. END.
  1486. cZeile = ''.
  1487. END.
  1488. DYNAMIC-FUNCTION('GesamtTotal':U) NO-ERROR.
  1489. END PROCEDURE.
  1490. /* _UIB-CODE-BLOCK-END */
  1491. &ANALYZE-RESUME
  1492. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_VERBAND gDebitorumsatz
  1493. PROCEDURE AUSGABE_VERBAND :
  1494. /*------------------------------------------------------------------------------
  1495. Purpose:
  1496. Parameters: <none>
  1497. Notes:
  1498. ------------------------------------------------------------------------------*/
  1499. DEFINE VARIABLE hvUmsatz AS HANDLE NO-UNDO.
  1500. DEFINE VARIABLE htUmsatz AS HANDLE NO-UNDO.
  1501. ASSIGN
  1502. htUmsatz = TEMP-TABLE tUmsatz:DEFAULT-BUFFER-HANDLE
  1503. hvUmsatz = TEMP-TABLE vUmsatz:DEFAULT-BUFFER-HANDLE.
  1504. EMPTY TEMP-TABLE vUmsatz.
  1505. hvUmsatz:COPY-TEMP-TABLE(htUmsatz).
  1506. EMPTY TEMP-TABLE tUmsatz.
  1507. FOR EACH vUmsatz NO-LOCK
  1508. WHERE vUmsatz.RecArt >= 'K':
  1509. CREATE tUmsatz.
  1510. BUFFER-COPY vUmsatz
  1511. EXCEPT RecArt
  1512. TO tUmsatz.
  1513. CASE vUmsatz.RecArt:
  1514. WHEN 'K' THEN
  1515. tUmsatz.RecArt = 'A'.
  1516. WHEN 'L' THEN
  1517. tUmsatz.RecArt = 'B'.
  1518. WHEN 'M' THEN
  1519. tUmsatz.RecArt = 'C'.
  1520. WHEN 'N' THEN
  1521. tUmsatz.RecArt = 'D'.
  1522. WHEN 'O' THEN
  1523. tUmsatz.RecArt = 'E'.
  1524. WHEN 'P' THEN
  1525. tUmsatz.RecArt = 'F'.
  1526. WHEN 'Q' THEN
  1527. tUmsatz.RecArt = 'G'.
  1528. END CASE.
  1529. END.
  1530. PUT CONTROL '£' CHR(10)
  1531. '£' CHR(10)
  1532. 'Verbandstotale' CHR(10)
  1533. '£' CHR(10).
  1534. RUN AUSGABE ( 3 ).
  1535. END PROCEDURE.
  1536. /* _UIB-CODE-BLOCK-END */
  1537. &ANALYZE-RESUME
  1538. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BEREINIGEN gDebitorumsatz
  1539. PROCEDURE BEREINIGEN :
  1540. /*------------------------------------------------------------------------------
  1541. Purpose:
  1542. Parameters: <none>
  1543. Notes:
  1544. ------------------------------------------------------------------------------*/
  1545. DEFINE INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  1546. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1547. DEFINE VARIABLE i AS INTEGER NO-UNDO.
  1548. cString = ''.
  1549. DO i = 1 TO LENGTH(ipHandle:SCREEN-VALUE):
  1550. IF SUBSTRING(ipHandle:SCREEN-VALUE,i,1) < '0' OR
  1551. SUBSTRING(ipHandle:SCREEN-VALUE,i,1) > '9' THEN
  1552. DO:
  1553. SUBSTRING(ipHandle:SCREEN-VALUE,i) = ','.
  1554. END.
  1555. END.
  1556. DO i = 1 TO NUM-ENTRIES(ipHandle:SCREEN-VALUE, ','):
  1557. IF cString <> '' THEN cString = cString + ','.
  1558. cString = cString
  1559. + STRING(INTEGER(ENTRY(i, ipHandle:SCREEN-VALUE, ',')),'999').
  1560. END.
  1561. ipHandle:SCREEN-VALUE = cString.
  1562. RETURN.
  1563. END PROCEDURE.
  1564. /* _UIB-CODE-BLOCK-END */
  1565. &ANALYZE-RESUME
  1566. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_tUmsatz gDebitorumsatz
  1567. PROCEDURE CREATE_tUmsatz :
  1568. /*------------------------------------------------------------------------------
  1569. Purpose:
  1570. Parameters: <none>
  1571. Notes:
  1572. ------------------------------------------------------------------------------*/
  1573. DEFINE INPUT PARAMETER ipHerk AS INTEGER NO-UNDO.
  1574. DEFINE INPUT PARAMETER ipZeit AS CHARACTER NO-UNDO.
  1575. DEFINE INPUT PARAMETER ipRecArt AS CHARACTER NO-UNDO.
  1576. DEFINE VARIABLE iiKnr AS INTEGER INIT 9999999 NO-UNDO.
  1577. DEFINE VARIABLE iiHerst AS INTEGER INIT 9999999 NO-UNDO.
  1578. DEFINE VARIABLE iWgr AS INTEGER INIT 9999 NO-UNDO.
  1579. DEFINE VARIABLE iPgr AS INTEGER INIT 9999 NO-UNDO.
  1580. DEFINE VARIABLE iArtnr AS INTEGER INIT 9999999 NO-UNDO.
  1581. DEFINE VARIABLE iInhalt AS INTEGER INIT 9999 NO-UNDO.
  1582. DEFINE VARIABLE iJahr AS INTEGER INIT 9999 NO-UNDO.
  1583. CASE ipRecArt:
  1584. WHEN 'A' THEN
  1585. DO: /* Artikeltotal */
  1586. ASSIGN
  1587. iiKnr = (IF T_Hersteller THEN iHerst ELSE UmsKnr)
  1588. iiHerst = iHerst
  1589. iWgr = bArtst.Wg_Grp
  1590. iArtnr = bArtst.Artnr
  1591. iInhalt = bArtst.Inhalt
  1592. iJahr = bArtst.Jahr.
  1593. IF T_ProdTot THEN iPgr = bArtst.Prod_Grp.
  1594. END.
  1595. WHEN 'B' THEN
  1596. DO: /* Produktetotal */
  1597. ASSIGN
  1598. iiKnr = (IF T_Hersteller THEN iHerst ELSE UmsKnr)
  1599. iiHerst = iHerst
  1600. iWgr = bArtst.Wg_Grp
  1601. iPgr = bArtst.Prod_Grp.
  1602. END.
  1603. WHEN 'C' THEN
  1604. DO: /* Warengruppentotal */
  1605. ASSIGN
  1606. iiKnr = (IF T_Hersteller THEN iHerst ELSE UmsKnr)
  1607. iiHerst = iHerst
  1608. iWgr = bArtst.Wg_Grp.
  1609. END.
  1610. WHEN 'D' THEN
  1611. DO: /* Herstellertotal */
  1612. ASSIGN
  1613. iiKnr = (IF T_Hersteller THEN iHerst ELSE UmsKnr)
  1614. iiHerst = iHerst.
  1615. END.
  1616. WHEN 'E' THEN
  1617. DO: /* Kundentotal */
  1618. ASSIGN
  1619. iiKnr = (IF T_Hersteller THEN iHerst ELSE UmsKnr).
  1620. END.
  1621. WHEN 'F' THEN
  1622. DO: /* Gesamttotal */
  1623. END.
  1624. WHEN 'G' THEN
  1625. DO: /* Warengruppentotale */
  1626. ASSIGN
  1627. iiKnr = 999999
  1628. iWgr = bArtst.Wg_Grp.
  1629. RUN WRITE_tUmsatz ( ipHerk ,
  1630. ipZeit ,
  1631. ipRecArt,
  1632. iiKnr ,
  1633. iiHerst ,
  1634. iWgr ,
  1635. iPgr ,
  1636. iArtnr ,
  1637. iInhalt ,
  1638. iJahr
  1639. ).
  1640. ASSIGN
  1641. iArtnr = bArtst.Artnr
  1642. iInhalt = bArtst.Inhalt
  1643. iJahr = bArtst.Jahr.
  1644. END.
  1645. /* VERBANDSGRUPPEN */
  1646. WHEN 'K' THEN
  1647. DO: /* Artikeltotal */
  1648. ASSIGN
  1649. iiKnr = bDebst.Verband_Grp
  1650. iiHerst = iHerst
  1651. iWgr = bArtst.Wg_Grp
  1652. iArtnr = bArtst.Artnr
  1653. iInhalt = bArtst.Inhalt
  1654. iJahr = bArtst.Jahr.
  1655. IF T_ProdTot THEN iPgr = bArtst.Prod_Grp.
  1656. END.
  1657. WHEN 'L' THEN
  1658. DO: /* Produktetotal */
  1659. ASSIGN
  1660. iiKnr = bDebst.Verband_Grp
  1661. iiHerst = iHerst
  1662. iWgr = bArtst.Wg_Grp
  1663. iPgr = bArtst.Prod_Grp.
  1664. END.
  1665. WHEN 'M' THEN
  1666. DO: /* Warengruppentotal */
  1667. ASSIGN
  1668. iiKnr = bDebst.Verband_Grp
  1669. iiHerst = iHerst
  1670. iWgr = bArtst.Wg_Grp.
  1671. END.
  1672. WHEN 'N' THEN
  1673. DO: /* Herstellertotal */
  1674. ASSIGN
  1675. iiKnr = bDebst.Verband_Grp
  1676. iiHerst = iHerst.
  1677. END.
  1678. WHEN 'O' THEN
  1679. DO: /* Verbandstotal */
  1680. ASSIGN
  1681. iiKnr = bDebst.Verband_Grp.
  1682. END.
  1683. WHEN 'P' THEN
  1684. DO: /* Gesamttotal */
  1685. END.
  1686. WHEN 'Q' THEN
  1687. DO: /* Warengruppentotale */
  1688. ASSIGN
  1689. iiKnr = 999999
  1690. iWgr = bArtst.Wg_Grp.
  1691. RUN WRITE_tUmsatz ( ipHerk ,
  1692. ipZeit ,
  1693. ipRecArt,
  1694. iiKnr ,
  1695. iiHerst ,
  1696. iWgr ,
  1697. iPgr ,
  1698. iArtnr ,
  1699. iInhalt ,
  1700. iJahr
  1701. ).
  1702. ASSIGN
  1703. iArtnr = bArtst.Artnr
  1704. iInhalt = bArtst.Inhalt
  1705. iJahr = bArtst.Jahr.
  1706. END.
  1707. END CASE.
  1708. RUN WRITE_tUmsatz ( ipHerk ,
  1709. ipZeit ,
  1710. ipRecArt,
  1711. iiKnr ,
  1712. iiHerst ,
  1713. iWgr ,
  1714. iPgr ,
  1715. iArtnr ,
  1716. iInhalt ,
  1717. iJahr
  1718. ).
  1719. IF iVerband = 999999 THEN RETURN ''.
  1720. CASE ipRecArt:
  1721. WHEN 'A' THEN
  1722. ipRecArt = 'K'.
  1723. WHEN 'B' THEN
  1724. ipRecArt = 'L'.
  1725. WHEN 'C' THEN
  1726. ipRecArt = 'M'.
  1727. WHEN 'D' THEN
  1728. ipRecArt = 'N'.
  1729. WHEN 'E' THEN
  1730. ipRecArt = 'O'.
  1731. WHEN 'F' THEN
  1732. ipRecArt = 'P'.
  1733. WHEN 'G' THEN
  1734. ipRecArt = 'Q'.
  1735. OTHERWISE
  1736. RETURN ''.
  1737. END CASE.
  1738. RUN CREATE_tUmsatz ( ipHerk, ipZeit, ipRecArt ).
  1739. END PROCEDURE.
  1740. /* _UIB-CODE-BLOCK-END */
  1741. &ANALYZE-RESUME
  1742. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gDebitorumsatz _DEFAULT-DISABLE
  1743. PROCEDURE disable_UI :
  1744. /*------------------------------------------------------------------------------
  1745. Purpose: DISABLE the User Interface
  1746. Parameters: <none>
  1747. Notes: Here we clean-up the user-interface by deleting
  1748. dynamic widgets we have created and/or hide
  1749. frames. This procedure is usually called when
  1750. we are ready to "clean-up" after running.
  1751. ------------------------------------------------------------------------------*/
  1752. /* Hide all frames. */
  1753. HIDE FRAME gDebitorumsatz.
  1754. END PROCEDURE.
  1755. /* _UIB-CODE-BLOCK-END */
  1756. &ANALYZE-RESUME
  1757. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gDebitorumsatz
  1758. PROCEDURE enableObject :
  1759. /*------------------------------------------------------------------------------
  1760. Purpose: Super Override
  1761. Parameters:
  1762. Notes:
  1763. ------------------------------------------------------------------------------*/
  1764. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1765. DO WITH FRAME {&FRAME-NAME}:
  1766. cInstallation = DYNAMIC-FUNCTION('getInstallation':U ) NO-ERROR.
  1767. RUN COMBO_VERTRETER ( INPUT CB_Vertreter:HANDLE ).
  1768. cString = CB_Vertreter:LIST-ITEM-PAIRS.
  1769. IF cString <> '' THEN cString = cString + ';'.
  1770. cString = cString + 'Alle Vertreter;999999'.
  1771. CB_Vertreter:LIST-ITEM-PAIRS = cString.
  1772. CB_Vertreter:SCREEN-VALUE = '999999'.
  1773. RUN COMBO_VERBAND ( INPUT CB_Verband:HANDLE ).
  1774. cString = CB_Verband:LIST-ITEM-PAIRS.
  1775. IF cString <> '' THEN cString = cString + ';'.
  1776. cString = cString + 'Alle Verbände (999999);999999'.
  1777. CB_Verband:LIST-ITEM-PAIRS = cString.
  1778. CB_Verband:SCREEN-VALUE = '999999'.
  1779. RUN COMBO_SUBVERBAND ( INPUT CB_Subverband:HANDLE, CB_Verband:SCREEN-VALUE ).
  1780. cString = CB_Subverband:LIST-ITEM-PAIRS.
  1781. IF cString <> '' THEN cString = cString + ';'.
  1782. cString = cString + 'Alle Subverbände (999999);999999'.
  1783. CB_Subverband:LIST-ITEM-PAIRS = cString.
  1784. CB_Subverband:SCREEN-VALUE = '999999'.
  1785. END.
  1786. RUN LESEN_FEHLWERTE.
  1787. RUN SUPER.
  1788. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR.
  1789. DO WITH FRAME {&FRAME-NAME}:
  1790. ASSIGN {&list-6}.
  1791. IF T_Liter = TRUE THEN T_HL:SENSITIVE = TRUE.
  1792. ELSE T_HL:SENSITIVE = FALSE.
  1793. END.
  1794. END PROCEDURE.
  1795. /* _UIB-CODE-BLOCK-END */
  1796. &ANALYZE-RESUME
  1797. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gDebitorumsatz _DEFAULT-ENABLE
  1798. PROCEDURE enable_UI :
  1799. /*------------------------------------------------------------------------------
  1800. Purpose: ENABLE the User Interface
  1801. Parameters: <none>
  1802. Notes: Here we display/view/enable the widgets in the
  1803. user-interface. In addition, OPEN all queries
  1804. associated with each FRAME and BROWSE.
  1805. These statements here are based on the "Other
  1806. Settings" section of the widget Property Sheets.
  1807. ------------------------------------------------------------------------------*/
  1808. DISPLAY T_NurWgr F_VonKnr F_BisKnr CB_Vertreter CB_Verband CB_Subverband
  1809. F_Kundengrp F_Preisgruppe T_Hersteller F_VonArtnr F_BisArtnr
  1810. F_Hersteller F_Warengrp F_VonDatum F_BisDatum T_Menge T_Liter T_HL
  1811. T_EP T_VP T_Marge T_Vorjahr T_Gratis T_SubGrpHerst T_OffeneAuf
  1812. T_Lieferadresse T_Zusatz T_ProdTot
  1813. WITH FRAME gDebitorumsatz.
  1814. ENABLE T_NurWgr F_VonKnr F_BisKnr CB_Vertreter CB_Verband CB_Subverband
  1815. F_Kundengrp F_Preisgruppe T_Hersteller F_VonArtnr F_BisArtnr
  1816. F_Hersteller F_Warengrp F_VonDatum F_BisDatum T_Menge T_Liter T_HL
  1817. T_EP T_VP T_Marge T_Vorjahr T_Gratis T_SubGrpHerst T_OffeneAuf
  1818. Btn_Cancel Btn_OK T_Lieferadresse T_Zusatz T_ProdTot RECT-12
  1819. WITH FRAME gDebitorumsatz.
  1820. VIEW FRAME gDebitorumsatz.
  1821. {&OPEN-BROWSERS-IN-QUERY-gDebitorumsatz}
  1822. END PROCEDURE.
  1823. /* _UIB-CODE-BLOCK-END */
  1824. &ANALYZE-RESUME
  1825. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gDebitorumsatz
  1826. PROCEDURE ENDE :
  1827. /*------------------------------------------------------------------------------
  1828. Purpose:
  1829. Parameters: <none>
  1830. Notes:
  1831. ------------------------------------------------------------------------------*/
  1832. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  1833. IF AktSeite > 1 THEN
  1834. DO:
  1835. RUN selectPage ( INPUT 1 ).
  1836. RETURN NO-APPLY.
  1837. END.
  1838. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  1839. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  1840. RETURN NO-APPLY.
  1841. END PROCEDURE.
  1842. /* _UIB-CODE-BLOCK-END */
  1843. &ANALYZE-RESUME
  1844. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gDebitorumsatz
  1845. PROCEDURE exitObject :
  1846. /*------------------------------------------------------------------------------
  1847. Purpose: Super Override
  1848. Parameters:
  1849. Notes:
  1850. ------------------------------------------------------------------------------*/
  1851. RUN ENDE.
  1852. RETURN NO-APPLY.
  1853. END PROCEDURE.
  1854. /* _UIB-CODE-BLOCK-END */
  1855. &ANALYZE-RESUME
  1856. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_TEMPTABLE gDebitorumsatz
  1857. PROCEDURE FUELLEN_TEMPTABLE :
  1858. /*------------------------------------------------------------------------------
  1859. Purpose:
  1860. Parameters: <none>
  1861. Notes:
  1862. ------------------------------------------------------------------------------*/
  1863. DEFINE VARIABLE VonDat1 AS DATE NO-UNDO.
  1864. DEFINE VARIABLE VonDat2 AS DATE NO-UNDO.
  1865. DEFINE VARIABLE BisDat1 AS DATE NO-UNDO.
  1866. DEFINE VARIABLE BisDat2 AS DATE NO-UNDO.
  1867. EMPTY TEMP-TABLE tUmsatz.
  1868. EMPTY TEMP-TABLE vUmsatz.
  1869. VonDat1 = F_VonDatum.
  1870. BisDat1 = F_BisDatum.
  1871. VonDat2 = ?.
  1872. BisDat2 = ?.
  1873. VonDat2 = DATE(MONTH(VonDat1),DAY(VonDat1),YEAR(VonDat1) - 1) NO-ERROR.
  1874. BisDat2 = DATE(MONTH(BisDat1),DAY(BisDat1),YEAR(BisDat1) - 1) NO-ERROR.
  1875. IF VonDat2 = ? THEN VonDat2 = DATE(MONTH(VonDat1),DAY(VonDat1) - 1,YEAR(VonDat1) - 1).
  1876. IF BisDat2 = ? THEN BisDat2 = DATE(MONTH(BisDat1),DAY(BisDat1) - 1,YEAR(BisDat1) - 1).
  1877. FOR EACH bDebst NO-LOCK USE-INDEX Debst-k1
  1878. WHERE bDebst.Firma = Firma
  1879. AND bDebst.Knr >= F_VonKnr
  1880. AND bDebst.Knr <= F_BisKnr
  1881. AND ((iVer = 999999)
  1882. OR (iVer <> 999999 AND
  1883. bDebst.Vertr = iVer))
  1884. AND ((iVerband = 999999)
  1885. OR (iVerband <> 999999 AND
  1886. bDebst.Verband_Grp = iVerband))
  1887. AND ((iSubverband = 999999)
  1888. OR (iSubverband <> 999999 AND
  1889. bDebst.Subverband_Grp = iSubverband)) ,
  1890. EACH bArtbw NO-LOCK USE-INDEX Artbw-k10
  1891. WHERE bArtbw.Firma = bDebst.Firma
  1892. AND bArtbw.Knr = bDebst.Knr
  1893. AND bArtbw.Fak_Dat <> ?
  1894. AND bArtbw.Fak_Dat >= VonDat1
  1895. AND bArtbw.Fak_Dat <= BisDat1
  1896. AND bArtbw.Artnr >= F_VonArtnr
  1897. AND bArtbw.Artnr <= F_BisArtnr
  1898. AND bArtbw.Menge <> 0
  1899. AND bArtbw.Tr_Art <= 10
  1900. AND ((T_Gratis)
  1901. OR (NOT T_Gratis AND
  1902. bArtbw.Preis <> 0)),
  1903. FIRST bArtst NO-LOCK USE-INDEX Artst-k1
  1904. WHERE bArtst.Firma = bArtbw.Firma
  1905. AND bArtst.Artnr = bArtbw.Artnr
  1906. AND bArtst.Inhalt = bArtbw.Inhalt
  1907. AND bArtst.Jahr = bArtbw.Jahr
  1908. BREAK BY bDebst.Knr
  1909. BY bArtst.Artnr
  1910. BY bArtst.Inhalt
  1911. BY bArtst.Jahr :
  1912. IF F_Kundengrp = '' THEN.
  1913. ELSE
  1914. DO:
  1915. IF LOOKUP(STRING(bDebst.Ku_Grp,'999'), F_Kundengrp, ',') = 0 THEN NEXT.
  1916. END.
  1917. IF F_Preisgruppe = '' THEN.
  1918. ELSE
  1919. DO:
  1920. IF LOOKUP(STRING(bDebst.Preis_Grp,'999'), F_Preisgruppe, ',') = 0 THEN NEXT.
  1921. END.
  1922. IF F_Hersteller = '' THEN.
  1923. ELSE
  1924. DO:
  1925. IF LOOKUP(STRING(bArtst.Herst ,'999'), F_Hersteller, ',') = 0 THEN NEXT.
  1926. END.
  1927. IF F_Warengrp = '' THEN.
  1928. ELSE
  1929. DO:
  1930. IF LOOKUP(STRING(bArtst.Wg_Grp,'999'), F_Warengrp , ',') = 0 THEN NEXT.
  1931. END.
  1932. IF T_Lieferadresse THEN
  1933. DO:
  1934. UmsKnr = bDebst.Knr.
  1935. END.
  1936. ELSE
  1937. DO:
  1938. IF bDebst.KnrFak <> 0 THEN UmsKnr = bDebst.KnrFak.
  1939. ELSE UmsKnr = bDebst.Knr.
  1940. END.
  1941. iHerst = (IF T_SubGrpHerst THEN bArtst.Herst ELSE 00).
  1942. IF T_Hersteller THEN iHerst = bArtst.Herst.
  1943. RUN CREATE_tUmsatz ( 1, 'LF', 'A' ). /* Artikel */
  1944. IF T_ProdTot THEN RUN CREATE_tUmsatz ( 1, 'LF', 'B' ). /* Produktegruppentotale */
  1945. RUN CREATE_tUmsatz ( 1, 'LF', 'C' ). /* Warengruppentotale */
  1946. IF T_SubGrpHerst THEN RUN CREATE_tUmsatz ( 1, 'LF', 'D' ). /* Herstellertotale */
  1947. RUN CREATE_tUmsatz ( 1, 'LF', 'E' ). /* Kundentotale */
  1948. RUN CREATE_tUmsatz ( 1, 'LF', 'F' ). /* Gesamttotal */
  1949. RUN CREATE_tUmsatz ( 1, 'LF', 'G' ). /* WarengruppenGTotal */
  1950. END.
  1951. IF T_Vorjahr THEN
  1952. DO:
  1953. FOR EACH bDebst NO-LOCK USE-INDEX Debst-k1
  1954. WHERE bDebst.Firma = Firma
  1955. AND bDebst.Knr >= F_VonKnr
  1956. AND bDebst.Knr <= F_BisKnr
  1957. AND ((iVer = 999999)
  1958. OR (iVer <> 999999 AND
  1959. bDebst.Vertr = iVer))
  1960. AND ((iVerband = 999999)
  1961. OR (iVerband <> 999999 AND
  1962. bDebst.Verband_Grp = iVerband))
  1963. AND ((iSubverband = 999999)
  1964. OR (iSubverband <> 999999 AND
  1965. bDebst.Subverband_Grp = iSubverband)) ,
  1966. EACH bArtbw NO-LOCK USE-INDEX Artbw-k10
  1967. WHERE bArtbw.Firma = bDebst.Firma
  1968. AND bArtbw.Knr = bDebst.Knr
  1969. AND bArtbw.Fak_Dat <> ?
  1970. AND bArtbw.Fak_Dat >= VonDat2
  1971. AND bArtbw.Fak_Dat <= BisDat2
  1972. AND bArtbw.Artnr >= F_VonArtnr
  1973. AND bArtbw.Artnr <= F_BisArtnr
  1974. AND bArtbw.Menge <> 0
  1975. AND bArtbw.Tr_Art <= 10
  1976. AND ((T_Gratis)
  1977. OR (NOT T_Gratis AND
  1978. bArtbw.Preis <> 0)),
  1979. FIRST bArtst NO-LOCK USE-INDEX Artst-k1
  1980. WHERE bArtst.Firma = bArtbw.Firma
  1981. AND bArtst.Artnr = bArtbw.Artnr
  1982. AND bArtst.Inhalt = bArtbw.Inhalt
  1983. AND bArtst.Jahr = bArtbw.Jahr
  1984. BREAK BY bDebst.Knr
  1985. BY bArtst.Artnr
  1986. BY bArtst.Inhalt
  1987. BY bArtst.Jahr :
  1988. IF F_Kundengrp = '' THEN.
  1989. ELSE
  1990. DO:
  1991. IF LOOKUP(STRING(bDebst.Ku_Grp,'999'), F_Kundengrp, ',') = 0 THEN NEXT.
  1992. END.
  1993. IF F_Preisgruppe = '' THEN.
  1994. ELSE
  1995. DO:
  1996. IF LOOKUP(STRING(bDebst.Preis_Grp,'999'), F_Preisgruppe, ',') = 0 THEN NEXT.
  1997. END.
  1998. IF F_Hersteller = '' THEN.
  1999. ELSE
  2000. DO:
  2001. IF LOOKUP(STRING(bArtst.Herst ,'999'), F_Hersteller, ',') = 0 THEN NEXT.
  2002. END.
  2003. IF F_Warengrp = '' THEN.
  2004. ELSE
  2005. DO:
  2006. IF LOOKUP(STRING(bArtst.Wg_Grp,'999'), F_Warengrp , ',') = 0 THEN NEXT.
  2007. END.
  2008. IF T_Lieferadresse THEN
  2009. DO:
  2010. UmsKnr = bDebst.Knr.
  2011. END.
  2012. ELSE
  2013. DO:
  2014. IF bDebst.KnrFak <> 0 THEN UmsKnr = bDebst.KnrFak.
  2015. ELSE UmsKnr = bDebst.Knr.
  2016. END.
  2017. iHerst = (IF T_SubGrpHerst THEN bArtst.Herst ELSE 00).
  2018. IF T_Hersteller THEN iHerst = bArtst.Herst.
  2019. RUN CREATE_tUmsatz ( 1, 'VJ', 'A' ). /* Artikel */
  2020. IF T_ProdTot THEN RUN CREATE_tUmsatz ( 1, 'VJ', 'B' ). /* Produktegruppentotale */
  2021. RUN CREATE_tUmsatz ( 1, 'VJ', 'C' ). /* Warengruppentotale */
  2022. IF T_SubGrpHerst THEN RUN CREATE_tUmsatz ( 1, 'VJ', 'D' ). /* Herstellertotale */
  2023. RUN CREATE_tUmsatz ( 1, 'VJ', 'E' ). /* Kundentotale */
  2024. RUN CREATE_tUmsatz ( 1, 'VJ', 'F' ). /* Gesamttotal */
  2025. RUN CREATE_tUmsatz ( 1, 'VJ', 'G' ). /* WarengruppenGTotal */
  2026. END.
  2027. END.
  2028. IF T_OffeneAuf THEN
  2029. DO:
  2030. RUN SAMMELN_AUFTRAEGE ( VonDat1, BisDat1 ).
  2031. END.
  2032. IF iVerband < 999999 THEN
  2033. DO:
  2034. RUN VERBAND.
  2035. END.
  2036. IF T_Hersteller THEN RETURN.
  2037. FOR EACH tUmsatz:
  2038. FIND FIRST vUmsatz USE-INDEX tUmsatz-k1
  2039. WHERE vUmsatz.Knr = iVerband
  2040. AND vUmsatz.Wgr = tUmsatz.Wgr
  2041. AND vUmsatz.Pgr = tUmsatz.Pgr
  2042. AND vUmsatz.Artnr = tUmsatz.Artnr
  2043. AND vUmsatz.Inhalt = tUmsatz.Inhalt
  2044. AND vUmsatz.Jahr = tUmsatz.Jahr NO-ERROR.
  2045. IF NOT AVAILABLE vUmsatz THEN
  2046. DO:
  2047. CREATE vUmsatz.
  2048. ASSIGN
  2049. vUmsatz.Knr = iVerband
  2050. vUmsatz.Wgr = tUmsatz.Wgr
  2051. vUmsatz.Pgr = tUmsatz.Pgr
  2052. vUmsatz.Artnr = tUmsatz.Artnr
  2053. vUmsatz.Inhalt = tUmsatz.Inhalt
  2054. vUmsatz.Jahr = tUmsatz.Jahr
  2055. vUmsatz.Ep_Lf = 0
  2056. vUmsatz.Ep_Vj = 0
  2057. vUmsatz.Vp_Lf = 0
  2058. vUmsatz.Vp_Vj = 0
  2059. vUmsatz.Me_Lf = 0
  2060. vUmsatz.Me_Vj = 0
  2061. vUmsatz.Li_Lf = 0
  2062. vUmsatz.Li_Vj = 0
  2063. vUmsatz.Gr_Ep_Lf = 0
  2064. vUmsatz.Gr_Ep_Vj = 0
  2065. vUmsatz.Gr_Vp_Lf = 0
  2066. vUmsatz.Gr_Vp_Vj = 0
  2067. vUmsatz.Gr_Me_Lf = 0
  2068. vUmsatz.Gr_Me_Vj = 0
  2069. vUmsatz.Gr_Li_Lf = 0
  2070. vUmsatz.Gr_Li_Vj = 0
  2071. vUmsatz.KGeb_Cd = tUmsatz.KGeb_Cd
  2072. vUmsatz.Alk% = tUmsatz.Alk%.
  2073. END.
  2074. ASSIGN
  2075. vUmsatz.Ep_Lf = vUmsatz.Ep_Lf + tUmsatz.Ep_Lf
  2076. vUmsatz.Vp_Lf = vUmsatz.Vp_Lf + tUmsatz.Vp_Lf
  2077. vUmsatz.Me_Lf = vUmsatz.Me_Lf + tUmsatz.Me_Lf
  2078. vUmsatz.Li_Lf = vUmsatz.Li_Lf + tUmsatz.Li_Lf
  2079. vUmsatz.Ep_Vj = vUmsatz.Ep_Vj + tUmsatz.Ep_Vj
  2080. vUmsatz.Vp_Vj = vUmsatz.Vp_Vj + tUmsatz.Vp_Vj
  2081. vUmsatz.Me_Vj = vUmsatz.Me_Vj + tUmsatz.Me_Vj
  2082. vUmsatz.Li_Vj = vUmsatz.Li_Vj + tUmsatz.Li_Vj
  2083. vUmsatz.Gr_Ep_Lf = vUmsatz.Gr_Ep_Lf + tUmsatz.Gr_Ep_Lf
  2084. vUmsatz.Gr_Vp_Lf = vUmsatz.Gr_Vp_Lf + tUmsatz.Gr_Vp_Lf
  2085. vUmsatz.Gr_Me_Lf = vUmsatz.Gr_Me_Lf + tUmsatz.Gr_Me_Lf
  2086. vUmsatz.Gr_Li_Lf = vUmsatz.Gr_Li_Lf + tUmsatz.Gr_Li_Lf
  2087. vUmsatz.Gr_Ep_Vj = vUmsatz.Gr_Ep_Vj + tUmsatz.Gr_Ep_Vj
  2088. vUmsatz.Gr_Vp_Vj = vUmsatz.Gr_Vp_Vj + tUmsatz.Gr_Vp_Vj
  2089. vUmsatz.Gr_Me_Vj = vUmsatz.Gr_Me_Vj + tUmsatz.Gr_Me_Vj
  2090. vUmsatz.Gr_Li_Vj = vUmsatz.Gr_Li_Vj + tUmsatz.Gr_Li_Vj.
  2091. END.
  2092. END PROCEDURE.
  2093. /* _UIB-CODE-BLOCK-END */
  2094. &ANALYZE-RESUME
  2095. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_TEMPTABLE_LIEFERDATUM gDebitorumsatz
  2096. PROCEDURE FUELLEN_TEMPTABLE_LIEFERDATUM :
  2097. /*------------------------------------------------------------------------------
  2098. Purpose:
  2099. Parameters: <none>
  2100. Notes:
  2101. ------------------------------------------------------------------------------*/
  2102. DEFINE VARIABLE VonDat1 AS DATE NO-UNDO.
  2103. DEFINE VARIABLE VonDat2 AS DATE NO-UNDO.
  2104. DEFINE VARIABLE BisDat1 AS DATE NO-UNDO.
  2105. DEFINE VARIABLE BisDat2 AS DATE NO-UNDO.
  2106. EMPTY TEMP-TABLE tUmsatz.
  2107. EMPTY TEMP-TABLE vUmsatz.
  2108. VonDat1 = F_VonDatum.
  2109. BisDat1 = F_BisDatum.
  2110. VonDat2 = ?.
  2111. BisDat2 = ?.
  2112. VonDat2 = DATE(MONTH(VonDat1),DAY(VonDat1),YEAR(VonDat1) - 1) NO-ERROR.
  2113. BisDat2 = DATE(MONTH(BisDat1),DAY(BisDat1),YEAR(BisDat1) - 1) NO-ERROR.
  2114. IF VonDat2 = ? THEN VonDat2 = DATE(MONTH(VonDat1),DAY(VonDat1) - 1,YEAR(VonDat1) - 1).
  2115. IF BisDat2 = ? THEN BisDat2 = DATE(MONTH(BisDat1),DAY(BisDat1) - 1,YEAR(BisDat1) - 1).
  2116. FOR EACH bDebst NO-LOCK USE-INDEX Debst-k1
  2117. WHERE bDebst.Firma = Firma
  2118. AND bDebst.Knr >= F_VonKnr
  2119. AND bDebst.Knr <= F_BisKnr
  2120. AND ((iVer = 999999)
  2121. OR (iVer <> 999999 AND
  2122. bDebst.Vertr = iVer))
  2123. AND ((iVerband = 999999)
  2124. OR (iVerband <> 999999 AND
  2125. bDebst.Verband_Grp = iVerband))
  2126. AND ((iSubverband = 999999)
  2127. OR (iSubverband <> 999999 AND
  2128. bDebst.Subverband_Grp = iSubverband)) ,
  2129. EACH bArtbw NO-LOCK USE-INDEX Artbw-k10
  2130. WHERE bArtbw.Firma = bDebst.Firma
  2131. AND bArtbw.Knr = bDebst.Knr
  2132. AND bArtbw.Datum >= VonDat1
  2133. AND bArtbw.Datum <= BisDat1
  2134. AND bArtbw.Artnr >= F_VonArtnr
  2135. AND bArtbw.Artnr <= F_BisArtnr
  2136. AND bArtbw.Menge <> 0
  2137. AND bArtbw.Tr_Art <= 10
  2138. AND ((T_Gratis)
  2139. OR (NOT T_Gratis AND
  2140. bArtbw.Preis <> 0)),
  2141. FIRST bArtst NO-LOCK USE-INDEX Artst-k1
  2142. WHERE bArtst.Firma = bArtbw.Firma
  2143. AND bArtst.Artnr = bArtbw.Artnr
  2144. AND bArtst.Inhalt = bArtbw.Inhalt
  2145. AND bArtst.Jahr = bArtbw.Jahr
  2146. BREAK BY bDebst.Knr
  2147. BY bArtst.Artnr
  2148. BY bArtst.Inhalt
  2149. BY bArtst.Jahr :
  2150. IF F_Kundengrp = '' THEN.
  2151. ELSE
  2152. DO:
  2153. IF LOOKUP(STRING(bDebst.Ku_Grp,'999'), F_Kundengrp, ',') = 0 THEN NEXT.
  2154. END.
  2155. IF F_Preisgruppe = '' THEN.
  2156. ELSE
  2157. DO:
  2158. IF LOOKUP(STRING(bDebst.Preis_Grp,'999'), F_Preisgruppe, ',') = 0 THEN NEXT.
  2159. END.
  2160. IF F_Hersteller = '' THEN.
  2161. ELSE
  2162. DO:
  2163. IF LOOKUP(STRING(bArtst.Herst ,'999'), F_Hersteller, ',') = 0 THEN NEXT.
  2164. END.
  2165. IF F_Warengrp = '' THEN.
  2166. ELSE
  2167. DO:
  2168. IF LOOKUP(STRING(bArtst.Wg_Grp,'999'), F_Warengrp , ',') = 0 THEN NEXT.
  2169. END.
  2170. IF T_Lieferadresse THEN
  2171. DO:
  2172. UmsKnr = bDebst.Knr.
  2173. END.
  2174. ELSE
  2175. DO:
  2176. IF bDebst.KnrFak <> 0 THEN UmsKnr = bDebst.KnrFak.
  2177. ELSE UmsKnr = bDebst.Knr.
  2178. END.
  2179. iHerst = (IF T_SubGrpHerst THEN bArtst.Herst ELSE 00).
  2180. IF T_Hersteller THEN iHerst = bArtst.Herst.
  2181. RUN CREATE_tUmsatz ( 1, 'LF', 'A' ). /* Artikel */
  2182. IF T_ProdTot THEN RUN CREATE_tUmsatz ( 1, 'LF', 'B' ). /* Produktegruppentotale */
  2183. RUN CREATE_tUmsatz ( 1, 'LF', 'C' ). /* Warengruppentotale */
  2184. IF T_SubGrpHerst THEN RUN CREATE_tUmsatz ( 1, 'LF', 'D' ). /* Herstellertotale */
  2185. RUN CREATE_tUmsatz ( 1, 'LF', 'E' ). /* Kundentotale */
  2186. RUN CREATE_tUmsatz ( 1, 'LF', 'F' ). /* Gesamttotal */
  2187. RUN CREATE_tUmsatz ( 1, 'LF', 'G' ). /* WarengruppenGTotal */
  2188. END.
  2189. IF T_Vorjahr THEN
  2190. DO:
  2191. FOR EACH bDebst NO-LOCK USE-INDEX Debst-k1
  2192. WHERE bDebst.Firma = Firma
  2193. AND bDebst.Knr >= F_VonKnr
  2194. AND bDebst.Knr <= F_BisKnr
  2195. AND ((iVer = 999999)
  2196. OR (iVer <> 999999 AND
  2197. bDebst.Vertr = iVer))
  2198. AND ((iVerband = 999999)
  2199. OR (iVerband <> 999999 AND
  2200. bDebst.Verband_Grp = iVerband))
  2201. AND ((iSubverband = 999999)
  2202. OR (iSubverband <> 999999 AND
  2203. bDebst.Subverband_Grp = iSubverband)) ,
  2204. EACH bArtbw NO-LOCK USE-INDEX Artbw-k10
  2205. WHERE bArtbw.Firma = bDebst.Firma
  2206. AND bArtbw.Knr = bDebst.Knr
  2207. AND bArtbw.Datum >= VonDat2
  2208. AND bArtbw.Datum <= BisDat2
  2209. AND bArtbw.Artnr >= F_VonArtnr
  2210. AND bArtbw.Artnr <= F_BisArtnr
  2211. AND bArtbw.Menge <> 0
  2212. AND bArtbw.Tr_Art <= 10
  2213. AND ((T_Gratis)
  2214. OR (NOT T_Gratis AND
  2215. bArtbw.Preis <> 0)),
  2216. FIRST bAufko NO-LOCK
  2217. WHERE bAufko.Firma = bArtbw.Firma
  2218. AND bAufko.Aufnr = bArtbw.Aufnr
  2219. AND NOT bAufko.AlsOfferte,
  2220. FIRST bArtst NO-LOCK USE-INDEX Artst-k1
  2221. WHERE bArtst.Firma = bArtbw.Firma
  2222. AND bArtst.Artnr = bArtbw.Artnr
  2223. AND bArtst.Inhalt = bArtbw.Inhalt
  2224. AND bArtst.Jahr = bArtbw.Jahr
  2225. BREAK BY bDebst.Knr
  2226. BY bArtst.Artnr
  2227. BY bArtst.Inhalt
  2228. BY bArtst.Jahr :
  2229. IF F_Kundengrp = '' THEN.
  2230. ELSE
  2231. DO:
  2232. IF LOOKUP(STRING(bDebst.Ku_Grp,'999'), F_Kundengrp, ',') = 0 THEN NEXT.
  2233. END.
  2234. IF F_Preisgruppe = '' THEN.
  2235. ELSE
  2236. DO:
  2237. IF LOOKUP(STRING(bDebst.Preis_Grp,'999'), F_Preisgruppe, ',') = 0 THEN NEXT.
  2238. END.
  2239. IF F_Hersteller = '' THEN.
  2240. ELSE
  2241. DO:
  2242. IF LOOKUP(STRING(bArtst.Herst ,'999'), F_Hersteller, ',') = 0 THEN NEXT.
  2243. END.
  2244. IF F_Warengrp = '' THEN.
  2245. ELSE
  2246. DO:
  2247. IF LOOKUP(STRING(bArtst.Wg_Grp,'999'), F_Warengrp , ',') = 0 THEN NEXT.
  2248. END.
  2249. IF T_Lieferadresse THEN
  2250. DO:
  2251. UmsKnr = bDebst.Knr.
  2252. END.
  2253. ELSE
  2254. DO:
  2255. IF bDebst.KnrFak <> 0 THEN UmsKnr = bDebst.KnrFak.
  2256. ELSE UmsKnr = bDebst.Knr.
  2257. END.
  2258. iHerst = (IF T_SubGrpHerst THEN bArtst.Herst ELSE 00).
  2259. IF T_Hersteller THEN iHerst = bArtst.Herst.
  2260. RUN CREATE_tUmsatz ( 1, 'VJ', 'A' ). /* Artikel */
  2261. IF T_ProdTot THEN RUN CREATE_tUmsatz ( 1, 'VJ', 'B' ). /* Produktegruppentotale */
  2262. RUN CREATE_tUmsatz ( 1, 'VJ', 'C' ). /* Warengruppentotale */
  2263. IF T_SubGrpHerst THEN RUN CREATE_tUmsatz ( 1, 'VJ', 'D' ). /* Herstellertotale */
  2264. RUN CREATE_tUmsatz ( 1, 'VJ', 'E' ). /* Kundentotale */
  2265. RUN CREATE_tUmsatz ( 1, 'VJ', 'F' ). /* Gesamttotal */
  2266. RUN CREATE_tUmsatz ( 1, 'VJ', 'G' ). /* WarengruppenGTotal */
  2267. END.
  2268. END.
  2269. IF iVerband < 999999 THEN
  2270. DO:
  2271. RUN VERBAND.
  2272. END.
  2273. IF T_Hersteller THEN RETURN.
  2274. FOR EACH tUmsatz:
  2275. FIND FIRST vUmsatz USE-INDEX tUmsatz-k1
  2276. WHERE vUmsatz.Knr = iVerband
  2277. AND vUmsatz.Wgr = tUmsatz.Wgr
  2278. AND vUmsatz.Pgr = tUmsatz.Pgr
  2279. AND vUmsatz.Artnr = tUmsatz.Artnr
  2280. AND vUmsatz.Inhalt = tUmsatz.Inhalt
  2281. AND vUmsatz.Jahr = tUmsatz.Jahr NO-ERROR.
  2282. IF NOT AVAILABLE vUmsatz THEN
  2283. DO:
  2284. CREATE vUmsatz.
  2285. ASSIGN
  2286. vUmsatz.Knr = iVerband
  2287. vUmsatz.Wgr = tUmsatz.Wgr
  2288. vUmsatz.Pgr = tUmsatz.Pgr
  2289. vUmsatz.Artnr = tUmsatz.Artnr
  2290. vUmsatz.Inhalt = tUmsatz.Inhalt
  2291. vUmsatz.Jahr = tUmsatz.Jahr
  2292. vUmsatz.Ep_Lf = 0
  2293. vUmsatz.Ep_Vj = 0
  2294. vUmsatz.Vp_Lf = 0
  2295. vUmsatz.Vp_Vj = 0
  2296. vUmsatz.Me_Lf = 0
  2297. vUmsatz.Me_Vj = 0
  2298. vUmsatz.Li_Lf = 0
  2299. vUmsatz.Li_Vj = 0
  2300. vUmsatz.Gr_Ep_Lf = 0
  2301. vUmsatz.Gr_Ep_Vj = 0
  2302. vUmsatz.Gr_Vp_Lf = 0
  2303. vUmsatz.Gr_Vp_Vj = 0
  2304. vUmsatz.Gr_Me_Lf = 0
  2305. vUmsatz.Gr_Me_Vj = 0
  2306. vUmsatz.Gr_Li_Lf = 0
  2307. vUmsatz.Gr_Li_Vj = 0
  2308. vUmsatz.KGeb_Cd = tUmsatz.KGeb_Cd
  2309. vUmsatz.Alk% = tUmsatz.Alk%.
  2310. END.
  2311. ASSIGN
  2312. vUmsatz.Ep_Lf = vUmsatz.Ep_Lf + tUmsatz.Ep_Lf
  2313. vUmsatz.Vp_Lf = vUmsatz.Vp_Lf + tUmsatz.Vp_Lf
  2314. vUmsatz.Me_Lf = vUmsatz.Me_Lf + tUmsatz.Me_Lf
  2315. vUmsatz.Li_Lf = vUmsatz.Li_Lf + tUmsatz.Li_Lf
  2316. vUmsatz.Ep_Vj = vUmsatz.Ep_Vj + tUmsatz.Ep_Vj
  2317. vUmsatz.Vp_Vj = vUmsatz.Vp_Vj + tUmsatz.Vp_Vj
  2318. vUmsatz.Me_Vj = vUmsatz.Me_Vj + tUmsatz.Me_Vj
  2319. vUmsatz.Li_Vj = vUmsatz.Li_Vj + tUmsatz.Li_Vj
  2320. vUmsatz.Gr_Ep_Lf = vUmsatz.Gr_Ep_Lf + tUmsatz.Gr_Ep_Lf
  2321. vUmsatz.Gr_Vp_Lf = vUmsatz.Gr_Vp_Lf + tUmsatz.Gr_Vp_Lf
  2322. vUmsatz.Gr_Me_Lf = vUmsatz.Gr_Me_Lf + tUmsatz.Gr_Me_Lf
  2323. vUmsatz.Gr_Li_Lf = vUmsatz.Gr_Li_Lf + tUmsatz.Gr_Li_Lf
  2324. vUmsatz.Gr_Ep_Vj = vUmsatz.Gr_Ep_Vj + tUmsatz.Gr_Ep_Vj
  2325. vUmsatz.Gr_Vp_Vj = vUmsatz.Gr_Vp_Vj + tUmsatz.Gr_Vp_Vj
  2326. vUmsatz.Gr_Me_Vj = vUmsatz.Gr_Me_Vj + tUmsatz.Gr_Me_Vj
  2327. vUmsatz.Gr_Li_Vj = vUmsatz.Gr_Li_Vj + tUmsatz.Gr_Li_Vj.
  2328. END.
  2329. END PROCEDURE.
  2330. /* _UIB-CODE-BLOCK-END */
  2331. &ANALYZE-RESUME
  2332. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF gDebitorumsatz
  2333. PROCEDURE KOPF :
  2334. /*------------------------------------------------------------------------------
  2335. Purpose:
  2336. Parameters: <none>
  2337. Notes:
  2338. ------------------------------------------------------------------------------*/
  2339. DEFINE INPUT PARAMETER eh AS COMPONENT-HANDLE NO-UNDO.
  2340. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO.
  2341. DEFINE VARIABLE rechts AS INTEGER NO-UNDO.
  2342. DEFINE VARIABLE mitte AS INTEGER NO-UNDO.
  2343. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  2344. DEFINE VARIABLE Breite AS DECIMAL DECIMALS 4 NO-UNDO.
  2345. DEFINE VARIABLE TotBre AS DECIMAL DECIMALS 4 NO-UNDO.
  2346. DEFINE VARIABLE DifBre AS DECIMAL DECIMALS 4 NO-UNDO.
  2347. DEFINE VARIABLE FHoch AS LOG NO-UNDO.
  2348. 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'.
  2349. FKol = TRUE.
  2350. IF NOT T_Vorjahr THEN
  2351. DO:
  2352. FKol[12] = FALSE.
  2353. FKol[13] = FALSE.
  2354. FKol[14] = FALSE.
  2355. FKol[15] = FALSE.
  2356. FKol[16] = FALSE.
  2357. END.
  2358. IF NOT T_Menge THEN ASSIGN FKol[07] = FALSE
  2359. FKol[12] = FALSE.
  2360. IF NOT T_Liter THEN ASSIGN FKol[08] = FALSE
  2361. FKol[13] = FALSE.
  2362. IF NOT T_Ep THEN ASSIGN FKol[09] = FALSE
  2363. FKol[14] = FALSE.
  2364. IF NOT T_Vp THEN ASSIGN FKol[10] = FALSE
  2365. FKol[15] = FALSE.
  2366. IF NOT T_Marge THEN ASSIGN FKol[11] = FALSE
  2367. FKol[16] = FALSE.
  2368. DO i1 = 7 TO 16:
  2369. IF FKol[i1] THEN rechts = 64 + i1.
  2370. END.
  2371. mitte = 69.
  2372. IF AnzKol > 2 THEN mitte = 70.
  2373. IF AnzKol > 5 THEN mitte = 71.
  2374. IF AnzKol > 8 THEN mitte = 72.
  2375. IF AnzKol > 11 THEN mitte = 73.
  2376. Breite = 0.
  2377. TotBre = 0.
  2378. DO i1 = 1 TO 16.
  2379. TotBre = TotBre + DECIMAL(ENTRY(i1, bKol, ';')).
  2380. IF FKol[i1] THEN Breite = Breite + DECIMAL(ENTRY(i1, bKol, ';')).
  2381. END.
  2382. IF Breite < 77.5 THEN
  2383. DO:
  2384. FHoch = TRUE.
  2385. DifBre = (77.5 - Breite) / AnzKol.
  2386. END.
  2387. ELSE
  2388. DO:
  2389. FHoch = FALSE.
  2390. DifBre = (TotBre - Breite) / AnzKol.
  2391. END.
  2392. IF DifBre < 0.2 THEN DIfBre = 0.
  2393. FIND Steuer USE-INDEX Steuer-k1
  2394. WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
  2395. Zelle = 'B1'.
  2396. eh:Range(Zelle):Select.
  2397. eh:Selection:VALUE = Steuer.Firma1.
  2398. Zelle = CHR(mitte) + '1'.
  2399. eh:Range(Zelle):Select.
  2400. eh:Selection:VALUE = 'Debitor-Umsätze ('
  2401. + cVer
  2402. + ')'.
  2403. Zelle = 'Q1'.
  2404. eh:Range(Zelle):Select.
  2405. eh:Selection:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  2406. Zelle = 'B2'.
  2407. eh:Range(Zelle):Select.
  2408. eh:Selection:VALUE = Steuer.Ort.
  2409. Zelle = CHR(mitte) + '2'.
  2410. eh:Range(Zelle):Select.
  2411. eh:Selection:VALUE = STRING(F_VonDatum,'99.99.9999')
  2412. + ' - '
  2413. + STRING(F_BisDatum,'99.99.9999').
  2414. Zelle = 'Q2'.
  2415. eh:Range(Zelle):Select.
  2416. eh:Selection:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  2417. Zelle = CHR(mitte) + '1:' + CHR(mitte) + '2'.
  2418. eh:Range(Zelle):Select.
  2419. eh:Selection:HorizontalAlignment = -4108.
  2420. DO i1 = 1 TO 16:
  2421. eh:Range('A1'):Select.
  2422. Zelle = CHR(64 + i1) + ':' + CHR(64 + i1).
  2423. eh:COLUMNS(Zelle):Select.
  2424. IF FKol[i1] THEN eh:Selection:EntireColumn:HIDDEN = FALSE.
  2425. ELSE
  2426. DO:
  2427. eh:Selection:ClearContents.
  2428. eh:SELECTION:EntireColumn:HIDDEN = TRUE.
  2429. END.
  2430. IF NOT FKol[i1] THEN NEXT.
  2431. Breite = DECIMAL(ENTRY(i1, bKol, ';')).
  2432. IF i1 > 6 THEN Breite = Breite + DifBre.
  2433. eh:Selection:ColumnWidth = Breite.
  2434. IF i1 = 08 AND T_Hl THEN eh:Selection:NumberFormat = "0.00".
  2435. IF i1 = 13 AND T_Hl THEN eh:Selection:NumberFormat = "0.00".
  2436. END.
  2437. IF FHoch THEN eh:ActiveSheet:PageSetup:ORIENTATION = 1.
  2438. eh:Range('G3:K3'):Select.
  2439. eh:Selection:MergeCells = TRUE.
  2440. eh:Range('G3'):Select.
  2441. eh:Selection:Value = 'aktive Periode'.
  2442. eh:Range('L3:P3'):Select.
  2443. eh:Selection:MergeCells = TRUE.
  2444. eh:Range('L3'):Select.
  2445. eh:Selection:Value = 'Vorperiode'.
  2446. END PROCEDURE.
  2447. /* _UIB-CODE-BLOCK-END */
  2448. &ANALYZE-RESUME
  2449. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LESEN_FEHLWERTE gDebitorumsatz
  2450. PROCEDURE LESEN_FEHLWERTE :
  2451. /*------------------------------------------------------------------------------
  2452. Purpose:
  2453. Parameters: <none>
  2454. Notes:
  2455. ------------------------------------------------------------------------------*/
  2456. DEFINE VARIABLE cVal AS CHARACTER NO-UNDO.
  2457. DEFINE VARIABLE cKey AS CHARACTER NO-UNDO.
  2458. DEFINE VARIABLE i AS INTEGER NO-UNDO.
  2459. DEFINE VARIABLE cWert AS CHARACTER NO-UNDO.
  2460. cKey = ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.' ) NO-ERROR.
  2461. GET-KEY-VALUE SECTION 'Auswertungen' KEY cKey VALUE cVal.
  2462. IF cVal = ? THEN RETURN.
  2463. DO WITH FRAME {&FRAME-NAME}:
  2464. DO i = 1 TO NUM-ENTRIES(cVal, '@'):
  2465. cWert = ENTRY(i, cVal, '@').
  2466. CASE i:
  2467. WHEN 1 THEN
  2468. F_VonKnr :SCREEN-VALUE = cWert NO-ERROR.
  2469. WHEN 2 THEN
  2470. F_BisKnr :SCREEN-VALUE = cWert NO-ERROR.
  2471. WHEN 3 THEN
  2472. F_Kundengrp :SCREEN-VALUE = cWert NO-ERROR.
  2473. WHEN 4 THEN
  2474. F_VonArtnr :SCREEN-VALUE = cWert NO-ERROR.
  2475. WHEN 5 THEN
  2476. F_BisArtnr :SCREEN-VALUE = cWert NO-ERROR.
  2477. WHEN 6 THEN
  2478. F_Hersteller :SCREEN-VALUE = cWert NO-ERROR.
  2479. WHEN 7 THEN
  2480. F_Warengrp :SCREEN-VALUE = cWert NO-ERROR.
  2481. WHEN 8 THEN
  2482. F_VonDatum :SCREEN-VALUE = cWert NO-ERROR.
  2483. WHEN 9 THEN
  2484. F_BisDatum :SCREEN-VALUE = cWert NO-ERROR.
  2485. WHEN 10 THEN
  2486. T_Menge :SCREEN-VALUE = cWert NO-ERROR.
  2487. WHEN 11 THEN
  2488. T_Liter :SCREEN-VALUE = cWert NO-ERROR.
  2489. WHEN 12 THEN
  2490. T_HL :SCREEN-VALUE = cWert NO-ERROR.
  2491. WHEN 13 THEN
  2492. T_EP :SCREEN-VALUE = cWert NO-ERROR.
  2493. WHEN 14 THEN
  2494. T_VP :SCREEN-VALUE = cWert NO-ERROR.
  2495. WHEN 15 THEN
  2496. T_Marge :SCREEN-VALUE = cWert NO-ERROR.
  2497. WHEN 16 THEN
  2498. T_Vorjahr :SCREEN-VALUE = cWert NO-ERROR.
  2499. WHEN 17 THEN
  2500. CB_Vertreter :SCREEN-VALUE = cWert NO-ERROR.
  2501. WHEN 18 THEN
  2502. CB_Verband :SCREEN-VALUE = cWert NO-ERROR.
  2503. WHEN 19 THEN
  2504. F_Preisgruppe :SCREEN-VALUE = cWert NO-ERROR.
  2505. WHEN 20 THEN
  2506. T_Gratis :SCREEN-VALUE = cWert NO-ERROR.
  2507. WHEN 21 THEN
  2508. CB_Subverband :SCREEN-VALUE = cWert NO-ERROR.
  2509. WHEN 22 THEN
  2510. T_Lieferadresse :SCREEN-VALUE = cWert NO-ERROR.
  2511. WHEN 23 THEN
  2512. T_OffeneAuf :SCREEN-VALUE = cWert NO-ERROR.
  2513. WHEN 24 THEN
  2514. T_Zusatz :SCREEN-VALUE = cWert NO-ERROR.
  2515. WHEN 25 THEN
  2516. T_ProdTot :SCREEN-VALUE = cWert NO-ERROR.
  2517. WHEN 26 THEN
  2518. T_SubGrpHerst :SCREEN-VALUE = cWert NO-ERROR.
  2519. WHEN 27 THEN
  2520. T_NurWgr :SCREEN-VALUE = cWert NO-ERROR.
  2521. WHEN 28 THEN
  2522. T_Hersteller :SCREEN-VALUE = cWert NO-ERROR.
  2523. END CASE.
  2524. END.
  2525. ASSIGN {&List-6}.
  2526. END.
  2527. END PROCEDURE.
  2528. /* _UIB-CODE-BLOCK-END */
  2529. &ANALYZE-RESUME
  2530. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT gDebitorumsatz
  2531. PROCEDURE REPORT :
  2532. /*------------------------------------------------------------------------------
  2533. Purpose:
  2534. Parameters: <none>
  2535. Notes:
  2536. ------------------------------------------------------------------------------*/
  2537. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  2538. DEFINE VARIABLE ja AS LOG NO-UNDO.
  2539. DO WITH FRAME {&FRAME-NAME}:
  2540. ASSIGN {&List-6}.
  2541. RUN BEREINIGEN ( INPUT F_Kundengrp :HANDLE ).
  2542. RUN BEREINIGEN ( INPUT F_Preisgruppe:HANDLE ).
  2543. RUN BEREINIGEN ( INPUT F_Hersteller :HANDLE ).
  2544. RUN BEREINIGEN ( INPUT F_Warengrp :HANDLE ).
  2545. ASSIGN {&List-6}.
  2546. IF F_VonKnr = 0 AND F_BisKnr = 0 THEN F_BisKnr = 999999.
  2547. IF F_VonKnr > F_BisKnr THEN F_BisKnr = F_VonKnr.
  2548. IF F_VonKnr = 0 THEN F_VonKnr = 1.
  2549. IF F_VonArtnr = 0 AND F_BisArtnr = 0 THEN F_BisArtnr = 999999.
  2550. IF F_VonArtnr > F_BisArtnr THEN F_BisArtnr = F_VonArtnr.
  2551. IF F_VonArtnr = 0 THEN F_VonArtnr = 1.
  2552. IF F_VonDatum = ? THEN F_VonDatum = DATE(01,01,YEAR(TODAY)).
  2553. IF F_BisDatum = ? THEN F_BisDatum = DATE(12,31,YEAR(TODAY)).
  2554. IF F_BisDatum < F_VonDatum THEN F_BisDatum = F_VonDatum.
  2555. iVer = INTEGER(CB_Vertreter:SCREEN-VALUE).
  2556. cVer = CB_Vertreter:LIST-ITEM-PAIRS.
  2557. i1 = LOOKUP(CB_Vertreter:SCREEN-VALUE, cVer, ';') - 1.
  2558. cVer = ENTRY(i1, cVer, ';').
  2559. iVerband = INTEGER(CB_Verband:SCREEN-VALUE).
  2560. cVerband = CB_Verband:LIST-ITEM-PAIRS.
  2561. i1 = LOOKUP(CB_Verband:SCREEN-VALUE, cVerband, ';') - 1.
  2562. cVerband = ENTRY(i1, cVerband, ';').
  2563. iSubverband = INTEGER(CB_Subverband:SCREEN-VALUE).
  2564. cSubverband = CB_Subverband:LIST-ITEM-PAIRS.
  2565. i1 = LOOKUP(CB_Subverband:SCREEN-VALUE, cSubverband, ';') - 1.
  2566. cSubverband = ENTRY(i1, cSubverband, ';').
  2567. DISPLAY {&List-6}.
  2568. RUN SCHREIBEN_FEHLWERTE.
  2569. IF T_Menge THEN AnzKol = AnzKol + 1.
  2570. IF T_Liter THEN AnzKol = AnzKol + 1.
  2571. IF T_Ep THEN AnzKol = AnzKol + 1.
  2572. IF T_Vp THEN AnzKol = AnzKol + 1.
  2573. IF T_Marge THEN AnzKol = AnzKol + 1.
  2574. IF T_Vorjahr THEN AnzKol = AnzKol * 2.
  2575. IF AnzKol = 0 THEN RETURN NO-APPLY.
  2576. END.
  2577. CASE cInstallation:
  2578. WHEN 'realwines' THEN RUN FUELLEN_TEMPTABLE_LIEFERDATUM.
  2579. OTHERWISE RUN FUELLEN_TEMPTABLE.
  2580. END CASE.
  2581. FOR EACH tUmsatz:
  2582. IF tUmsatz.Me_Lf <> 0 THEN NEXT.
  2583. IF tUmsatz.Me_Vj <> 0 THEN NEXT.
  2584. IF tUmsatz.Li_Lf <> 0 THEN NEXT.
  2585. IF tUmsatz.Li_Vj <> 0 THEN NEXT.
  2586. IF tUmsatz.Ep_Lf <> 0 THEN NEXT.
  2587. IF tUmsatz.Ep_Vj <> 0 THEN NEXT.
  2588. IF tUmsatz.Vp_Lf <> 0 THEN NEXT.
  2589. IF tUmsatz.Vp_Vj <> 0 THEN NEXT.
  2590. IF tUmsatz.Gr_Me_Lf <> 0 THEN NEXT.
  2591. IF tUmsatz.Gr_Me_Vj <> 0 THEN NEXT.
  2592. IF tUmsatz.Gr_Li_Lf <> 0 THEN NEXT.
  2593. IF tUmsatz.Gr_Li_Vj <> 0 THEN NEXT.
  2594. IF tUmsatz.Gr_Ep_Lf <> 0 THEN NEXT.
  2595. IF tUmsatz.Gr_Ep_Vj <> 0 THEN NEXT.
  2596. IF tUmsatz.Gr_Vp_Lf <> 0 THEN NEXT.
  2597. IF tUmsatz.Gr_Vp_Vj <> 0 THEN NEXT.
  2598. DELETE tUmsatz.
  2599. END.
  2600. FIND FIRST tUmsatz NO-LOCK NO-ERROR.
  2601. IF NOT AVAILABLE tUmsatz THEN
  2602. DO:
  2603. MESSAGE 'Keine Daten selektiert !' VIEW-AS ALERT-BOX INFORMATION.
  2604. RETURN.
  2605. END.
  2606. cVorlage = 'DebUmsDet.xls'.
  2607. cDokument = 'DebUmsDet.xls'.
  2608. cDaten = 'DebUmsDet.txt'.
  2609. cDateiName = cDokument + CHR(01) + cVorlage.
  2610. RUN CREATEDATEI ( INPUT cDateiName ).
  2611. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  2612. cDokument = RETURN-VALUE.
  2613. cDateiName = cDaten.
  2614. RUN CREATEDATEI ( INPUT cDateiName ).
  2615. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  2616. cDaten = RETURN-VALUE.
  2617. OUTPUT TO VALUE(cDaten).
  2618. IF T_Hersteller THEN RUN AUSGABE_HERSTELLER.
  2619. ELSE RUN AUSGABE ( 1 ).
  2620. IF T_Zusatz THEN
  2621. DO:
  2622. PUT CONTROL '£' CHR(10)
  2623. '£' CHR(10).
  2624. lTotale = TRUE.
  2625. RUN AUSGABE_TOTALE.
  2626. END.
  2627. IF iVerband <> 999999 THEN
  2628. DO:
  2629. RUN AUSGABE_VERBAND.
  2630. END.
  2631. OUTPUT CLOSE.
  2632. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  2633. IF NOT VALID-HANDLE(excelAppl) THEN
  2634. DO:
  2635. RUN FEHLER ( INPUT 1035 ).
  2636. RETURN.
  2637. END.
  2638. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ).
  2639. IF NOT ja THEN
  2640. DO:
  2641. RUN FEHLER ( INPUT 1040 ).
  2642. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  2643. RETURN NO-APPLY.
  2644. END.
  2645. Zelle = 'A6'.
  2646. excelAppl:Range(Zelle):SELECT.
  2647. excelAppl:SELECTION:FormulaR1C1 = 'TEXT;' + cDaten.
  2648. excelAppl:APPLICATION:RUN ( 'DateiEinfügen' ).
  2649. RUN KOPF ( INPUT excelAppl ).
  2650. Zelle = 'A1'.
  2651. excelAppl:Range(Zelle):SELECT.
  2652. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  2653. END PROCEDURE.
  2654. /* _UIB-CODE-BLOCK-END */
  2655. &ANALYZE-RESUME
  2656. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMELN_AUFTRAEGE gDebitorumsatz
  2657. PROCEDURE SAMMELN_AUFTRAEGE :
  2658. /*------------------------------------------------------------------------------
  2659. Purpose:
  2660. Parameters: <none>
  2661. Notes:
  2662. ------------------------------------------------------------------------------*/
  2663. DEFINE INPUT PARAMETER ipvonDatum1 AS DATE NO-UNDO.
  2664. DEFINE INPUT PARAMETER ipBisDatum1 AS DATE NO-UNDO.
  2665. FOR EACH bDebst NO-LOCK USE-INDEX Debst-k1
  2666. WHERE bDebst.Firma = Firma
  2667. AND bDebst.Knr >= F_VonKnr
  2668. AND bDebst.Knr <= F_BisKnr
  2669. AND ((iVer = 999999)
  2670. OR (iVer <> 999999 AND
  2671. bDebst.Vertr = iVer))
  2672. AND ((iVerband = 999999)
  2673. OR (iVerband <> 999999 AND
  2674. bDebst.Verband_Grp = iVerband))
  2675. AND ((iSubverband = 999999)
  2676. OR (iSubverband <> 999999 AND
  2677. bDebst.Subverband_Grp = iSubverband)) ,
  2678. EACH bAufko NO-LOCK
  2679. WHERE bAufko.Firma = bDebst.Firma
  2680. AND bAufko.Knr = bDebst.Knr
  2681. AND NOT bAufko.AlsOfferte
  2682. AND bAufko.Lief_Datum >= ipvonDatum1
  2683. AND bAufko.Lief_Datum <= ipbisDatum1,
  2684. EACH bAufze NO-LOCK
  2685. WHERE bAufze.Firma = bAufko.Firma
  2686. AND bAufze.Aufnr = bAufko.Aufnr
  2687. AND bAufze.Artnr >= F_VonArtnr
  2688. AND bAufze.Artnr <= F_BisArtnr
  2689. AND bAufze.MBest <> 0
  2690. AND ((T_Gratis)
  2691. OR (NOT T_Gratis AND
  2692. bAufze.Preis <> 0)),
  2693. FIRST bArtst NO-LOCK
  2694. WHERE bArtst.Firma = bAufze.Firma
  2695. AND bArtst.Artnr = bAufze.Artnr
  2696. AND bArtst.Inhalt = bAufze.Inhalt
  2697. AND bArtst.Jahr = bAufze.Jahr
  2698. BREAK BY bDebst.Knr
  2699. BY bArtst.Artnr
  2700. BY bArtst.Inhalt
  2701. BY bArtst.Jahr :
  2702. IF F_Kundengrp = '' THEN.
  2703. ELSE
  2704. DO:
  2705. IF LOOKUP(STRING(bDebst.Ku_Grp,'999'), F_Kundengrp, ',') = 0 THEN NEXT.
  2706. END.
  2707. IF F_Preisgruppe = '' THEN.
  2708. ELSE
  2709. DO:
  2710. IF LOOKUP(STRING(bDebst.Preis_Grp,'999'), F_Preisgruppe, ',') = 0 THEN NEXT.
  2711. END.
  2712. IF F_Hersteller = '' THEN.
  2713. ELSE
  2714. DO:
  2715. IF LOOKUP(STRING(bArtst.Herst ,'999'), F_Hersteller, ',') = 0 THEN NEXT.
  2716. END.
  2717. IF F_Warengrp = '' THEN.
  2718. ELSE
  2719. DO:
  2720. IF LOOKUP(STRING(bArtst.Wg_Grp,'999'), F_Warengrp , ',') = 0 THEN NEXT.
  2721. END.
  2722. IF T_Lieferadresse THEN
  2723. DO:
  2724. UmsKnr = bDebst.Knr.
  2725. END.
  2726. ELSE
  2727. DO:
  2728. IF bDebst.KnrFak <> 0 THEN UmsKnr = bDebst.KnrFak.
  2729. ELSE UmsKnr = bDebst.Knr.
  2730. END.
  2731. iHerst = (IF T_SubGrpHerst THEN bArtst.Herst ELSE 0).
  2732. IF T_Hersteller THEN iHerst = bArtst.Herst.
  2733. RUN CREATE_tUmsatz ( 2, 'LF', 'A' ). /* Artikel */
  2734. IF T_ProdTot THEN RUN CREATE_tUmsatz ( 2, 'LF', 'B' ). /* Produktegruppentotale */
  2735. RUN CREATE_tUmsatz ( 2, 'LF', 'C' ). /* Warengruppentotale */
  2736. IF T_SubGrpHerst THEN RUN CREATE_tUmsatz ( 2, 'LF', 'D' ). /* Herstellertotale */
  2737. RUN CREATE_tUmsatz ( 2, 'LF', 'E' ). /* Kundentotale */
  2738. RUN CREATE_tUmsatz ( 2, 'LF', 'F' ). /* Gesamttotal */
  2739. END.
  2740. END PROCEDURE.
  2741. /* _UIB-CODE-BLOCK-END */
  2742. &ANALYZE-RESUME
  2743. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SCHREIBEN_FEHLWERTE gDebitorumsatz
  2744. PROCEDURE SCHREIBEN_FEHLWERTE :
  2745. /*------------------------------------------------------------------------------
  2746. Purpose:
  2747. Parameters: <none>
  2748. Notes:
  2749. ------------------------------------------------------------------------------*/
  2750. DEFINE VARIABLE cVal AS CHARACTER NO-UNDO.
  2751. DEFINE VARIABLE cKey AS CHARACTER NO-UNDO.
  2752. DO WITH FRAME {&FRAME-NAME}:
  2753. ASSIGN {&List-6}.
  2754. cKey = ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.' ) NO-ERROR.
  2755. cVal = F_VonKnr :SCREEN-VALUE + '@'
  2756. + F_BisKnr :SCREEN-VALUE + '@'
  2757. + F_Kundengrp :SCREEN-VALUE + '@'
  2758. + F_VonArtnr :SCREEN-VALUE + '@'
  2759. + F_BisArtnr :SCREEN-VALUE + '@'
  2760. + F_Hersteller :SCREEN-VALUE + '@'
  2761. + F_Warengrp :SCREEN-VALUE + '@'
  2762. + F_VonDatum :SCREEN-VALUE + '@'
  2763. + F_BisDatum :SCREEN-VALUE + '@'
  2764. + T_Menge :SCREEN-VALUE + '@'
  2765. + T_Liter :SCREEN-VALUE + '@'
  2766. + T_HL :SCREEN-VALUE + '@'
  2767. + T_EP :SCREEN-VALUE + '@'
  2768. + T_VP :SCREEN-VALUE + '@'
  2769. + T_Marge :SCREEN-VALUE + '@'
  2770. + T_Vorjahr :SCREEN-VALUE + '@'
  2771. + CB_Vertreter :SCREEN-VALUE + '@'
  2772. + CB_Verband :SCREEN-VALUE + '@'
  2773. + F_Preisgruppe :SCREEN-VALUE + '@'
  2774. + T_Gratis :SCREEN-VALUE + '@'
  2775. + CB_Subverband :SCREEN-VALUE + '@'
  2776. + T_Lieferadresse:SCREEN-VALUE + '@'
  2777. + T_OffeneAuf :SCREEN-VALUE + '@'
  2778. + T_Zusatz :SCREEN-VALUE + '@'
  2779. + T_ProdTot :SCREEN-VALUE + '@'
  2780. + T_SubGrpHerst :SCREEN-VALUE + '@'
  2781. + T_NurWgr :SCREEN-VALUE + '@'
  2782. + T_Hersteller :SCREEN-VALUE + '@'
  2783. .
  2784. PUT-KEY-VALUE SECTION 'Auswertungen' KEY cKey VALUE cVal.
  2785. END.
  2786. END PROCEDURE.
  2787. /* _UIB-CODE-BLOCK-END */
  2788. &ANALYZE-RESUME
  2789. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERBAND gDebitorumsatz
  2790. PROCEDURE VERBAND :
  2791. /*------------------------------------------------------------------------------
  2792. Purpose:
  2793. Parameters: <none>
  2794. Notes:
  2795. ------------------------------------------------------------------------------*/
  2796. /* DEF VAR hvUmsatz AS HANDLE NO-UNDO. */
  2797. /* DEF VAR htUmsatz AS HANDLE NO-UNDO. */
  2798. /* */
  2799. /* ASSIGN htUmsatz = TEMP-TABLE tUmsatz:DEFAULT-BUFFER-HANDLE */
  2800. /* hvUmsatz = TEMP-TABLE vUmsatz:DEFAULT-BUFFER-HANDLE. */
  2801. /* EMPTY TEMP-TABLE vUmsatz. */
  2802. /* hvUmsatz:COPY-TEMP-TABLE(htUmsatz). */
  2803. /* EMPTY TEMP-TABLE tUmsatz. */
  2804. /* */
  2805. /* FOR EACH vUmsatz NO-LOCK */
  2806. /* WHERE vUmsatz.RecArt = 'A', */
  2807. /* FIRST bDebst NO-LOCK */
  2808. /* WHERE bDebst.Firma = Firma */
  2809. /* AND bDebst.Knr = vUmsatz.Knr */
  2810. /* AND bDebst.Artnr > 0, */
  2811. /* FIRST bArtst NO-LOCK */
  2812. /* WHERE bArtst.Firma = */
  2813. /* END. */
  2814. /* WHERE tUmsatz */
  2815. /* */
  2816. /* END. */
  2817. END PROCEDURE.
  2818. /* _UIB-CODE-BLOCK-END */
  2819. &ANALYZE-RESUME
  2820. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WRITE_tUmsatz gDebitorumsatz
  2821. PROCEDURE WRITE_tUmsatz :
  2822. /*------------------------------------------------------------------------------
  2823. Purpose:
  2824. Notes:
  2825. ------------------------------------------------------------------------------*/
  2826. DEFINE INPUT PARAMETER ipiHerk AS INTEGER NO-UNDO.
  2827. DEFINE INPUT PARAMETER ipcZeit AS CHARACTER NO-UNDO.
  2828. DEFINE INPUT PARAMETER ipcRecArt AS CHARACTER NO-UNDO.
  2829. DEFINE INPUT PARAMETER ipiKnr AS INTEGER NO-UNDO.
  2830. DEFINE INPUT PARAMETER ipiHerst AS INTEGER NO-UNDO.
  2831. DEFINE INPUT PARAMETER ipiWgr AS INTEGER NO-UNDO.
  2832. DEFINE INPUT PARAMETER ipiPgr AS INTEGER NO-UNDO.
  2833. DEFINE INPUT PARAMETER ipiArtnr AS INTEGER NO-UNDO.
  2834. DEFINE INPUT PARAMETER ipiInhalt AS INTEGER NO-UNDO.
  2835. DEFINE INPUT PARAMETER ipiJahr AS INTEGER NO-UNDO.
  2836. DEFINE VARIABLE MWST% AS DECIMAL NO-UNDO.
  2837. DEFINE VARIABLE lMwstIncl AS LOG NO-UNDO.
  2838. DEFINE VARIABLE Ep AS DECIMAL DECIMALS 4 NO-UNDO.
  2839. DEFINE VARIABLE Vp AS DECIMAL DECIMALS 4 NO-UNDO.
  2840. DEFINE VARIABLE nMenge AS DECIMAL INIT 0 NO-UNDO.
  2841. DEFINE VARIABLE nLiter AS DECIMAL INIT 0 DECIMALS 3 NO-UNDO.
  2842. DEFINE VARIABLE nPreis AS DECIMAL INIT 0 NO-UNDO.
  2843. FIND FIRST tUmsatz
  2844. WHERE tUmsatz.RecArt = ipcRecArt
  2845. AND tUmsatz.Knr = ipiKnr
  2846. AND tUmsatz.Herst = ipiHerst
  2847. AND tUmsatz.Wgr = ipiWgr
  2848. AND tUmsatz.Pgr = ipiPgr
  2849. AND tUmsatz.Artnr = ipiArtnr
  2850. AND tUmsatz.Inhalt = ipiInhalt
  2851. AND tUmsatz.Jahr = ipiJahr NO-ERROR.
  2852. IF NOT AVAILABLE tUmsatz THEN
  2853. DO:
  2854. CREATE tUmsatz.
  2855. ASSIGN
  2856. tUmsatz.RecArt = ipcRecArt
  2857. tUmsatz.Knr = ipiKnr
  2858. tUmsatz.Herst = ipiHerst
  2859. tUmsatz.Wgr = ipiWgr
  2860. tUmsatz.Pgr = ipiPgr
  2861. tUmsatz.Artnr = ipiArtnr
  2862. tUmsatz.Inhalt = ipiInhalt
  2863. tUmsatz.Jahr = ipiJahr
  2864. tUmsatz.Ep_Lf = 0
  2865. tUmsatz.Ep_Vj = 0
  2866. tUmsatz.Vp_Lf = 0
  2867. tUmsatz.Vp_Vj = 0
  2868. tUmsatz.Me_Lf = 0
  2869. tUmsatz.Me_Vj = 0
  2870. tUmsatz.Li_Lf = 0
  2871. tUmsatz.Li_Vj = 0
  2872. tUmsatz.Gr_Ep_Lf = 0
  2873. tUmsatz.Gr_Ep_Vj = 0
  2874. tUmsatz.Gr_Vp_Lf = 0
  2875. tUmsatz.Gr_Vp_Vj = 0
  2876. tUmsatz.Gr_Me_Lf = 0
  2877. tUmsatz.Gr_Me_Vj = 0
  2878. tUmsatz.Gr_Li_Lf = 0
  2879. tUmsatz.Gr_Li_Vj = 0
  2880. tUmsatz.KGeb_Cd = bArtst.KGeb_Cd
  2881. tUmsatz.Alk% = bArtst.Alk_Gehalt.
  2882. END.
  2883. CASE ipiHerk:
  2884. WHEN 1 THEN
  2885. DO:
  2886. ASSIGN
  2887. nMenge = bArtbw.Menge
  2888. nLiter = bArtbw.Liter
  2889. nPreis = bArtbw.Preis
  2890. MWST% = bArtbw.MWST%
  2891. lMwstIncl = bArtbw.MWSt_Inkl
  2892. Ep = bArtbw.EP * bArtbw.Menge
  2893. Vp = bArtbw.Net_Betr
  2894. - bArtbw.Auf_Rab
  2895. - bArtbw.Abh_Rab
  2896. - bArtbw.Auf_Sp_Rab.
  2897. END.
  2898. WHEN 2 THEN
  2899. DO:
  2900. ASSIGN
  2901. nMenge = bAufze.MBest
  2902. nLiter = bAufze.Liter
  2903. nPreis = bAufze.Preis
  2904. MWST% = bAufze.MWST%
  2905. lMwstIncl = bAufze.MWSt_Inkl
  2906. Ep = bAufze.EP * bAufze.MBest
  2907. Vp = bAufze.Net_Betr
  2908. - bAufze.Auf_Rab
  2909. - bAufze.Abh_Rab
  2910. - bAufze.Auf_Sp_Rab.
  2911. END.
  2912. END CASE.
  2913. IF Ep = ? THEN Ep = nMenge * bArtst.DEP.
  2914. IF Ep = 0 THEN Ep = nMenge * bArtst.DEP.
  2915. IF Ep = ? THEN Ep = nMenge * bArtst.LEP.
  2916. IF Ep = 0 THEN Ep = nMenge * bArtst.LEP.
  2917. IF Ep = ? THEN Ep = nMenge * bArtst.Listen_EP.
  2918. IF Ep = 0 THEN Ep = nMenge * bArtst.Listen_EP.
  2919. IF Ep = ? THEN Ep = Vp * 0.78.
  2920. IF lMWSTIncl THEN Vp = Vp * 100 / (100 + MWST%).
  2921. CASE ipcZeit:
  2922. WHEN 'LF' THEN
  2923. DO:
  2924. ASSIGN
  2925. tUmsatz.Ep_Lf = tUmsatz.Ep_Lf + Ep
  2926. tUmsatz.Vp_Lf = tUmsatz.Vp_Lf + Vp
  2927. tUmsatz.Me_Lf = tUmsatz.Me_Lf + nMenge
  2928. tUmsatz.Li_Lf = tUmsatz.Li_Lf + nLiter.
  2929. IF nPreis = 0 THEN ASSIGN tUmsatz.Gr_Ep_Lf = tUmsatz.Gr_Ep_Lf + Ep
  2930. tUmsatz.Gr_Vp_Lf = tUmsatz.Gr_Vp_Lf + Vp
  2931. tUmsatz.Gr_Me_Lf = tUmsatz.Gr_Me_Lf + nMenge
  2932. tUmsatz.Gr_Li_Lf = tUmsatz.Gr_Li_Lf + nLiter.
  2933. END.
  2934. WHEN 'VJ' THEN
  2935. DO:
  2936. ASSIGN
  2937. tUmsatz.Ep_Vj = tUmsatz.Ep_Vj + Ep
  2938. tUmsatz.Vp_Vj = tUmsatz.Vp_Vj + Vp
  2939. tUmsatz.Me_Vj = tUmsatz.Me_Vj + nMenge
  2940. tUmsatz.Li_Vj = tUmsatz.Li_Vj + nLiter.
  2941. IF nPreis = 0 THEN ASSIGN tUmsatz.Gr_Ep_Vj = tUmsatz.Gr_Ep_Vj + Ep
  2942. tUmsatz.Gr_Vp_Vj = tUmsatz.Gr_Vp_Vj + Vp
  2943. tUmsatz.Gr_Me_Vj = tUmsatz.Gr_Me_Vj + nMenge
  2944. tUmsatz.Gr_Li_Vj = tUmsatz.Gr_Li_Vj + nLiter.
  2945. END.
  2946. END CASE.
  2947. END PROCEDURE.
  2948. /* _UIB-CODE-BLOCK-END */
  2949. &ANALYZE-RESUME
  2950. /* ************************ Function Implementations ***************** */
  2951. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION GesamtTotal gDebitorumsatz
  2952. FUNCTION GesamtTotal RETURNS CHARACTER
  2953. ( /* parameter-definitions */ ) :
  2954. /*------------------------------------------------------------------------------
  2955. Purpose:
  2956. Notes:
  2957. ------------------------------------------------------------------------------*/
  2958. DEFINE BUFFER ttUmsatz FOR tUmsatz.
  2959. IF iAnzKunde < 2 THEN RETURN ''.
  2960. FIND FIRST ttUmsatz NO-LOCK
  2961. WHERE ttUmsatz.RecArt = 'F'
  2962. AND ttUmsatz.Knr = 9999999
  2963. AND ttUmsatz.Wgr = 9999
  2964. AND ttUmsatz.Pgr = 9999
  2965. AND ttUmsatz.Herst = 9999999.
  2966. Ma_Vj = 0.
  2967. Ma_Lf = 0.
  2968. IF ttUmsatz.Ep_Vj <> 0 AND
  2969. ttUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (ttUmsatz.Ep_Vj * 100 / ttUmsatz.Vp_Vj).
  2970. IF ttUmsatz.Ep_Lf <> 0 AND
  2971. ttUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (ttUmsatz.Ep_Lf * 100 / ttUmsatz.Vp_Lf).
  2972. IF Ma_Vj < 999.99- THEN Ma_Vj = 999.99-.
  2973. IF Ma_Vj > 999.99 THEN Ma_Vj = 999.99.
  2974. IF Ma_Lf < 999.99- THEN Ma_Lf = 999.99-.
  2975. IF Ma_Lf > 999.99 THEN Ma_Lf = 999.99.
  2976. IF T_HL THEN
  2977. DO:
  2978. ASSIGN
  2979. ttUmsatz.Li_Lf = ttUmsatz.Li_Lf / 100
  2980. ttUmsatz.Li_Vj = ttUmsatz.Li_Vj / 100
  2981. ttUmsatz.Gr_Li_Lf = ttUmsatz.Gr_Li_Lf / 100
  2982. ttUmsatz.Gr_Li_Vj = ttUmsatz.Gr_Li_Vj / 100.
  2983. END.
  2984. PUT CONTROL 'Gesamttotal ££££££'.
  2985. cZeile = ''.
  2986. cZeile = TRIM(STRING(ttUmsatz.Me_Lf,'->>>>>>>>>'))
  2987. + '£'.
  2988. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>9.99')).
  2989. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>>>>>')).
  2990. cZeile = cZeile + '£'
  2991. + TRIM(STRING(ttUmsatz.Ep_Lf,'->>>>>>>>>')) + '£'
  2992. + TRIM(STRING(ttUmsatz.Vp_Lf,'->>>>>>>>>')) + '£'
  2993. + TRIM(STRING(Ma_Lf ,'->>9.99')).
  2994. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Me_Vj,'->>>>>>>>>'))
  2995. + '£'.
  2996. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>9.99')).
  2997. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>>>>>')).
  2998. cZeile = cZeile + '£'
  2999. + TRIM(STRING(ttUmsatz.Ep_Vj,'->>>>>>>>>')) + '£'
  3000. + TRIM(STRING(ttUmsatz.Vp_Vj,'->>>>>>>>>')) + '£'
  3001. + TRIM(STRING(Ma_Vj ,'->>9.99')).
  3002. cZeile = REPLACE(cZeile, '£0.00£', '££').
  3003. PUT CONTROL cZeile CHR(10).
  3004. cZeile = ''.
  3005. IF T_Gratis THEN
  3006. DO:
  3007. IF ttUmsatz.Gr_Me_Lf <> 0 OR
  3008. ttUmsatz.Gr_Me_VJ <> 0 THEN
  3009. DO:
  3010. cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(ttUmsatz.Gr_Me_Lf,'->>>>>>>>>'))
  3011. + '£'.
  3012. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>9.99')).
  3013. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>>>>>')).
  3014. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Lf,'->>>>>>>>>'))
  3015. + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Lf,'->>>>>>>>>'))
  3016. + '£'.
  3017. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Me_Vj,'->>>>>>>>>'))
  3018. + '£'.
  3019. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>9.99')).
  3020. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>>>>>')).
  3021. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Vj,'->>>>>>>>>'))
  3022. + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Vj,'->>>>>>>>>'))
  3023. + '£'.
  3024. cZeile = REPLACE(cZeile, '£0.00£', '££').
  3025. PUT CONTROL cZeile CHR(10).
  3026. cZeile = ''.
  3027. END.
  3028. END.
  3029. cZeile = ''.
  3030. RETURN ''.
  3031. END FUNCTION.
  3032. /* _UIB-CODE-BLOCK-END */
  3033. &ANALYZE-RESUME
  3034. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION HerstellerHerstSchluss gDebitorumsatz
  3035. FUNCTION HerstellerHerstSchluss RETURNS CHARACTER
  3036. ( ipcAdresse AS CHARACTER ) :
  3037. /*------------------------------------------------------------------------------
  3038. Purpose:
  3039. Notes:
  3040. ------------------------------------------------------------------------------*/
  3041. DEFINE BUFFER ttUmsatz FOR tUmsatz.
  3042. FIND FIRST ttUmsatz NO-LOCK
  3043. WHERE ttUmsatz.RecArt = 'E'
  3044. AND ttUmsatz.Knr = btUmsatz.Herst
  3045. AND ttUmsatz.Wgr = 9999
  3046. AND ttUmsatz.Pgr = 9999
  3047. AND ttUmsatz.Herst = 9999999.
  3048. PUT CONTROL '£' CHR(10).
  3049. Ma_Vj = 0.
  3050. Ma_Lf = 0.
  3051. IF ttUmsatz.Ep_Vj <> 0 AND
  3052. ttUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (ttUmsatz.Ep_Vj * 100 / ttUmsatz.Vp_Vj).
  3053. IF ttUmsatz.Ep_Lf <> 0 AND
  3054. ttUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (ttUmsatz.Ep_Lf * 100 / ttUmsatz.Vp_Lf).
  3055. IF Ma_Vj < 999.99- THEN Ma_Vj = 999.99-.
  3056. IF Ma_Vj > 999.99 THEN Ma_Vj = 999.99.
  3057. IF Ma_Lf < 999.99- THEN Ma_Lf = 999.99-.
  3058. IF Ma_Lf > 999.99 THEN Ma_Lf = 999.99.
  3059. IF T_HL THEN
  3060. DO:
  3061. ASSIGN
  3062. ttUmsatz.Li_Lf = ttUmsatz.Li_Lf / 100
  3063. ttUmsatz.Li_Vj = ttUmsatz.Li_Vj / 100
  3064. ttUmsatz.Gr_Li_Lf = ttUmsatz.Gr_Li_Lf / 100
  3065. ttUmsatz.Gr_Li_Vj = ttUmsatz.Gr_Li_Vj / 100.
  3066. END.
  3067. PUT CONTROL '£Total ' ipcAdresse '£££££'.
  3068. cZeile = ''.
  3069. cZeile = TRIM(STRING(ttUmsatz.Me_Lf,'->>>>>>>>>'))
  3070. + '£'.
  3071. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>9.99')).
  3072. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>>>>>')).
  3073. cZeile = cZeile + '£'
  3074. + TRIM(STRING(ttUmsatz.Ep_Lf,'->>>>>>>>>')) + '£'
  3075. + TRIM(STRING(ttUmsatz.Vp_Lf,'->>>>>>>>>')) + '£'
  3076. + TRIM(STRING(Ma_Lf ,'->>9.99')).
  3077. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Me_Vj,'->>>>>>>>>'))
  3078. + '£'.
  3079. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>9.99')).
  3080. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>>>>>')).
  3081. cZeile = cZeile + '£'
  3082. + TRIM(STRING(ttUmsatz.Ep_Vj,'->>>>>>>>>')) + '£'
  3083. + TRIM(STRING(ttUmsatz.Vp_Vj,'->>>>>>>>>')) + '£'
  3084. + TRIM(STRING(Ma_Vj ,'->>9.99')).
  3085. cZeile = REPLACE(cZeile, '£0.00£', '££').
  3086. PUT CONTROL cZeile CHR(10).
  3087. cZeile = ''.
  3088. IF T_Gratis THEN
  3089. DO:
  3090. IF ttUmsatz.Gr_Me_Lf <> 0 OR
  3091. ttUmsatz.Gr_Me_VJ <> 0 THEN
  3092. DO:
  3093. cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(ttUmsatz.Gr_Me_Lf,'->>>>>>>>>'))
  3094. + '£'.
  3095. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>9.99')).
  3096. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>>>>>')).
  3097. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Lf,'->>>>>>>>>'))
  3098. + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Lf,'->>>>>>>>>'))
  3099. + '£'.
  3100. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Me_Vj,'->>>>>>>>>'))
  3101. + '£'.
  3102. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>9.99')).
  3103. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>>>>>')).
  3104. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Vj,'->>>>>>>>>'))
  3105. + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Vj,'->>>>>>>>>'))
  3106. + '£'.
  3107. cZeile = REPLACE(cZeile, '£0.00£', '££').
  3108. PUT CONTROL cZeile CHR(10).
  3109. cZeile = ''.
  3110. END.
  3111. END.
  3112. cZeile = ''.
  3113. RETURN ''.
  3114. END FUNCTION.
  3115. /* _UIB-CODE-BLOCK-END */
  3116. &ANALYZE-RESUME
  3117. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION HerstellerSchluss gDebitorumsatz
  3118. FUNCTION HerstellerSchluss RETURNS CHARACTER
  3119. ( ipcHerst AS CHARACTER ) :
  3120. /*------------------------------------------------------------------------------
  3121. Purpose:
  3122. Notes:
  3123. ------------------------------------------------------------------------------*/
  3124. DEFINE BUFFER ttUmsatz FOR tUmsatz.
  3125. IF iAnzWgr < 2 THEN RETURN ''.
  3126. FIND FIRST ttUmsatz NO-LOCK
  3127. WHERE ttUmsatz.RecArt = 'D'
  3128. AND ttUmsatz.Knr = btUmsatz.Knr
  3129. AND ttUmsatz.Wgr = 9999
  3130. AND ttUmsatz.Pgr = 9999
  3131. AND ttUmsatz.Herst = btUmsatz.Herst.
  3132. Ma_Vj = 0.
  3133. Ma_Lf = 0.
  3134. IF ttUmsatz.Ep_Vj <> 0 AND
  3135. ttUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (ttUmsatz.Ep_Vj * 100 / ttUmsatz.Vp_Vj).
  3136. IF ttUmsatz.Ep_Lf <> 0 AND
  3137. ttUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (ttUmsatz.Ep_Lf * 100 / ttUmsatz.Vp_Lf).
  3138. IF Ma_Vj < 999.99- THEN Ma_Vj = 999.99-.
  3139. IF Ma_Vj > 999.99 THEN Ma_Vj = 999.99.
  3140. IF Ma_Lf < 999.99- THEN Ma_Lf = 999.99-.
  3141. IF Ma_Lf > 999.99 THEN Ma_Lf = 999.99.
  3142. IF T_HL THEN
  3143. DO:
  3144. ASSIGN
  3145. ttUmsatz.Li_Lf = ttUmsatz.Li_Lf / 100
  3146. ttUmsatz.Li_Vj = ttUmsatz.Li_Vj / 100
  3147. ttUmsatz.Gr_Li_Lf = ttUmsatz.Gr_Li_Lf / 100
  3148. ttUmsatz.Gr_Li_Vj = ttUmsatz.Gr_Li_Vj / 100.
  3149. END.
  3150. PUT CONTROL '£Total ' ipcHerst '£££££'.
  3151. cZeile = ''.
  3152. cZeile = TRIM(STRING(ttUmsatz.Me_Lf,'->>>>>>>>>'))
  3153. + '£'.
  3154. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>9.99')).
  3155. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>>>>>')).
  3156. cZeile = cZeile + '£'
  3157. + TRIM(STRING(ttUmsatz.Ep_Lf,'->>>>>>>>>')) + '£'
  3158. + TRIM(STRING(ttUmsatz.Vp_Lf,'->>>>>>>>>')) + '£'
  3159. + TRIM(STRING(Ma_Lf ,'->>9.99')).
  3160. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Me_Vj,'->>>>>>>>>'))
  3161. + '£'.
  3162. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>9.99')).
  3163. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>>>>>')).
  3164. cZeile = cZeile + '£'
  3165. + TRIM(STRING(ttUmsatz.Ep_Vj,'->>>>>>>>>')) + '£'
  3166. + TRIM(STRING(ttUmsatz.Vp_Vj,'->>>>>>>>>')) + '£'
  3167. + TRIM(STRING(Ma_Vj ,'->>9.99')).
  3168. cZeile = REPLACE(cZeile, '£0.00£', '££').
  3169. PUT CONTROL cZeile CHR(10).
  3170. cZeile = ''.
  3171. IF T_Gratis THEN
  3172. DO:
  3173. IF ttUmsatz.Gr_Me_Lf <> 0 OR
  3174. ttUmsatz.Gr_Me_VJ <> 0 THEN
  3175. DO:
  3176. cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(ttUmsatz.Gr_Me_Lf,'->>>>>>>>>'))
  3177. + '£'.
  3178. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>9.99')).
  3179. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>>>>>')).
  3180. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Lf,'->>>>>>>>>'))
  3181. + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Lf,'->>>>>>>>>'))
  3182. + '£'.
  3183. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Me_Vj,'->>>>>>>>>'))
  3184. + '£'.
  3185. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>9.99')).
  3186. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>>>>>')).
  3187. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Vj,'->>>>>>>>>'))
  3188. + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Vj,'->>>>>>>>>'))
  3189. + '£'.
  3190. cZeile = REPLACE(cZeile, '£0.00£', '££').
  3191. PUT CONTROL cZeile CHR(10).
  3192. cZeile = ''.
  3193. END.
  3194. END.
  3195. cZeile = ''.
  3196. RETURN ''.
  3197. END FUNCTION.
  3198. /* _UIB-CODE-BLOCK-END */
  3199. &ANALYZE-RESUME
  3200. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION HerstellerStart gDebitorumsatz
  3201. FUNCTION HerstellerStart RETURNS CHARACTER
  3202. ( ipHerst AS INTEGER ) :
  3203. /*------------------------------------------------------------------------------
  3204. Purpose:
  3205. Notes:
  3206. ------------------------------------------------------------------------------*/
  3207. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  3208. DEFINE VARIABLE cHerst AS CHARACTER NO-UNDO.
  3209. ASSIGN
  3210. cString = ''
  3211. cHerst = ''.
  3212. IF ipHerst > 0 THEN
  3213. DO:
  3214. RUN FIND_HERSTELLER ( ipHerst, OUTPUT cString ).
  3215. IF cString = '?' THEN cString = FILL('?', 15).
  3216. cHerst = STRING(ipHerst,'999 ') + ENTRY(2, cString, CHR(01)) NO-ERROR.
  3217. END.
  3218. RETURN cHerst.
  3219. END FUNCTION.
  3220. /* _UIB-CODE-BLOCK-END */
  3221. &ANALYZE-RESUME
  3222. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION KundenSchluss gDebitorumsatz
  3223. FUNCTION KundenSchluss RETURNS CHARACTER
  3224. ( ipcAdresse AS CHARACTER ) :
  3225. /*------------------------------------------------------------------------------
  3226. Purpose:
  3227. Notes:
  3228. ------------------------------------------------------------------------------*/
  3229. DEFINE BUFFER ttUmsatz FOR tUmsatz.
  3230. FIND FIRST ttUmsatz NO-LOCK
  3231. WHERE ttUmsatz.RecArt = 'E'
  3232. AND ttUmsatz.Knr = btUmsatz.Knr
  3233. AND ttUmsatz.Wgr = 9999
  3234. AND ttUmsatz.Pgr = 9999
  3235. AND ttUmsatz.Herst = 9999999.
  3236. /* PUT CONTROL '£' CHR(10). */
  3237. Ma_Vj = 0.
  3238. Ma_Lf = 0.
  3239. IF ttUmsatz.Ep_Vj <> 0 AND
  3240. ttUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (ttUmsatz.Ep_Vj * 100 / ttUmsatz.Vp_Vj).
  3241. IF ttUmsatz.Ep_Lf <> 0 AND
  3242. ttUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (ttUmsatz.Ep_Lf * 100 / ttUmsatz.Vp_Lf).
  3243. IF Ma_Vj < 999.99- THEN Ma_Vj = 999.99-.
  3244. IF Ma_Vj > 999.99 THEN Ma_Vj = 999.99.
  3245. IF Ma_Lf < 999.99- THEN Ma_Lf = 999.99-.
  3246. IF Ma_Lf > 999.99 THEN Ma_Lf = 999.99.
  3247. IF T_HL THEN
  3248. DO:
  3249. ASSIGN
  3250. ttUmsatz.Li_Lf = ttUmsatz.Li_Lf / 100
  3251. ttUmsatz.Li_Vj = ttUmsatz.Li_Vj / 100
  3252. ttUmsatz.Gr_Li_Lf = ttUmsatz.Gr_Li_Lf / 100
  3253. ttUmsatz.Gr_Li_Vj = ttUmsatz.Gr_Li_Vj / 100.
  3254. END.
  3255. PUT CONTROL 'Total ' ipcAdresse '££££££'.
  3256. cZeile = ''.
  3257. cZeile = TRIM(STRING(ttUmsatz.Me_Lf,'->>>>>>>>>'))
  3258. + '£'.
  3259. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>9.99')).
  3260. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>>>>>')).
  3261. cZeile = cZeile + '£'
  3262. + TRIM(STRING(ttUmsatz.Ep_Lf,'->>>>>>>>>')) + '£'
  3263. + TRIM(STRING(ttUmsatz.Vp_Lf,'->>>>>>>>>')) + '£'
  3264. + TRIM(STRING(Ma_Lf ,'->>9.99')).
  3265. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Me_Vj,'->>>>>>>>>'))
  3266. + '£'.
  3267. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>9.99')).
  3268. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>>>>>')).
  3269. cZeile = cZeile + '£'
  3270. + TRIM(STRING(ttUmsatz.Ep_Vj,'->>>>>>>>>')) + '£'
  3271. + TRIM(STRING(ttUmsatz.Vp_Vj,'->>>>>>>>>')) + '£'
  3272. + TRIM(STRING(Ma_Vj ,'->>9.99')).
  3273. cZeile = REPLACE(cZeile, '£0.00£', '££').
  3274. PUT CONTROL cZeile CHR(10).
  3275. cZeile = ''.
  3276. IF T_Gratis THEN
  3277. DO:
  3278. IF ttUmsatz.Gr_Me_Lf <> 0 OR
  3279. ttUmsatz.Gr_Me_VJ <> 0 THEN
  3280. DO:
  3281. cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(ttUmsatz.Gr_Me_Lf,'->>>>>>>>>'))
  3282. + '£'.
  3283. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>9.99')).
  3284. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>>>>>')).
  3285. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Lf,'->>>>>>>>>'))
  3286. + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Lf,'->>>>>>>>>'))
  3287. + '£'.
  3288. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Me_Vj,'->>>>>>>>>'))
  3289. + '£'.
  3290. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>9.99')).
  3291. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>>>>>')).
  3292. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Vj,'->>>>>>>>>'))
  3293. + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Vj,'->>>>>>>>>'))
  3294. + '£'.
  3295. cZeile = REPLACE(cZeile, '£0.00£', '££').
  3296. PUT CONTROL cZeile CHR(10).
  3297. cZeile = ''.
  3298. END.
  3299. END.
  3300. PUT CONTROL '£' CHR(10).
  3301. cZeile = ''.
  3302. RETURN ''.
  3303. END FUNCTION.
  3304. /* _UIB-CODE-BLOCK-END */
  3305. &ANALYZE-RESUME
  3306. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION ProduktegruppenSchluss gDebitorumsatz
  3307. FUNCTION ProduktegruppenSchluss RETURNS CHARACTER
  3308. ( ipcProdgrp AS CHARACTER ) :
  3309. /*------------------------------------------------------------------------------
  3310. Purpose:
  3311. Notes:
  3312. ------------------------------------------------------------------------------*/
  3313. DEFINE BUFFER ttUmsatz FOR tUmsatz.
  3314. IF iAnzArt < 2 THEN RETURN ''.
  3315. FIND FIRST ttUmsatz NO-LOCK
  3316. WHERE ttUmsatz.RecArt = 'B'
  3317. AND ttUmsatz.Knr = btUmsatz.Knr
  3318. AND ttUmsatz.Wgr = btUmsatz.Wgr
  3319. AND ttUmsatz.Pgr = btUmsatz.Pgr
  3320. AND ttUmsatz.Herst = btUmsatz.Herst.
  3321. Ma_Vj = 0.
  3322. Ma_Lf = 0.
  3323. IF ttUmsatz.Ep_Vj <> 0 AND
  3324. ttUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (ttUmsatz.Ep_Vj * 100 / ttUmsatz.Vp_Vj).
  3325. IF ttUmsatz.Ep_Lf <> 0 AND
  3326. ttUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (ttUmsatz.Ep_Lf * 100 / ttUmsatz.Vp_Lf).
  3327. IF Ma_Vj < 999.99- THEN Ma_Vj = 999.99-.
  3328. IF Ma_Vj > 999.99 THEN Ma_Vj = 999.99.
  3329. IF Ma_Lf < 999.99- THEN Ma_Lf = 999.99-.
  3330. IF Ma_Lf > 999.99 THEN Ma_Lf = 999.99.
  3331. IF T_HL THEN
  3332. DO:
  3333. ASSIGN
  3334. ttUmsatz.Li_Lf = ttUmsatz.Li_Lf / 100
  3335. ttUmsatz.Li_Vj = ttUmsatz.Li_Vj / 100
  3336. ttUmsatz.Gr_Li_Lf = ttUmsatz.Gr_Li_Lf / 100
  3337. ttUmsatz.Gr_Li_Vj = ttUmsatz.Gr_Li_Vj / 100.
  3338. END.
  3339. PUT CONTROL '£Total ' ipcProdgrp '£££££'.
  3340. cZeile = ''.
  3341. cZeile = TRIM(STRING(ttUmsatz.Me_Lf,'->>>>>>>>>'))
  3342. + '£'.
  3343. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>9.99')).
  3344. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>>>>>')).
  3345. cZeile = cZeile + '£'
  3346. + TRIM(STRING(ttUmsatz.Ep_Lf,'->>>>>>>>>')) + '£'
  3347. + TRIM(STRING(ttUmsatz.Vp_Lf,'->>>>>>>>>')) + '£'
  3348. + TRIM(STRING(Ma_Lf ,'->>9.99')).
  3349. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Me_Vj,'->>>>>>>>>'))
  3350. + '£'.
  3351. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>9.99')).
  3352. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>>>>>')).
  3353. cZeile = cZeile + '£'
  3354. + TRIM(STRING(ttUmsatz.Ep_Vj,'->>>>>>>>>')) + '£'
  3355. + TRIM(STRING(ttUmsatz.Vp_Vj,'->>>>>>>>>')) + '£'
  3356. + TRIM(STRING(Ma_Vj ,'->>9.99')).
  3357. cZeile = REPLACE(cZeile, '£0.00£', '££').
  3358. PUT CONTROL cZeile CHR(10).
  3359. cZeile = ''.
  3360. IF T_Gratis THEN
  3361. DO:
  3362. IF ttUmsatz.Gr_Me_Lf <> 0 OR
  3363. ttUmsatz.Gr_Me_VJ <> 0 THEN
  3364. DO:
  3365. cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(ttUmsatz.Gr_Me_Lf,'->>>>>>>>>'))
  3366. + '£'.
  3367. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>9.99')).
  3368. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>>>>>')).
  3369. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Lf,'->>>>>>>>>'))
  3370. + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Lf,'->>>>>>>>>'))
  3371. + '£'.
  3372. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Me_Vj,'->>>>>>>>>'))
  3373. + '£'.
  3374. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>9.99')).
  3375. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>>>>>')).
  3376. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Vj,'->>>>>>>>>'))
  3377. + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Vj,'->>>>>>>>>'))
  3378. + '£'.
  3379. cZeile = REPLACE(cZeile, '£0.00£', '££').
  3380. PUT CONTROL cZeile CHR(10).
  3381. cZeile = ''.
  3382. END.
  3383. END.
  3384. cZeile = ''.
  3385. RETURN ''.
  3386. END FUNCTION.
  3387. /* _UIB-CODE-BLOCK-END */
  3388. &ANALYZE-RESUME
  3389. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION ProduktegruppenStart gDebitorumsatz
  3390. FUNCTION ProduktegruppenStart RETURNS CHARACTER
  3391. ( ipWgr AS INTEGER, ipPgr AS INTEGER ) :
  3392. /*------------------------------------------------------------------------------
  3393. Purpose:
  3394. Notes:
  3395. ------------------------------------------------------------------------------*/
  3396. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  3397. DEFINE VARIABLE cProdgrp AS CHARACTER NO-UNDO.
  3398. ASSIGN
  3399. cString = ''
  3400. cProdGrp = ''.
  3401. IF ipPgr > 0 THEN
  3402. DO:
  3403. RUN FIND_PRODGRP ( ipWgr, ipPgr, OUTPUT cString ).
  3404. IF cString = '?' THEN cString = FILL('?', 15).
  3405. cProdgrp = STRING(ipPgr,'999 ') + ENTRY(2, cString, CHR(01)) NO-ERROR.
  3406. END.
  3407. RETURN cProdgrp.
  3408. END FUNCTION.
  3409. /* _UIB-CODE-BLOCK-END */
  3410. &ANALYZE-RESUME
  3411. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION WarengruppenSchluss gDebitorumsatz
  3412. FUNCTION WarengruppenSchluss RETURNS CHARACTER
  3413. ( ipcWarenGrp AS CHARACTER ) :
  3414. /*------------------------------------------------------------------------------
  3415. Purpose:
  3416. Notes:
  3417. ------------------------------------------------------------------------------*/
  3418. DEFINE VARIABLE iPgr AS INTEGER INIT 0 NO-UNDO.
  3419. DEFINE BUFFER ttUmsatz FOR tUmsatz.
  3420. IF T_ProdTot AND
  3421. iAnzPgr < 2 THEN RETURN ''.
  3422. IF NOT T_ProdTot AND
  3423. iAnzArt < 2 THEN RETURN ''.
  3424. IF lWgrTotale THEN
  3425. DO:
  3426. FIND FIRST ttUmsatz NO-LOCK
  3427. WHERE ttUmsatz.RecArt = 'G'
  3428. AND ttUmsatz.Knr = btUmsatz.Knr
  3429. AND ttUmsatz.Wgr = btUmsatz.Wgr
  3430. AND ttUmsatz.Pgr = 9999
  3431. AND ttUmsatz.Herst = btUmsatz.Herst
  3432. AND ttUmsatz.Artnr = 9999999.
  3433. END.
  3434. ELSE
  3435. DO:
  3436. FIND FIRST ttUmsatz NO-LOCK
  3437. WHERE ttUmsatz.RecArt = 'C'
  3438. AND ttUmsatz.Knr = btUmsatz.Knr
  3439. AND ttUmsatz.Wgr = btUmsatz.Wgr
  3440. AND ttUmsatz.Pgr = 9999
  3441. AND ttUmsatz.Herst = btUmsatz.Herst.
  3442. END.
  3443. Ma_Vj = 0.
  3444. Ma_Lf = 0.
  3445. IF ttUmsatz.Ep_Vj <> 0 AND
  3446. ttUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (ttUmsatz.Ep_Vj * 100 / ttUmsatz.Vp_Vj).
  3447. IF ttUmsatz.Ep_Lf <> 0 AND
  3448. ttUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (ttUmsatz.Ep_Lf * 100 / ttUmsatz.Vp_Lf).
  3449. IF Ma_Vj < 999.99- THEN Ma_Vj = 999.99-.
  3450. IF Ma_Vj > 999.99 THEN Ma_Vj = 999.99.
  3451. IF Ma_Lf < 999.99- THEN Ma_Lf = 999.99-.
  3452. IF Ma_Lf > 999.99 THEN Ma_Lf = 999.99.
  3453. IF T_HL THEN
  3454. DO:
  3455. ASSIGN
  3456. ttUmsatz.Li_Lf = ttUmsatz.Li_Lf / 100
  3457. ttUmsatz.Li_Vj = ttUmsatz.Li_Vj / 100
  3458. ttUmsatz.Gr_Li_Lf = ttUmsatz.Gr_Li_Lf / 100
  3459. ttUmsatz.Gr_Li_Vj = ttUmsatz.Gr_Li_Vj / 100.
  3460. END.
  3461. PUT CONTROL '£Total ' ipcWarenGrp '£££££'.
  3462. cZeile = ''.
  3463. cZeile = TRIM(STRING(ttUmsatz.Me_Lf,'->>>>>>>>>'))
  3464. + '£'.
  3465. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>9.99')).
  3466. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>>>>>')).
  3467. cZeile = cZeile + '£'
  3468. + TRIM(STRING(ttUmsatz.Ep_Lf,'->>>>>>>>>')) + '£'
  3469. + TRIM(STRING(ttUmsatz.Vp_Lf,'->>>>>>>>>')) + '£'
  3470. + TRIM(STRING(Ma_Lf ,'->>9.99')).
  3471. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Me_Vj,'->>>>>>>>>'))
  3472. + '£'.
  3473. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>9.99')).
  3474. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>>>>>')).
  3475. cZeile = cZeile + '£'
  3476. + TRIM(STRING(ttUmsatz.Ep_Vj,'->>>>>>>>>')) + '£'
  3477. + TRIM(STRING(ttUmsatz.Vp_Vj,'->>>>>>>>>')) + '£'
  3478. + TRIM(STRING(Ma_Vj ,'->>9.99')).
  3479. cZeile = REPLACE(cZeile, '£0.00£', '££').
  3480. PUT CONTROL cZeile CHR(10).
  3481. cZeile = ''.
  3482. IF T_Gratis THEN
  3483. DO:
  3484. IF ttUmsatz.Gr_Me_Lf <> 0 OR
  3485. ttUmsatz.Gr_Me_VJ <> 0 THEN
  3486. DO:
  3487. cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(ttUmsatz.Gr_Me_Lf,'->>>>>>>>>'))
  3488. + '£'.
  3489. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>9.99')).
  3490. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>>>>>')).
  3491. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Lf,'->>>>>>>>>'))
  3492. + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Lf,'->>>>>>>>>'))
  3493. + '£'.
  3494. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Me_Vj,'->>>>>>>>>'))
  3495. + '£'.
  3496. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>9.99')).
  3497. ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>>>>>')).
  3498. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Vj,'->>>>>>>>>'))
  3499. + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Vj,'->>>>>>>>>'))
  3500. + '£'.
  3501. cZeile = REPLACE(cZeile, '£0.00£', '££').
  3502. PUT CONTROL cZeile CHR(10).
  3503. cZeile = ''.
  3504. END.
  3505. END.
  3506. cZeile = ''.
  3507. RETURN ''.
  3508. END FUNCTION.
  3509. /* _UIB-CODE-BLOCK-END */
  3510. &ANALYZE-RESUME
  3511. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION WarengruppenStart gDebitorumsatz
  3512. FUNCTION WarengruppenStart RETURNS CHARACTER
  3513. ( ipWgr AS INTEGER ) :
  3514. /*------------------------------------------------------------------------------
  3515. Purpose:
  3516. Notes:
  3517. ------------------------------------------------------------------------------*/
  3518. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  3519. DEFINE VARIABLE cWarenGrp AS CHARACTER NO-UNDO.
  3520. ASSIGN
  3521. cString = ''
  3522. cWarenGrp = ''.
  3523. /* IF ipWgr > 0 THEN DO:*/
  3524. RUN FIND_WarenGrp ( ipWgr, OUTPUT cString ).
  3525. IF cString = '?' THEN cString = FILL('?', 15).
  3526. IF NOT lTotale THEN cWarenGrp = STRING(ipWgr,'999 ') + ENTRY(2, cString, CHR(01)) NO-ERROR.
  3527. ELSE cWarenGrp = '£' + STRING(ipWgr,'999') + '£' + ENTRY(2, cString, CHR(01)) NO-ERROR.
  3528. /* END.*/
  3529. RETURN cWarenGrp.
  3530. END FUNCTION.
  3531. /* _UIB-CODE-BLOCK-END */
  3532. &ANALYZE-RESUME