XUS3A ;SF-ISC/STAFF - CHANGE UCI'S ; 2/4/03 9:51am [ 07/29/2004 9:01 AM ]
;;8.0;KERNEL;**13,282**;Jul 10, 1995
Q
;PICK A UCI TO SWITCH TO
SWITCH ;Allow users that have the UCI field in there NP file to switch UCI's.
W !!,"Switch UCI's option.",!
I $$PROGMODE^%ZOSV() W !,$C(7),"No switching UCI's in Programmer Mode." Q
I $O(^VA(200,DUZ,.2,0))'>0 D Q
. W !,"Sorry but you do not have any UCI's that you are allowed to"
. W !,"switch to."
. Q
N DIR,X,Y,PGM,%UCI,DEF
S DEF="ZU" ;DEF is default routine to switch to.
UCI S DIR(0)="F",DIR("A")="Select UCI:ROUTINE",DIR("??")="^D SHOW^XUS3A"
S DIR("?")="Enter a UCI name (:Routine) to switch to."
D ^DIR K DIR I $D(DUOUT)!$D(DTOUT)!(X="^") Q
I Y?.N,$D(^VA(200,DUZ,.2,Y,0)) S UC=^(0),Y=$P(UC,U)_":"_$P($P(UC,U,2),":")
S X=$P(Y,":"),PGM=$P(Y,":",2,3) S:PGM[":" X=$P(Y,":",1,2),PGM=$P(Y,":",3) ;for M/vx
S:PGM="" PGM=DEF
SAME I X="" Q ;Didn't select anything.
D PM S %UCI=X X ^%ZOSF("UCICHECK") I 0[Y G BAD
F DA=0:0 S DA=$O(^VA(200,DUZ,.2,DA)) Q:DA'>0 S Y=^(DA,0) D G:GO NXT
. S GO=0,X=$P(Y,U),XUA=$P(Y,U,2) D PM Q:%UCI'=X
. I XUA="" S XUA=DEF
. F %=1:1:20 I $P(XUA,":",%)=PGM S GO=1 Q
. Q
BAD W !,"UCI not found!" D SHOW G UCI
;
NXT ;Here we go.
D C^XUSCLEAN K ^XUTL("XQ",$J),^XUTL($J),^TMP($J),^UTILITY($J)
;K DA S XQZ="^"_PGM_"["_%UCI_"]" D DO^%XUCI G ^XUSCLEAN
K DA G GO^%XUCI
;
;
SHOW W ! S I=0,UC="",X=$S($D(^VA(200,DUZ,201)):+^(201),1:0)
W !,"Enter ^ to return to your current menu, or select from:"
F I=0:0 S I=$O(^VA(200,DUZ,.2,I)) Q:I'>0 D
. W !,?5 S UC=$G(^VA(200,DUZ,.2,I,0)),X=$P(UC,U,1),UC=$P(UC,U,2,99)
. I UC'[":" W I
. D PM W ?10,X X ^%ZOSF("UCICHECK") I 0[Y W " -- Not currently a valid UCI!",$C(7) Q
. W:UC]"" ":"_UC
. Q
Q
;
PM I X="PROD"!(X="MGR") S X=^%ZOSF(X)
Q
XUS3A ;SF-ISC/STAFF - CHANGE UCI'S ; 2/4/03 9:51am [ 07/29/2004 9:01 AM ]
+1 ;;8.0;KERNEL;**13,282**;Jul 10, 1995
+2 QUIT
+3 ;PICK A UCI TO SWITCH TO
SWITCH ;Allow users that have the UCI field in there NP file to switch UCI's.
+1 WRITE !!,"Switch UCI's option.",!
+2 IF $$PROGMODE^%ZOSV()
WRITE !,$CHAR(7),"No switching UCI's in Programmer Mode."
QUIT
+3 IF $ORDER(^VA(200,DUZ,.2,0))'>0
Begin DoDot:1
+4 WRITE !,"Sorry but you do not have any UCI's that you are allowed to"
+5 WRITE !,"switch to."
+6 QUIT
End DoDot:1
QUIT
+7 NEW DIR,X,Y,PGM,%UCI,DEF
+8 ;DEF is default routine to switch to.
SET DEF="ZU"
UCI SET DIR(0)="F"
SET DIR("A")="Select UCI:ROUTINE"
SET DIR("??")="^D SHOW^XUS3A"
+1 SET DIR("?")="Enter a UCI name (:Routine) to switch to."
+2 DO ^DIR
KILL DIR
IF $DATA(DUOUT)!$DATA(DTOUT)!(X="^")
QUIT
+3 IF Y?.N
IF $DATA(^VA(200,DUZ,.2,Y,0))
SET UC=^(0)
SET Y=$PIECE(UC,U)_":"_$PIECE($PIECE(UC,U,2),":")
+4 ;for M/vx
SET X=$PIECE(Y,":")
SET PGM=$PIECE(Y,":",2,3)
IF PGM["
SET X=$PIECE(Y,":",1,2)
SET PGM=$PIECE(Y,":",3)
+5 IF PGM=""
SET PGM=DEF
SAME ;Didn't select anything.
IF X=""
QUIT
+1 DO PM
SET %UCI=X
XECUTE ^%ZOSF("UCICHECK")
IF 0[Y
GOTO BAD
+2 FOR DA=0:0
SET DA=$ORDER(^VA(200,DUZ,.2,DA))
IF DA'>0
QUIT
SET Y=^(DA,0)
Begin DoDot:1
+3 SET GO=0
SET X=$PIECE(Y,U)
SET XUA=$PIECE(Y,U,2)
DO PM
IF %UCI'=X
QUIT
+4 IF XUA=""
SET XUA=DEF
+5 FOR %=1:1:20
IF $PIECE(XUA,":",%)=PGM
SET GO=1
QUIT
+6 QUIT
End DoDot:1
IF GO
GOTO NXT
BAD WRITE !,"UCI not found!"
DO SHOW
GOTO UCI
+1 ;
NXT ;Here we go.
+1 DO C^XUSCLEAN
KILL ^XUTL("XQ",$JOB),^XUTL($JOB),^TMP($JOB),^UTILITY($JOB)
+2 ;K DA S XQZ="^"_PGM_"["_%UCI_"]" D DO^%XUCI G ^XUSCLEAN
+3 KILL DA
GOTO GO^%XUCI
+4 ;
+5 ;
SHOW WRITE !
SET I=0
SET UC=""
SET X=$SELECT($DATA(^VA(200,DUZ,201)):+^(201),1:0)
+1 WRITE !,"Enter ^ to return to your current menu, or select from:"
+2 FOR I=0:0
SET I=$ORDER(^VA(200,DUZ,.2,I))
IF I'>0
QUIT
Begin DoDot:1
+3 WRITE !,?5
SET UC=$GET(^VA(200,DUZ,.2,I,0))
SET X=$PIECE(UC,U,1)
SET UC=$PIECE(UC,U,2,99)
+4 IF UC'[":"
WRITE I
+5 DO PM
WRITE ?10,X
XECUTE ^%ZOSF("UCICHECK")
IF 0[Y
WRITE " -- Not currently a valid UCI!",$CHAR(7)
QUIT
+6 IF UC]""
WRITE ":"_UC
+7 QUIT
End DoDot:1
+8 QUIT
+9 ;
PM IF X="PROD"!(X="MGR")
SET X=^%ZOSF(X)
+1 QUIT