▼ yumapaさん
>これは、plTackPrevで表形式の印刷を行う場合の最終頁にアクセスする
>場合ですね。
> 私のしたいことは、表(一覧表)を描画した後、即ち、最終頁の更に後に
> 1頁全くスタイルの異なる頁を作成したいのです。
> このようなことは可能でしょうか?
大変失礼しました.そうですよね,そんなこと分かっている!!
とお怒りでしょう.スンマセン.
以下の様な感じでお願いします.説明は省略して... いいですよね.
状況によっては,また違う方法になるかも知れませんが...
テストプログラムの[Hagaki]で動作確認しました.
WindowsXP(S2), Delphi5です.
//====================================================================
// データセットで決まる最終頁に更に1頁追加するコード
//====================================================================
procedure TForm1.plTackPrev1FormShow(Sender: TObject);
begin
plTackPrev1.LabelCount:=plTackPrev1.LabelCount+1;
end;
//====================================================================
// 追加した頁にはデータを印刷しない
// それを自動的にやってしまうとラベルの作成(自動追加)の時にこまる
// この例はテストプログラムの[Hagaki]
// [Hagaki]では埋め込みの画像があるのでそれをnilにする
// また,郵便番号枠もあるのでそのDrawMethodを空にする
//====================================================================
procedure TForm1.plTackPrev1BeforeDataDraw(Sender: TObject; Rect: TRect;
ACol: Integer; var Text: String);
begin
if plTackPrev1.PageNumber=plTackPrev1.PageCount then begin
plTackPrev1.Columns[0].ImagePict.Graphic:=nil;
plTackPrev1.Columns[2].DrawMethod:='';
Text:='';
end;
end;
//====================================================================
// 最後の頁はデフォルトの印刷はしないので,このイベントに書ける
// ここに頁数を増やすコードを書かないように.どんどん増えてしまいます
//====================================================================
procedure TForm1.plTackPrev1BeforePageDraw(Sneder: TObject; DataNo,
Page: Integer);
begin
if Page=plTackPrev1.PageCount then begin
plTackPrev1.FontSize(30);
plTackPrev1.Canvas.TextOut(100,100,'最終頁の次です??');
end;
end;
|