Q177:日付smalldatetime型のデータの扱いについて
A177:
日付smalldatetime型のデータの扱いについて、ご連絡致します。
smalldatetime型は年月日時分までのデータを持ち、秒数部分は「0」のSQLServer特有のデータ型です。
本来、データベースから取得された日付型のデータは、MZPlatform上では日付型(java.util.Date)として、[テーブル]や[テーブル格納変数]に設定されます。
日付型データ(オブジェクト)は年月日時分秒まで備えた日付に関する情報の塊と考えて下さい。無理に文字列として見る(=例:[テキストフィールド]に設定する)と『Wed Dec 12 12:24:36 JST 2012』といった形式に見えます。[カレンダー]「書式指定によるカレンダー文字列表現の取得(String)」で、書式を指定して、例えば「2012/12/12」という文字列に変換することは可能です。
[日付入力フィールド]に日付型データを設定すれば、表示は「2012/12/12」になります(デフォルト表示モードは日付のみ)。
[日付入力フィールド]から「日付を取得する()」と日付型データが取得され、「表示されている文字列を取得する()」と文字列が取得されます。
さて、現在のところ、SQLServerからのsmalldatetime型データはMZPlatform上で「java.lang.timestamp」型となっています。これはMZPlatformの型変換が充分でなかったのが原因で、ご迷惑をお掛けし申し訳ございません。
現状でも[テーブル]に表示しなければ、一見処理は通っていますが、やはり「日付=Date型」と定まっていないと後々のメンテナンスの際に困るとの結論になりました。本日リリースされるMZPlatform ver.2.10では「smalldatetime⇒MZPlatformのDate型」と変換されます。
大変お手数ですが、以下の修正をお願い致します。
1)現在、以下のようにして頂いていると思います。
[サブルーチン]-----------[文字列格納変数]←書式を整えるため
| 引数:オブジェクトキュー オブジェクトの取得
-----------[文字列格納変数]
|
-----------[テキストフィールド]
引数:文字列格納変数 文字列を取得する
これを次のように変更して下さい。
[サブルーチン]-----------[日付入力フィールド]
日付を設定する(Object)
引数:オブジェクトキュー オブジェクトの取得
画面編集で[テキストフィールド]と[日付入力フィールド]を入れ替えて下さい。
ID番号が飛び飛びなのが気になる時は、手動で「コンポーネント属性設定」でIDを変更することができます。
また、全体のID番号を並べ直す時には、左側のコンポーネントをドラッグして番号を振り直したい順に並べ、編集領域で右クリック>[コンポーネントID再設定]を行います。
2)「smalldatetime⇒MZPlatformのDate型」と変換されるようにします。
Update処理の作成など、次の段階に移っているのでなければ、緊急性はないので、新バージョンMZPlatform2.10をインストールし、それで開発作業、実行を行って頂けば、追加作業はございません。
MZPlatform2.10は順次発送作業を開始し、遅くとも年明けにはお手元に届くかと存じます。