1 | VALM1 ;ALB/MJK - Screen Manipulation Utilities ;06/27/2006
|
---|
2 | ;;1.0;List Manager;**5,6,8**;Aug 13, 1993;Build 1
|
---|
3 | INSTR(STR,X,Y,LENGTH,ERASE) ; -- insert text
|
---|
4 | ; STR := string to insert
|
---|
5 | ; X := X coordinate
|
---|
6 | ; Y := Y coordinate
|
---|
7 | ; LENGTH := clear # of characters
|
---|
8 | ; ERASE := erase chars first
|
---|
9 | W IOSC
|
---|
10 | I $G(ERASE) S DY=Y-1,DX=X-1 X IOXY W $J("",LENGTH)
|
---|
11 | S DY=Y-1,DX=X-1 X IOXY W STR
|
---|
12 | W IORC
|
---|
13 | Q
|
---|
14 | FLDUPD(STR,FLD,LINE,CON,COFF) ; -- update entry and field on screen
|
---|
15 | ; STR := string to insert
|
---|
16 | ; FLD := col name
|
---|
17 | ; LINE := entry # in list
|
---|
18 | D INSTR(.STR,+$P(VALMDDF(FLD),U,2),LINE-VALMBG+VALM("TM"),$P(VALMDDF(FLD),U,3),1)
|
---|
19 | Q
|
---|
20 | SETFLD(STR,VAR,FLD) ; -- set field in var
|
---|
21 | ; input: STR := string to insert
|
---|
22 | ; VAR := destination string
|
---|
23 | ; FLD := col name
|
---|
24 | Q $$SETSTR(STR,VAR,+$P(VALMDDF(FLD),U,2),+$P(VALMDDF(FLD),U,3))
|
---|
25 | SETSTR(S,V,X,L) ; -- insert text(S) into variable(V)
|
---|
26 | ; S := string to insert
|
---|
27 | ; V := destination string
|
---|
28 | ; X := insert @ col X
|
---|
29 | ; L := clear # of chars (length)
|
---|
30 | Q $E(V_$J("",X-1),1,X-1)_$E(S_$J("",L),1,L)_$E(V,X+L,999)
|
---|
31 | FULL ; set full scrolling region
|
---|
32 | I '$D(IOSTBM) D TERM^VALM0
|
---|
33 | I IOSTBM]"" S IOTM=1,IOBM=IOSL W IOSC W @IOSTBM W IORC
|
---|
34 | S X=VALMWD X ^%ZOSF("RM")
|
---|
35 | Q
|
---|
36 | CLEAR ; -- clear screen
|
---|
37 | D FULL,ERASE W @IOF
|
---|
38 | Q
|
---|
39 | ERASE ;
|
---|
40 | W $G(VALMSGR),$G(IOSGR0)
|
---|
41 | Q
|
---|
42 | FDATE(Y) ; -- return formatted date
|
---|
43 | ; input: Y := field name
|
---|
44 | ; output: [returned] := formatted date only
|
---|
45 | Q $E(Y,4,5)_"/"_$E(Y,6,7)_"/"_$E(Y,2,3)
|
---|
46 | FTIME(Y) ; -- return formatted date/time
|
---|
47 | ; input: Y := internal date/time
|
---|
48 | ; output: [returned] := formatted date and time
|
---|
49 | D DD^%DT
|
---|
50 | Q Y
|
---|
51 | FDTTM(Y) ; -- return formatted date/time
|
---|
52 | ; input: Y := internal date/time
|
---|
53 | ; output: [returned] := formatted date and time
|
---|
54 | N VALMY
|
---|
55 | S VALMY=$E(Y,4,5)_"/"_$E(Y,6,7)_"/"_$E(Y,2,3)
|
---|
56 | D DD^%DT
|
---|
57 | Q VALMY_$S($P(Y,"@",2)]"":"@"_$P(Y,"@",2),1:"")
|
---|
58 | NOW() ; -- return now
|
---|
59 | D NOW^%DTC
|
---|
60 | Q $$FTIME(%)
|
---|
61 | RANGE ; -- change date range
|
---|
62 | G RANGE^VALM11
|
---|
63 | WAIT ; "Enter RETURN to continue"
|
---|
64 | N DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
|
---|
65 | W ! S DIR(0)="E" S DIR("A")="Enter RETURN to continue" D ^DIR W !
|
---|
66 | Q
|
---|
67 | GOON() ; "Enter RETURN to continue or '^' to exit"
|
---|
68 | N DIR,X,Y,DIRUT,DUOUT,DTOUT,DIROUT
|
---|
69 | W ! S DIR(0)="E" D ^DIR W !
|
---|
70 | Q +Y
|
---|
71 | PAUSE ;
|
---|
72 | W ! S DIR(0)="E" D ^DIR K DIR W !
|
---|
73 | Q
|
---|
74 | PRT ; -- prt screen (PS)
|
---|
75 | N VALMESC
|
---|
76 | S VALMBCK="R"
|
---|
77 | D:VALMCC FULL
|
---|
78 | S %ZIS="Q" D ^%ZIS G PRTQ:POP
|
---|
79 | I $D(IO("Q")) D G PRTQ
|
---|
80 | . S ZTRTN="PRTS^VALM1",ZTDESC="List Manager: Print Screen"
|
---|
81 | . D SAVE,^%ZTLOAD
|
---|
82 | I IO=IO(0) D CLEAR S X=0 X ^%ZOSF("RM")
|
---|
83 | ; fall through
|
---|
84 | PRTS ;
|
---|
85 | N VALMCC,VALMCAP
|
---|
86 | I $D(ZTQUEUED) S ZTREQ="@"
|
---|
87 | S VALMCC=0,VALMCAP=$$CAPTION^VALM,VALMPG1=1
|
---|
88 | U IO D HDR^VALM,TBAR^VALM,LIST^VALM,LBAR^VALM,FTR
|
---|
89 | ; fall through
|
---|
90 | PRTQ ;
|
---|
91 | D CHKLONG
|
---|
92 | D:'$D(ZTQUEUED) ^%ZISC
|
---|
93 | D TERM^VALM0 S X=0 X ^%ZOSF("RM")
|
---|
94 | Q
|
---|
95 | SAVE ; -- save to queue
|
---|
96 | F X="VALMIOXY","VALMEVL","VALMLFT","VALMPGE","VALMWD","VALMCNT","VALMBG","VALMDDF(","VALMHDR(","VALM(" S ZTSAVE(X)=""
|
---|
97 | F X="VALMAR",$S($E(VALMAR,$L(VALMAR))=")":$E(VALMAR,1,$L(VALMAR)-1)_",",1:VALMAR_"(") S ZTSAVE(X)=""
|
---|
98 | Q
|
---|
99 | FTR ; -- footer to print
|
---|
100 | S VALMESC=""
|
---|
101 | I $E(IOST,1,2)="C-" S VALMESC='$$GOON
|
---|
102 | Q
|
---|
103 | PRTL ; -- prt list (PL)
|
---|
104 | I $G(VALM("PRT"))]"",$O(^ORD(101,"B",VALM("PRT"),0)) S X=$O(^(0))_";ORD(101," D EN^XQOR G PRTQ
|
---|
105 | N VALMESC
|
---|
106 | S VALMBCK="R"
|
---|
107 | D:VALMCC FULL
|
---|
108 | S %ZIS="Q" D ^%ZIS G PRTQ:POP
|
---|
109 | I $D(IO("Q")) D G PRTLQ
|
---|
110 | . S ZTRTN="PRTLS^VALM1",ZTDESC="List Manager: Print List"
|
---|
111 | . D SAVE,^%ZTLOAD
|
---|
112 | I IO=IO(0) D CLEAR S X=0 X ^%ZOSF("RM")
|
---|
113 | ; fall through
|
---|
114 | PRTLS ;
|
---|
115 | N VALMPGE,VALMESC,VALMCC,VALMI,VALMLNS,VALMCAP,VALMWD
|
---|
116 | I $D(ZTQUEUED) S ZTREQ="@"
|
---|
117 | S VALMWD=IOM,VALMLNS=VALM("LINES"),VALMPG1=1
|
---|
118 | S VALM("LINES")=IOSL-(VALM("TM")+3),VALMCC=0,VALMPGE=1,VALMCAP=$$CAPTION^VALM
|
---|
119 | U IO D HDR^VALM,TBAR^VALM
|
---|
120 | F VALMI=1:1:VALMCNT S X=$G(@VALMAR@($$GET^VALM4(VALMI),0)) W !,X I IOSL<($Y+6) D FTR G PRTLQ:VALMESC S VALMPGE=VALMPGE+1 D HDR^VALM,TBAR^VALM
|
---|
121 | D FTR
|
---|
122 | ; fall through
|
---|
123 | PRTLQ ;
|
---|
124 | D CHKLONG
|
---|
125 | D:'$D(ZTQUEUED) ^%ZISC
|
---|
126 | D TERM^VALM0 S X=0 X ^%ZOSF("RM")
|
---|
127 | S:$D(VALMLNS) VALM("LINES")=VALMLNS
|
---|
128 | Q
|
---|
129 | CHKLONG ;
|
---|
130 | Q:'$$TOOLONG
|
---|
131 | I '$D(ZTQUEUED) S VALMSG="Some printed item lines may have been truncated." Q:IO(0)=IO!$D(IO("Q"))
|
---|
132 | Q:$E(IOST,1,2)="C-"
|
---|
133 | I $Y+4>IOSL W @IOF
|
---|
134 | E W !
|
---|
135 | W !,">>> Warning: Some list items lines may have been truncated."
|
---|
136 | W !,">>> This list requires ",VALM("RM")," characters/line."
|
---|
137 | W !,">>> This device supports ",IOM," characters/line."
|
---|
138 | Q
|
---|
139 | TOOLONG() ; Is the line length too long for the device?
|
---|
140 | Q:'$D(VALM("RM")) 0
|
---|
141 | Q:'$D(IOM) 0
|
---|
142 | Q $S(VALM("RM")>IOM:1,1:0)
|
---|
143 | UPPER(X) ; -- convert to uppercase
|
---|
144 | Q $$UP^XLFSTR(X)
|
---|
145 | LOWER(X) ;
|
---|
146 | N Y,C,Z,I
|
---|
147 | S Y=$E(X)_$TR($E(X,2,999),"ABCDEFGHIJKLMNOPQRSTUVWXYZ@","abcdefghijklmnopqrstuvwxyz ")
|
---|
148 | F C=" ",",","/" S I=0 F S I=$F(Y,C,I) Q:'I S Y=$E(Y,1,I-1)_$TR($E(Y,I),"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")_$E(Y,I+1,999)
|
---|
149 | Q Y
|
---|