4 返信 最新の回答 日時: Oct 16, 2014 11:24 PM ユーザー:nkk47

    ポータル内フィールドへの入力

    nkk47

      タイトル

      ポータル内フィールドへの入力

      フォーラムに投稿

      いつもお世話になります。

      作業環境
      Windos Vista HP SP2
      FileMaker PRO 11 0v3

      テーブルA
       ・引落日 (日付)
       ・項目番号(テキスト)
       ・項目名称(テキスト)
       ・今回値 (数字)
       ・前回値 (数字)
       ・控除値 (数字)
       ・使用数 (計算):今回値-前回値-控除値

      テーブルB
       ・引落日 (日付)
       ・項目番号(テキスト)
       ・項目名称(テキスト)
       ・今回値 (数字)
       ・前回値 (数字)
       ・控除値 (数字)
       ・使用数 (計算):今回値-前回値-控除値

      リレーション
       ・テーブルA;;項目番号=テーブルB;;項目番号
       ・テーブルBの「このリレーションを利用してレコードの作成を許可」にチェック。

      スクリプト (ポータル内でレコードを増やしていくため)
       ・ポータル内の行へ移動 [選択;最後の]
       ・フィールドへ移動 [A;;項目番号]

      上記のようなファイル構成で、テーブルAのレイアウト上で、テーブルBの「引落日」を除くすべてをポータルで表示。

      項目番号  項目名称  今回値  前回値  控除値  使用数
        001      A      100     50     0      50
        002      B      200     60     0      140
        003      C      150      0     0      150
        004      D        0      0     0        0

      という具合に入力したいのですが、項目番号 001 の各項目を入力し、TABキーで次の行の「項目番号」フィールドへ移動して「002」と入力し、次の「項目名称」がアクティブになると、002 が 001 へ勝手に修正されてしまいます。

      そもそも、テーブルAにリレーションしている「項目番号」以外のフィールドは要らないですよね。
      稚拙な質問かと思いますが、ご教示の程、宜しくお願い致します。

       

        • 1. Re: ポータル内フィールドへの入力
          sago350@未来Switch

          テーブルA上のレイアウトに、テーブルAの項目番号と同じ値が入っているテーブルBのレコードを表示させている。
          という設定になっています。

          ですので、ポータル内の項目番号を002にすると、テーブルAの項目番号が001のレコードには存在できなくなります。
          で、どこへ行ったかというと、ちゃんとテーブルBを見ると存在しているはずです。

          もしくは、テーブルAの項目番号に002と入力すると表示されます。

          • 2. Re: ポータル内フィールドへの入力
            nkk47

            sago35さん

            お世話になります。
            お返事が遅れてしまい、申し訳ございません。

            テーブルA;;項目番号=テーブルB;;項目番号

            というリレーションを組んでいる事によって、ポータルの「項目番号」に入力した値が、自動的に
            テーブルAの「項目番号」にも反映されるという事ですね。

            反映されるのはポータルに初めに入力された値(今回の場合 001 )だけで、それがテーブルAの
            レコードとして保存されているので、それと同じ値が入っているテーブルBのレコードだけをポー
            タルに表示させているという事でしょうか。

            う~ん、書いていて良く理解出来ていません。
            実際にファイルで確認しながら書いてみます。

            どのテーブルにもレコードはない状態で、

            ・新規レコードの作成を行い、
            ・リレーションされているポータル内のフィールドに値(仮に 001)を入力すると、
            ・リレーション先のフィールドにも同じ値(001)が反映される。

            で、

            ・ポータル内のレコードを増やしリレーションフィールドへ違う値(002)を入力しても
            ・リレーションによって " 同じ値 " でなければならないので 001 になる。

            ここで 001 にされてしまっている事を無視して、002,003 と入力を続け、テーブルBを見てみ
            ますと 001 のレコードが3つ作られています。
            つまり、この時点での 002,003・・・は入力されていないと同じ事になる訳です。
            もちろん、新規レコード作成を行い、002 と入力すれば、テーブルBにそのレコードが作られ
            ますが・・・

            この状態では、テーブルAの「項目番号」に、001 or 002 を入力すると、同じ項目番号のテー
            ブルBのレコードがポータルに表示されます。なるほど!


            だったら、値の変わる「項目番号」ではなく、「引落日」でリレーションすればよいのではないか
            と思いやってみました。

            ・テーブルAの「引落日」に入力し、次にポータル内の「引落日」に同日を入力。
            ・ポータルの「項目番号」には、001,002,003・・・と入力する事が出来
            ・テーブルBにも 001,002,003 というレコードが作れました。

            一応は希望の事が出来ましたが、これでは効率が悪いので、テーブルBの「引落日」はテーブルA
            の「引落日」をルックアップしてはどうかとやってみましたが、なぜかルックアップされませんで
            した。
            ならばとテーブルBの「引落日」を計算とし、= A;;引落日 としましたがこれもNG


            あと一息のような気がしてるんですが・・・

            • 3. Re: ポータル内フィールドへの入力
              sago350@未来Switch

              いまいち最終的にやりたいことが見えないのですが、

              「引落日」でリレーションを組んでいるので、ポータル内の「引落日」以外のフィールドに値を入れたら、「引落日」が自動で入力されますよ。ルックアップする必要もありません。

              サンプルファイル

              • 4. Re: ポータル内フィールドへの入力
                nkk47

                sago35さん

                お世話になります。

                既に出来ていたんですね。

                引落日(というか、ある年月日)に、機械のカウンター値(その日までに何をどれだけ使ったか)
                を記録させたいと思って作り出した次第です。
                引落日に同じ年月日を入力しないとリレーションしないと思い込んでいて、訳の分からない事を書
                き込んでいました。

                アクティブポータル行の値を取得できることも始めて知りました。

                あと、私が持っているのは Ver.11 ですので、残念ながら、サンプルファイルは開く事が出来ませ
                んでした。

                ありがとうございます。