- XQOPED ;SEA/Luke - Option Editor ;04/27/98 12:26 [ 04/02/2003 8:29 AM ]
- ;;8.0;KERNEL;**1005,1007**;APR 1, 2003
- ;;8.0;KERNEL;**46**;Jul 10, 1995
- ;
- IN ;Called from the Pre Action of the XQEDTOPT form
- K ^TMP($J,"XQOPED")
- ;I $D(XQDICNEW) S ^TMP($J,"XQOPED","NEW")=XQDICNEW
- Q
- ;
- OUT ;Called from the Post Action of the XQEDTOPT form
- I $D(XQDICNEW),$P(XQDICNEW,U,3) D CMPLT
- I $D(DDSCHANG),DDSCHANG D PUT^DDSVAL(DIE,.DA,3.6,DUZ,"","I")
- ;I $D(DDSCHANG),DDSCHANG S ^TMP($J,"XQOPED","CHANGED")=DA
- K DDSCHANG,XQDICNEW ;,DDSPAGE,DDSPARM
- Q
- ;
- CHECK() ;See if this person should have programmer access to the
- ;EXECUTABLES subfile containing the ENTRY ACTION, etc.
- ;
- ;Returns a 1 if the user has a key or an @-sign, 0 if not.
- ;
- ;Called by the branching logic of the EXECUTABLES form-only field
- ;on Page 1 (Main) of the XQEDTOPT ScreenMan form.
- ;
- N XQYES S XQYES=0
- ;
- Q:'$D(DUZ) XQYES
- I $D(^XUSEC("XUMGR",DUZ)) S XQYES=1
- I $D(^XUSEC("XUPROG",DUZ)) S XQYES=1
- ;I $D(^XUSEC("XUPROGMODE",DUZ)) S XQYES=1
- ;I $D(^XUSEC("XQSMDFM",DUZ)) S XQYES=1
- ;
- ;
- Q:'$D(DUZ(0)) XQYES
- I DUZ(0)="@" S XQYES=1
- ;I DUZ(0)="#" S XQYES=1
- ;
- Q XQYES
- ;
- ;
- EA ;ENTRY ACTION for the option XQOPED, the screen-based option editor
- K ^TMP($J,"XQOPED")
- I $$CHECK() S DLAYGO=19
- Q
- ;
- XA ;EXIT ACTION for the option XQOPED, the screen based Option Editor
- ;Repoint the CREATOR field for the modified options
- ;
- I $D(^TMP($J,"XQOPED","CHANGED")) D
- .N % S %=0
- .F Q:%="" D
- ..S %=$O(^TMP($J,"XQOPED","CHANGED")) Q:%=""
- ..I $D(^DIC(19,%,0))#2 S $P(^(0),U,5)=DUZ
- ..Q
- .Q
- K ^TMP($J,"XQOPED")
- Q
- ;
- CMPLT ;Check to make sure that the option is complete enough to leave
- ;it in the Option File.
- I $D(XQDICNEW) D
- .N %
- .S %=$P(^DIC(19,+XQDICNEW,0),U,4) ;Check the TYPE field
- .I %']"" S DA=+XQDICNEW,DIK="^DIC(19," D ^DIK K DIK,DA
- .Q
- Q
- ;
- ;This code was graciously provided by David LaLiberte
- ;AUHBHLP
- ;692/DCL-TMT PLAN SCREEN HELP PROCESSOR;OCT 07, 1997@13:34
- ;;1.0;WHITE CITY TMT PLAN PKG;;6-17-97
- H(XQIEN) ;Process Help for ScreenMan form
- Q:$G(XQIEN)'>0
- Q:$D(^DIC(19.8,XQIEN,1))'>9
- N XQA,XQI
- F XQI=1:1:5 Q:'$D(^DIC(19.8,XQIEN,1,XQI,0)) S XQA(XQI)=^(0)
- D HLP^DDSUTL(.XQA)
- K XQIEN
- Q
- XQOPED ;SEA/Luke - Option Editor ;04/27/98 12:26 [ 04/02/2003 8:29 AM ]
- +1 ;;8.0;KERNEL;**1005,1007**;APR 1, 2003
- +2 ;;8.0;KERNEL;**46**;Jul 10, 1995
- +3 ;
- IN ;Called from the Pre Action of the XQEDTOPT form
- +1 KILL ^TMP($JOB,"XQOPED")
- +2 ;I $D(XQDICNEW) S ^TMP($J,"XQOPED","NEW")=XQDICNEW
- +3 QUIT
- +4 ;
- OUT ;Called from the Post Action of the XQEDTOPT form
- +1 IF $DATA(XQDICNEW)
- IF $PIECE(XQDICNEW,U,3)
- DO CMPLT
- +2 IF $DATA(DDSCHANG)
- IF DDSCHANG
- DO PUT^DDSVAL(DIE,.DA,3.6,DUZ,"","I")
- +3 ;I $D(DDSCHANG),DDSCHANG S ^TMP($J,"XQOPED","CHANGED")=DA
- +4 ;,DDSPAGE,DDSPARM
- KILL DDSCHANG,XQDICNEW
- +5 QUIT
- +6 ;
- CHECK() ;See if this person should have programmer access to the
- +1 ;EXECUTABLES subfile containing the ENTRY ACTION, etc.
- +2 ;
- +3 ;Returns a 1 if the user has a key or an @-sign, 0 if not.
- +4 ;
- +5 ;Called by the branching logic of the EXECUTABLES form-only field
- +6 ;on Page 1 (Main) of the XQEDTOPT ScreenMan form.
- +7 ;
- +8 NEW XQYES
- SET XQYES=0
- +9 ;
- +10 IF '$DATA(DUZ)
- QUIT XQYES
- +11 IF $DATA(^XUSEC("XUMGR",DUZ))
- SET XQYES=1
- +12 IF $DATA(^XUSEC("XUPROG",DUZ))
- SET XQYES=1
- +13 ;I $D(^XUSEC("XUPROGMODE",DUZ)) S XQYES=1
- +14 ;I $D(^XUSEC("XQSMDFM",DUZ)) S XQYES=1
- +15 ;
- +16 ;
- +17 IF '$DATA(DUZ(0))
- QUIT XQYES
- +18 IF DUZ(0)="@"
- SET XQYES=1
- +19 ;I DUZ(0)="#" S XQYES=1
- +20 ;
- +21 QUIT XQYES
- +22 ;
- +23 ;
- EA ;ENTRY ACTION for the option XQOPED, the screen-based option editor
- +1 KILL ^TMP($JOB,"XQOPED")
- +2 IF $$CHECK()
- SET DLAYGO=19
- +3 QUIT
- +4 ;
- XA ;EXIT ACTION for the option XQOPED, the screen based Option Editor
- +1 ;Repoint the CREATOR field for the modified options
- +2 ;
- +3 IF $DATA(^TMP($JOB,"XQOPED","CHANGED"))
- Begin DoDot:1
- +4 NEW %
- SET %=0
- +5 FOR
- IF %=""
- QUIT
- Begin DoDot:2
- +6 SET %=$ORDER(^TMP($JOB,"XQOPED","CHANGED"))
- IF %=""
- QUIT
- +7 IF $DATA(^DIC(19,%,0))#2
- SET $PIECE(^(0),U,5)=DUZ
- +8 QUIT
- End DoDot:2
- +9 QUIT
- End DoDot:1
- +10 KILL ^TMP($JOB,"XQOPED")
- +11 QUIT
- +12 ;
- CMPLT ;Check to make sure that the option is complete enough to leave
- +1 ;it in the Option File.
- +2 IF $DATA(XQDICNEW)
- Begin DoDot:1
- +3 NEW %
- +4 ;Check the TYPE field
- SET %=$PIECE(^DIC(19,+XQDICNEW,0),U,4)
- +5 IF %']""
- SET DA=+XQDICNEW
- SET DIK="^DIC(19,"
- DO ^DIK
- KILL DIK,DA
- +6 QUIT
- End DoDot:1
- +7 QUIT
- +8 ;
- +9 ;This code was graciously provided by David LaLiberte
- +10 ;AUHBHLP
- +11 ;692/DCL-TMT PLAN SCREEN HELP PROCESSOR;OCT 07, 1997@13:34
- +12 ;;1.0;WHITE CITY TMT PLAN PKG;;6-17-97
- H(XQIEN) ;Process Help for ScreenMan form
- +1 IF $GET(XQIEN)'>0
- QUIT
- +2 IF $DATA(^DIC(19.8,XQIEN,1))'>9
- QUIT
- +3 NEW XQA,XQI
- +4 FOR XQI=1:1:5
- IF '$DATA(^DIC(19.8,XQIEN,1,XQI,0))
- QUIT
- SET XQA(XQI)=^(0)
- +5 DO HLP^DDSUTL(.XQA)
- +6 KILL XQIEN
- +7 QUIT