過去の桐井戸端BBS (桐ver.8)
9954 データの有無によってレポートで印刷する項目を変えたい 水野 康晴 2001/02/26-15:38
桐V8(sp5)でレポートの製作に滞っています。
教えてください。

今、受注残管理表を製作していまして、
受注残.tbl に項目名[製品コード][受注][品名1]〜[品名6][数量1]〜[数量6][出荷日][受注先名] の項目があります。

レポート印刷の結果を、
[製品コード] 別に、
[受注][品名1][数量1][出荷日][受注先名]
・ ・
・ ・
[品名6][数量6]
[受注][品名1][数量1][出荷日][受注先名]
・ ・
・ ・
[品名6][数量6]
と、品名と数量を縦に並べて用紙に入る分だけ繰返し印刷します。
尚、[品名1]と[数量1]は、受注残.tblに必ず記入してありますが、[品名2]〜[品名6]及び[数量2]〜[数量6]は
未記入のときがあります。
そして、品名の項目が未記入のときは、印刷時の行を詰めて出力したいのですが良い方法を教えてください。

例題(この様に印刷したいのですが)
製品コード10
受注 品名 数量 出荷日 受注先名
1234 あ 1 01/2/26 A社
い 2
う 3
え 4
お 5
か 6
1235 サ 10 01/2/25 B社
1240 た 100 01/2/24 C社
ち 200

9956 表の枠組みから見直して下さい 佐田 守弘 2001/02/26-21:16
記事番号9954へのコメント
水野 康晴さん
●表の項目の持ち方
まず最初に申し上げますと、受注残.tbl に[品名1]〜[品名6]という様に、1レコードに複数の製品の受注残料を並べる形は、
データベースとして適切ではありません。
表の形は、
 [製品コード][受注][品名][数量]
の形で持ち、同じ受注番号であっても複数の品名がある時には、品名の数だけのレコード(行)で記録する形に表を
定義し直して下さい。
これがこの表に限らず、データベースでデータを扱う時のポイントとなる部分です。
そしてこれが表計算ソフトと比べて、「似ていて非」なる部分です。

●目的の形での一覧表印刷
上記のように表のデータを持てば、一般的に作る一覧表形式のレポートで目的通りの印刷が可能です。

佐田守弘(KS-00119)
9963 Re:表の枠組みから見直して下さい 水野 康晴 2001/02/27-09:45
記事番号9956へのコメント
佐田 守弘さん
ご回答ありがとうございました。

>●表の項目の持ち方
>まず最初に申し上げますと、受注残.tbl に[品名1]〜[品名6]という様に、1レコー
>ドに複数の製品の受注残料を並べる形は、データベースとして適切ではありません。
>表の形は、
> [製品コード][受注][品名][数量]
>の形で持ち、同じ受注番号であっても複数の品名がある時には、品名の数だけのレコ
>ード(行)で記録する形に表を定義し直して下さい。
>これがこの表に限らず、データベースでデータを扱う時のポイントとなる部分です。
>そしてこれが表計算ソフトと比べて、「似ていて非」なる部分です。
>
>●目的の形での一覧表印刷
>上記のように表のデータを持てば、一般的に作る一覧表形式のレポートで目的通りの
>印刷が可能です。

一連の受注管理レポートを作成するにあたり、当初この一覧レポートは予定がなかったので、
品名1〜6などを1レコードに入れました。
これが、良くなかったのですね。よく判りました。

そこでまたお尋ね致しますが、表を新規に作成する以外に、この表を活用した変更方法はありますでしょうか。
(表の新規作成が最善とは思いますが、他レポートの兼合いもあるので。)

ご指導のほど、宜しくお願い致します。

9973 現在の表を活用した変更方法とは 佐田 守弘 2001/02/27-23:14
記事番号9963へのコメント
水野 康晴さん
>そこでまたお尋ね致しますが、表を新規に作成する以外に、この表を活用した変更方法
>はありますでしょうか。
>(表の新規作成が最善とは思いますが、他レポートの兼合いもあるので。)
とは、どの様な意味でしょうか。察しますに

@今の6項目を1レコードとして持っている表のまま使いたい。
A新しい表を新規作成するが、データは現在の表から移行させたい。

