過去の桐井戸端BBS (桐ver.8)
14123 複合レポートで頁計を印刷する方法 ヒロ 2001/11/20-16:15
決められた様式の中にデータを印刷しなければなりません。
そこで、複合レポートを使う事にしました。
複合レポートに伝票オブジェクトを2段組にして貼り付けて、
その伝票の頁計(段組にした伝票オブジェクトでの頁計は
段毎の合計がページフッダに印刷されてしまいますが、
印刷したい頁計は1枚の紙に印刷されたデータの合計です)
を伝票オブジェクトの外に印刷しなければなりません。
集計オブジェクトでは総計しかとれず、どうしたものかと思案しております。
何か良い方法はありませんでしょうか?
バージョンは8sp6です。

文章で説明するのは難しいので、
印刷物のイメージを下にアップしておきました。
どうぞよろしくお願いします。


《表1.tbl》

[年][月][日][番号][金額]
13 11 22 02 123,456
13 11 22 03 213,456
13 11 22 04 257,456
13 11 22 05 123,998
13 11 22 06 156,456
13 11 22 07 305,852
13 11 22 08 213,686
13 11 22 09 392,956
13 11 22 10 198,856
13 11 22 11 214,856
13 11 22 12 123,987


《印刷物1頁目》
             13 11 22  ←※年月日(全て同じ年月日)
★ 02 123,456  06 156,456
★ 03 213,456  07 305,852
★ 04 257,456  08 213,686
★ 05 123,998  09 392,956
        08     1,787,316
         ↑         ↑
    ※ 1頁目の件数     1頁目の頁計


《印刷物2頁目》
             13 11 22  ←※年月日(全て同じ年月日)
★ 10 198,856
★ 11 214,856
★ 12 123,987

        03       537,699
         ↑         ↑
    ※ 2頁目の件数     2頁目の頁計

【説明】
「表1.tbl」のデータを「印刷物1頁目」、「印刷物2頁目」の様に印刷したいのです。
★印の行が、伝票オブジェクトの部分です。
各頁の集計結果が「○頁目の件数」と「○頁目の頁計」です。
この集計結果を印刷する方法が解らず苦慮しております。
アドバイスよろしくお願いします。

14125 Re:複合レポートで頁計を印刷する方法 masa 2001/11/20-17:09
記事番号14123へのコメント
ヒロさん こんにちは。
レポートで集計種別で「頁計」というのがありますが
それではだめなのでしょうか?

「オブジェクトの属性の変更」-「集計へ」
14138 Re:複合レポートで頁計を印刷する方法 ヒロ 2001/11/20-23:35
記事番号14125へのコメント
masaさん こんにちは

>レポートで集計種別で「頁計」というのがありますが
>それではだめなのでしょうか?
>「オブジェクトの属性の変更」-「集計へ」

レスありがとうございます。
試してみます。
結果報告します。

14150 Re:複合レポートで頁計を印刷する方法 ヒロ 2001/11/21-12:18
記事番号14125へのコメント
masaさん こんにちは

>レポートで集計種別で「頁計」というのがありますが
>それではだめなのでしょうか?

はい、これは複合レポートに伝票オブジェクトを
貼り付けた場合だけ「頁計」というのが使えるようですが、
これだと、段落毎に頁計を出してしまい、
2段落合計の合計というのが出てきません。
又、頁計を任意の場所にプリントしたいので、
これはちょっと無理ではないかと思います。

何かいい方法はないでしょうか?

14152 Re:複合レポートで頁計を印刷する方法 うにん 2001/11/21-13:43
記事番号14123へのコメント
ヒロさん

1.頁計の計算用に変数を頁計1つあたりひとつ用意します。
配列でもいいですが。とりあえず金額だけ出すとして&合計値を使ってみます。

2.頁の先頭に変数を0に設定するためのテキストオブジェクトを作ります。
この例ではたとえば「年」を流用して、テキストのソースが[年]になっていると思いますが、
それを#計算(#代入(&合計値,0),[年])に変更します。

>《印刷物1頁目》
>             13 11 22  ←※年月日(全て同じ年月日)
>★ 02 123,456  06 156,456
>★ 03 213,456  07 305,852
>★ 04 257,456  08 213,686
>★ 05 123,998  09 392,956
>        08     1,787,316
>         ↑         ↑
>    ※ 1頁目の件数     1頁目の頁計

