1 | FSCLMPOS ;SLC/STAFF-NOIS List Manager Protocol Other Sort ;4/22/94 11:06
|
---|
2 | ;;1.1;NOIS;;Sep 06, 1998
|
---|
3 | ;
|
---|
4 | SORT ; from FSCLMP
|
---|
5 | I ^TMP("FSC LIST CALLS",$J)'>1 Q
|
---|
6 | N CNT,DIC,DIR,DONE,LASTCNT,NUM,OK,SORT,X,Y K DIC,DIR,SORT,Y
|
---|
7 | S CNT=0,OK=1,DIC=7107.2,DIC(0)="AEMOQZ",DIC("S")="I $P(^(0),U,3)'[""W"",'$D(SORT(""N"",$P(^(0),U)))",DIC("A")="Sort by: "
|
---|
8 | S DONE=0 F D I DONE Q
|
---|
9 | .D ^DIC
|
---|
10 | .I $D(DUOUT)!$D(DTOUT) S DONE=1,OK=0 Q
|
---|
11 | .I Y<1 S DONE=1 Q
|
---|
12 | .S CNT=CNT+1,SORT(CNT)=Y(0),SORT("N",$P(Y,U,2))=""
|
---|
13 | .I CNT>4 S DONE=1 W !,"Limit of 5 fields only."
|
---|
14 | .I CNT=1 S DIC("A")="and then sort by: "
|
---|
15 | K DIC,SORT("N"),Y
|
---|
16 | I 'OK Q
|
---|
17 | I '$O(SORT(0)) Q
|
---|
18 | W !!,"The list will be sorted by:",!
|
---|
19 | S (LASTCNT,CNT)=0 F S CNT=$O(SORT(CNT)) Q:CNT<1 S LASTCNT=CNT W CNT,") ",$P(SORT(CNT),U,2),$S($O(SORT(CNT)):", ",1:"")
|
---|
20 | S DIR(0)="LAO^1:"_LASTCNT
|
---|
21 | S DIR("A")="Select any fields to be sorted in descending order or <return>: "
|
---|
22 | S DIR("?",1)="Descending order will sort from Z to A or highest value first."
|
---|
23 | S DIR("?",2)="This is useful for sorting most recent dates first or"
|
---|
24 | S DIR("?",3)="numeric value fields. Enter any of the sequence numbers of"
|
---|
25 | S DIR("?",4)="the fields you have selected to sort by. (ex. 1,3-4)"
|
---|
26 | S DIR("?",5)="If you want all fields sorted in ascending order, enter <return>."
|
---|
27 | S DIR("?",6)="Enter '^' to exit without sorting or '??' for more help."
|
---|
28 | S DIR("?")="^D HELP^FSCU(.DIR)"
|
---|
29 | S DIR("??")="FSC U1 NOIS"
|
---|
30 | D ^DIR K DIR
|
---|
31 | I $D(DIRUT),Y'="" Q
|
---|
32 | F CNT=1:1 S NUM=$P(Y,",",CNT) Q:NUM<1 S SORT(NUM,"D")=""
|
---|
33 | D SORT^FSCUS(.SORT)
|
---|
34 | Q
|
---|