| 1 | RGUTDAT ;CAIRO/DKM - Date range input;12-Oct-1998 12:01;DKM
 | 
|---|
| 2 |  ;;2.1;RUN TIME LIBRARY;;Mar 22, 1999
 | 
|---|
| 3 |  ;=================================================================
 | 
|---|
| 4 |  ; Prompt for date range (normal format)
 | 
|---|
| 5 | NORMAL D D1("P1"),D2("P2")
 | 
|---|
| 6 |  Q
 | 
|---|
| 7 |  ; Prompt for date range (inverse format)
 | 
|---|
| 8 | INVRSE D D1("PI1"),D2("PI2")
 | 
|---|
| 9 |  Q
 | 
|---|
| 10 |  ; Prompt for starting date
 | 
|---|
| 11 | D1(RGOPT) ;
 | 
|---|
| 12 |  S RGDAT1=$$ENTRY("Start date: ",.RGOPT,"",0,$Y)
 | 
|---|
| 13 |  Q
 | 
|---|
| 14 |  ; Prompt for ending date
 | 
|---|
| 15 | D2(RGOPT) ;
 | 
|---|
| 16 |  S RGDAT2=$$ENTRY("End date  : ",.RGOPT,"",0,$Y+1)
 | 
|---|
| 17 |  Q
 | 
|---|
| 18 |  ; Prompt for a date
 | 
|---|
| 19 | ENTRY(%RGP,%RGOPT,%RGDAT,%RGX,%RGY,%RGTRP,%RGHLP) ;
 | 
|---|
| 20 |  N %RGD,%RGI,%RGDT,%RGZ,%RGDISV
 | 
|---|
| 21 |  S %RGX=$G(%RGX,$X),%RGY=$G(%RGY,$Y),DUZ=+$G(DUZ),IO=$G(IO,$I),DTIME=$G(DTIME,999999999),%RGOPT=$$UP^XLFSTR($G(%RGOPT)),%RGDISV=""
 | 
|---|
| 22 |  S %RGTRP=$G(%RGTRP),%RGDAT=$G(%RGDAT)
 | 
|---|
| 23 |  S:$G(%RGHLP)="" %RGHLP="HELP^RGUTDAT"
 | 
|---|
| 24 |  S:$G(%RGP)="" %RGP="Enter date: "
 | 
