| 2009/09/18(Fri) 12:35:21 編集(投稿者)
例えば今月19日を入力したい場合 「19」だけでH21/9/19 と成りますが入力後イベントでは 年と月が入っていないので判定式が大変です。
手続き定義開始 t日付::ソース値更新() /* 入力後イベントでは文字列なので誤った日時値の判定が面倒です。桐に任せましょう */ /* 例えば「abcde」「21/2/29」等と入力すれば桐が怒ります(^_^) */ var date { &Dmae , &Dnow } , int { &Iend } &Dmae = #月数加算( #日時値生成( #年(#日時値), #月( #日時値 ),21), -1 , 1 ) method &this.ソース値取得( &Dnow, 0 ) /* 入力された日付は日時型でメソッドで取得します */ if(&Dnow="") /* 何も入力↑されていない場合、以下のメッセージを表示します */ 確認 "文字が入力されていません" /* 必ず入力させたい時はフォーカスを移動させないようにここにフォーカス移動を記述 */ else if ( &Dnow < &Dmae) /* 入力した日付↑が締め日↑より小さい場合、以下を実行します */ メッセージボックス #TISTR( &Dnow,3,1,2 )+"は締め日以前です"\ , "白紙に戻して再入力しますか?はい \n"\ +"そのまま再入力しますか? いいえ \n"\ +"何もせずこの日付を確定する? キャンセル"\ , アイコン = i, ボタン指定 = 4 , 制御文字展開= する, &Iend if (&Iend=2) /* キャンセルが押されました。 次の入力項目に移動します。 */ else if (&Iend=6) /* はいが押されました。入力を白紙に戻し再入力 */ 項目値代入 [日付]="" method &this.フォーカス設定() else if (&Iend=7) /* いいえが押されました。日付はそのままに訂正継続 */ method &this.フォーカス設定() else /* あり得ませんが万が一のケース */ 確認 "予期しない選択肢です" end else * 確認 "正常な日付です" end 手続き定義終了
|