Maandverkoop per klant en product per maand persistent 0 VHOpslag %Library.Persistent 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 Klant,Maand D ##class(Stat.OmzetKlantProductMaand).Test() 1 %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) Set AantalUrenToonzaalBezoek = ##class(BL.Derde.Agenda.Agenda).AantalUrenVanAgendaType(KLNr,##class(Derde.Agenda.enu.AgendaType).ToonzaalBezoek()) Set AantalUrenOpleiding = ##class(BL.Derde.Agenda.Agenda).AantalUrenVanAgendaType(KLNr,##class(Derde.Agenda.enu.AgendaType).Opleiding()) 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) Do ..VoegToeKortingGegevensAanRij(KLNr,.Row) Set Row = Row_$LB(Vervallen,AantalBezoeken,LaatsteBezoek,AantalUrenToonzaalBezoek,AantalUrenOpleiding,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) Do ..VoegToeKosten(KLNr,.Row) Quit $$$OK ]]> 1 1 1 1 1 VerschilOmzetProdGrpExecute %Status 1 1 KorttekstPrefix:%String 1 KLNr:%Integer %String 0) ){ Set CatalogusInfo = CatalogusInfo_KorttekstPrefix_"," } Set KorttekstPrefix = %CatalogusLijst.Next(KorttekstPrefix) } Quit CatalogusInfo ]]> Geef voor de klant de kostprijs van de bezoeken (= kostprijs vergegenw klant) tussen de opgegeven data. 1 KlantNr:%Integer,KostType:Stat.enu.KlantKostType %Float %Library.CacheSQLStorage ^Stat.ProdMaandS data ^KSTPR delimited Sub {Product} 1 Sub {Klant} 1 Sub {Maand} 1 "\" 2 "\" 4 "\" 3 "\" 6 "\" 1 "\" 5