過去の桐井戸端BBS (桐ver.8)
24495 複合レポートの中の一覧表の明細データが5行あったとき同じ物が5枚表示される masa 2004/01/30-12:03
またよろしくお願いします。
桐V8 Sp7です。
複合レポートの中に一覧表があるのですが、対象表のデータ行が5行あった時
(リンク設定は「タイトル」で5行とも同じです。)
プレビューすると1ページ5行表示されたRPTが5枚表示され(同じもの)
試しにデータを7行にすると1ページ7行表示された同じRPTが7枚表示されるのですがどうしてでしょうか?
よろしくお願いします。


24497 Re:RPTの明細データ表示について masa 2004/01/30-12:36
記事番号24495へのコメント
元の表のデータはたくさんあるので、代表として先程の5行選び、
実験用として「ファイル」「書出し」「表の枠組み」で実験用.tblを作り
その表を開いて、選んだ5行を読みこみ、レポートの対照表を実験用.tblにしましたら
レポートのプレビューで何も表示されなくなって(白紙状態のものが次ページ次ページ
とどこまであるのというくらい続いてます)
これは何故でしょうか?
色々試していくうちに、どんどんどつぼにはまっていってしまう感じです・・・・
よろしくお願いします。

24499 Re:RPTの明細データ表示について 幅田 2004/01/30-12:57
記事番号24497へのコメント
masaさん
こんにちは。

過去ログの
http://www.fuku3.com/~habata/kbbs/kakov8/13261.htm
「伝票形式のレポートで明細分の枚数が印刷される」
などを参考にされてはいかがでしょうか。
基本は一覧表形式も伝票形式も同じだと思います。

単純なレポートなら、できるだけ複合レポートは使わず、
一覧表形式レポートにしたほうが、
わかりやすいと思います。

24501 Re:RPTの明細データ表示について masa 2004/01/30-13:31
記事番号24499へのコメント
幅田さん こんにちは 早速ありがとう御座います

まず表の中で単一化を登録し、レポートの対照表の「表の操作を有効にする」にチェックを入れ、
表の操作の単一化条件名に登録の条件名を選んだのですが、
やはり行数分のページ枚数になります。
ただ今度は1行目のデータだけが繰り返し表示されます
(明細行数は10にしてあります)

よろしくお願いします。

24502 Re:RPTの明細データ表示について 幅田 2004/01/30-14:51
記事番号24501へのコメント
masaさん

重要なのは過去ログの佐田さんのコメントにある

>1つ思い当たる原因として、レポートの対象表とレポートの中の
>伝票オブジェクトの対象表との間に、リンク関係の設定がしてない事が
>思い当たります。

です。

レポートの対象表は単一化で絞り込んで、
同じデータを1件にして、これを1枚の台紙とします。
その中の一覧表オブジェクトとリンクの設定をして、
一覧表オブジェクトの中は明細行を印刷します。

このあたり、難しければやはり一覧表形式レポートにしたほうが
手っ取り早いですね。

24503 Re:RPTの明細データ表示について masa 2004/01/30-15:30
記事番号24502へのコメント
幅田さん どうもありがとう御座います。

>重要なのは過去ログの佐田さんのコメントにある
>
>>1つ思い当たる原因として、レポートの対象表とレポートの中の
>>伝票オブジェクトの対象表との間に、リンク関係の設定がしてない事が
>>思い当たります。
このRPTはファイル属性:レポートの所ではリンク設定がされていませんでし
た。
すみません。
今度はページ数は1で明細行も1つしか表示できていない状態です。
(一覧表オブジェクト属性の一覧表の明細数は10になっています。)

よろしくお願いします。

>このあたり、難しければやはり一覧表形式レポートにしたほうが
>手っ取り早いですね。

すみません。もともとno24485の件で問い合わせしていたのですが、
やってる内に別の疑問がいろいろ出てきたので、
別の題がいいかなと思いまして投稿しました。

24509 【解説】レポート印刷の仕組み(1) 佐田 守弘 2004/01/31-23:59
記事番号24495へのコメント
複合レポート印刷で目的通りの印刷を得るには、レポート印刷の仕組みを
しっかり理解しておく事が大切と思いますので、解説させて頂きます。

●複合レポートとその他のレポートの違い
レポートには根本的な違いはありません。そのベースとなるものは、
複合レポートで作られる白紙のレポートです。この白紙のレポートに各種の
オブジェクトを設ける事によって、様々な機能ができ上がります。
一覧表レポート伝票レポートなどは、複合レポートの一部の機能だけに
限定した簡易型レポートです。
確か桐ver.8の頃から、複合レポート以外のレポートは、機能限定版に
なったと思いました。
おそらく、複合レポートは機能が多過ぎて解りにくいために、
機能限定版ができたのではないかと思います。
以下は、複合レポートを想定して話を進めますが、一覧表レポートなどでも
利用できる機能については、共通した内容です。

●レポートの各種オブジェクトと対象表
レポートに作るオブジェクトは、ソース値を得る対象表から次の3つに分けられます。
1)レポートの対象表で設定するもの
テキスト、集計、ピクチャ、バーコードオブジェクトでは、ソース値に
設定する表の項目値は、レポートの対象表の項目です。
2)オブジェクトで独自の対象表を設定するもの
単票、一覧表、伝票、タイル、グラフオブジェクトは、それらのオブジェクトで対象表を設定します。
これらの中にはテキスト、集計オブジェクトができますが、
それらは、オブジェクトの対象表項目がソース値になります。
3)対象表を持たないもの
直線、矩形、円オブジェクトは、対象様を持ちません。これらは単に図形の印刷だけを行います。