|---|
| 25 |  F %RGZ=0:1:9 I %RGOPT[%RGZ S %RGDISV="RGDAT"_%RGZ Q
 | 
|---|
| 26 |  U IO
 | 
|---|
| 27 | DAT1 S %RGDT="",@$$TRAP^RGZOSF("DAT1^RGUTDAT")
 | 
|---|
| 28 |  F %RGZ="P","T","F","X" S:%RGOPT[%RGZ %RGDT=%RGDT_%RGZ
 | 
|---|
| 29 |  F  D  Q:$D(%RGI)
 | 
|---|
| 30 |  .W $$XY^RGUT(%RGX,%RGY)_%RGP,*27,"[J"
 | 
|---|
| 31 |  .S $X=%RGX+$L(%RGP)
 | 
|---|
| 32 |  .I %RGOPT["E" S %RGI=$$ENTRY^RGUTEDT(%RGDAT,79-$X,$X,$Y,"","R")
 | 
|---|
| 33 |  .E  I %RGDAT'="" S %RGI=%RGDAT,%RGDAT=""
 | 
|---|
| 34 |  .E  R %RGI:DTIME
 | 
|---|
| 35 |  .I $E(%RGI)="?" D  Q
 | 
|---|
| 36 |  ..W !
 | 
|---|
| 37 |  ..I %RGI["??" D HELP
 | 
|---|
| 38 |  ..E  D @%RGHLP
 | 
|---|
| 39 |  ..D PAUSE()
 | 
|---|
| 40 |  ..K %RGI
 | 
|---|
| 41 |  .I %RGI=" " S %RGI=$S(%RGDISV="":"",1:$G(^DISV(DUZ,%RGDISV))) K:%RGI="" RGZ1
 | 
|---|
| 42 |  .W $$XY^RGUT(%RGX+$L(%RGP),%RGY),*27,"[K"
 | 
|---|
| 43 |  I %RGI="",%RGTRP'="" S %RGI=$G(@%RGTRP@(" "))
 | 
|---|
| 44 |  S %RGI=$$UP^XLFSTR(%RGI),%RGD=""
 | 
|---|
| 45 |  Q:"^^"[%RGI -$L(%RGI)
 | 
|---|
| 46 |  I %RGTRP'="" D  I %RGD'="" S %RGOPT=$TR(%RGOPT,"I") G DAT2
 | 
|---|
| 47 |  .I $D(@%RGTRP@(%RGI)) S %RGD=@%RGTRP@(%RGI)
 | 
|---|
| 48 |  .E  D
 | 
|---|
| 49 |  ..N X
 | 
|---|
| 50 |  ..S X=%RGI,%RGZ=""
 | 
|---|
| 51 |  ..F  S %RGZ=$O(@%RGTRP@("?",%RGZ)) Q:%RGZ=""  I %RGI?@%RGZ D  Q
 | 
|---|
| 52 |  ...S %RGD=$$MSG^RGUT($G(@%RGTRP@("?",%RGZ)))
 | 
|---|
| 53 |  S %RGI=$$%DT^RGUT(%RGI,%RGDT)
 | 
|---|
| 54 |  G:%RGI=-1 DAT1
 | 
|---|
| 55 |  I %RGOPT["+",%RGI<$S(%RGI=%RGI\1:$$DT^XLFDT,1:$$NOW^XLFDT) D  G DAT1
 | 
|---|
| 56 |  .D PAUSE("Must be on or after current date.")
 | 
|---|
| 57 |  I %RGOPT["-",%RGI>$S(%RGI=%RGI\1:$$DT^XLFDT,1:$$NOW^XLFDT) D  G DAT1
 | 
|---|
| 58 |  .D PAUSE("Must be on or before current date.")
 | 
|---|
| 59 |  S %RGD=$$^RGCVTDT(%RGI)
 | 
|---|
| 60 | DAT2 W %RGD
 | 
|---|
| 61 |  S:%RGDISV'="" ^DISV(DUZ,%RGDISV)=%RGI
 | 
|---|
| 62 |  Q $S(%RGOPT["I":9999999-%RGI,1:%RGI)
 | 
|---|
| 63 | HELP W ?2,"Enter a valid ",$S(%RGOPT["+":"future ",%RGOPT["-":"past ",1:""),"date using one of the following formats:",!!
 | 
|---|
| 64 |  W ?5,"Format",?20,"Example",?35,"Explanation",?60,"Comments",!
 | 
|---|
| 65 |  W ?5,"------",?20,"-------",?35,"-----------",?60,"--------",!
 | 
|---|
| 66 |  W ?5,"mm/dd/yy",?20,"6/20/93",?35,"June 20, 1993",?60,"If you omit the",!
 | 
|---|
| 67 |  W ?5,"dd-mmm-yy",?20,"27-JUL-58",?35,"July 27, 1958",?60,"year, the "_$S(%RGOPT["P":"most",%RGOPT["F":"closest",1:"current"),!
 | 
|---|
| 68 |  W ?5,"mmddyy",?20,"070457",?35,"July 4, 1957",?60,$S(%RGOPT["P":"recent past date",%RGOPT["F":"future date",1:"calendar year"),!
 | 
|---|
| 69 |  W ?5,"mmm dd yyyy",?20,"JAN 5, 1984",?35,"January 5, 1984",?60,"is assumed.",!
 | 
|---|
| 70 |  W ?5,"T-n",?20,"T-5",?35,"Today's date - 5 days.",!!
 | 
|---|
| 71 |  Q
 | 
|---|
| 72 | PAUSE(%RGZ) ;
 | 
|---|
| 73 |  W $$XY^RGUT(0,22),$G(%RGZ)
 | 
|---|
| 74 |  I $$PAUSE^RGUT
 | 
|---|
| 75 |  Q
 | 
|---|