| [613] | 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 |  ;
 | 
|---|