PowerPDFによる帳票の作成について

解決


mzAt  2009-04-15 08:25:22  No: 34005

こんにちは。初めて書き込みします。
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

のような帳票を作成したいと考えております。
記述の方法が悪いのでしょうか?

だれかお分かりの方はいらっしゃいませんか?
よろしくお願いいたします。


HOta  2009-04-15 16:21:32  No: 34006

レコードが動いていないのでしょう。
>     Txthoge.text:=RS.RecordSet.Fields.Item['aaa'].Value;
>     Txthoho.text:=RS.RecordSet.Fields.Item['bbb'].Value;
      RS.RecordSet.Next;   //次のレコード


nobukoshi802  2009-04-15 21:44:54  No: 34007

SQLのグループ化では?
SELECT aaa, bbb
 FROM hogehoge
GROUP BY aaa, bbb  <- SQLに追加


mzAt  2009-04-16 06:54:33  No: 34008

みなさま。アドバイスありがとうございます。
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メソッド前におこなわれていることをよく理解しておりませんでした。
帳票のほうは、無事に完成しました。
ありがとうございました。


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

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






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