PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
15613 | 01/06/26 11:58:25 | RE(2):PB6.5: DWコントロール(エディットマスク)でCtrl+X(切り取り)したとき By wata-m |
15601 | 01/06/25 13:06:33 | RE(1):PB6.5: DWコントロール(エディットマスク)でCtrl+X(切り取り)したとき By indian |
15586 | 01/06/22 10:49:01 | PB6.5: DWコントロール(エディットマスク)でCtrl+X(切り取り)したとき By wata-m |
カテゴリ:PowerBuilderの不具合?
日付:2001年06月25日 13:06 発信者:indian
題名:RE(1):PB6.5: DWコントロール(エディットマスク)でCtrl+X(切り取り)したとき
wata-mさん、おはようございます。
>
>DWオブジェクトでChar(8)、EditMask(\"####/##/##\")と定義した
>日付の入力を作成しました。
>不具合と思われる入力の動作は
>その入力項目にて全てを選択し、Ctrl+X(切り取り)をしたときに
>マスクした内容も切り取られる。
>また、切り取られた後には、8Byte入力なのに
>4bayteしか入力できなくなるというものです。
>
ちょっと試してみたら、Char(8)に####/##/##のエディットマスクを適用した場合、
基本的にはデフォルトでスペースが8桁入っているのが、Ctrl+Xを行うと
\"\"空白になってしまい、マスクが消えるようです。なので下記のようなスクリプトで
擬似的に逃げる方法もあるかなと思います。
データウィンドウのEditChangedイベントに記述
String ls_value
ls_value = dw_1.GetText( )
If IsNull( ls_value ) = True Or ls_value = \"\" Then
// MessageBox(\"カラムの中身\",\"[\" + ls_value + \"]\")
dw_1.SetItem( row, dw_1.GetColumn( ), \" \" ) //スペースを8個入れます
dw_1.AcceptText( )
End If
//ls_value = dw_1.GetText( )
//MessageBox(\"カラムの中身\",\"[\" + ls_value + \"]\")
コメント行は内容の確認用ですので実際には必要ありません。カラムの値の変遷を見たいときに使ってください。
切り取った結果、カラムに何もなくなったらスペースを8個入れることによって
デフォルトの状態に戻してあげるということです。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows NT 4.0
DBMS Sybase Open Client/C 11
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Sybase SQL Server System 11
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.