過去の桐井戸端BBS (桐ver.9)
25413 ひとつのフォームで対象表を切り替えて使用したい ステラ 2004/03/12-11:20
ここのところ、過去ログでずいぶん勉強させてもらいました。
すばらしいサイトですね。

ところで、住所録の「住所」「〒」「TEL」「名称」などのように、
別の表に同じ項目名で登録されている項目があります。

これらの共通した項目のみをフォーム表示するとき、ひとつのフォームを使って
メニューから対象表のみを切り替える方法で表示することは可能でしょうか。
それとも、各フォームを対象にしたそれぞれのフォームを作成するか、
そのたびごとに対象表をフォームのオブジェクト属性で訂正しないとだめでしょうか。
(この訂正する部分を、メニューから会話によって一覧表から選択できるようにしたいのですが・・)


25414 Re:ひとつのフォームを対象表を切り替えて使用するには? ONnoji 2004/03/12-11:50
記事番号25413へのコメント
ステラさん、こんにちは。

イベントの場合には、
変数でフォームの編集対象表を変更することができますよ。

例えば、
過去の桐井戸端BBS (桐ver.8)
15220 フォームの編集対象表を変数で指定したい 2002/02/25-17:18
http://www.fuku3.com/~habata/kbbs/kakov8/15220.htm

この掲示板の過去ログに他にもあると思います。

>一覧表から選択できるようにしたいのですが・・

ご質問の意味と違いますが…

フォームの属性の[編集対象表]タブで、
[参照表]の内容を残して、
[編集対象表]の内容を空っぽにすると、
編集対象表を選ぶダイアログが出ますよ。

<蛇足>

