Index: PRBS.mac.rou =================================================================== diff -u -r1032 -r1134 --- PRBS.mac.rou (.../PRBS.mac.rou) (revision 1032) +++ PRBS.mac.rou (.../PRBS.mac.rou) (revision 1134) @@ -308,11 +308,50 @@ .Set ^HULP(%J,"S",SortKey)=BSRec Quit -SORTKEY(BSKey,Rec) + +SORTKEY(BSKey,Rec) + #define PRNr(%v) $P(%v,"\",1) + #define KolomTm(%v) $P(%v,"\",3) + #define SortNr(%v) $P(%v,"\",10) + #define Groep(%v) $P(%v,"\",11) + #define BSOms(%v) $P(%v,"\",13) + #define SubDelim "#" + + // Added by WimV on 11/05/2011 : + // Aanpassing van de sorteervolgorde van de bouwstenen in het scherm "Product bouwstenen wijzigen" + // + // De SortKey was in een vorige versie opgebouwd uit 3 pieces : SortNr ; Groep ; BSKey ( ";"-delimited = $$$MainDelim) + // Het wijzigen van de 3e piece (nl. BSKey) in iets anders leidt tot crash van het systeem bij het opbouwen van het scherm. + // Dus om een andere sortering te bekomen, zal alleen de 2e piece aangepast worden, m.a.w. deze wordt op zichzelf een + // piece-delimited waarde ($$$SubDelim) + + New SortKey,SubSortKey,Groep,TypeTm,PRNr,ProductSort + Set Groep=$$$Groep(Rec) + Set TypeTm=$$$KolomTm(Rec) + + Set SubSortKey=$S(Groep="*":"~",1:Groep)_$$$SubDelim_TypeTm ; Indien groep is wildcard dan achteraan sorteren + + If TypeTm?1(1"K",1"H") { + // Voor Kind en Halffabrikaat : sorteren volgens standaard productsort (nl. klassif + korttekst) + Set PRNr=$$$PRNr(Rec) + Set ProductSort=$$SORTKEY^PRODUKT(PRNr) + Set SubSortKey=SubSortKey_$$$SubDelim_ProductSort + } + Else { + // Voor TypeTm = S of T : geen verdere sortering, alleen nog op BSKey (= 3e piece van MainDelim) + ;Set SubSortKey=SubSortKey_$$$SubDelim_BSKey ; is dus niet nodig + } + Set SortKey=(1000+$$$SortNr(Rec))_";"_SubSortKey_";"_BSKey + Quit SortKey + + /* * / + // Previous version of SORTKEY(BSKey,Rec) --> placed in comment by WimV on 11/05/2011. Replaced by code above. + // +SORTKEY_OLD(BSKey,Rec) New SortKey Set SortKey=(1000+$P(Rec,D,10))_";"_$S($P(Rec,D,11)="*":"~",1:$P(Rec,D,11))_";"_BSKey ; Indien groep is wildcard dan achteraan sorteren - ;Set SortKey=$P(Rec,D,10)_";"_$S($P(Rec,D,11)="*":"~",1:$P(Rec,D,11))_";"_$P(Rec,D,10)_";"_BSKey ; Indien groep is wildcard dan achteraan sorteren Quit SortKey + /* */ LOCK(PRNr,Optie) New Ask @@ -560,7 +599,7 @@ Kill ^PRLINK Kill ^PRBS("IP") Set PRNr="" - For Set PRNr=$O(^PRLINK("D",PRNr)) Quit:PRNr="" Do + For Set PRNr=$O(^PRBS("BS",PRNr)) Quit:PRNr="" Do .Do BLDIND(PRNr) .Do KPSAVE(PRNr) Quit