%SYS.Date.SlidingWindow
Class %SYS.Date.SlidingWindow Extends %RegisteredObject [ System = 4 ]
The %SYS.Date.SlidingWindow class supports methods for setting, modifying and inspecting the system-wide or process-specific sliding window definitions. With the exception of Get(), all the other class methods return a %Status to indicate success or failure. Any modified system-wide definition will be active until the system is restarted. If necessary, users can add the new settings to ^ZSTU or ^%ZSTART in order to make them survive across reboots.
In most cases, the first parameter indicates whether the call is system or process-specific:
Scope = 0: system (default)
Scope = 1: process
Depending of the method, start and end dates can be specified in 3 different ways:
- Absolute Dates, represented in $H format
- Absolute Years, represented by 4-digit numbers relative to the start of the Common Era (0 C.E.)
- Relative Years, represented by numbers relative the current year When relative years are used to define a sliding window, the first or only relative year is interpreted as the start year, expressed as the number of years PRIOR to the current year. The second relative year, if any, is interpreted as the end year, expressed as one more than the number of years AFTER the current year.
Methods
NoWindow
ClassMethod NoWindow(Scope As %Integer = 0) As %String
Set default to be an "empty" window, so that all years display using 4 digits.
Get
ClassMethod Get(Scope As %Integer = 0) As %String
Get current default definition in the format:
OldStartDate^OldEndDate
Where OldStartDate and OldEndDate are absolute dates in $H format representing the start and end, respectively, of the current sliding window.
Twentieth
ClassMethod Twentieth(Scope As %Integer = 0) As %Status
Remove current default so that a 20th century fixed window is used by default.
SetAbsolute
ClassMethod SetAbsolute(Scope As %Integer = 0, StartYear As %Integer, EndYear As %Integer) As %Status
Set date window to begin on the absolute year StarYear and to end on the absolute year EndYear.
SetDate
ClassMethod SetDate(Scope As %Integer = 0, StartDate As %Integer, EndDate As %Integer) As %Status
Set date window to begin on the absolute date StartDate and to end on the absolute date EndDate.
SetRelative
ClassMethod SetRelative(Scope As %Integer = 0, StartYear As %Integer, EndYear As %Integer) As %Status
Set date window to begin on the relative year StartYear and to end on the relative year EndYear.
Example: If issued in 2008, the following command would establish a process-specific sliding window definition which would result in this process displaying two-digit years for any dates in the range 01/01/1918 through 12/31/2017, inclusive.
Set status=##class(%SYS.Date.SlidingWindow).SetRelative(1,90,10)
UseDefault
ClassMethod UseDefault()
Set process window to be the same as the current system default.