PVKADLean #include Prod.Product #include vhLib.Macro test Set Dev=0 Set Dev=$$OPEN^vhDEV(,"KAD Kenmerken.txt","W") Use Dev Do WriteTitel Do WriteOne(430360,"",1) Do WriteOne(409118,"",1) Do WriteOne(267202,"",1) Do WriteOne(447419,"",1) Do WriteOne(190266,"",1) Close:0'[Dev Dev q Lijst Set Dev=0 Set Dev=$$OPEN^vhDEV(,"KAD Kenmerken2.txt","W") Use Dev Do WriteTitel2 Set Begin=$$CALCDATE^vhLib.DataTypes($H,"W",-52,"FD") Set Einde=$$CALCDATE^vhLib.DataTypes($H,"W",-0,"LD") Set PRNr=0 For Set PRNr=$O(^PRHIST(PRNr)) Quit:PRNr="" Do . Quit:$P($$GENTYP^HAD(PRNr),"\",1,2)'="KAD\" . Set VolgNr="" . For Set VolgNr=$O(^PRHIST(PRNr,VolgNr)) Quit:VolgNr="" Do . . Set Rec=^PRHIST(PRNr,VolgNr) . . Quit:+$P(Rec,"\")Einde . . Quit:$P(Rec,"\",5)'="M" . . Quit:$P(Rec,"\",4)'="I" . . Set Aantal=+$P(Rec,"\",2) . . Set Datum=+$P(Rec,"\",1) . . Set Toelev=+$P(Rec,"\",7) . . Quit:Aantal'>0 . . Do WriteOne2(PRNr,Datum,Aantal,Toelev) Close:0'[Dev Dev Quit GetKlant(PRNr) New VolgNr,Rec,KLNr Set VolgNr="" For Set VolgNr=$O(^PRHIST(PRNr,VolgNr)) Quit:VolgNr="" Do Quit:$G(KLNr) . Set Rec=^PRHIST(PRNr,VolgNr) . Quit:$P(Rec,"\",5)'="M" . Quit:$P(Rec,"\",4)'="U" . Set KLNr=$P(Rec,"\",6) Quit $G(KLNr) WriteTitel Write $TR("PRNr,ProdNm,Datum,Aantal,Toelev,Klant,Naam",",",$c(9)) Write $TR(",ProfType,ProfAfw,Vulling,Hoogte,Breedte,Beslag1,Beslag2,Beslag3,Beslag4",",",$c(9)) For I=1:1:20 Do . Write *9,"AfschuinDia"_I,*9,"BoorDia"_I,*9,"BoorDiepte"_I,*9,"BoringPlaats"_I,*9,"BoringType"_I Write ! Quit WriteTitel2 Write $TR("PRNr,ProdNm,Datum,Aantal,Toelev,Klant,Naam",",",$c(9)) Write $TR(",ProfType,ProfAfw,Vulling,Hoogte,Breedte,Beslag",",",$c(9)) Write *9,"AfschuinDia",*9,"BoorDia",*9,"BoorDiepte",*9,"BoringPlaats",*9,"BoringType" Write ! Quit WriteOne(PRNr,Datum,Aantal,Toelev) New VolgNr,Key,Count Set KadNr=$P($G(^KPR(PRNr,"G")),"\",13) Quit:KadNr="" Set oKad=##class(Prod.GADef.KaderDeur).%OpenId(KadNr) Do WriteFirst Set Key="",Count=0 For Set Beslag="",Beslag=oKad.Beslag.GetNext(.Key) Quit:Key="" Do . If $isObject(Beslag) Do . . Set Count=Count+1 . . If Count<5 Write *9,Beslag.Beslag.ItemID For Count=Count+1:1:4 Write *9 Set Key="",Count=0 For Set Boring="",Boring=oKad.Boringen.GetNext(.Key) Quit:Key="" Do . If $isObject(Boring) Do . . Set Count=Count+1 . . Write *9,$$$ExcelNum(Boring.AfschuinDiameter),*9,$$$ExcelNum(Boring.BoorDiameter) . . Write *9,$S(Boring.AfschuinDiameter>0:$S(Boring.BoorDiepte=-1:"DOOR+AFSCHUIN",1:"AFSCHUIN"),Boring.BoorDiameter=-1:"PUNT",Boring.BoorDiepte=-1:"DOOR",Boring.BoorDiepte=1:"STD",Boring.BoorDiepte=0:"PUNT0",1:"") . . Write *9,Boring.BoringPlaats,*9,Boring.BoringType Write ! Quit WriteOne2(PRNr,Datum,Aantal,Toelev) New VolgNr,Key,Count Set KadNr=$P($G(^KPR(PRNr,"G")),"\",13) Quit:KadNr="" Set oKad=##class(Prod.GADef.KaderDeur).%OpenId(KadNr) Set Key="",Count=0 For Set Boring="",Boring=oKad.Boringen.GetNext(.Key) Quit:Key="" Do . If $isObject(Boring) Do . . Set Count=Count+1 .. If Boring.BoringPlaats'="VUL" Do . . . Do WriteFirst Write *9 . . . Write *9,$$$ExcelNum(Boring.AfschuinDiameter),*9,$$$ExcelNum(Boring.BoorDiameter) . . . Write *9,$S(Boring.AfschuinDiameter>0:$S(Boring.BoorDiepte=-1:"DOOR+AFSCHUIN",1:"AFSCHUIN"),Boring.BoorDiameter=-1:"PUNT",Boring.BoorDiepte=-1:"DOOR",Boring.BoorDiepte=1:"STD",Boring.BoorDiepte=0:"PUNT0",1:"") . . . Write *9,Boring.BoringPlaats,*9,Boring.BoringType . . . Write ! Set oKad.Boringen="" Kill TelP, TelV Do oKad.TelBoringen(.TelP,.TelV) Set Key="",Count=0 Set BeslagTxt="" For Set Beslag="",Beslag=oKad.Beslag.GetNext(.Key) Quit:Key="" Do . If $isObject(Beslag) Do . . Set BeslagTxt=BeslagTxt_$S(BeslagTxt="":"",1:",")_Beslag.Beslag.ItemID Set (Plaats,Type,Boring)="" For Set Type=$O(TelP(Type)) Quit:Type="" Do . For Set Plaats=$O(TelP(Type,Plaats)) Quit:Plaats="" Do . . For Set Boring=$O(TelP(Type,Plaats,Boring)) Quit:Boring="" Do . . . Do WriteFirst . . . Write *9,BeslagTxt . . . Write *9,$P(Boring,"+",2),*9,$$$ExcelNum($P(Boring,"+",1)) . . . Write *9,$S(Boring["+":"AFSCHUIN",Boring=-1:"PUNT",1:"STD") . . . Write *9,Plaats,*9,Type . . . Write ! Quit WriteFirst Set KLNr=$$GetKlant(PRNr) Set Naam=$S(KLNr:$P(^KKL(^KK1(KLNr),0),"\",2),1:"") Write PRNr,*9,$$$PRGet($$$KortTekst),*9,$$$ExcelDat(Datum),*9,Aantal,*9,Toelev,*9,KLNr,*9,Naam,*9,oKad.ProfType.ItemID,*9,$P(oKad.ProfAfw.ItemID,"-",2),*9,oKad.Vulling.Vulling.ItemID,*9,$$$ExcelNum(oKad.Hoogte),*9,$$$ExcelNum(oKad.Breedte) Quit