こんにちは。初めて書き込みします。
PowerPDFを使用して帳票を作成するロジックを書いています。
SQLserverにあるデータベーステーブルをSQL文で問い合わせをして
取得したレコードセットを帳票にするロジックです。
type
Txthoge:TPRText;
Txthoho:TPRText;
...
BeginDoc;
...
SqlCommandtext:='';
SqlCommandtext:=SqlCommandtext+'SELECT ';
SqlCommandtext:=SqlCommandtext+'* ';
SqlCommandtext:=SqlCommandtext+'FROM '
SqlCommandtext:=SqlCommandtext+'hogehoge';
RS.RecordSet:=CN.Excute(SqlCommandText):
if not RS.RecordSet.eof then
begin
repeat
Txthoge.text:=RS.RecordSet.Fields.Item['aaa'].Value;
Txthoho.text:=RS.RecordSet.Fields.Item['bbb'].Value;
Print(Sample);
until RS.RecordSet.eof;
end
EndDoc;
といったロジックを書き実行しました。
すると、たとえばレコードセットが122ヶあった場合
生成されるPDFページは122ページで各ページには
同一の値が、RowCount分出力されています。
**********1ページ目**********
Txthoge Txthoho
111111 222222
111111 222222
111111 222222
.
.
.
**********2ページ目**********
Txthoge Txthoho
333333 444444
333333 444444
333333 444444
.
.
.
といった感じです。
できれば
**********1ページ目**********
Txthoge Txthoho
111111 222222
333333 444444
のような帳票を作成したいと考えております。
記述の方法が悪いのでしょうか?
だれかお分かりの方はいらっしゃいませんか?
よろしくお願いいたします。
レコードが動いていないのでしょう。
> Txthoge.text:=RS.RecordSet.Fields.Item['aaa'].Value;
> Txthoho.text:=RS.RecordSet.Fields.Item['bbb'].Value;
RS.RecordSet.Next; //次のレコード
SQLのグループ化では?
SELECT aaa, bbb
FROM hogehoge
GROUP BY aaa, bbb <- SQLに追加
みなさま。アドバイスありがとうございます。
HOtaさんの言うようにレコードが動いていないのも問題でしたが
BeforePrintChild is called every before child panels are about to be printed. Typical
use of this event is to set any variables(TPRText, TPRImage).という
文面から一行ずつでバックを行っていった結果
レファレンスのTPRPrintChildPanelEventイベントがPrintメソッド前におこなわれていることをよく理解しておりませんでした。
帳票のほうは、無事に完成しました。
ありがとうございました。
ツイート | ![]() |