質問箱 No.119: 2つのテーブルを元にしたレコードを画面に表示したい
    ◇ 回答箱 No.119-1    内海 孝   2001年02月 No.229 P.25
        ◇ 回答箱 No.119-2    入川 精二  2001年03月 No.230 P.18
            ◇ 質問箱 目次へ
No.119    2つのテーブルを元にしたレコードを画面に表示したい  質問者
大根 保則
2001年01月
228号 P.11
 次のような場合に、画面の表示をどうやって図るか、細かいプログラムは問題にしておらず、方法の粗いデザイン、設計について、考えを聞かせていただけるとありがたく思います。

 分かりやすいケースにおきかえて 設問を書かせて頂きます。

1.  状況の説明
 バイクの販売店をやっており、販売ずみバイクの修理もしているので、基本台帳として、下の二つがある。

(1) (バイクの)販売台帳 (台帳1)

     <記入事項>
       項目1        項目2      項目3        項目4    項目5         項目6
       受入れ番号   販売日     メーカー名   型名     販売価格      購入者
       (バイクID)
       112          ///////    /////////    /////    //////////    ////////

(2) (バイクの)修理台帳 (台帳2)
       項目1        項目2      項目3        項目4    項目5         項目6
       受入れ番号   バイクID   修理依頼日   故障箇所 修理終了日    修理費
       ・12         112        /////////    /////    //////////    ////////
       ・13         110        /////////    /////    //////////    ////////
       ・14         112        /////////    /////    //////////    ////////
       ・15         112        /////////    /////    //////////    ////////

2.  問題
 この紙台帳管理をパソコンでやることとし、次に修理依頼があったときには、そのバイクの全体像を最初に把握したい。そこで、バイクIDを入れると、台帳1に書いてある購入時のデータと、台帳2に書いてある修理履歴がパソコン画面に同時に表示できるようにしたい。

    PIPSでは、どうしてこれを達成するか
    粗い方向づけ・デザインが分かればそれで良いのですが。
    (商品コード作りなどの周辺のことは、問題を単純化するため、今は考えないとします。)
3.  補足説明
(1) (データベース専用ソフトである)アクセスでは、下記のように大体のイメージは掴める気がする。

  1. バイク販売時に、従来紙販売台帳に記録していた項目は入力画面より、記入できるようにしておく。データは各バイクごとに、1件レコードとして(パソコンの)フォーム画面に書き込み、登録によりテーブル1へ記録する。また、修理依頼があった都度、その記録を、これまた、フォーム画面から記入し、登録して、テーブル2に記入する。
  2. 別に案件(バイク)の閲覧画面(シーン)においては、アクセスでは、フォームが、1画面でメインフォームとサブフォームに分かれて2つのテーブルのデータを表示できるようにデザインされているので、販売時のデータ(大体1件1行で記載されているテーブル1上の記録)は、メインフォームに表示する。テーブル2上の修理記録は、概念的には、バイクIDで検索抽出して、抽出行のデータをサブフォームに表示させるということであるが、テーブル1とテーブル2のレコードを、バイクIDでリンクをとっておけば、特別、検索抽出などしなくても、バイクIDの1件レコードが、パット表示される。サブフォームはスクロールするので、修理回数がいくら多くても表示・閲覧に困らない。
(2) PIPSの場合では、どんな風に処理・デザインするのであろうか。
生半可な知識で、妄想たくましく考えると、次のような想像ができるが、果たして可能か、実現性どうか。通常はどのようにデザインされるのでしょうか。

  1.  データの入力、登録時は、上記のアクセスの場合と、多分同じではないか。
  2.  修理依頼がきたときには、(想像)

    • PIPSでのフォームは、基本的には1テーブル(1バインダ)にしか対応していない。とすると、バインダ1上の修理対象バイクIDの販売時レコードは、普通にフォーム上に表示させる。これは、メインバッファのデータ。そうしたら、画面を上下二つに分割して、上段のメインバッファ、に対して下段はサブバッファのデータ用とする。下段にはバインダ(テーブル)2上にある、バイクIDのデータ行(修理記録)を検索抽出して、抽出結果のデータを表示させる。そんな風にすればできるのであろうか。
    • また別には、画面上方に販売時の記録を書き込む。ここは、フォーム機能を使わないとしたら、プログラムを作って、ということになるのであろうか。では、修理記録の方はどうして表示させるか。オートの画面を作って、そこにフォームの画面を用意して、修理記録(バイクIDを検索キーとして、バインダ2から抽出した結果の表)をそのフォーム画面に表示する。という形とするか。

以上


このページのTOPへ戻る