現在の日付を返します。
Today()
戻されるタイプ:
Date
オブジェクト: Procedure、
Transaction、
Web Panel、
Work Panel
注:
- iSeries 環境では、この関数はシステムの日付ではなくジョブの開始日を返します。これにより、現在の日付と異なる日付のジョブを実行でき、また、この日付をプログラムで使用できます。
- 実際のシステムの日付を使用する場合は、Sysdate() 関数を参照してください。
- PC 環境ではシステムの日付を返すため、Today 関数と Sysdate 関数は同等になります。
次の
Transaction オブジェクトがあるとします:
Customer
{
CustomerId*
CustomerName
CustomerPhone
CustomerDateOfBirth
CustomerAddedDate
}
1)トランザクションの [ Rules ] エレメントで、以下のルールを定義できます:
Default(CustomerDateOfBirth, Today());
Error("The date of birth cannot be higher than today.") if CustomerDateOfBirth > Today();
Default ルールは、新しいレコードを挿入するときだけトリガーされます。そのため、最初のルールは現在の日付を既定として CustomerDateOfBirth 項目属性を初期化し、エンドユーザーが値を変更できます。
2 つ目のルールは、CustomerDateOfBirth が現在の日付より後かどうかを検証します。そうである場合はエラーテキストを表示します。
2)さらに、同じトランザクションの [ Rules ] エレメントで、以下のルールを定義できます:
Default(CustomerAddedDate, Today());
Noaccept(CustomerAddedDate);
この Default ルールは、現在の日付を既定として CustomerAddedDate 項目属性を初期化します。さらに
NoAccept ルールが、CustomerAddedDate 項目属性の編集を無効にします。したがって、CustomerAddedDate 項目属性には現在の日付が設定され、その値を更新することはできません。
3) ここで、
[ Web Layout ] に変数 &StartDate と 1 つのボタンを含む
Web Panel オブジェクトについて考えます。エンドユーザーは変数に日付を入力する必要があり、ボタンをクリックすると、関連するイベントが、&StartDate が空であるか、現在の日付よりも後かどうかを検証する必要があります。これらのどれにも当てはまらない場合、&StartDate 値以降に挿入されたすべての顧客をナビゲートし、何らかのアクションを実行する必要があります。
ボタンに関連付けられたイベントには、以下のコードが含まれています:
Event 'Processes customers'
If &DateFrom.IsEmpty()
msg("The date must not be empty")
Else
If &DateFrom > Today()
msg("The date must not be higher than today")
else
For each Customer
where CustomerAddedDate < &DateFrom
//何らかの処理
endfor
endif
endif
Endevent
Sysdate 関数
GxRemove 変数