Skip to main content

%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:

  1. Absolute Dates, represented in $H format
  2. Absolute Years, represented by 4-digit numbers relative to the start of the Common Era (0 C.E.)
  3. 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.