過去の桐井戸端BBS (桐ver.9)
25905 一覧表フォームでグループ追加の時フォームヘッダ部のトグルボタンにフォーカスが移らない Koba 2004/04/16-19:58
皆さん 先日はありがとうございました

またまた 教えてください
今 一覧表フォームを作成しております
フォームヘッダ部にグループボックスを配置してその中に3つのトグルボタンを作りました

しかし グループ追加の時,トグルボタンにフォーカスが移りません
行追加または行訂正時には使えますが,トグルボタンで選択した値をグループ値として使用したいのですが,
どのようにすればよいのでしょうか?

よろしくお願いします
25913 トグルボタンの目的は 佐田 守弘 2004/04/18-10:24
記事番号25905へのコメント
Kobaさん
 >しかし グループ追加の時,トグルボタンにフォーカスが移りません
 >行追加または行訂正時には使えますが,トグルボタンで選択した値をグループ値と
 >して使用したいのですが,
との事ですが、このトグルボタンの目的は、グループ項目の指定でしょうか。
であるならば、基本的な部分に無理がありそうに見えますが。
グループ追加は、新規のグループを作成する意味です。
トグルボタンは既存の値の中から1つを選ぶための操作です。
従って、新規の値を入力するためにトグルボタンを使う事は本質的に無理な様に見えるのですが。

佐田守弘(KS-00119)
25914 Re:トグルボタンの目的は Koba 2004/04/18-11:55
記事番号25913へのコメント
>
佐田さん お返事ありがとうございます

おっしゃるように新規のグループを作成します
その新規グループ項目の1つにトグルボタンを使いたいのです
この項目値を3つの値から選ばせたいのですが

このようにグループ項目としての使用は元々無理なのでしょうか?
それならば トグルボタンもどき のようなやり方をご存知のないでしょうか

よろしくお願いします
25915 Re:トグルボタンの目的は 悲しげ 2004/04/18-16:53
記事番号25914へのコメント
どもっ、Kobaさん
グループ追加はなかなかくせ者ですね。
で、どうしてもグループ追加時にトグルの3択をやりたいのなら、
私ならこうするかな、と云うのを2点。

1)ヘッダ部相当のカードフォームを設け、そこにトグルボタンも配置しておく。
グループ追加に際しては、そのカードをフォーム呼び出し(モーダルフォーム)して、
カードの入力値をグループ項目値として、当該伝票(表形式?)フォームにグループ追加する。

2)いっそのことメイン&サブフォームにして、メイン部(カードフォーム)の方にトグルボタンを設ける。


25916 Re:トグルボタンの目的は Koba 2004/04/18-17:32
記事番号25915へのコメント
>
悲しげさん ありがとうございました

トグルボタンが,グループ項目として使用できないのがわかっただけでも勉強になりました ありがとうございました

もう一度最初から考え直してみます
25918 補足説明>トグルボタン 佐田 守弘 2004/04/18-18:31
記事番号25914へのコメント
Kobaさん
例がないと解りにくいので、食料品を例にします。
仮に[種別]をグループ項目として、「野菜」「鮮魚」「精肉」の3つのグループ値を
想定しているとしましょう。そしてグループ項目を入力する方法として、
これら3つの値を設定したトグルボタンを作ったのだとします。
おそたくそういった状況なのでしょう。

この方法は、重大な問題がでてきます。
@新しいグループ値を追加できない
仮に野菜、鮮魚、精肉の3種類のデータが入っているとします。
ここでもし新しいグループ値として「惣菜」を追加したいとします。でもそのグループに対応するトグルボタンがありませんね。
A用意してあるトグルボタンでグループ追加できない
おそらく質問の状況は、次の通りだと思います。
野菜と鮮魚のデータは既に入っていて、精肉のデータは入っていない状態とします。
この状態で、予め予定している精肉のグループ値を追加したいが、
それができない。そういう意味なのでしょう。
その理由は次に述べる通りです。

●トグルボタンのソース値にグループ項目を指定すると何がおきるか
トグルボタンのソース値として、上記の[種別]を設定したとすると、これは
トグルボタンでグループ値である[種別]の値を変更する意味になります。
これはトグルボタンでなくて、グループ値のボックスを使って、
直接値を変更してみると、何が起きるか解ります。
仮に、「鮮魚」をグループ値として表示している状態で、この鮮魚を精肉に変更すると、
多分、全ての鮮魚のデータの[種別]の値が精肉に変わってしまうはずです。
もし野菜に変更したら、元々野菜のグループと同じグループ値になって、
両方のデータが混じってしまいます。

