過去の桐井戸端BBS (桐ver.8)
29811 フォームでテキスト入力中に表引き設定を一時的に停止したい syozo 2005/04/30-21:31
桐8で会員管理をしています。
会員データ入力中に、入力データに応じイベント処理で幾つかの入力処理が変更されるように設計しています。
(下記にコードを示します)
その際に ケース(その他)の入力項目に設定した表引き設定がじゃまになるので
その時は表引き設定を解除したいと思うのですが、イベント処理で適当なコマンドが見つかりません。
何かよい処理方法があったら教えてください。


手続き定義開始 テキスト_13::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)

   ケース開始
     ケース ( [貸方勘定科目]="収入" )  
       オブジェクト操作 @テキスト_35.画面表示=-1
       オブジェクト操作 @テキスト_37.画面表示=-1
       オブジェクト操作 @テキスト_41.画面表示=-1
       オブジェクト操作 @テキスト_18.画面表示=-1
       オブジェクト操作 @テキスト_42.画面表示=-1

     ケース ( [貸方記入項目]="C売上" .or \
          [貸方記入項目]="A売上" .or \
          [貸方記入項目]="B売上" .or \
          [貸方記入項目]="参加費" .or \
          [貸方記入項目]="会費" \
         )

       オブジェクト操作 @テキスト_35.画面表示=-1
       オブジェクト操作 @テキスト_18.画面表示=-1

     ケース ( [借方記入項目]="換金代" )  
       オブジェクト操作 @テキスト_35.画面表示=-1
       オブジェクト操作 @テキスト_18.画面表示=-1

     ケース ( その他 )  
       オブジェクト操作 @テキスト_35.画面表示=-1
   ケース終了
手続き定義終了



29818 :テキスト入力中の表引き条件変更 佐田 守弘 2005/05/01-15:34
記事番号29811へのコメント
syozoさん

結論を先に言うと、表の表引き条件を変更(表引きの設定解除)をするのは、難しいのですが、方法はない訳ではなさそうです。

●表引き条件を変更するコマンド
表引き条件の設定解除を含めて、表の項目属性を変更するコマンドは、「項目属性変更2」コマンドです。
但しこのコマンドは、フォームの編集対象表に対しては使えません。
つまり、今回質問のイベントの中で、ケースに応じて表引き条件の変更をするには使えません。

●他の方法で
以下はアイデアですので、試しておりませんが、この様な方法もありそうだと言う意味で提案させて頂きます。

@表側の表引き条件の設定
表には、表引き条件を設定しておきますが、「自動表示する」のチェックマークを外して下さい。
これで表引きの設定がしてあっても、自動的に表引き値が表示されない状態になります。
つまり、「ケース その他」に対応する状態になります。

Aフォームのテキストに入力支援ボタンを作成する
表引き入力をしている項目に、入力支援ボタンを作成し、リストの種類に表引き項目を設定して下さい。

その後は2通りの方法が考えられますが、その1つの方法として、
「自動表示」に「常に表示」(「未定義時」に表示でも可)を設定して下さい。
この設定で、表の定義の上では表引きを自動表示しない設定になっていますが、
フォームの入力支援機能によって、表引きが自動表示される様になると思います。
(試していませんが、多分そうなると思います。)

Bイベントでの処理
いよいよイベントでの処理ですが、オブジェクト操作コマンドを使って、
この入力支援ボタンの属性を変更します。
他のコマンドを省略しますが、次の様なコマンドを現在のイベントハンドラの中に入れて下さい。
なおオブジェクト操作コマンドは既に使っておられるので、以下の例で内容を理解されるであろうと思います。
--------------------------------------------------------------
 ケース開始
  ケース (<その他以外のケースの場合>)
   オブジェクト操作 @入力支援ボタン.自動表示="常に表示"
  ケース ( その他 )
   オブジェクト操作 @入力支援ボタン.自動表示="しない"
 ケース終了
--------------------------------------------------------------

●使用するイベント
入力後イベントを使っておられますが、もしこのテキスト_13が、表引きの設定を変更したいオブジェクトだとすると、
これは使用するイベントが不適切です。
入力後イベントとは、テキストの入力後にその入力値の妥当性を判断したり、再入力する時に使うイベントです。
このイベントでは上記に述べた入力支援ボタンの属性変更はできないと思います。

もしテキスト_13が、それ以前に入力する項目のテキストである場合には、
ソース値変更イベントを使う方が適していると思います。

佐田守弘(KS-00119)
29822 Re::テキスト入力中の表引き条件変更 syozo 2005/05/02-12:19
記事番号29818へのコメント
佐田 守弘さん

ご指示通りに設定したところ希望通りの結果が得られました。
入力支援ボタンの新しい使い方を勉強させていただきました。

イベントハンドラにつきましては、テキスト_13の入力を表引きによる自動入力に設定しております
関係上、このオブジェクトに対するフォーカスがありません。
テキスト_13の入力が自動的に入力された後に、一つ前のテキストの項目値を参照してイベント処理で
次の入力処理を決めるようにしております。

適切なアドバイスをありがとうございました。

戻る