(現在 過去ログ32 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■4993 / inTopicNo.1)  編集対象表の切り替え
  
□投稿者/ くまー -(2009/08/10(Mon) 10:41:55)
    はじめまして。 どうしても解決できない問題があったので質問させてください。
    スポーツの対戦成績を入力するフォームを作っています。

    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"のままです。

    「&選手名」をサブフォームの切り替えスイッチとして利用し、上手に切り替える方法はないでしょうか?
引用返信 [メール受信/OFF] 削除キー/
■4994 / inTopicNo.2)  Re[1]: 編集対象表の切り替え
□投稿者/ オヨヨ -(2009/08/10(Mon) 14:54:03)
    2009/08/10(Mon) 17:28:05 編集(投稿者)

    > オブジェクト操作 @フォーム.編集対象表=&対象表
    オブジェクト操作は属性値を指定しなければいけないので変数でなく
    "佐藤.tbl"のようにすればいいと思いますが、どうでしょうか。

    実際はif文の中で変数を使わないで"*.tbl"と書くか、変数を使いたかったら
    コマンド文にすればいいと思います。

    それにしても
    >山田、佐藤、田中、後藤などのテーブルがありますが表の名前と中身のデータが違うだけで構造は全く同じです。
    のくだりが気になります。
    構造が同じだったら、ひとつのテーブルにしてグループ化なり絞込なりする、
    というのが普通のような気がしますが…
引用返信 [メール受信/OFF] 削除キー/
■4995 / inTopicNo.3)  Re[2]: 編集対象表の切り替え
□投稿者/ オヨヨ -(2009/08/10(Mon) 17:32:28)
    ごめんなさい
    > 実際はif文の中で変数を使わないで"*.tbl"と書くか、変数を使いたかったら
    > コマンド文にすればいいと思います。
    確認したら変数はOKでした。
    原因は別のところに
引用返信 [メール受信/OFF] 削除キー/
■4996 / inTopicNo.4)  Re[3]: 編集対象表の切り替え
□投稿者/ オヨヨ -(2009/08/10(Mon) 19:56:44)
    > 原因は別のところに
    ということで
    多分、メインフォーム上のサブフォームのオブジェクト属性で
    サブフォームタブの"表の引継ぎ"をチェックアウトすれば解決すると思います。

    -以下ヘルプ
    [サブフォーム]オブジェクト内に表示するフォームを変数などで動的に変更したとき、最初に開いたサブフォームの編集対象表を引き継ぐかどうかを指定します。

    選択肢 種類
    ON 最初に開いたサブフォームの編集対象表を引き継ぎます。[サブフォーム]オブジェクト内のフォームが変わっても、変わったフォームの[編集対象表]属性に設定されている表は開かれません。
    OFF [サブフォーム]オブジェクト内のフォームが変わるたびに、サブフォームの編集対象表を閉じて、開き直します。

引用返信 [メール受信/OFF] 削除キー/
■4997 / inTopicNo.5)  Re[4]: 編集対象表の切り替え
□投稿者/ くまー -(2009/08/11(Tue) 10:51:51)
    オヨヨさん、ありがとうございます。
    こんなチェック1つで解決できるとは・・・。


    >構造が同じだったら、ひとつのテーブルにしてグループ化なり絞込なりする、
    >というのが普通のような気がしますが…

    データは1ヶ月分の成績を翌月の10日前後に入力しています。
    つまり、7月分のデータなら8月10日前後ですね。
    フォームでの入力を行う前に、「&年月」を指定してその月のデータだけを処理対象としています。

    テーブルの構造はシンプルです。
    [年月] "2009/07"などの文字列型
    [試合数] 1 2 3 4 などの連番(長整数型)
    [対戦相手] "天野" "加藤" などの文字列型
    [成績] "Win" "Lose" "Draw"のどれか。 文字列型
    [印象] 文字列型で相手の印象などのメモ書き。

    [試合数]はその月の第一試合から最終試合(何試合行うかは月末まで分かりません。)
    をデータ更新のタイミングで「#連番」で毎回振りなおしています。
    ちゃんとデータを順番どおり入力したつもりが抜けていた、とか
    実は4月分で3試合ほど抜けていまして、ということもよくありますので。

    つまり、絞り込みを行うと行挿入ができないのでこのようにメンバーごとに表を分けてみました。
    1つのテーブルにまとめた場合、データの順番がぐちゃぐちゃになってしまうのが我慢できなくてですね。。。

    このデータは最終的にHTMLファイルにしてメンバー専用のサイトで公開することを目的としています。
    とっても助かりました。 ありがとうございました。

    PS
    桐のバグ?っぽい挙動を偶然にも見つけてしまったのですが・・・。
    ただ単に私が知らなかっただけ、という可能性の方がきっと高いのでもう少し調べてみます。
    どうしても分からなかったらまたお邪魔することに!
引用返信 [メール受信/OFF] 削除キー/
■4998 / inTopicNo.6)  Re[5]: 編集対象表の切り替え
□投稿者/ オヨヨ -(2009/08/11(Tue) 17:48:15)
    > つまり、絞り込みを行うと行挿入ができない
    そのものずばりは無理でも、解決方法がないわけではない..と思う。
    > 1つのテーブルにまとめた場合、データの順番がぐちゃぐちゃになってしまうのが我慢できなくてですね。。。
    "データの順番"は並べ替えで何とでもなる..と思う。
    大体、フォームを利用しているならtblを直接開くこともない?

    まあ、(将来も)運用上問題なければ個人の自由ですね。
    いらぬおせっかいでした。^_^;
引用返信 [メール受信/OFF] 削除キー/
■5001 / inTopicNo.7)  Re[6]: 編集対象表の切り替え
□投稿者/ うにん -(2009/08/12(Wed) 13:52:35)
    > まあ、(将来も)運用上問題なければ個人の自由ですね。
    > いらぬおせっかいでした。^_^;

    いやあ、すぐに集計して成績一覧を出したいとかいう話になって困らないかなあ。
    まあ、読み込みしてまとめればいいんだけど表が多いとめんどくさいですよね。

引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -