ページ番号に基づいて、アクティブなレポートのマージンをプログラムで設定しようとしています。
具体的には、最初のページには小さな余白が必要であり(差出人住所のある最上部のテキストボックスが会社のロゴの配置と一致するように)、その後のすべてのページには標準の2.54cmの余白が必要です。
実際のページ番号の検出には問題がある可能性があることを示唆する投稿を読んだので、マージンを設定するための非常に単純なロジックとともにReportStartハンドラーとPageStartハンドラーを使用してみました。
レポートのコードビハインドで、2つのハンドラーとbool値を追加しました。
this.ReportStart += UFAnReportStart;
this.PageStart += UFAnPageStart;
bool bFirstPage = true;
次に、次のように2つのコールバックを追加しました。
private void UFAnReportStart(object sender, System.EventArgs eArgs)
{
this.PageSettings.Margins.Top = 0.1965278F;
}
private void UFAnPageStart(object sender, System.EventArgs eArgs)
{
// every page after the first should have standard margins.
if (!bFirstPage)
{
this.PageSettings.Margins.Top = 2.54F;
}
bFirstPage = false;
}
これはマージンに影響を与えていないようです。このアプローチはまったく間違っていますか?または、PageSettingsオブジェクトはレポート全体のプロパティですか?
代替アプローチの提案を歓迎します。
Activereports3バージョン5.2.1013.2を使用します。
ありがとうございました!