[613] | 1 | QAQSELCT ;HISC/DAD-GENERIC FILE ENTRY SELECTOR ;2/11/94 12:29
|
---|
| 2 | ;;1.7;QM Integration Module;;07/25/1995
|
---|
| 3 | ;
|
---|
| 4 | ;*** SELECTS A GROUP OF RECORDS FROM A FILE ***
|
---|
| 5 | ;
|
---|
| 6 | ;REQUIRES:
|
---|
| 7 | ; QAQDIC = FILE NUMBER OR GLOBAL ROOT
|
---|
| 8 | ; QAQDIC(0) = DIC(0) STRING
|
---|
| 9 | ; QAQUTIL = NODE TO STORE DATA UNDER IN ^UTILITY($J,QAQUTIL,
|
---|
| 10 | ;OPTIONAL:
|
---|
| 11 | ; QAQDIC("A") = DIC("A") STRING
|
---|
| 12 | ; QAQDIC("B") = DIC("B") STRING
|
---|
| 13 | ; QAQDIC("S") = DIC("S") STRING
|
---|
| 14 | ; QAQDIC("W") = DIC("W") STRING
|
---|
| 15 | ;RETURNS:
|
---|
| 16 | ; QAQQUIT = $S(UP_ARROW_OUT:1 , NOTHING_SELECTED:1 , 1:0)
|
---|
| 17 | ; ^UTILITY($J,QAQUTIL,EXTERNAL_.01_FIELD_DATA,IEN) = ""
|
---|
| 18 | EN1 ;
|
---|
| 19 | S QAQQUIT=0 I ($D(QAQDIC)[0)!($D(QAQDIC(0))[0)!($D(QAQUTIL)[0) S QAQQUIT=1 G EXIT
|
---|
| 20 | I (QAQDIC="")!(QAQDIC(0)="")!(QAQUTIL="") S QAQQUIT=1 G EXIT
|
---|
| 21 | D K S DIC=QAQDIC I DIC S (QAQDIC,DIC)=$S($D(^DIC(DIC,0,"GL"))#2:^("GL"),1:"") I DIC="" S QAQQUIT=1 G EXIT
|
---|
| 22 | S DIC(0)=QAQDIC(0),DIC(0)=$TR(DIC(0),"AL") S:DIC(0)'["Z" DIC(0)=DIC(0)_"Z" S QAQDIC(0)=DIC(0)
|
---|
| 23 | D DO^DIC1 S QAQFNUM=+DO(2),QAQFNAME=$P(DO,"^"),QAQFLD01=$P(^DD(QAQFNUM,.01,0),"^"),QAQFSCR=$S($D(DO("SCR"))#2:DO("SCR"),1:"") K DO
|
---|
| 24 | S QAQFLD01("S")=QAQFLD01_$S($E(QAQFLD01,$L(QAQFLD01))?1L:"s",1:"S")
|
---|
| 25 | F X="A","B","S","W" S QAQDIC(X)=$S($D(QAQDIC(X))#2:QAQDIC(X),1:"")
|
---|
| 26 | S:QAQDIC("A")="" QAQDIC("A")="Select "_QAQFNAME_" "_QAQFLD01_": "
|
---|
| 27 | S QAQALL=0,QAQNUM=1 K ^UTILITY($J,QAQUTIL) D HOME^%ZIS
|
---|
| 28 | 1 D SETDIC W !!,$S(QAQNUM>1:"Another one: ",1:DIC("A")),$S((QAQNUM=1)&(QAQDIC("B")]""):QAQDIC("B")_"// ",1:"")
|
---|
| 29 | R X:DTIME S:('$T)!($E(X)="^") QAQQUIT=1 G:QAQQUIT EXIT S:(QAQNUM=1)&(X="")&(QAQDIC("B")]"") X=QAQDIC("B") G:X="" EXIT S QAQDSEL=$S(X?1"-"1.E:1,1:0) S:QAQDSEL X=$E(X,2,$L(X))
|
---|
| 30 | I $L(X),$L(X)<4,"Aa"[$E(X),"Ll"[$E(X,2),"Ll"[$E(X,3) D ALL G EXIT:QAQQUIT,1:QAQALL
|
---|
| 31 | D HELP:$E(X)="?",^DIC K DIC G:+Y'>0 1
|
---|
| 32 | I $$CHKFLD(QAQFNUM)["D" D
|
---|
| 33 | . N %DT,X
|
---|
| 34 | . S QAQD0=Y,X=Y(0,0),%DT="ST" D ^%DT S Y(0,0)=Y,Y=QAQD0
|
---|
| 35 | . Q
|
---|
| 36 | I 'QAQDSEL,'$D(^UTILITY($J,QAQUTIL,$E(Y(0,0),1,63),+Y)) S ^(+Y)="",QAQNUM=QAQNUM+1
|
---|
| 37 | I QAQDSEL,$D(^UTILITY($J,QAQUTIL,$E(Y(0,0),1,63),+Y)) K ^(+Y) S QAQNUM=QAQNUM-$S(QAQNUM>0:1,1:0)
|
---|
| 38 | G 1
|
---|
| 39 | EXIT ;
|
---|
| 40 | S QAQQUIT=$S(QAQQUIT:1,$O(^UTILITY($J,QAQUTIL,""))="":1,1:0) K QAQDIC,QAQUTIL
|
---|
| 41 | K K %,C,D0,DA,DIC,DIK,DIR,DO,QAQ,QAQALL,QAQD0,QAQDSEL,QAQDT,QAQFLD01,QAQFNAME,QAQFNUM,QAQFSCR,QAQLINE,QAQNUM,X,Y
|
---|
| 42 | Q
|
---|
| 43 | ALL ;
|
---|
| 44 | S QAQ="By '"_X_"' do you mean all "_$S($G(QAQFSCR)]"":"",$G(QAQDIC("S"))]"":"",1:$P(@(QAQDIC_"0)"),"^",4)_" ")_QAQFNAME_" "_QAQFLD01("S") D WRAP
|
---|
| 45 | S %=1 D YN^DICN S QAQALL=$S(%=1:1,1:0) S:%=-1 QAQQUIT=1 I '% W !?7,"Answer Y(es) if you want all of the ",QAQFLD01("S"),",",!?7,"otherwise answer N(o)" G ALL
|
---|
| 46 | I QAQQUIT!'QAQALL W:'QAQQUIT !!,X Q
|
---|
| 47 | N X F QAQD0=0:0 S QAQD0=$O(@(QAQDIC_"QAQD0)")) Q:QAQD0'>0 D AL
|
---|
| 48 | W:QAQNUM=1 " ??",*7
|
---|
| 49 | Q
|
---|
| 50 | AL I QAQFSCR]"" D SETDIC I $D(@(QAQDIC_"QAQD0,0)"))#2 S (D0,DA,Y)=QAQD0 X QAQFSCR Q:'$T
|
---|
| 51 | I QAQDIC("S")]"" D SETDIC I $D(@(QAQDIC_"QAQD0,0)"))#2 S (D0,DA,Y)=QAQD0 X DIC("S") Q:'$T
|
---|
| 52 | S Y=$P($G(@(QAQDIC_"QAQD0,0)")),"^"),C=$P(^DD(QAQFNUM,.01,0),"^",2) Q:Y=""
|
---|
| 53 | D Y^DIQ
|
---|
| 54 | I $$CHKFLD(QAQFNUM)["D" D
|
---|
| 55 | . N %DT,X
|
---|
| 56 | . S X=Y,%DT="ST" D ^%DT
|
---|
| 57 | . Q
|
---|
| 58 | S ^UTILITY($J,QAQUTIL,$E(Y,1,63),QAQD0)="",QAQNUM=QAQNUM+1
|
---|
| 59 | Q
|
---|
| 60 | HELP ;
|
---|
| 61 | N X S QAQ="Select a "_QAQFNAME_" "_QAQFLD01_" from the displayed list." D WRAP
|
---|
| 62 | W !?5,"To deselect a ",QAQFLD01," type a minus sign (-)",!?5,"in front of it, e.g. -",QAQFLD01,".",!?5,"To get all ",QAQFLD01("S")," type ALL."
|
---|
| 63 | G:$O(^UTILITY($J,QAQUTIL,""))="" HLP
|
---|
| 64 | SHOW S QAQLINE=$Y,QAQ="" W !!,"You have already selected:"
|
---|
| 65 | F S QAQ=$O(^UTILITY($J,QAQUTIL,QAQ)) Q:QAQ=""!QAQQUIT F QAQD0=0:0 S QAQD0=$O(^UTILITY($J,QAQUTIL,QAQ,QAQD0)) Q:QAQD0'>0!QAQQUIT D SHO
|
---|
| 66 | HLP W ! S QAQQUIT=0
|
---|
| 67 | Q
|
---|
| 68 | SHO S QAQ(0)=QAQ
|
---|
| 69 | I $$CHKFLD(QAQFNUM)["D" D
|
---|
| 70 | . N Y
|
---|
| 71 | . S Y=QAQ(0) X ^DD("DD") S QAQ(0)=Y
|
---|
| 72 | . Q
|
---|
| 73 | I QAQDIC(0)["N" W !?3,QAQD0,?15,QAQ(0)
|
---|
| 74 | E W !?3,QAQ(0)
|
---|
| 75 | D SETDIC I $D(DIC("W"))#2,DIC("W")]"",$D(@(QAQDIC_"QAQD0,0)"))#2 S (D0,DA,Y)=QAQD0 X DIC("W")
|
---|
| 76 | I $Y>(IOSL+QAQLINE-3) D PAUSE S QAQLINE=$Y
|
---|
| 77 | Q
|
---|
| 78 | WRAP ;
|
---|
| 79 | W ! F S Y=$L($E(QAQ,1,IOM-20)," ") W !?5,$P(QAQ," ",1,Y) S QAQ=$P(QAQ," ",Y+1,999) Q:QAQ=""
|
---|
| 80 | Q
|
---|
| 81 | PAUSE ;
|
---|
| 82 | K DIR S DIR(0)="E" D ^DIR K DIR S QAQQUIT=$S(Y:0,1:1)
|
---|
| 83 | Q
|
---|
| 84 | SETDIC ;
|
---|
| 85 | K DIC,DO S DIC=QAQDIC
|
---|
| 86 | F X="0","A","B","S","W" I QAQDIC(X)]"" S DIC(X)=QAQDIC(X)
|
---|
| 87 | D DO^DIC1
|
---|
| 88 | Q
|
---|
| 89 | CHKFLD(X) ;
|
---|
| 90 | N A S A=$P($G(^DD(X,.01,0)),"^",2)
|
---|
| 91 | I A["P" F S A=$$CHKFLD($TR(A,$TR(A,".0123456789"))) Q:A'["P"
|
---|
| 92 | Q A
|
---|