Verwendung des CreatePage-Ereignisses in FastReport .NET

2024-04-08

Ein neues CreatePage-Ereignis tritt ein, wenn die FastReport .NET-Engine eine neue Seite erstellt. An diesem Zeitpunkt können Sie die Seiteneigenschaften ändern. Die anderen Ereignisse StartPage, FinishPage und ManualBuild werden vor dem Beginn/Ende der Erstellung der Seitenvorlage aufgerufen.

So können Sie beispielsweise zwischen Seiten im Hoch- und Querformat wechseln. Oder Sie können dieses Ereignis verwenden, um eine separate Datenquelle zu erstellen, die Informationen über ExportAlias oder andere Seiteneigenschaften enthält. Wenn das Ereignis ausgeführt wird, können Sie Parameter setzen und in der Datenquelle am Anfang der nächsten Seite iterieren.

Die modifizierte Demo ist ein Bericht, der das CreatePage-Ereignis für die ExportAlias-Aufgabe verwendet. Ein Beispiel für einen Bericht mit diesem Ereignis wird nachstehend beschrieben:

<?xml version="1.0" encoding="utf-8"?>
<Report ScriptLanguage="CSharp" TextQuality="Regular" ReportInfo.Description="Demonstrates a group report. To create it:&#13;&#10;- go to "Report|Configure Bands..." menu;&#13;&#10;- press "Add" button and add a group header (this will add a data band and a group footer as well);&#13;&#10;- return to the report page, doubleclick the group header to show its editor." ReportInfo.Created="01/17/2008 04:31:41" ReportInfo.Modified="03/13/2024 17:32:59" ReportInfo.CreatorVersion="1.0.0.0">
 <ScriptText>
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing;
using System.Data;
using FastReport;
using FastReport.Data;
using FastReport.Dialog;
using FastReport.Barcode;
using FastReport.Table;
using FastReport.Utils;
 
namespace FastReport
{
 public class ReportScript
 {
 private void Page1_CreatePage(object sender, EventArgs e)
 {
 if(Data1.DataSource.RowCount == 0)
 Data1.InitDataSource();
 Page1.ExportAlias = Data1.DataSource["ProductName"].ToString().Substring(0,1);
 }
 }
}
</ScriptText>
 <Styles>
 <Style Name="EvenRows" Fill.Color="OldLace" Font="Arial, 10pt"/>
 </Styles>
 <Dictionary>
 <TableDataSource Name="Products" ReferenceName="NorthWind.Products" DataType="System.Int32" Enabled="true">
 <Column Name="ProductID" DataType="System.Int32"/>
 <Column Name="ProductName" DataType="System.String"/>
 <Column Name="SupplierID" DataType="System.Int32"/>
 <Column Name="CategoryID" DataType="System.Int32"/>
 <Column Name="QuantityPerUnit" DataType="System.String"/>
 <Column Name="UnitPrice" DataType="System.Decimal"/>
 <Column Name="UnitsInStock" DataType="System.Int16"/>
 <Column Name="UnitsOnOrder" DataType="System.Int16"/>
 <Column Name="ReorderLevel" DataType="System.Int16"/>
 <Column Name="Discontinued" DataType="System.Boolean" BindableControl="CheckBox"/>
 <Column Name="EAN13" DataType="System.String"/>
 </TableDataSource>
 <Total Name="TotalProducts" TotalType="Count" Evaluator="Data1" PrintOn="GroupFooter1"/>
 </Dictionary>
 <ReportPage Name="Page1" Watermark.Font="Arial, 60pt" CreatePageEvent="Page1_CreatePage">
 <ReportTitleBand Name="ReportTitle1" Width="718.2" Height="103.95" CanGrow="true">
 <TextObject Name="Text1" Top="56.7" Width="718.2" Height="47.25" Text="ALPHABETICAL PRODUCT LIST" HorzAlign="Center" VertAlign="Center" Font="Tahoma, 14pt, style=Bold"/>
 <TextObject Name="Text11" Top="28.35" Width="718.2" Height="28.35" Anchor="Top, Left, Right" Fill.Color="WhiteSmoke" CanGrow="true" CanShrink="true" Text="[Report.ReportInfo.Description]&#13;&#10;" Padding="4, 4, 4, 4" Font="Tahoma, 8pt"/>
 <TextObject Name="Text18" Width="718.2" Height="28.35" Anchor="Top, Left, Right" Fill.Color="WhiteSmoke" Cursor="Hand" Hyperlink.Value="http://fast.report/cda2a" Hyperlink.OpenLinkInNewTab="true" Text="Learn how to build this report on the Fast Reports Academy channel" VertAlign="Center" Font="Tahoma, 10pt, style=Bold, Underline" TextFill.Color="Blue"/>
 </ReportTitleBand>
 <GroupHeaderBand Name="GroupHeader1" Top="107.15" Width="718.2" Height="37.8" StartNewPage="true" KeepWithData="true" Condition="[Products.ProductName].Substring(0,1)" SortOrder="None">
 <TextObject Name="Text7" Left="9.45" Width="699.3" Height="37.8" Border.Lines="All" Border.Color="LightSkyBlue" Fill="LinearGradient" Fill.StartColor="LightSkyBlue" Fill.EndColor="AliceBlue" Fill.Angle="90" Fill.Focus="0.42" Fill.Contrast="1" Text="[[Products.ProductName].Substring(0,1)]" Padding="5, 0, 0, 0" VertAlign="Center" Font="Tahoma, 12pt, style=Bold"/>
 <DataBand Name="Data1" Top="148.15" Width="718.2" Height="18.9" DataSource="Products" KeepTogether="true">
 <TextObject Name="Text2" Left="9.45" Width="604.8" Height="18.9" Border.Lines="Left" Border.Color="LightSkyBlue" Text="[Products.ProductName]" VertAlign="Center" Font="Tahoma, 8pt">
 <Highlight>
 <Condition Expression="[Row#] % 2 == 0" Fill.Color="AliceBlue" TextFill.Color="Black" Font="Arial, 10pt" ApplyFill="true" ApplyTextFill="false"/>
 </Highlight>
 </TextObject>
 <TextObject Name="Text4" Left="614.25" Width="94.5" Height="18.9" Border.Lines="Right" Border.Color="LightSkyBlue" Text="[Products.UnitPrice]" Format="Currency" Format.UseLocale="true" Format.DecimalDigits="2" HorzAlign="Right" VertAlign="Center" Font="Tahoma, 8pt">
 <Highlight>
 <Condition Expression="[Row#] % 2 == 0" Fill.Color="AliceBlue" TextFill.Color="Black" Font="Arial, 10pt" ApplyFill="true" ApplyTextFill="false"/>
 </Highlight>
 </TextObject>
 <Sort>
 <Sort Expression="[Products.ProductName]"/>
 </Sort>
 </DataBand>
 <GroupFooterBand Name="GroupFooter1" Top="170.25" Width="718.2" Height="47.25" KeepWithData="true">
 <TextObject Name="Text8" Left="9.45" Width="699.3" Height="18.9" Border.Lines="Left, Right, Bottom" Border.Color="LightSkyBlue" Text="Total products: [TotalProducts]" HorzAlign="Right" VertAlign="Center" Font="Tahoma, 8pt, style=Bold"/>
 </GroupFooterBand>
 </GroupHeaderBand>
 <PageFooterBand Name="PageFooter1" Top="220.7" Width="718.2" Height="28.35" Fill.Color="WhiteSmoke">
 <TextObject Name="Text9" Left="614.25" Width="94.5" Height="28.35" Text="[PageN]" HorzAlign="Right" VertAlign="Center" Font="Tahoma, 8pt"/>
 <TextObject Name="Text12" Left="9.45" Width="217.35" Height="28.35" Cursor="Hand" Hyperlink.Value="https://www.fast-report.com/products/fast-report-net" Text="Generated by FastReport .NET" VertAlign="Center" Font="Tahoma, 8pt, style=Underline" TextFill.Color="Blue"/>
 </PageFooterBand>
 </ReportPage>
