1 | VALM2 ;ALB/MJK - List Manager Utilities;08:52 PM 17 Jan 1993 ;02/01/2001 11:43
|
---|
2 | ;;1.0;List Manager;**6**;Aug 13, 1993
|
---|
3 | SEL ; -- select w/XQORNOD(0) defined
|
---|
4 | D EN(XQORNOD(0)) Q
|
---|
5 | EN(VALMNOD,VALMDIR) ; -- generic selector
|
---|
6 | ; input passed: VALMNOD := var in XQORNOD(0) format
|
---|
7 | N Y,BG,LST,VALMOUT
|
---|
8 | K VALMY
|
---|
9 | I '$D(VALMDIR) N VALMDIR S VALMDIR=""
|
---|
10 | S BG=+$O(@VALMAR@("IDX",VALMBG,0))
|
---|
11 | S LST=+$O(@VALMAR@("IDX",VALMLST,0))
|
---|
12 | I BG,BG=LST,$P($P(VALMNOD,U,4),"=",2)="",VALMDIR'["O" S VALMY(BG)="" Q ; -- only one entry
|
---|
13 | I 'BG D Q
|
---|
14 | . W !!,$C(7),"There are no '",VALM("ENTITY"),"s' to select.",!
|
---|
15 | . D WAIT^VALM1
|
---|
16 | . D OUT
|
---|
17 | S Y=$$PARSE(.VALMNOD,.BG,.LST)
|
---|
18 | I 'Y D Q:$G(VALMOUT)
|
---|
19 | . N DIR,X,DIRUT,DTOUT,DUOUT,DIROUT
|
---|
20 | . S DIR(0)=$S(VALMDIR'["S":"L",1:"N")_$S(VALMDIR["O":"O",1:"")_"^"_BG_":"_LST
|
---|
21 | . S DIR("A")="Select "_VALM("ENTITY")_$S(VALMDIR["S":"",1:"(s)")
|
---|
22 | . D ^DIR I $D(DIRUT) D OUT S VALMOUT=1
|
---|
23 | ; -- check was valid entries
|
---|
24 | F I=1:1 S X=$P(Y,",",I) Q:'X D
|
---|
25 | . I '$O(@VALMAR@("IDX",X,0))!(X<BG)!(X>LST) D
|
---|
26 | . . W !,$C(7),">>> Selection '",X,"' is not a valid choice."
|
---|
27 | . . S VALMOUT=1
|
---|
28 | I $G(VALMOUT) D WAIT^VALM1 Q
|
---|
29 | F I=1:1 S X=$P(Y,",",I) Q:'X S VALMY(X)=""
|
---|
30 | Q
|
---|
31 | PARSE(VALMNOD,BEG,END) ; -- split out pre-answers from user
|
---|
32 | N Y,J,L,X
|
---|
33 | S Y=$TR($P($P(VALMNOD,U,4),"=",2),"/\; .",",,,,,")
|
---|
34 | I Y["-" S X=Y,Y="" F I=1:1 S J=$P(X,",",I) Q:J']"" I +J>(BEG-1),+J<(END+1) S:J'["-" Y=Y_J_"," I J["-",+J,+J<+$P(J,"-",2) F L=+J:1:+$P(J,"-",2) I L>(BEG-1),L<(END+1) S Y=Y_L_","
|
---|
35 | Q Y
|
---|
36 | OUT ; -- set variables to quit
|
---|
37 | S VALMBCK=$S(VALMCC:"",1:"R")
|
---|
38 | Q
|
---|
39 | MENU ; -- entry point for 'turn' protocol
|
---|
40 | N VALMX,DIR,X ;,Y,DIRUT,DUOUT,DTOUT,DIROUT calling app may check?
|
---|
41 | S VALMX=$G(^DISV($S($D(DUZ)#2:DUZ,1:0),"VALMMENU",VALM("PROTOCOL"))) S:VALMX="" (VALMX,^(VALM("PROTOCOL")))=1
|
---|
42 | W ! S DIR(0)="Y",DIR("A")="Do you wish to turn auto-display "_$S(VALMX:"'OFF'",1:"'ON'")_" for this menu",DIR("B")="NO"
|
---|
43 | D ^DIR
|
---|
44 | I Y S (VALMMENU,^DISV($S($D(DUZ)#2:DUZ,1:0),"VALMMENU",VALM("PROTOCOL")))='VALMX
|
---|
45 | D FINISH^VALM4
|
---|
46 | Q
|
---|
47 | HELP ; -- help entry point
|
---|
48 | N VALMANS,VALMHLP,DIR,DIRUT,DUOUT,DTOUT ; ^XQORM1 checks DIROUT
|
---|
49 | S VALMANS=X N X ; save answer
|
---|
50 | S VALMHLP=$G(^TMP("VALM DATA",$J,VALMEVL,"HLP")),X=VALMANS
|
---|
51 | I VALMHLP="" D
|
---|
52 | . I VALM("TYPE")=2 S VALMANS="??" Q
|
---|
53 | . S X="?" D DISP^XQORM1,PAUSE^VALM1
|
---|
54 | E D
|
---|
55 | . X VALMHLP
|
---|
56 | I $P($G(VALMKEY),U,2)]"",VALMANS["??" D:'$D(DIRUT) FULL^VALM1,KEYS,PAUSE^VALM1 S VALMBCK="R"
|
---|
57 | D:$G(VALMBCK)="R" REFRESH^VALM K VALMBCK
|
---|
58 | D:VALMCC RESET^VALM4
|
---|
59 | D SHOW^VALM W !
|
---|
60 | Q
|
---|
61 | KEYS ; -- hidden key help
|
---|
62 | W !,"The following actions are also available:"
|
---|
63 | N XQORM,ORULT S XQORM=$O(^ORD(101,"B",$P(VALMKEY,U,2),0))_";ORD(101,"
|
---|
64 | I '$D(^XUTL("XQORM",XQORM)) D XREF^XQORM K ORULT ; build ^XUTL nodes
|
---|
65 | D DISP^XQORM1:XQORM
|
---|
66 | Q
|
---|