この内、@は不可能です。
なぜなら、表の設計方針が違っている訳で、これを変えない限り対策はできません。
1レコードに6つの商品を持った表を使う限り、最初の御質問の目的は達成されません。
また、今後とも類似の問題を発生します。
このあたりは、将来的に発生する問題の対策も含めて仕方ないと諦めるのであれば、今の表のままお使い下さい。

Aでしたら可能です。ただし、手作業ではできませんから、一括処理を作る必要があります。

佐田守弘(KS-00119)
9975 Re:桐V8のレポートのデータ行を変則的に印刷したい emuni 2001/02/28-03:48
記事番号9954へのコメント
水野さん、こんばんわ。

 佐田さんの言われる通り、データベースのマスタに当たる表定義の設計はとても重要です。

 1.画面でみれる様な伝票を印刷するだけ・・の様な簡易的な使い方に限定。
 2.ちゃんとした業務用のデータベースとして構築するのが目的。

 1.のケースはエクセルなど表計算ソフトに任せた方が良いです。
 んで2.の場合、蓄積するマスタデータに相当する部分は、佐田さんの言われる表定義の構造は大原則だと思います。

 と言っても水野さんを批判している訳ではなく、似たケースは多々見受けられます。
 イメージ通り作りやすいなどあるんですが、データが蓄積されてくると
 データベースとしてとっても非行率なシステムになってしまうからです。

 マスターファイルに相当する表定義は、建築で言うと基礎の部分の設計に等しいです。
 とりあえず仮住まいの家ならどんなものでも良いんですが、この様なシステムはすぐに大きくなり、
 しかも将来いろんな集計表をそこから抽出しなくてはならなくなる事が常です。

 そこで、どうしても・・・と言う場合。

 1.現行の仕組みは「エントリー用」としての位置付けにする。
 2.佐田さんの言われる構造に変換する一括処理を作成して、出来上がったテーブルを
   将来、マスタファイルとして取り扱うようにする。

 2.の方法は、あまり簡易な方法では出来ません。
 ある程度一括の知識が必要になると思います。
9984 Re:現在の表を活用した変更方法とは 水野 康晴 2001/02/28-15:35
記事番号9973へのコメント
佐田 守弘さん

>@今の6項目を1レコードとして持っている表のまま使いたい。
>A新しい表を新規作成するが、データは現在の表から移行させたい。
>この内、@は不可能です。
>なぜなら、表の設計方針が違っている訳で、これを変えない限り対策はできません。
>1レコードに6つの商品を持った表を使う限り、最初の御質問の目的は達成されません。ま
>た、今後とも類似の問題を発生します。
>このあたりは、将来的に発生する問題の対策も含めて仕方ないと諦めるのであれば、今の表
>のままお使い下さい。
>Aでしたら可能です。ただし、手作業ではできませんから、一括処理を作る必要があります

お察しの様に@の方法にこだわっていました。
Aの方法にてトライします。
いろいろありがとうございました。
今後とも宜しくお願い致します。
9985 Re:桐V8のレポートのデータ行を変則的に印刷したい 水野 康晴 2001/02/28-15:44
記事番号9975へのコメント
emuniさん

> 佐田さんの言われる通り、データベースのマスタに当たる表定義の設計は
> とても重要です。
>
> 1.画面でみれる様な伝票を印刷するだけ・・の様な簡易的な使い方に限定。
> 2.ちゃんとした業務用のデータベースとして構築するのが目的。
>
> 1.のケースはエクセルなど表計算ソフトに任せた方が良いです。
> んで2.の場合、蓄積するマスタデータに相当する部分は、佐田さんの言われる
> 表定義の構造は大原則だと思います。
>
> そこで、どうしても・・・と言う場合。
>
> 1.現行の仕組みは「エントリー用」としての位置付けにする。
> 2.佐田さんの言われる構造に変換する一括処理を作成して、出来上がったテーブルを
>   将来、マスタファイルとして取り扱うようにする。
>
> 2.の方法は、あまり簡易な方法では出来ません。
> ある程度一括の知識が必要になると思います。

コメントありがとうございました。
諦めがつきました。
佐田さんの言われるAの方法で作成致します。
まだ判らない点が多々ありますので、そのときはまた宜しくお願い致します。

戻る