●レポートの印刷の繰り返し数
レポートにリンク表(対象表)が設定してある場合、リンク表のレコード数だけ、レポートが繰り返し印刷されます。
これはそのレポートにリンク表の項目をソース値とするテキストオブジェクトがあるかどうかに関係しません。
テキストオブジェクトがあれば、表のその項目値を印刷します。テキストオブジェクトがなければ、
項目値は何も印刷しないで、レコード数だけの印刷が行われます。
そしてもしリンク表がない場合には、1回だけ印刷が行われます。
以上は、重要事項なので、まずこれをしっかりと理解して下さい。

より解りやすくするために例で説明しましょう。
今、はがきの裏面(あて名でない方)の図案を作り、これをある枚数、
例えば100枚印刷する事を考えてみます。ラベルオブジェクトと図形だけからなる
レポートで作れますからリンク表は必要ありません。
これを普通に印刷すると、1枚だけ印刷されます。
この時に全く関係なくて構わない適当な表で、レコード数が100行ある表を
レポートのリンク表に設定すれば、100枚続けて印刷ができます。

●対象表を持つオブジェクトの繰り返し数
対象表を持つオブジェクトは、そのオブジェクトの中で、対象表のレコード数だけの
データの印刷が行われます。
オブジェクトが一覧表や伝票であれば、表の形式で対象表の全レコードが印刷されます。
タイルオブジェクトは、設定した割付けで、全レコードが印刷されます。
グラフオブジェクトは、対象表の全レコードが対象となったグラフが1つ印刷されます。
また単票オブジェクトの場合には、1レコード1ページ形式で、レコード数のページだけ繰り返されます。

●複合レポートの印刷繰り返し数
複合レポート以外の単票、一覧表、伝票、タックシールレポートでは、
ファイル属性で設定するリンク表の設定機能が省略されています。
レポートのリンク表がないので、レポートは全体として1回だけ印刷され、
その1回の印刷の中で、単票、一覧表などのオブジェクトが、
それらの対象表になっている表のデータを印刷します。

一方、複合レポートでは、レポートにはリンク表を設定し、対象表を持つオブジェクトにも対象表を設定します。
そしてそのまま印刷すると、レポートのリンク表のレコードデータを順に使いながら、
それぞれのページの中にある一覧表などのオブジェクトでは
その対象表の全レコードが印刷されます。それがレポートの対象表のレコード数だけ繰り返される訳です。

<続く>

佐田守弘(KS-00119)
24510 【解説】レポート印刷の仕組み(2) 佐田 守弘 2004/01/31-23:59
記事番号24495へのコメント
<続き>
●リンク設定
複合レポートでは、対象表を持つオブジェクトの属性の中で、リンク関係の設定をします。
この意味は、現在レポートのリンク表の印刷を行っている値に等しい値を
オブジェクトの対象表の中から抽出して、抽出されたレコードだけを印刷対象とする機能です。
複合レポートの用途として、A〜Zまでの顧客がある時に、顧客別にその売上を一覧表で印刷したいといったケースがあります。
顧客Aのページの中の一覧表には、Aだけの売上を印刷するので、
レポートのリンク表の顧客名(あるいはコード)と一覧表の中の顧客名(コード)に
リンクを設定し、AのページにはAの売上だけを印刷するわけです。
このリンク設定を忘れると、全てのページに全顧客の売上が印刷されてしまいます。

●リンク表を単一化する意味
レポートのリンク表とオブジェクトの対象表は、必ずしも同じ表である必要はありません。
しかし同じ表にする事もできます。
売上明細の様な表をレポートのリンク表と一覧表オブジェクトの対象表に
設定するケースを考えてみます。
この売上明細は、同じ顧客のデータが複数含まれています。
従って、この表をそのままレポートのリンク表に設定すると、
顧客Aのデータが複数回出て来るので、同じものが出現数だけ印刷されてしまいます。
売上明細から顧客名だけを抽出して単一化した表をリンク表に設定すれば
目的通りになるわけですが、同じ操作を行うのが、「表の操作」の設定です。
この場合で言えば、レポートのリンク表の操作には、単一化条件を
設定しておく事で、リンク表が顧客名で単一化されます。
これで、顧客1件あたり1枚の印刷ができるわけです。

佐田守弘(KS-00119)
24511 推定原因 佐田 守弘 2004/02/01-00:03
記事番号24503へのコメント
masaさん
>今度はページ数は1で明細行も1つしか表示できていない状態です。

推定される原因ですが、一覧表オブジェクトの操作に単一化を設定していませんか?
あるいは、「表編集の状態を継承」にチェックを入れてあって、
現在表を開いて単一化してある場合も同じです。

別コメントにレポート印刷の仕組みを解説しました。参考にして下さい。

佐田守弘(KS-00119)

24546 Re:【解説】レポート印刷の仕組み(2) masa 2004/02/02-23:37
記事番号24510へのコメント
佐田 守弘さん こんばんは
いつもご丁寧にありがとう御座います。
あれから忙しくて一時中断状態になってしまいました。
他の緊急の仕事が終わり次第再開しますので何かありましたらまたよろしくお願いします。

戻る