</Report>

Ergebnis nach dem Berichtexport in Excel 2007 aus dem obigen Beispiel:

Beispiel für das Exportieren eines fertigen Berichts

Anmerkung 1. Engine.CurPage wird nach dem Aufruf des neuen Ereignisses inkrementiert, und da CurPage ein Seitenindex ist, beträgt sein Wert 0, wenn die ersten zwei Seiten erstellt werden. Daher empfehlen wir, dass Sie bei der Verwendung eines neuen Ereignisses Ihren eigenen Seitenzähler im Berichtsskript starten.

Anmerkung 2. Wenn Sie die Eigenschaft Visible auf false ändern, wird der weitere Seitenaufbau gestoppt.

Mit der neuen Eigenschaft ist es möglich, zu einer neuen Zeile eines Datensatzes zu springen und die Seiteneigenschaft zu ändern, wenn neue Seiten hinzugefügt werden.

.NET FastReport Pages
26. Oktober 2026

TfrImageComboBox: Eine Dropdown-Liste mit Bildern und Textbeschriftungen in FastReport VCL

TfrImageComboBox aus der FastEditors VCL: eine Dropdown-Liste mit Symbolen und Beschriftungen für die FastReport VCL. Eigenschaften, Ereignisse und Anwendungsbeispiele in Delphi.
26. Oktober 2026

Fortschrittsbalken in Delphi: Die Komponenten „TfrProgressBar“ und „TfrxProgressBar“ aus FastReport VCL

Schauen wir uns die Komponenten TfrProgressBar und TfrxProgressBar aus FastReport VCL einmal genauer an: Konfiguration der Fortschrittsskala, Schwellenwerte und Markierungen, Datenbindung sowie ein Delphi-Beispiel.
23. Oktober 2026

FastGrid von innen: Das View-Objekt, Spalten und Ereignisse der Delphi-Grid-Komponente

Interner Aufbau von FastGrid: das View-Objekt, die Eigenschaft „Appearance“, Spalten, Ereignisse sowie die Datenverarbeitungsmodi „DB“ und „Unbound“ in Delphi. Erläuterung am Beispiel des Demo-Projekts „GridDemo.dpr“.

© 1998-2026 Fast Reports Inc.