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 (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.