カレンダー・コントロールとは
日付のフィールドに対してカレンダーを表示して、その中から日付を選択することができる機能が
カレンダー・コントロールです。
日付フィールドに対してカレンダー・コントロールを補助機能として付加しておくとエンド・ユーザーの
入力操作性は、より易しくなります。
作成方法(8桁日付)
8桁数字フィールド(日付)を DDS で EDTCDE(W)
編集するとカレンダー・コントロールを使用することが
できます。
DDS で 8桁数字を編集コード W
で編集しておくと、自動的に 8桁日付であると解釈されて HTML5 による
カレンダー・コントロールの機能が付加されます。
手動で HTML を修正する必要はありません。
QTRSRC/QDSPSRC(PGM201FM) 受注日
A 3 62' 受注日 ' A JUDATE 8Y 0B 3 71TEXT(' 受注日 ') A 64 ERRMSG(' 受注日の誤りです - A '63') A* 編集コード :W を日付のフィールドとみなしてカレンダーを追加します。 A EDTCDE(W)
AutoWeb はこの EDTCDE(W)
を DSPF オブジェクトから読み取って、次のようなカレンダー・コントロールを
自動的に追加します。
EDTCDE(W)
が指定されたフィールドを出力すると、AutoWeb は
<input type="text"
ではなく <input type="date"
としてブラウザへ出力します。
input type="date"
がサポートされている次のブラウザでは、そのままブラウザの機能によって
カレンダー・コントロールを利用することができます。
Chrome
Safari
Opera
次のブラウザで表示される場合は、AutoWeb が自動的にカレンダー・コントロール機能を追加します。
IE (MS Internet Explorer )
Firefox
6桁日付のカレンダー・コントロール
6桁日付もカレンダー・コントロールを定義できるようになりました。
6桁数字 ( 6Y 0 )
を EDTCDE(Y)
で編集を指定すると
カレンダー・コントロールが付与されます。
日付の形式は TEXTキー・ワードを使って
EDTCDE(Y) TEXT('*YMD')
EDTCDE(Y) TEXT('*MDY')
EDTCDE(Y) TEXT('*DMY')
のように明示的に指定するかまたは指定がなければ
実行するジョブの「日付の形式」に従います。
上記の TEXTによる明記があればそれが優先して解釈されます。
年(西暦4桁) + 月 + 日 が分離されている日付
年(西暦4桁) + 月 + 日 の型式で年・月・日が別々のフィールドとして
分離されている場合の日付型式でもカレンダー・コントロールを設定することが
できます。
【例】
【DDSソース】
TEXT に *CYEAR
, *MONTH
, *DAY
を指定してください。
A UCYY 4Y 0B 3 13TEXT(' 受付年 *CYEAR') A UCMM 2Y 0B 3 18TEXT(' 受付月 *MONTH') A UCDD 2Y 0B 3 21TEXT(' 受付日 *DAY')
【カレンダー・コントロール】
カレンダー・コントロールは「日」の直後に追加されます。
カレンダー・コントロール
カレンダー・コントロールを閉じるには
カレンダー・コントロールが表示されると、元のカレンダー・コントロールのアイコンは ×印の
アイコンに変化します。この ×印のアイコンをクリックするとカレンダー・コントロールは閉じられます。
祝日の追加・変更
カレンダー・コントロールでは祝日は赤字で表示されます。
AutoWeb出荷時は、その年の国民の休日が赤字になるよう設定されています。
国民の休日が変更になったり、あるいは会社独自の休日を追加したりする場合は
下記のように変更が行えます。
祝日は、IFS上にある下記ファイル内で管理されています。
FTPやNetServerなどを使ってこのファイルをPCにダウンロードし、編集する必要があります。
/AS400-NET.USR/JS/CALENDAR.JS
このファイルを開くと先頭部分が下記のようになっています。
// ***************************************************************************** // CALENDAR.JS // AUTOWEB JavaScript ライブラリー // ***************************************************************************** function Calendar(){ this.target=""; this.targetId = null; // カレンダー表示中のinput要素のID this.delimiter="/";// 年、月、日の区切り文字を設定します。 this.currentyear=""; this.holiday={ //国民の祝日 "1/1":"元旦" ,"2/11":"建国記念の日" // ,"3/21":"春分の日" // 年によって変わるため別で判定 ,"4/29":"昭和の日" ,"5/3":"憲法記念日" ,"5/4":"みどりの日" ,"5/5":"こどもの日" ,"8/11":"山の日" // ,"9/23":"秋分の日" // 年によって変わるため別で判定 ,"11/3":"文化の日" ,"11/23":"勤労感謝の日" ,"12/23":"天皇誕生日" }; this.happymonday={ //ハッピーマンデー 月:週 で記述します。 "1:2":"成人の日" ,"7:3":"海の日" ,"9:3":"敬老の日" ,"10:2":"体育の日" }; this.yy=""; this.mm=""; this.dd="";
ここの this.holiday
及び this.happymonday
の部分を書き換えることで
祝日の追加や変更が可能です。
このファイルの内容は各PCのWebブラウザにキャッシュされていますので
反映させるためにはWebブラウザのキャッシュを消去するか、
キャッシュの有効期限が切れるのを待つ必要があります。
従いまして祝日の変更は、本番環境リリース前か長期休暇の前に行うことを
お勧め致します。
またこのファイルはAutoWebのPTF適用により上書きされる可能性がありますので
PTF適用前には変更内容のバックアップをお願い致します。