3.頁計を変数に加算するため、集計のソースを変更します。
#計算(#代入(&合計値,&合計値+#合計([金額])),#合計([金額]))

4.頁計を印刷する場所にテキストオブジェクトを作って、ソースを&合計値にします。
「表示」のタブの「他のオブジェクトのデータがあふれたとき、繰り返し印刷する」にチェックを入れます。(「年」の方も)

これで頁ごとに合計が表示されます。
14156 Re:複合レポートで段組の頁計を表示するには アックン 2001/11/21-15:05
記事番号14123へのコメント
ヒロさん、こんにちは。
画面伝票内で表示するという制限付きであれば可能ですが、一応書いておきます。

複合レポート内の画面伝票オブジェクト以外に両段の頁計を表示しようとすると、
1頁目はうまくいくのですが、2頁目から表示しませんでした。

変数を更新するタイミングをとる解決策をご存じの方は? >ALL

そこで仕方なく、画面伝票のページフッタ(PF)の適当な位置にあるテキストオブジェクトに表示することにします。

なお、ページフッタの行数は増やせます。
画面伝票のオブジェクトの属性>伝票(タブ)>セクション(S)

・頁計(テキストオブジェクト) (←適当な位置に配置します。)

式:&時+&分

・段組ごとの小計(集計オブジェクト)(←これも適当な位置でいいです。)
これは通常なら自動設定されるPF1行目の集計オブジェクトです。
ふつうそこには、#合計([数量])などと式が入っていますが、変更します。

式:#cond(&秒=1,#progn(#set(秒,2),#set(時,#合計([数量]))),1,#progn(#set(秒,1),#set(分,#合計([数量]))))

なお、レポートの定義中はこのオブジェクトを表示しておき、数値を確認してください。
不要になってから非表示にでもすればいいでしょう。

・件数の方ですが、上記の式で使用している変数とは別の変数が必要になります。
まずは、上の頁計でデザインがうまくいくかどうか試してみます?

アックン(=^・^=)


14183 Re:複合レポートで段組の頁計を表示するには ヒロ 2001/11/22-17:10
記事番号14164へのコメント
アックンさん アドバイスありがとうございます。

なるほど、こうした方法もあるのですね。
結果はうにんさんの方法と同じ結果になりました。

>複合レポート内の画面伝票オブジェクト以外に両段の頁計を表示しようとすると、
>1頁目はうまくいくのですが、2頁目から表示しませんでした。

これは、「表示」のタブの「他のオブジェクトのデータがあふれたとき、
繰り返し印刷する」にチェックを入れる事で解決する様に思います。

14184 Re:複合レポートで頁計を印刷する方法 ヒロ 2001/11/22-17:11
記事番号14152へのコメント
うにんさん アドバイスありがとうございます。

教えられた通りの計算式を入れたら、見事に印刷する事が出来ました。
ありがとうございました。

しかし、ここで新たな問題が…。
何故か、同じ物が何枚も印刷されてしまいます。
原因としては、複合レポートの対象表と
複合レポートに貼り付けている伝票オブジェクトの対象表が同じだからかな?
と思うのですが、何か対策はないでしょうか?

因みに、対象表.tblには、
[年][月][日][番号][金額]の項目があり、
複合レポートにテキストオブジェクトで[年][月][日]を貼り付けてあり、
伝票オブジェクトには[番号][金額]が貼り付けてあります。

取り敢えず、複合レポートに貼り付けてある年月日は変数で代用して、
複合レポートには対象表を設定しないで処理しています。

14187 Re:複合レポートで段組の頁計を表示するには アックン 2001/11/22-18:37
記事番号14183へのコメント
ヒロさん

>繰り返し印刷する」にチェックを入れる事で解決する様に思います。
そうでしたそうでした。では、これでいけます。

