過去の桐井戸端BBS (桐ver.8)
17269 あるオブジェクトが入力されたら、他のオブジェクトを表示させるようなことをしたい。 安斎 2002/09/16-00:58
データ入力の必須項目[区分]の入力漏れをなくすため、
フォーム上で[区分]の入力がされたならば、他のオブジェクトを表示させたいので、
イベントに初挑戦し1日試してみたのですが、皆様のアドバイスをいただきたいので、
よろしくお願いいたします。

フォームは社員1名の1年分を
[月][区分][項目A][項目B][項目C]…………………[項目Z]
1月  あ   10   10  10………………
2月  い   20   20  20……………… 
 :
 :
12月 


名札 メイン



手続き定義開始 t区分1月::ソース値更新()
 ケース開始
  ケース ([区分1月]="あ")
   オブジェクト操作 @t項目A.画面表示="1"
  ケース ([区分1月]="い")
   オブジェクト操作 @t項目A.画面表示="1"
  ケース その他
   オブジェクト操作 @t項目A.画面表示="0"
 ケース終了

手続き定義終了

アドバイスをいただきたい内容ですが、
1 [区分]は入力支援ボタンにより選択するので、ケース([区分1月]=#定義もしくは#未定義)と書くことはできるのでしょうか。
2 フォーム上の1月の横の項目[項目A]から[項目Z]までをファミリとし、
 オブジェクト操作@≪ファミリ名≫.画面表示="1"と書くことはできるのでしょうか。
3 上記のようにイベントを書きましたが、オブジェクトが表示され、一度入力後
 削除すると表示されなくなります。最初から表示させないためには、どのようにすればいいのでしょうか。

17271 Re:1のオブジェクトの入力により、他のオブジェクトを表示させたい。 悲しげ 2002/09/16-13:13
記事番号17269へのコメント
どもっ、安斎さん
例えば[区分]と[区分1月]等の関係をはじめ、全体の意味がよく判らないので部分的にコメントします。

>2 フォーム上の1月の横の項目[項目A]から[項目Z]までをファミリとし、
> オブジェクト操作@≪ファミリ名≫.画面表示="1"と書くことはできるのでしょ
> うか。

ファミリに対してオブジェクト操作コマンドは概ね利くとは思います。
が、ファミリに「ソース値更新」イベントはありませんから、他イベントを使うか、ファミリでの利用を諦めるか、となりそうです。

>3 上記のようにイベントを書きましたが、オブジェクトが表示され、一度入力後
> 削除すると表示されなくなります。最初から表示させないためには、どのように
> すればいいのでしょうか。

「最初から表示させないため」だけなら、当該オブジェクト属性について、
「表示」タブから右側の「画面表示する」のチェックを外しておけばいいと思います。
17277 Re:ありがとうございました。 安斎 2002/09/16-21:18
記事番号17271へのコメント
悲しげさん 説明がまずいにもかかわらず、アドバイスありがとうございます。

>例えば[区分]と[区分1月]等の関係をはじめ、全体の意味がよく判ら
>ないので部分的にコメントします。
>
簡単に説明すれば、[区分]に何らかの文字が入力されたなら、[項目A]から[項目Z]までを表示させたいのです。
ケース ([区分]="あ")←区分の項目にある数だけ書きましたが、1行でできないかと思い
[区分]=#定義、[区分]≠""などと試してみたのですが、×でしたので、他に方法はないのかなと思い、投稿しました。

>ファミリに対してオブジェクト操作コマンドは概ね利くとは思います。
>が、ファミリに「ソース値更新」イベントはありませんから、他イベン
>トを使うか、ファミリでの利用を諦めるか、となりそうです。

「他イベントを使う」までの技量がありませんので、これから勉強していきたいと思います。

>「最初から表示させないため」だけなら、当該オブジェクト属性につ
>いて、「表示」タブから右側の「画面表示する」のチェックを外して
>おけばいいと思います。
思い通りになりました。

今後とも、よろしくお願いいたします。

17283 Re:ありがとうございました。 悲しげ 2002/09/17-12:25
記事番号17277へのコメント
どもっ、安斎さん

>>例えば[区分]と[区分1月]等の関係をはじめ、全体の意味がよく判ら
>>ないので部分的にコメントします。
>>
>簡単に説明すれば、[区分]に何らかの文字が入力されたなら、[項目A]から[項目Z]までを
>表示させたいのです。
>ケース ([区分]="あ")←区分の項目にある数だけ書きましたが、1行でできないかと思い
>[区分]=#定義、[区分]≠""などと試してみたのですが、×でしたので、他に方法はないのかな
>と思い、投稿しました。

う〜ん、[区分]と[区分1月]の関係についての言及もありませんし、
どのように「×」だったかも不明ですから、これだとよく判らないことは同前のままです。(^^;)
17289 Re:ありがとうございました。 安斎 2002/09/18-00:01
記事番号17283へのコメント
こんばんわ 悲しげさん
貴重な時間を割いてアドバイスをいただき、ありがとうございます。
>う〜ん、[区分]と[区分1月]の関係についての言及もありませんし
自分で読み返したら、自己本位な表現ですみませんでした。次のように訂正させていただきます。
[区分]は、[t区分1月]〜[t区分12月]の12個のテキストオブジェクトの総称となっていました。
〈月〉〈区分〉〈項目A〉〈項目B〉……………………………〈項目Z〉
1月  あ   10←オブジェクト名t項目A1月
    ↑
    オブジェクト名t区分1月 ソース[区分1月]

手続き定義開始 t区分1月::ソース値更新()
 ケース開始
  ケース ([区分1月]="あ")
   オブジェクト操作 @t項目A1月.画面表示="1"
  ケース ([区分1月]="い")
   オブジェクト操作 @t項目A1月.画面表示="1"
  ケース その他
   オブジェクト操作 @t項目A1月.画面表示="0"
 ケース終了
手続き定義終了

>>簡単に説明すれば、[区分]に何らかの文字が入力されたなら、[項目A]から[項目Z]までを
>>表示させたいのです。
>>ケース ([区分]="あ")←区分の項目にある数だけ書きましたが、1行でできないかと思い
>>[区分]=#定義、[区分]≠""などと試してみたのですが、×でしたので、他に方法はないのかな
>>と思い、投稿しました。
>
>どのように「×」だったかも不明ですから、これだとよく判らない
>ことは同前のままです。(^^;)
表には[区分1月]には値集合が8登録されています。
上記の手続き定義内容を12月分を書きました。
[区分1月]には何らかの文字が入力されたとき画面表示できればよいので、簡単に書けないかと思い試してみましたが、
t項目A1月のオブジェクトの画面表示には変化がありませんでしたので×と書きましたが
ケース([区分1月]="あ") を
  ケース ([区分1月]="")
   オブジェクト操作 @t項目A1月.画面表示="0"と書いたところ希望とおりとなりました。

現在は、ファミリに対して「ソース値更新」ができないので、[区分1月]が未入力の時、t項目A1月に入力があった時
メッセージを出す方法を検討中ですので、今後ともよろしくお願いいたします。


戻る