Maandverkoop per klant en product per maand persistent VHOpslag %Library.Persistent 0 1 KLNr:%Integer,PRNr:Prod.Product,RefDatum:%Date,Periode:%String,Piece:%Integer %Float %Library.Date %Library.Float %Library.Float %Library.Float %Library.Float %Library.Integer %String %Library.Float %Library.Float %Library.Float Prod.Product Derde.Klant.Klant %Library.Integer Aantal stuks over KOM %Library.Integer %Library.Date 1 Set {*}=$ZDH($TR({Maand}_"01"," .",""),8) 1 %Library.Float 1 Set {*}=##class(Stat.OmzetKlantProductMaand).Cumul({Klant},{Product},{Maand},12,1) 1 %Library.Float 1 Set {*}=##class(Stat.OmzetKlantProductMaand).Cumul({Klant},{Product},{Maand},12,2) 1 %Library.Float 1 Set {*}=##class(Stat.OmzetKlantProductMaand).Cumul({Klant},{Product},{Maand},12,3) 1 %Library.Float 1 Set {*}=##class(Stat.OmzetKlantProductMaand).Cumul({Klant},{Product},{Maand},12,4) 1 1 1 Product,Klant,Maand D ##class(Stat.OmzetKlantProductMaand).Test() 1 Query wordt gebruikt door PVH in een Excel dd 31-05-2005 Query VerschilOmzetProdGrp(VorigVan As %Date, VorigTot As %Date, HuidigVan As %Date, HuidigTot As %Date) As %Query(CONTAINID = 0, ROWSPEC = "KLNr:%Integer,Naam:%String,Tel1:%String,Straat:%String,Postkode:%String,Gemeente:%String,Taal:%String,Regio:%String,Aktiviteit:%String,Kwantiteit:%String,Kwaliteit:%String,NonAkt:%Integer,Vervallen:%Integer,AantalBezoeken:%String,LaatsteBezoek:%String,KlachtenJr:%Integer,KlachtenMnd:%Integer,Codex:%String,Uitz:%String,Trend:%String,VoBlum:%Float,VoHAL:%Float,VoTBX:%Float,VoGRP:%Float,VoRest:%Float,VoOL:%Float,HuBlum:%Float,HuHAL:%Float,HuTBX:%Float,HuGRP:%Float,HuRest:%Float,HuOL:%Float,VoMaBlum:%Float,VoMaHAL:%Float,VoMaTBX:%Float,VoMaGRP:%Float,VoMaRest:%Float,VoMaOL:%Float,HuMaBlum:%Float,HuMaHAL:%Float,HuMaTBX:%Float,HuMaGRP:%Float,HuMaRest:%Float,HuMaOL:%Float,CatalogusInfo:%String") [ SqlProc ] %Query VorigVan:%Date,VorigTot:%Date,HuidigVan:%Date,HuidigTot:%Date 1 1 %Status = ?) OR (Jaar = ? AND MAAND <= ?)) GROUP BY KlantNr, KostType") Set JaarVan = ##class(TECH.DateTime).Jaar(+%HorologHuidigVan) Set MaandVan = ##class(TECH.DateTime).Maand(+%HorologHuidigVan) Set JaarTot = ##class(TECH.DateTime).Jaar(+%HorologHuidigTot) Set MaandTot = ##class(TECH.DateTime).Maand(+%HorologHuidigTot) Do %RSet.Execute(JaarVan,MaandVan,JaarTot,MaandTot) /// Array opbouwen van vorm : Kost('Bezoek',1000)=52.3 While(%RSet.Next()){ Set %Kost(%RSet.Data("KostType"),%RSet.Data("KlantNr")) = %RSet.Data("Kostprijs") } Quit $$$OK ]]> 1 VerschilOmzetProdGrpExecute 0 %Status 0):$H-Vervallen,1:"") Set HeeftUtz=$S($D(^KLPUTZ("N",KLNr))>1:"+",1:"") Set AantalBezoeken=##class(BL.Derde.Agenda.Agenda).AantalBezoeken(KLNr,%HuidigVan,%HuidigTot) Set LaatsteBezoek=##class(BL.Derde.Agenda.Agenda).LaatsteBezoek(KLNr) If (LaatsteBezoek '= "") Set LaatsteBezoek=$zd(LaatsteBezoek,3) Set AantalKlachtenJr=##class(Derde.Klacht).AantalKlachten("K",KLNr,%HuidigVan,%HuidigTot) Set AantalKlachtenMnd=##class(Derde.Klacht).AantalKlachten("K",KLNr,%HuidigTotFD,%HuidigTot) Set Trend=##class(BL.Derde.Klant.Main).OmzetTrend(KLNr) Set Kwantitatief=$$DisplayKwantitatief^KLANT5(KLNr) Set Kwantitatief=$LG(Kwantitatief,1)_" "_$LG(Kwantitatief,2) Set Kwalitatief=$$DisplayKwalitatief^KLANT5(KLNr) Set Kwalitatief=$LG(Kwalitatief,1)_" "_$LG(Kwalitatief,2) Set Taal = $P(^KKL(%VOKLId,0),"\",9) Set CatalogusInfo = ..GeefCatalogusInfo(KLNr) Set Row=$LB(KLNr,Klant.Naam,Klant.Telefoon1,Straat,Postcode,Gemeente,Taal,Klant.Sektor,Klant.Aktiviteit,Kwantitatief,Kwalitatief,Klant.CommNonActief,Vervallen,AantalBezoeken,LaatsteBezoek,AantalKlachtenJr,AantalKlachtenMnd,Klant.Prijsklasse,HeeftUtz,Trend) Set IOmzetVorigList = "" Set IOmzetHuidigList = "" Set IMargeVorigList = "" Set IMargeHuidigList = "" Set ProdGrp="" Set ProdGrp=$O(^RES("PRODUKT","PI","PRODUKTGROEP","D",ProdGrp)) While (ProdGrp '= ""){ Set VolgNr=$P(^RES("PRODUKT","PI","PRODUKTGROEP","D",ProdGrp),"`") Set $LI(OmzetVorigList,VolgNr)=$LG(OmzetVorigList,VolgNr)+$G(SumOmzetVorig(ProdGrp)) Set $LI(OmzetHuidigList,VolgNr)=$LG(OmzetHuidigList,VolgNr)+$G(SumOmzetHuidig(ProdGrp)) Set $LI(MargeVorigList,VolgNr)=$LG(MargeVorigList,VolgNr)+$G(SumMargeVorig(ProdGrp)) Set $LI(MargeHuidigList,VolgNr)=$LG(MargeHuidigList,VolgNr)+$G(SumMargeHuidig(ProdGrp)) /// Indicator Set $LI(IOmzetVorigList,VolgNr)=$LG(IOmzetVorigList,VolgNr)+$G(IndicatorSumOmzetVorig(ProdGrp)) Set $LI(IOmzetHuidigList,VolgNr)=$LG(IOmzetHuidigList,VolgNr)+$G(IndicatorSumOmzetHuidig(ProdGrp)) Set $LI(IMargeVorigList,VolgNr)=$LG(IMargeVorigList,VolgNr)+$G(IndicatorSumMargeVorig(ProdGrp)) Set $LI(IMargeHuidigList,VolgNr)=$LG(IMargeHuidigList,VolgNr)+$G(IndicatorSumMargeHuidig(ProdGrp)) Set ProdGrp=$O(^RES("PRODUKT","PI","PRODUKTGROEP","D",ProdGrp)) } Set Row=Row_OmzetVorigList_OmzetHuidigList_MargeVorigList_MargeHuidigList Set Row=Row_IOmzetVorigList_IOmzetHuidigList_IMargeVorigList_IMargeHuidigList Set Row=Row_$LB(CatalogusInfo) /// Kosten toevoegen Set KostprijsVertegenw = ..GeefKostprijsKlant(KLNr,##class(APPS.common.KlantKost.enu.KostType).Bezoek()) Set KostprijsMonsters = ..GeefKostprijsKlant(KLNr,##class(APPS.common.KlantKost.enu.KostType).Monster()) Set KostprijsAfhaling = ..GeefKostprijsKlant(KLNr,##class(APPS.common.KlantKost.enu.KostType).Afhaling()) Set KostprijsLosTransport = ..GeefKostprijsKlant(KLNr,##class(APPS.common.KlantKost.enu.KostType).LosTransport()) Set KostprijsRitTransport = ..GeefKostprijsKlant(KLNr,##class(APPS.common.KlantKost.enu.KostType).RitTransport()) Set KostprijsBulkTransport = ..GeefKostprijsKlant(KLNr,##class(APPS.common.KlantKost.enu.KostType).BulkTransport()) Set TotaalKostprijsTransport = KostprijsAfhaling + KostprijsLosTransport + KostprijsRitTransport + KostprijsBulkTransport Set KostprijsTotaal = KostprijsVertegenw + KostprijsMonsters + TotaalKostprijsTransport Set Row=Row_$LB(KostprijsVertegenw,KostprijsMonsters,TotaalKostprijsTransport,KostprijsTotaal) Quit $$$OK ]]> 1 VerschilOmzetProdGrpExecute %Status JBL + 2011-04-13 1 SQL kosten bezoek laatste 12 maand JBL + 2011-04-13 1 KorttekstPrefix:%String 1 JBL + 2011-04-13 1 KLNr:%Integer %String 0) ){ Set CatalogusInfo = CatalogusInfo_KorttekstPrefix_"," } Set KorttekstPrefix = %CatalogusLijst.Next(KorttekstPrefix) } Quit CatalogusInfo ]]> JBL + 2011-06-08 Geef voor de klant de kostprijs van de bezoeken (= kostprijs vergegenw klant) tussen de opgegeven data. 1 KlantNr:%Integer,KostType:APPS.common.KlantKost.enu.KostType %Float %Library.CacheSQLStorage ^Stat.ProdMaandS data ^KSTPR delimited Sub {Product} 1 Sub {Klant} 1 Sub {Maand} 1 "\" 2 "\" 4 "\" 3 "\" 6 "\" 1 "\" 5