・伝票PFの集計オブジェクト←これは隠す(^^;

#cond(&秒=1,#progn(#set(秒,2),#set(分,&分+#合計([数量]))),1,#progn(#set(秒,1),#set(分,#合計([数量]))))

・伝票外のテキストボックス←任意の場所に配置可

&分

うにんさんの書き込みを読んでないので、すみません。m(__)m

アックン(=^・^=)

14191 Re:複合レポートで何度も同じ印刷物 Ogo 2001/11/22-23:35
記事番号14184へのコメント

>何故か、同じ物が何枚も印刷されてしまいます。
>原因としては、複合レポートの対象表と
>複合レポートに貼り付けている伝票オブジェクトの対象表が同じだからかな?
>と思うのですが、何か対策はないでしょうか?

ちょっと下の
「◇-メイン&サブから印刷-松本由紀子(11/18-21:28)No.14053」
の一連のスレッドでの私の発言を読んで下さい。

ポイントになるのは、「リンクを設定する項目での単一化」です。

複合レポートではこの単一化設定が必須です。


14203 Re:複合レポートで何度も同じ印刷物(詳細) Ogo 2001/11/23-13:08
記事番号14191へのコメント

>>何故か、同じ物が何枚も印刷されてしまいます。
>>原因としては、複合レポートの対象表と
>>複合レポートに貼り付けている伝票オブジェクトの対象表が同じだからかな?
>>と思うのですが、何か対策はないでしょうか?
>
>ちょっと下の
>「◇-メイン&サブから印刷-松本由紀子(11/18-21:28)No.14053」
>の一連のスレッドでの私の発言を読んで下さい。
>
>ポイントになるのは、「リンクを設定する項目での
>単一化」です。
>
>複合レポートではこの単一化設定が必須です。

簡単に原理を説明しておきます。

複合レポートの場合、基本は 1 対 多 です。
もちろん、メインが 1 で、サブが 多 です(サブは1の場合あり)。

さて、必要なデータを複合レポートで印刷をかけようとすると、
複合レポートそのもの(メイン)は対象データそのものを全て印刷しようとします(当たり前)。
しかし、複合レポートでは、「その中に」リンク項目が設定されていて、
その項目値が一致するものをサブレポートの中に印刷すると言う「オマケ」がつきます。

ということは、リンク項目の値が同じデータがnレコードある場合、nレコード分の印刷物が出て当たり前です。
もちろん、「オマケ」の中身は同じですが、メインレポートの中にリンク項目以外の項目値を印刷する部分があれば、
これは同一になるとは限りません。

ただし殆どの場合、この手のレポートを定義するならば、メイン部に共通事項を印刷して、
サブ部に個別内容を印刷するという用途になるはずです。

そこで 桐 は複合レポート(サブ部)の定義の中に、リンク項目の設定と共に、
「メイン部に関してのみ、そのリンク項目で単一化したデータに限定して出力する
(即ち、メイン 1 対 サブ 多 を実現する)」ことができるように、
「リンクを設定する項目での単一化」を条件として指定できるわけです
(これは事前に tbl に設定が必要)。

この「リンクを設定する項目での単一化」ですが、事前にデータの選択で行なってしまっては、
メイン 1 対 サブ 1 の印刷物しか作成できません(これも、考えてみれば当たり前)。
あくまでも、サブデータも含めた内容を選択しておいて、印刷物に出力する時のみに
メインの単一化を必要とするために、このような指定が必要になります。


14391 Re:複合レポートで段組の頁計を表示するには ヒロ 2001/12/05-16:11
記事番号14187へのコメント
アックンさん アドバイスありがとうございます。
又、レスが大変遅くなってしまい申し訳ありません。

色々な方法がある事がわかりました。
本当にありがとうございました。

14393 Re:複合レポートで何度も同じ印刷物(詳細) ヒロ 2001/12/05-16:13
記事番号14203へのコメント
Ogoさん アドバイスありがとうございます。
又、レスが大変遅くなってしまい申し訳ありません。

>簡単に原理を説明しておきます。

早速試してみました。
なるほど、本当に余計な印刷物が出てこなくなりました。
へぇ〜、こんな設定があるんだぁ〜と
目から鱗が落ちるような思いでした。
本当にアドバイスありがとうございました。
皆様からのアドバイスのお陰で、
これまで、桐で集計したデータをテキストファイルに出力して、
一太郎で差し込み印刷していたという煩わしさから開放されました。

戻る