51 lines
3.1 KiB
Mathematica
51 lines
3.1 KiB
Mathematica
XQ91 ; SEA/MJM - Restrict availability of options (cont.) ;9/29/92 15:06 ;5/13/93 11:46 AM
|
|
;;8.0;KERNEL;;Jul 10, 1995
|
|
S (XQI,XQJ)=1,XQDF="",(XQTDV,XQTOD)=0 W !
|
|
GETDV W !," Enter ",$S($O(XQDV(0))>0!($O(XQOD(0))>0):"another",1:"a")," DEVICE name (or -DEVICE to delete): " R X:DTIME S:'$T X=U G:X[U OUT
|
|
I '$L(X) S XQTDV=XQI-1,XQTOD=XQJ-1 G GOTDV
|
|
I X["?" S XQH="XQRESTRICT-DEVICE",XQDF=1,XQISV=XQI,XQTDV=XQI-1,XQJSV=XQJ,XQTOD=XQJ-1 D:X="?" EN^XQH D:X="??" LSTDV D:X="???" LSTFIL S XQI=XQISV,XQJ=XQJSV,XQDF="" G GETDV
|
|
I X["?" S XQDF=1 D LSTFIL S XQDF="" G GETDV
|
|
S XQFL=0 S:"-'"[$E(X,1) X=$E(X,2,99),XQFL=1
|
|
S DIC=3.5,DIC(0)="MEZ" D ^DIC I Y<0 W " ??",*7 G GETDV
|
|
I XQFL S XQOD(XQJ)=Y,XQJ=XQJ+1,XQFL=0 G GETDV
|
|
S XQDV(XQI)=Y,XQI=XQI+1 G GETDV
|
|
;
|
|
GOTDV ;Remove devices to delete (XQOD) from list of devices to add (XQDV)
|
|
I 'XQTOD!('XQTDV) G OK
|
|
S XQNDV=XQTDV,XQNOD=XQTOD,XQFL=0 F XQI=1:1 K:XQFL XQDV(XQI-1) S:XQFL XQTDV=XQTDV-1 Q:(XQI>XQNDV) S XQFL=0 F XQJ=1:1 Q:(XQJ>XQNOD) I $D(XQOD(XQJ))#2,XQDV(XQI)=XQOD(XQJ) K XQOD(XQJ) S XQFL=1,XQTOD=XQTOD-1
|
|
OK ;
|
|
S XQFL2=1
|
|
LSTOP ;
|
|
I $O(XQOP(0))="" W !!,"You have not yet selected any options." Q
|
|
W !!,"You've selected the following options: ",! S XQJ=0,XQI=IOM\15 F XQK=0:1 S XQJ=$O(XQOP(XQJ)) Q:XQJ="" W:'(XQK#XQI) ! W ?(XQK#XQI*15),$P(^DIC(19,XQJ,0),U,1)
|
|
Q:'XQFL2 S XQFL2=0
|
|
;
|
|
LSTRES ;List restrictions to be placed on all options
|
|
I $L(XQDR) W !!,"These restrictions will be updated for all options selected:",!
|
|
F XQI=1:1:5 I $D(XQFLD(XQI,"V")) W !,$P(XQFLD(XQI,0),U,1),": ",XQFLD(XQI,"V")
|
|
;
|
|
LSTDV ;List PERMITTED DEVICES to be added and deleted
|
|
S XQT=IOM\10
|
|
I (XQTDV>0) W !!,"You will add these PERMITTED DEVICES to all options chosen:",! S XQI=0,XQD=-1 F Q:(XQI+1>XQTDV) S XQD=$O(XQDV(XQD)) Q:XQD="" W:'(XQI#XQT) ! W ?(XQI#XQT*10),$P(XQDV(XQD),U,2) S XQI=XQI+1
|
|
I (XQTOD>0) W !!,$S(XQTDV:"And you ",1:"You "),"will delete these PERMITTED DEVICES from all options chosen:",! S XQI=0,XQD=-1 F Q:(XQI+1>XQTOD) S XQD=$O(XQOD(XQD)) Q:XQD="" W:'(XQI#XQT) ! W ?(XQI#XQT*10),$P(XQOD(XQD),U,2) S XQI=XQI+1
|
|
I XQDF S XQDF="" Q
|
|
;
|
|
OK1 R !!,"Do you wish to proceed? YES// ",X:DTIME S:'$T X=U G:X[U OUT G:(X["N"!(X["n")) OP^XQ9 I '(X["Y"!(X["y")!'$L(X)) W *7," ??",!,"Enter 'Y' or 'N'" G OK1
|
|
;
|
|
ACT ;Stuff the restrictions and devices into the OPTION file
|
|
S DIE=19,DA=0 F XQI=1:1 S DA=$O(XQOP(DA)),DR=XQDR Q:DA="" W !,$P(^DIC(19,DA,0),U,1) D ^DIE W "*" D:(XQTOD>0) KILDV I (XQTDV>0) S XQN=-1 F S XQN=$O(XQDV(XQN)) Q:XQN="" S DR="3.96///"_$P(XQDV(XQN),U,2) D ^DIE W "+"
|
|
G INIT^XQ9
|
|
;
|
|
KILDV ;Remove PERMITTED DEVICE from option
|
|
S DIC="^DIC(19,"_DA_",3.96,",DIK=DIC,DIC(0)="MEZ",XQN=-1,DA(1)=DA
|
|
F S XQN=$O(XQOD(XQN)) Q:XQN="" S X=$P(XQOD(XQN),U,2) D ^DIC S DA=+Y D ^DIK S DA=DA(1) W "-"
|
|
Q
|
|
LSTFIL ;Show OPTION or DEVICE file
|
|
W !,"Do you want to see the ",$S(XQDF:"DEVICE",1:"OPTION")," file? NO// " R X:DTIME S:'$T X="N" Q:X'["Y"&(X'["y") S X="?",DIC=$S(XQDF:3.5,1:"^DIC(19,"),DIC(0)="Q" D ^DIC K DIC S XQDF=""
|
|
Q
|
|
;
|
|
OUT ;
|
|
K XQOP,XQFLD,XQI,XQISV,XQJ,XQJSV,XQDV,XQOD,XQTDV,XQNDV,XQTOD,XQNOD,XQDF,XQFL,XQFL2,XQD,XQDR,XQK,XQM,XQN,XQR,XQT
|
|
K DIC,DIK,DIE,DR,DA,DI,DISYS,DLAYGO,DQ,D0,D1,I,J,K,L,X,Y,XY,%,%Y,C,POP
|
|
Q
|