8 返信 最新の回答 日時: Jun 25, 2014 5:39 AM ユーザー:sunnyheights

    フォーム形式で消したフィールド内容が表形式では見えてしまう

    sunnyheights

      タイトル

      フォーム形式で消したフィールド内容が表形式では見えてしまう

      フォーラムに投稿

           地図の埋め込みではお世話になりました。おかげさまで今はバッチリ動作中です。>sago 35さん、Hiro.さん感謝申し上げます。

            

            さて、住所録の入力テーブルから、必要なフィールドをポータルで引っ張ってある年齢以上の人だけを表示するためのテーブルを作りたいのです。

            家族構成はバラバラですから一人住まいから8人同居というケースもあります。

            ポータルで取り込んだテーブルには世帯主氏名とその年齢、同居家族の氏名とその年齢が表示されるようにしました。

            レイアウトを別に作り、ここに75歳以上の人を選んで表示するようにしました。世帯主が75歳以下でも、同居者に75歳以上の人が居る場合はその人の氏名と年齢を表示させたいのです。

            フォーム形式ではうまく動作しました。家族の誰かが75歳以上なら、レコードにはその人の氏名と年齢が表示され、誰もいなければレコードは空欄のままで表示されます。

            これを表形式で表示させると、何と隠れていた、世帯主の氏名と年齢、同居家族全員の氏名と年齢が表示されてしまいます。これでは表を印刷すると、関係のない人まで印刷されてしまい、目的を達することが出来ません。

            なぜ、フォーム形式で隠れていたフィールド内容が、表形式では見えてしまうのか、ご教示いただきたくお願いします。

        • 1. Re: フォーム形式で消したフィールド内容が表形式では見えてしまう
          Shin

               表形式で、一度フィールをリセットして見ては如何でしょう。

                

               または、表形式のフィールドの変更をしてみるといいかも。

               タイトルを右クリックしてみてください。

          • 2. Re: フォーム形式で消したフィールド内容が表形式では見えてしまう
            sunnyheights

            Shinさん、

                  

                  早速のご返答ありがとうございます。

                  表形式でフィールドのリセットというのは表そのものをリセットということですね。

                  これをやっても、列幅などはデフォルトの幅に変更されましたが、表示内容については変わりませんでした。相変わらず全部のレコードが表示されてしまいます。念のためこの状態でフォーム形式で見ると、やはり75歳以上の人だけが表示されていて、その年齢以下の人の氏名も年齢も空白となっています。

                  そもそも、フォーム形式の内容が表形式に反映されない理由が皆目分かりません。

                  同じ内容をポータル元のテーブルでやってみると、こちらはフォーム形式でも表形式でも隠されたものは見えません。表形式では空欄のレコードも存在していますが、ソートを掛けて表示されたレコードだけを上の方に集めることができて、これで目的は達成されるています。

                  ポータルを用いた別テーブルでやりたい理由は、慣れない事務員が元テーブルを触って、入力したデータを消したり、書き換えたりしないようにしたいためです。ポータルの内容で元テーブルを書き換えない設定にしています。

                  引き続きよろしくお願いします。

            • 3. Re: フォーム形式で消したフィールド内容が表形式では見えてしまう
              fukky

                   フォーム形式と表形式は別のレイアウトでしょうか?

                   もしかするとそれぞれのレイアウトに割り当てているテーブルオカレンスが違うのでは?

              • 4. Re: フォーム形式で消したフィールド内容が表形式では見えてしまう
                sunnyheights

                fukkyさん、

                      

                      コメントありがとうございます。

                      ポータルで引張って作ったテーブルには2つのレイアウトが有ります。

                      一つは元のテーブルの必要なフィールドを選んでポータルして、全所帯の構成員が表示されています。これはフォーム形式でも表形式でも正常に見えています。

                      もう一つは75歳以上の人を対象にポータルのエリアにフィルターを掛けて75歳以上の人を抜き出しています。前に書きましたがフォーム形式ではOKですが表形式ではぞろぞろで出てしまいます。

                      レイアウトの管理で確認してみると、関連づけられているテーブルの欄には;

                        ポータルXXX町住民台帳 <これは、元のテーブルから引張って、全住民を表示させたレイアウトです。

                        XXX町住民台帳  <こちらは元のテーブルで、75歳以上レイアウトです。

                      と表示されています。念のためこの部分をポータルXXX町住民台帳にしても変わりません。

                      さらに、75歳以上リストを表形式だけを選んでも中身は変わりません。

                      よろしくお願いします。

                      

                      

                • 5. Re: フォーム形式で消したフィールド内容が表形式では見えてしまう
                  fukky

                       もう少しテーブルの構造、リレーションについて書き出してみた方がいいかも知れませんね。

                       いまいちどうなっているのか想像できません。

                       ポータルフィルタで75歳以上のみに絞っているだけなら表形式にしたら全員出てしまうのは当然です。

                       フォーム形式で全レコードが対象になっていて、ポータルだけ75歳以上なので表示対象は対象レコード=全レコードだからです。

                       表形式でも75歳以上にするならば検索を用いて対象を75歳以上にする必要があります。

                       図の通りだったりしませんか?

                       ※画像に出ているデータは全て架空のものです。

                  • 6. Re: フォーム形式で消したフィールド内容が表形式では見えてしまう
                    sunnyheights

                    fukkyさん、

                          

                          引き続きコメントをありがとうございます。

                          仰るように例示いただきましたフォーム形式と表形式の通りの状態です。

                          フォーム形式のフィールドデータががそのまま表形式に表示されるものだと理解しておりましたが;

                     > フォーム形式で全レコードが対象になっていて、ポータルだけ75歳以上なので表示対象は対象レコード=全レコードだからです。

                          > 表形式でも75歳以上にするならば検索を用いて対象を75歳以上にする必要があります。
                          
                          という一文で分かりました。表形式で検索を用いて必要な部分をだけを取り出すようにしなければならない訳ですね。
                          
                          表形式で検索式として埋め込んで自動的に表示されるようにするには、ポータルの枠の中に検索式を書くということですよね。つまりフォーム形式のレイアウト画面で条件を書くということですよね。これは既に75歳以上を選ぶように書いてあるのですが、表形式でこの検索式を書き込むのはどのようにしたら良いのでしょうか。済みません、素人でレベルの低い質問かもしれませんが、よろしくお願いします。
                          
                          フォーム形式の検索(フィルター)式は次のように記述しています。
                          
                          If ( XX町住民台帳::家族1年齢  ≥ 75;XX町住民台帳::同居氏名1 & XX町住民台帳::家族1年齢; "")  <<< 家族は8人分のフィールドを確保しています
                          
                          
                    • 7. Re: フォーム形式で消したフィールド内容が表形式では見えてしまう
                      fukky

                           ポータルの使い方が目的と合っていない様に感じます。

                           主にポータルは現在のレコードに関連する情報を表示する様な目的に使います。

                           単純に75歳以上の方を表示するだけならリスト・表形式で年齢75以上で検索するだけです。

                           常に75歳以上の方を表示したいならそのレイアウトのスクリプトトリガで上記の検索を行う様に設定すれば済みます。

                           フォーム、リスト・表について図にしてみましたので見てみて下さい。

                           ご質問の目的にはポータルではなく、リスト・表形式の方が適しているのではないでしょうか?

                      • 8. Re: フォーム形式で消したフィールド内容が表形式では見えてしまう
                        sunnyheights

                        fukkyさん、

                              度々のご教示どうもありがとうございます。

                              あ、ポータルを使うことが当たり前だと思っていたのですが、向き、不向きがあるということですね。

                              なるほど、そういわれてみれば、これを必ずポータルで使わなくても、希望の結果が得られる普通のフォームに検索式を入れて、表形式にすれば良いというご意見、納得です。

                              ポータルではなく、必要フィールドをインポートして、そこに検索式をいれるような構造でもう一度作り直してみます。

                              ご指摘どうもありがとうございました。