1枚に二つの帳票を出力するには?

解決


テクテク  2010-10-18 04:18:10  No: 39368

前回2008/09/19(金)のくるくるさんの 質問とは少し違います。

具体的には
A4縦一枚にA5横の納品書  とA5横の受領書を印刷したい

QuickReport1で納品書
QuickReport2で受領書はそれぞれ印刷はできています。

QRCompositeReport1を使っても、データが数枚にわたる場合
QuickReport1納品書がA4上半分に印刷されて、それが終わってから次にQuickReport2で受領書を始めます。そうではなく同時に印刷したい。
QuickReport1とQuickReport2は同じ datesetです。


テクテク  2010-10-18 05:57:36  No: 39369

どうぞよろしくお願い致します。


Quest  2010-10-18 10:28:31  No: 39370

テクテクさん、こんばんは。

> QuickReport1で納品書
> QuickReport2で受領書はそれぞれ印刷はできています。
これはそれぞれ、A5横に単独で印刷できるという意味ですね。

QRCompositeReportを使えば、データが少ない時はA4一枚に納品書と受領書を印刷できていると・・・。
で、データが多くなると改ページの影響で、先に上半分の納品書だけが印刷されてしまうという事でしょうか。

> QuickReport1とQuickReport2は同じ datesetです。
これは、納品書も受領書も同じDataset(テーブルやクエリ)を参照している、
つまり全く同じ内容を、フォーマットを換えて印刷しているという事でしょうか。

QRCompositeReportについては情報が少ないようですね。
私は、Delphi2の頃からQuickReoirtを使っていますが、存在すら知りませんでした。
発想を変えて、A41ページの上半分に納品書、下半分に受領書をデザインして
コードでガリガリ印刷するのはどうでしょう?


テクテク  2010-10-19 05:07:43  No: 39371

Quest様ありがとうございます
その通りです。

コードでガリガリとは
DetailBandを使わずに   データーを1個ずつQRLabelに展開していくのでしょうか?
なるほど、その発想転換は道が見えてきた様です、しかし初心者には遠い道のりです。

QRCompositeReport1というのはこの為の近道と思ってましたが。。。
もう少しここでQRCompositeReport1についてを待ってみて、情報なければその道にトライします。
ありがとうございました。


ぽむぽむ  2010-10-19 06:27:43  No: 39372

QRCompositeReportは使ったことがありませんが、TQuickRepを
QRCompositeReport.Reportsに追加することで、一つのプリントジョブで
複数の帳票を印刷できる機能のはずです。

なので、現状のデザインをそのまま使い、上に納品書、下に受領書を印刷
するのであれば、QRCompositeReport.Reportsに、
1ページ目のみ印刷できる納品書を追加
1ページ目のみ印刷できる受領書を追加
2ページ目のみ印刷できる納品書を追加
・・・

と、各ページ毎に帳票インスタンスを作成する必要があると思います。
また、印刷時も割り付け印刷で2ページを1枚で印刷するように指定する
必要もあるでしょう。

なので、Quest さんが提案された、
> 発想を変えて、A41ページの上半分に納品書、下半分に受領書をデザインして
が、一番楽にできると思います。

納品書も受領書も同一のDatasetを利用しているのであれば、納品書の
用紙をA4縦に変更し、DetailBandをぐ〜〜〜っと広げて、受領書の
DetailBandの中身を貼り付けてしまうだけでいいのではないでしょうか?


テクテク  2010-10-21 04:23:22  No: 39373

ほむほむ様ありがとうございます。
QRCompositeReport.Reportsについて、
1ページ目のみ印刷できる納品書を追加
1ページ目のみ印刷できる受領書を追加
2ページ目のみ印刷できる納品書を追加
・・・
は非常に参考になりました。これで解決しそうですが
個別の印刷では出来ているサマリーとページフッターがおかしな動きします。

>印刷時も割り付け印刷で2ページを1枚で印刷するように指定する
その割り付け印刷とは具体的にどのようにするのか
教えて頂けないでしょうか?

それと
>DetailBandをぐ〜〜〜っと広げて、
という事ですが  DetailBandにはQRDBTextが入っていて
行間の高さを指定していますが、これを広げる意味がわかりません。

ほんと初心者でお手間かけ申し訳ございません。
よろしくお願いします。


ぽむぽむ  2010-10-21 08:18:07  No: 39374

> その割り付け印刷とは具体的にどのようにするのか
用紙1枚に2ページ分、4ページ分とかを印刷する、プリンタドライバで
提供されるものなので、プリンタのダイアログ見てもらうしかないかと。

> という事ですが  DetailBandにはQRDBTextが入っていて
> 行間の高さを指定していますが、これを広げる意味がわかりません。
あぁ、そっか、1ページに複数行のデータがあって、それぞれの行が
DetailBandになっているのか。

であれば、DeteilBandを広げて、全部QRLabelに変更して、OnNeedDataを
使う方法に変更しないといけないと思います。
OnNewPageイベントあたりで、QRLabelに納品書と受領書データを流し込む
ことになるでしょう。
つまり、Questさん曰く「コードでガリガリ」ですね。
失礼しました。


テクテク  2010-10-22 04:38:00  No: 39375

QRCompositeReport.Reportsについて、
1ページ目のみ印刷できる納品書を追加
1ページ目のみ印刷できる受領書を追加
2ページ目のみ印刷できる納品書を追加
・・・
実際の枚数が多くても3ぺ−ジほどなので、上記で解決しました。
ぽむぽむ様ありがとうございました。

枚数が多い時はQuest様の「コードでガリガリ」かな。
Quest様ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加