- %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 Mar 13, 2025@21:19:51 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"))