以下は手前味噌ですが…(^^ゞ

§7 オブジェクト操作によってフォームの編集対象表を変更する
http://www.geocities.co.jp/SiliconValley-Bay/7565/guide07.htm

25415 Re:ひとつのフォームを対象表を切り替えて使用するには? ステラ 2004/03/12-13:16
記事番号25414へのコメント
早速のレスありがとうございます。

>フォームの属性の[編集対象表]タブで、
>[参照表]の内容を残して、
>[編集対象表]の内容を空っぽにすると、
>編集対象表を選ぶダイアログが出ますよ。

この方法はチラッと頭をかすめましたが、フォルダの中にあるTBLの数が多いためやめました。


>15220 フォームの編集対象表を変数で指定したい 2002/02/25-17:18
>http://www.fuku3.com/~habata/kbbs/kakov8/15220.htm
>
この過去ログには目を通したのですが、イベントのメインでしか使えないというところで外に追いやってしまってました。
(実は3階層目のサブフォームでそうしたかったため。)

>§7 オブジェクト操作によってフォームの編集対象表を変更する
>http://www.geocities.co.jp/SiliconValley-Bay/7565/guide07.htm

とっても参考になりました。
変数値を指定するのにコマンド機能「なし」を使うということを知りました。

早速やってみます。
25416 これは蛇足ですが…(^^ゞ ONnoji 2004/03/12-14:17
記事番号25415へのコメント
ステラさん、こんにちは。

これは蛇足ですが…(^^ゞ

拙作に sample3.wfm を改良したサンプルフォームがあります。

【多遊】さんのホームページからダウンロードできます。
いまは桐だけ(ダウンロード一覧)
http://mokuchan.hp.infoseek.co.jp/download/dl-list.htm

145
INF Tools 第1.1版 for 桐ver.8 / 桐ver.9 正式名称
「inf_tools_final_rev2.lzh」
ONnoji 03/12 フリー 1070kb

ファイルは次のように対応しています。
一部大幅に内容が変更されています。

sample3.wfm/kev → menu_price.wfm/kev/tbl
price.wfm/kev  → price.wfm/kev
price1.tbl    → price1.tbl
price2.tbl    → price2.tbl

論より証拠!、よろしければお試しください…(^^ゞ
25423 フォームの対象表の切り替え 佐田 守弘 2004/03/12-22:04
記事番号25415へのコメント
ステラさん
ONnojiさんが書いておられる通り、イベントのメイン部分でオブジェクト操作コマンドを使って、対象表の変更が行えます。

少し補足すると、
フォームを開くと、フォームファイルが開かれた後、そのフォームのイベント
ファイルがあれば、そのイベントファイルが開かれて、メイン部分が実行されます。
編集対象表が開かれるのはこの後ですが、編集表が開かれてしまうと、
編集表を切り替える事はできません。
つまり編集表の指定は、フォームが開かれてから
編集表が開かれるまでの間に行う必要があります。
そしてそのタイミングで実行できるのが、イベントファイルのメイン部に記述したコマンドです。

>(実は3階層目のサブフォームでそうしたかったため。)
その3階層目のサブフォームのイベントファイルのメイン部で実行して下さい。
もし最初のフォームや2階層目のフォームも同じイベントを供用しているとしたら、ちょと難しいです。

メイン部でコマンドを実行するイベントファイルは、複数のフォームで供用する事は、
何かと何かとトラブルが発生する元になりますのでお勧めできません。
一例として言えば、メイン部での変数の宣言があります。
次々とフォームを呼び出す度にメイン部に書かれているコマンドが実行されますから、
変数宣言であれば、同じ変数の宣言しなおしになり、値がクリアされます。

佐田守弘(KS-00119)
25474 Re:フォームの対象表の切り替え(まだ悩んでます。) ステラ 2004/03/17-12:16
記事番号25423へのコメント
佐田さんがおっしゃっているとおり、実はすっかりつまずいています。
階層が下のほうのため、どの段階でつまずいているのか検証していたところですが、
=1段階 
リスト元の表から店舗を選択して、サブフォームで定義した入力フォームにグループ値リストで
リンクしてある店舗のデータを表に入力します。

=2段階
このとき、店舗関連事項の入力は内容によって同じ項目名を持つ表Aと表Bに切り替えて入力されていくようになっています。
(A,Bに対応するサブフォームは店舗によって自動切換えになるようにイベントをくみ、
それぞれの表を対象表にもつ別個のフォーム(カード型)を作ってあります。
これは、入力時に使用する値項目が異なるために敢えて別にしてあります。)
このサブフォーム上に、一覧表型でその店舗に関する他のデータ、
及びその他の店舗のデータを参照することができるようにコマンドボタンをつくり、
A,Bにある項目を一覧できる共通フォーム(一覧)を作り

機能名   機能パラメータ
なし    #代入(&対象ファイル名."A")  もしくは"B"
開く    "一覧.wfm"

として、3段階目のフォーム(一覧)に対象ファイル名を変数で引き継ぐ。

ここまでは、
1段階目に割り当てたイベントで変数(&対象ファイル名)を宣言し、
2段階目のコマンドボタンで変数を代入し、
3段階目のフォームに割り当てたイベントのメインで、オブジェクト操作をし、
 @フォーム{編集対象表=&対象ファイル名}
としたところ、うまくファイル名の切り替えができました。

(ここまでがうまくいくかを検証していたわけです。)

****
ところが、どうやらここからが問題らしく、
この3段階目のフォーム(一覧)は、じつは、項目数と内容が長いため一覧表では見にくいと、
ひとつの表を項目を分割して(一覧として使うフォームを2分割、項目前用と項目後用とし)、
サブフォームとして少し重ねて切り替えをして表示させるものを作っていましたが、
(つまり、3段階目のフォーム(一覧):項目前用、項目後用の切り替えと、各サブフォーム)

これらに変数&対象ファイル名が引き継がれないことがわかりました。
(変数はそのときの代入された値になっています。)

この、ひとつの表を一覧するためにフォームを2つに分けることに問題があるような気がしたので、
今日、それを別ツリーで質問しようかと思っていたところです。
(グループの解除、抽出が、上の検証で使ったフォームであればできるのですが、
この前後分割フォームを一体化したものではできない。)

なんだかとっても複雑で、なにをどう質問すればいいのかわからなく、
とりあえず、うまくいっていないことをご報告しておきます。

こんな風に考えていけばいいんだというようなアドバイスがあれば、また、よろしくお願いします。

戻る