グループ選択をしたり、新規のグループを追加するには、
グループ値を直接変更する方法ではうまく行かないと思います。

●グループ項目でなければ
もし上記の[種別]がグループ項目でなくて、単に[種別]の値を選択するだけであれば、
3者選択のトグルボタンは使えます。

●トグルボタンでグループ値を操作するのであればこの様にします。
目的とする事は可能です。ただし方法が違うはずです。
まず、トグルボタンのソース値には上記の例でいうグループ項目の[種別]を
設定するのではなくて、変数&種別(予め定義しておく)を設定します。
そしてこのトグルボタンのソース値更新イベントを使って、グループ検索を行います。
 グループ検索 {[種別]=&種別},終了状態=&実行リターン
もしそのグループ値がなければ、&実行リターンに0が入ります。
この値を見て、その場合にはグループ追加を行います。
 条件 (&実行リターン=0) グループ追加 {[種別]=&種別},終了状態=&実行リターン

この方法で目的が達せられるはずです。

佐田守弘(KS-00119)

25919 ありがとうございました Koba 2004/04/18-21:54
記事番号25918へのコメント
佐田さん お返事ありがとうございます

佐田さん 悲しげさんのアドバイスを元に最初から考え直してみたいと思います.
わからない所がありましたら,また質問させていただきます
そのときは,よろしくお願いします


25920 Re:トグルボタンの目的は kochin 2004/04/18-23:08
記事番号25916へのコメント
kobaさんこんにちは
kochinです。

アップしようとしたら・・もうお話しはすんでしまっているような・・。
一応・・ぶら下げさせて頂きます・・。
グループ化については、この掲示板で大変お世話になったので・・。

始めにことわっておきますが、私は素人なので簡単なことしか
ご紹介できませんけれど・・。

>トグルボタンが,グループ項目として使用できないのがわかっただけでも
>もう一度最初から考え直してみます

トグルボタン及びグループボックスはグループの追加に
十分使えると思いますよー、というか使ったことがあります・・。

フォームのヘッダに複数のグループ項目オブジェクトが配置されており
そのうちのどれか1つの選択肢が3つしかないものと
勝手に仮定させて頂きます。
例えば[入荷日][商品名]というように複数の項目でグループ化していて、かつ
商品名は3種類しかないというような想定で、以下述べさせて頂きます。

グループボックスオブジェクトのヘルプより
ソース:トグルボタンで選択された値を代入する項目名または変数名を指定します。とあるので
グループボックスオブジェクトのソースに"変数"を、
&グループ として設定しておき

またコマンドの説明に
グループ値代入コマンドは、グループ追加時の初期値の設定が可能になる。
とあるので

フォームのイベント(グループ項目オブジェクトのイベントではありません)
にグループ追加開始イベントがあるので
そこに1行

グループ値代入 [商品名]=&グループ

と書くだけで、グループ追加時のみ、(グループボックスオブジェクトの)
ソースの&グループを初期値として取り込んでくれます。

ただしこの方法だと、グループ追加ボタンを押した"後"には
おっしゃるとおり、グループボックスオブジェクトに
フォーカスは移らないので、グループ追加ボタンを押す"前"に
トグルの3択をを行うという、操作の順番が生じますが・・・。

グループ追加ボタンを押した"後"に、トグルの3択を行いたいのであれば
悲しげさんがおっしゃっているような方法になるかと思います。

1.のモーダルフォームの方法ならば、イベント記述無しで可能です。
グループ項目オブジェクトに入力支援ボタンを作って、リストの種別で
モーダルフォームを選び、選択値リストに

&グループ,"・・.wfm"(・・は別に作成したカードフォームのファイル名)

と書くだけで、お望みの動きをしてくれるのではないでしょうか。

ちなみに、グループ項目オブジェクトのソースとした項目に対して
編集対象表の表定義で、項目属性の表引きが設定してあれば
グループ項目オブジェクトの入力時に表引きをしてくれますが
表引きでは、ゆるして頂けないのですよね・・・。

戻る