%ZISG3 ;SFISC/AC -- Device Handler Prototype
;;8.0T3
B2 ;VADIMS M@WAPI/KWAPI INTERFACE
I '@XGWIN@("ZISGTRM","G","SUBTYPE","VISIBLE") D
.S SUB=@XGWIN@("ZISGTRM","G","SUB","VALUE")
.I SUB]"" D
..S ITEM=$$SUBITEM(SUB)
..I ITEM]"" D
...D S^XG("ZISGTRM","G","SUBTYPE","VALUE",ITEM,"")
...D S^XG("ZISGTRM","G","SUBTYPE","TOPSHOW",ITEM)
.;S ^$W("ZISGTRM","G","MARGIN","ACTIVE")=0
.D S^XG("ZISGTRM","G","SUBTYPE","VISIBLE",1)
E D
.D S^XG("ZISGTRM","G","SUBTYPE","VISIBLE",0)
.;S ^$W("ZISGTRM","G","MARGIN","ACTIVE")=1
.S ITEM=$O(@XGWIN@("ZISGTRM","G","SUBTYPE","VALUE",""))
.I ITEM D S^XG("ZISGTRM","G","SUB","VALUE",@XGWIN@("ZISGTRM","G","SUBTYPE","CHOICE",ITEM))
I $D(^$EVENT("ELEMENT")),^$EVENT("ELEMENT")["SUBTYPE" D
.N SUB
.S SUB=@XGWIN@("ZISGTRM","G","SUBTYPE","CHOICE",ITEM)
.D SUBCHG(SUB)
Q
SUB ; Callback for SUB item
S SUB=^$W("ZISGTRM","G","SUB","VALUE")
I SUB]"" D D SUBCHG(SUB)
.N %,%1
.K ^$W("ZISGTRM","G","SUBTYPE","VALUE")
.F %=1:1 Q:'$D(^$W("ZISGTRM","G","SUBTYPE","CHOICE",%))!(SUB="") D
..S %1=^$W("ZISGTRM","G","SUBTYPE","CHOICE",%)
..I %1=SUB S ^$W("ZISGTRM","G","SUBTYPE","VALUE",%)="" S SUB="" Q
..I %1]SUB S ^$W("ZISGTRM","G","SUBTYPE","TOPSHOW")=% S SUB="" Q
Q
SUBITEM(X) ;
N %,%1,Y S Y=""
.F %=1:1 Q:'$D(^$W("ZISGTRM","G","SUBTYPE","CHOICE",%))!(X="") D
.S %1=^$W("ZISGTRM","G","SUBTYPE","CHOICE",%)
.I %1=X!(%1]X S Y=% S X="" Q
Q Y
SUBCHG(X) ;Change in subtype
;This sub-routine triggers appropriate values to the
;relevant MWAPI fields(MARGIN and PAGE LENGTH).
W !,"SUBCHG(X) has been called!!!"
N %,RM,SL Q:$G(X)=""
S %=$O(^%ZIS(2,"B",X,0)) Q:%'>0
I '($D(^%ZIS(2,+%,0))#2) Q
W !,"X==>>"_X
Q:$P($G(^(0)),"^")'=X
S RM=$P($G(^(1)),"^"),SL=$P($G(^(1)),"^",3)
W !,"RM==>>"_RM
I RM=80!(RM=132!(RM=255)) D
.W !,"SETTING VALUE INTO ZMARGIN"
.S ^$W("ZISGTRM","G","ZMARGIN","VALUE")=$S(RM=80:1,RM=132:2,RM=255:3,1:4)
.W !,"SETTING MARGINVAL TO INACTIVE"
.S ^$W("ZISGTRM","G","MARGINVAL","ACTIVE")=0
E D
.S ^$W("ZISGTRM","G","ZMARGIN","VALUE")=4
.S ^$W("ZISGTRM","G","MARGINVAL","ACTIVE")=1
S ^$W("ZISGTRM","G","MARGINVAL","VALUE")=RM
I SL=24!(SL=66!(SL=88!(SL=96))) D
.S ^$W("ZISGTRM","G","ZPAGELENGTH","VALUE")=$S(SL=24:1,SL=66:2,SL=88:3,SL=96:4,1:5)
.S ^$W("ZISGTRM","G","PAGELENGTHVAL","ACTIVE")=0
E D
.S ^$W("ZISGTRM","G","ZPAGELENGTH","VALUE")=5
.S ^$W("ZISGTRM","G","PAGELENGTHVAL","ACTIVE")=1
S ^$W("ZISGTRM","G","PAGELENGTHVAL","VALUE")=SL
Q
CHGRAD ;CHANGE IN MARGIN
N REF
;S REF="^$W("""_^$EVENT("WINDOW")_""",""G"")"
;S REF=@XGWIN_"("""_@XGEVENT@("WINDOW")_""",""G"")"
S REF=XGWIN_"("""_@XGEVENT@("WINDOW")_""",""G"")"
;S GADGET=$P(^$EVENT("ELEMENT"),",",2)
S GADGET=$P(@XGEVENT@("ELEMENT"),",",2)
S ITEM=@REF@(GADGET,"VALUE")
S VALUE=@REF@(GADGET,"CHOICE",ITEM)
S GADVAL=$E(GADGET,2,$L(GADGET))_"VAL"
I VALUE="OTHER" D
.S @REF@(GADVAL,"ACTIVE")=1
E D
.S @REF@(GADVAL,"VALUE")=VALUE
.S @REF@(GADVAL,"ACTIVE")=0
;S ^$W("ZISGTRM","G","MARGINVAL","VALUE")=^$EVENT("CHOICE")
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HZISG3 3061 printed Nov 22, 2024@17:25:05 Page 2
%ZISG3 ;SFISC/AC -- Device Handler Prototype
+1 ;;8.0T3
B2 ;VADIMS M@WAPI/KWAPI INTERFACE
+1 IF '@XGWIN@("ZISGTRM","G","SUBTYPE","VISIBLE")
Begin DoDot:1
+2 SET SUB=@XGWIN@("ZISGTRM","G","SUB","VALUE")
+3 IF SUB]""
Begin DoDot:2
+4 SET ITEM=$$SUBITEM(SUB)
+5 IF ITEM]""
Begin DoDot:3
+6 DO S^XG("ZISGTRM","G","SUBTYPE","VALUE",ITEM,"")
+7 DO S^XG("ZISGTRM","G","SUBTYPE","TOPSHOW",ITEM)
End DoDot:3
End DoDot:2
+8 ;S ^$W("ZISGTRM","G","MARGIN","ACTIVE")=0
+9 DO S^XG("ZISGTRM","G","SUBTYPE","VISIBLE",1)
End DoDot:1
+10 IF '$TEST
Begin DoDot:1
+11 DO S^XG("ZISGTRM","G","SUBTYPE","VISIBLE",0)
+12 ;S ^$W("ZISGTRM","G","MARGIN","ACTIVE")=1
+13 SET ITEM=$ORDER(@XGWIN@("ZISGTRM","G","SUBTYPE","VALUE",""))
+14 IF ITEM
DO S^XG("ZISGTRM","G","SUB","VALUE",@XGWIN@("ZISGTRM","G","SUBTYPE","CHOICE",ITEM))
End DoDot:1
+15
*** ERROR ***
IF $DATA(^$EVENT("ELEMENT"))