1 | SDUL1 ;ALB/MJK - Screen Malipulation Utilities ; 12/1/91
|
---|
2 | ;;5.3;Scheduling;**140**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | INSTR(STR,X,Y,LENGTH,ERASE) ; -- insert text
|
---|
5 | ; STR := string to insert
|
---|
6 | ; X := X coordinate
|
---|
7 | ; Y := Y coordinate
|
---|
8 | ; LENGTH := clear # of characters
|
---|
9 | ; ERASE := erase chars first
|
---|
10 | ;
|
---|
11 | W IOSC
|
---|
12 | I $G(ERASE) S DY=Y-1,DX=X-1 X IOXY W $J("",LENGTH)
|
---|
13 | S DY=Y-1,DX=X-1 X IOXY W STR
|
---|
14 | W IORC
|
---|
15 | Q
|
---|
16 | ;
|
---|
17 | FLDUPD(STR,FLD,ENTRY) ; -- update entry and field on screen
|
---|
18 | ; STR := string to insert
|
---|
19 | ; FLD := col name
|
---|
20 | ; ENTRY := entry # in list
|
---|
21 | ;
|
---|
22 | D INSTR(.STR,+$P(SDULDDF(FLD),U,2),ENTRY-SDULBG+SDUL("TM"),$P(SDULDDF(FLD),U,3),1)
|
---|
23 | Q
|
---|
24 | ;
|
---|
25 | SETFLD(STR,VAR,FLD) ; -- set field in var
|
---|
26 | ; input: STR := string to insert
|
---|
27 | ; VAR := destination string
|
---|
28 | ; FLD := col name
|
---|
29 | Q $$SETSTR^SDUL1(STR,VAR,+$P(SDULDDF(FLD),U,2),+$P(SDULDDF(FLD),U,3))
|
---|
30 | ;
|
---|
31 | SETSTR(S,V,X,L) ; -- insert text(S) into variable(V)
|
---|
32 | ; S := string to insert
|
---|
33 | ; V := destination string
|
---|
34 | ; X := insert @ col X
|
---|
35 | ; L := clear # of chars (length)
|
---|
36 | ;
|
---|
37 | Q $E(V_$J("",X-1),1,X-1)_$E(S_$J("",L),1,L)_$E(V,X+L,999)
|
---|
38 | ;
|
---|
39 | FULL ; set full scrolling region
|
---|
40 | I '$D(IOSTBM) D TERM^SDUL0
|
---|
41 | I IOSTBM]"" S IOTM=1,IOBM=IOSL W IOSC W @IOSTBM W IORC
|
---|
42 | Q
|
---|
43 | ;
|
---|
44 | CLEAR ; -- clear screen
|
---|
45 | D FULL,ERASE W @IOF
|
---|
46 | Q
|
---|
47 | ;
|
---|
48 | ERASE ;
|
---|
49 | F X="IOUOFF","IOINORM" W $G(@X)
|
---|
50 | Q
|
---|
51 | ;
|
---|
52 | FDATE(Y) ; -- return formatted date
|
---|
53 | ; input: Y := field name
|
---|
54 | ; output: [returned] := formatted date only
|
---|
55 | Q $TR($$FMTE^XLFDT(Y,"5DF")," ","0")
|
---|
56 | ;
|
---|
57 | FTIME(Y) ; -- return formatted date/time
|
---|
58 | ; input: Y := internal date/time
|
---|
59 | ; output: [returned] := formatted date and time
|
---|
60 | D DD^%DT
|
---|
61 | Q Y
|
---|
62 | ;
|
---|
63 | FDTTM(Y) ; -- return formatted date/time
|
---|
64 | ; input: Y := internal date/time
|
---|
65 | ; output: [returned] := formatted date and time
|
---|
66 | N SDY
|
---|
67 | S SDY=$TR($$FMTE^XLFDT(Y,"5DF")," ","0")
|
---|
68 | D DD^%DT
|
---|
69 | Q SDY_$S($P(Y,"@",2)]"":"@"_$P(Y,"@",2),1:"")
|
---|
70 | ;
|
---|
71 | NOW() ; -- return now
|
---|
72 | D NOW^%DTC
|
---|
73 | Q $$FTIME(%)
|
---|
74 | ;
|
---|
75 | RANGE ; -- change date range
|
---|
76 | ; input: ^TMP("SDUL DATA",$J SDULEVL,"DAYS") := number of days allowed
|
---|
77 | ; SDB := default beginning date {optional}
|
---|
78 | ;
|
---|
79 | I $D(SDB) S Y=SDB D DD^%DT S:Y]"" %DT("B")=Y
|
---|
80 | W ! S:$D(SDMIN) %DT(0)=SDMIN S %DT="AEX",%DT("A")="Select Beginning Date: " D ^%DT K %DT
|
---|
81 | G RANGEQ:Y<0 S (X1,SDX)=Y,X2=+$G(^TMP("SDUL DATA",$J,SDULEVL,"DAYS")) D C^%DTC S SDX1=X,X=""
|
---|
82 | I SDX'>DT,SDX1>DT S X="TODAY"
|
---|
83 | I X="" S Y=SDX D DD^%DT S X=Y
|
---|
84 | S DIR("B")=X
|
---|
85 | S DIR(0)="DA"_U_SDX_":"_SDX1_":EX",DIR("A")="Select Ending Date: "
|
---|
86 | S DIR("?",1)="Date range can be a maximum of "_+$G(^TMP("SDUL DATA",$J,SDULEVL,"DAYS"))_" days long.",DIR("?",2)=" "
|
---|
87 | S DIR("?",3)="Enter a date between "_$$FDATE(SDX)_" and "_$$FDATE(SDX1)_".",DIR("?")=" "
|
---|
88 | D ^DIR K DIR G RANGEQ:Y'>0 S SDEND=Y,SDBEG=SDX
|
---|
89 | RANGEQ K SDX,SDX1 Q
|
---|
90 | ;
|
---|
91 | PAUSE ;
|
---|
92 | W ! S DIR(0)="E" D ^DIR K DIR W !
|
---|
93 | Q
|
---|
94 | ;
|
---|
95 | PRT ; -- prt screen (PS)
|
---|
96 | N SDESC
|
---|
97 | S SDULBCK=$S(SDULCC:"",1:"R")
|
---|
98 | S %ZIS="Q" D ^%ZIS G PRTQ:POP
|
---|
99 | I '$D(IO("Q")),IO=IO(0) S SDULBCK="R" D CLEAR
|
---|
100 | I '$D(IO("Q")) G PRTS
|
---|
101 | S ZTRTN="PRTS^SDUL1",ZTIO=ION,ZTDESC="Print Screen -- List Manager Action"
|
---|
102 | D SAVE,^%ZTLOAD G PRTQ
|
---|
103 | ;
|
---|
104 | PRTS ;
|
---|
105 | N SDULCC,SDULCAP
|
---|
106 | S SDULCC=0,SDULCAP=$$CAPTION^SDUL
|
---|
107 | U IO D HDR^SDUL,LIST^SDUL,FTR
|
---|
108 | PRTQ D:'$D(ZTQUEUED) ^%ZISC D TERM^SDUL0
|
---|
109 | Q
|
---|
110 | ;
|
---|
111 | SAVE ; -- save to queue
|
---|
112 | F X="SDULPGE","SDULWD","SDULCNT","SDULBG","SDULDDF(","SDULHDR(","SDUL(","SDULAR",$E(SDULAR,1,$L(SDULAR)-1)_$S($E(SDULAR,$L(SDULAR))=")":",",1:"(") S ZTSAVE(X)=""
|
---|
113 | Q
|
---|
114 | ;
|
---|
115 | FTR ; -- footer to print
|
---|
116 | S SDESC=""
|
---|
117 | I $E(IOST,1,2)="C-" D PAUSE S SDESC='Y
|
---|
118 | Q
|
---|
119 | ;
|
---|
120 | PRTL ; -- prt list (PL)
|
---|
121 | N SDESC
|
---|
122 | S SDULBCK=$S(SDULCC:"",1:"R")
|
---|
123 | S %ZIS="Q" D ^%ZIS G PRTQ:POP
|
---|
124 | I '$D(IO("Q")),IO=IO(0) S SDULBCK="R" D CLEAR
|
---|
125 | I '$D(IO("Q")) G PRTLS
|
---|
126 | S ZTRTN="PRTLS^SDUL1",ZTIO=ION,ZTDESC="Print List -- List Manager Action"
|
---|
127 | D SAVE,^%ZTLOAD G PRTLQ
|
---|
128 | ;
|
---|
129 | PRTLS ;
|
---|
130 | N SDULPGE,SDESC,SDULCC,SDI,SDLINES,SDULCAP
|
---|
131 | S SDLINES=SDUL("LINES")
|
---|
132 | S SDUL("LINES")=IOSL-5,SDULCC=0,SDULPGE=1,SDULCAP=$$CAPTION^SDUL
|
---|
133 | U IO D HDR^SDUL
|
---|
134 | F SDI=1:1:SDULCNT S X=$G(@SDULAR@($$GET^SDUL4(SDI),0)) W !,X I IOSL<($Y+6) D FTR G PRTLQ:SDESC S SDULPGE=SDULPGE+1 D HDR^SDUL
|
---|
135 | D FTR
|
---|
136 | PRTLQ D:'$D(ZTQUEUED) ^%ZISC D TERM^SDUL0
|
---|
137 | S:$D(SDLINES) SDUL("LINES")=SDLINES
|
---|
138 | Q
|
---|
139 | ;
|
---|
140 | UPPER(X) ; -- convert to uppercase
|
---|
141 | Q $TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
|
---|
142 | ;
|
---|
143 | LOWER(X) ;
|
---|
144 | N Y,C,Z,I
|
---|
145 | S Y=$E(X)_$TR($E(X,2,999),"ABCDEFGHIJKLMNOPQRSTUVWXYZ@","abcdefghijklmnopqrstuvwxyz ")
|
---|
146 | F C=" ",",","/" F I=2:1 S Z=$P(Y,C,I,999) Q:Z="" S Y=$P(Y,C,1,I-1)_C_$TR($E(Z),"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")_$E(Z,2,999)
|
---|
147 | Q Y
|
---|
148 | ;
|
---|