| はじめまして。 どうしても解決できない問題があったので質問させてください。 スポーツの対戦成績を入力するフォームを作っています。
Windows XP 桐Ver:9 メインフォーム(Main.wfm):カード形式 編集対象表なし サブフォーム1(SubWFM01.wfm):一覧表形式 編集対象表【山田.tbl】 サブフォーム2:(SubWFM02.wfm)一覧表形式 編集対象表【佐藤.tbl】
山田、佐藤、田中、後藤などのテーブルがありますが表の名前と中身のデータが違うだけで構造は全く同じです。
一括処理からウィンドウを呼び出して入力用の上記フォームを呼び出しています。 固有変数「&選手名」の値によってサブフォームを切り替えたいと思います。 (&選手名="山田" "佐藤"など)
メインフォーム上にコマンドボタン「cmd_01」「cmd_02」を配置しており、「cmd_01」をクリックすると「&選手名="山田"」に、「cmd_02」なら「&選手名="佐藤"」にそれぞれ値が変わり、一括処理に戻るようにしています。 処理の流れとして
一括処理 変数宣言 固有 文字列 { &対象表 } 変数宣言 固有 文字列 { &選手名="山田" }
ウィンドウ会話 &MainHDL, 更新=許可, ボタン=&ボタン, モーダル=しない, 終了状態=&終了状態 if( &ボタン="cmd_01" .or &ボタン="cmd_02" ) 手続き実行 サブフォーム切り替え() end
手続き定義開始 サブフォーム切り替え () if ( &選手名="山田" ) オブジェクト操作 ハンドル=&MainHDL, @SubWFM01.サブフォーム="SubWFM01" else if ( &選手名="佐藤" ) オブジェクト操作 ハンドル=&MainHDL, @SubWFM01.サブフォーム="SubWFM02" end 手続き定義終了
サブフォームのメイン処理の部分で次のように設定を行いました。 if ( &選手名="山田" ) &対象表="山田.tbl" else if ( &選手名="佐藤" ) &対象表="佐藤.tbl" end
オブジェクト操作 @フォーム.編集対象表=&対象表
==============================
「&選手名」の値によってサブフォームの切り替えはうまくいっているのですが、編集対象表が【山田.tbl】から他の表に切り替わらないのです。 イベントのメイン処理でオブジェクト操作の直後には「&対象表~佐藤.tbl"」などに切り替わっているのですが、実際にフォームに表示されている表は"山田.tbl"のままです。
「&選手名」をサブフォームの切り替えスイッチとして利用し、上手に切り替える方法はないでしょうか?
|