3 返信 最新の回答 日時: Jul 27, 2016 9:23 PM ユーザー:wadats

    List関数の値を絞り込むには

    wadats

      多対多のリレーションシップの片方からリストアップしてポータルに表示したいと思います。

      さらに、そのリストは現在のプロジェクに関するものだけを表示したいと思います。

      次のようなテストデータを作って試しているのですが、思うようにいきません。

      スクリーンショット 2016-07-28 8.00.14.png

      映画は複数の俳優が出演し、俳優は複数の映画に出演します。

      映画は製作された国で種別されます。という関係で試しています。

       

      そこで、

      レコード: list_country のレイアウトの上に、

      入力した国の名前で検索して、関連するレコード:list_actor のポータルを表示して、それぞれのactorごとのc_list_movieフィールドを表示したいのですが、関連するlist_movieのすべてが対象となります。

       

      ちなみに、

      c_list_movie = List ( list_movie::title )

      この値を、特定の国に関係するものにしたいのですがうまくいかないのです。

      よろしくお願いします。

        • 1. Re: List関数の値を絞り込むには
          user14047

          list_country のレイアウトの上の OnRecordLoad スクリプトトリガで グローバル変数を設定し、その変数値で c_list_movie を フィルタするのはどうでしょう?

           

          list_country レイアウトの OnRecordLoad で呼ばれるスクリプト

          変数を設定 [ $$LIST_MOVIE ; 値: List ( list_movie::title ) ] 
          ウインドウ内容の再表示 [] 
          

           

          list_actor::c_list_movie の計算式

          FilterValues ( 
            List ( list_movie::title ) ; 
            $$LIST_MOVIE
          )
          
          • 2. Re: List関数の値を絞り込むには
            user19752

            その値はlist_actorのレコードの値なので、常に同じになります。

            list_actor上に国の名前を(スクリプトトリガなどで)入力して、それをリレーションに使えばできますが

            list_countryのレイアウトをフォーム形式にしないと不安定な気がします。

            • 3. Re: List関数の値を絞り込むには
              wadats

              ありがとうございます。

              やりたいことが実現できました。

               

              ただ、テストデータは同一のファイルだったのでできたのですが、

              実際のデータは、list_movieに当たるテーブルが別のファイルだったので、つまづいてしまいました。

              グローバル変数の寿命があることがわかり、グローバル格納のフィールドを介して受け渡し、無事に解決しました。