過去の桐井戸端BBS (桐ver.9)
23864 日時型テキストでの入力前イベントでの文字列代入について環境設定に依存することなくイベントで設定したい 今村 誠 2003/12/11-21:08
桐9sp1win2000です
 環境設定で設定した日時型の表示範囲によって入力前イベントで代入した文字列が切り捨てられます。
 環境設定で日時型の表示範囲を「秒」までにすれば切り捨てられることはありません。

 表定義で項目の編集初期値に設定すれば正常に確定できます。

フォームでは定義画面では日時型の表示方式がいろいろ選べるが
環境設定に依存することなく編集初期値のようなものをイベントで設定できないのでしょうか。
proc t日付::入力前(参照 文字列 &編集文字列)
  var Str{&tmp編集初期値=\
  #str(#日時値生成(#年(#日時値),#月(#日時値),#日(#日数加算(#日時値,1))\
  ,#時(#時刻),#分(#時刻),#切り捨て(#秒(#時刻,1),-2)+3))}
  確認 &tmp編集初期値
  &編集文字列 = &tmp編集初期値
end

編集初期値の式
  #日時値生成(#年(#日時値),#月(#日時値),#日(#日数加算(#日時値,1))\
  ,#時(#時刻),#分(#時刻),#切り捨て(#秒(#時刻,1),-2)+3)

フォームの定義画面だけで設定する方法はないでしょうか
23866 解決しました(^o^) 今村 誠 2003/12/12-08:53
記事番号23864へのコメント
お騒がせしました。
文字列を一つずつ代入しました。
#日時値生成の関数が環境設定に影響されているようです。
#日時値(&tmp編集初期値)は正常な値を生成してくれます。

proc t日付::入力前(参照 文字列 &編集文字列)
  var Str{&tmp編集初期値 = \
  "H"+#str(#元号年(#日時値))+"/"+#str(#月(#日時値))+"/"+#str(#日(#日数加算(#日時値,1)))\
  +" "+#str(#時(#時刻))+":"+#str(#分(#時刻))+":"+#str(#切り捨て(#秒(#時刻,1),-2)+3)}
  cond (&編集文字列="") &編集文字列 = &tmp編集初期値
end

23905 Re:解決しました(^o^) うにん 2003/12/13-13:45
記事番号23866へのコメント

>#日時値生成の関数が環境設定に影響されているようです。

#日時値生成ではなくて、#STRです。HELPに書いてありました。

23907 Re:解決しました(^o^) 今村 誠 2003/12/13-15:56
記事番号23905へのコメント
うにんさん調べていただいてありがとうございました。
>
>>#日時値生成の関数が環境設定に影響されているようです。
>
>#日時値生成ではなくて、#STRです。HELPに書いてありました。
>
日時文字列を使えばよかったのですね。

proc t日付::入力前(参照 文字列 &編集文字列)
  var Str{&tmp編集初期値}
  &tmp編集初期値= #日時文字列(#日数加算(\
  #日時値生成(#年(#日時値),#月(#日時値),#日(#日時値)\
  ,#時(#時刻),#分(#時刻),#切り捨て(#秒(#時刻,1),-2)+3),1),0,4,0)
  cond (&編集文字列="") &編集文字列 = &tmp編集初期値
end

戻る