Die Tabelle wird korrekt generiert und Seitenumbrüche funktionieren einwandfrei.
Das PageHeaderBand wird jedoch nicht gedruckt
Hier ist ein minimal reproduzierbares Beispiel:
Code: Select all
private void button1_Click(object sender, EventArgs e)
{
Report report = GetTableWithPageHeaderReport();
report.Prepare();
report.Preview = previewControl;
report.ShowPrepared();
}
static Report GetTableWithPageHeaderReport()
{
Report report = new Report();
ReportPage page = new ReportPage();
report.Pages.Add(page);
page.TopMargin = Units.Centimeters * 2;
page.BottomMargin = Units.Centimeters * 2;
// Page header band
PageHeaderBand headerBand = new PageHeaderBand();
headerBand.Height = Units.Centimeters * 1;
page.Bands.Add(headerBand);
TextObject headerText = new TextObject();
headerText.Bounds = new RectangleF(0, 0, Units.Centimeters * 19, Units.Centimeters * 1);
headerText.Text = "Report multipagina — Page [Page#] of [TotalPages]";
headerText.Font = new Font("Arial", 10, FontStyle.Bold);
headerText.HorzAlign = HorzAlign.Right;
headerBand.Objects.Add(headerText);
// Body band
DataBand dataBand = new DataBand();
dataBand.CanBreak = true;
dataBand.CanGrow = true;
page.Bands.Add(dataBand);
// Table
TableObject table = new TableObject();
int rowCount = 500;
int colCount = 6;
table.RowCount = rowCount;
table.ColumnCount = colCount;
for (int j = 0; j < colCount; j++)
{
var cell = table[j, 0];
cell.Text = "Column " + (j + 1);
cell.Font = new Font("Arial", 9, FontStyle.Bold);
cell.FillColor = Color.LightGray;
cell.Border.Lines = BorderLines.All;
}
for (int i = 1; i < rowCount; i++)
{
for (int j = 0; j < colCount; j++)
{
var cell = table[j, i];
cell.Text = $"Row {i} / Col {j + 1}";
cell.Border.Lines = BorderLines.All;
}
}
table.Left = 0;
table.Top = 0;
table.CanBreak = true;
table.CanGrow = true;
dataBand.Objects.Add(table);
dataBand.Height = Units.Centimeters * 0.5f;
return report;
}
Frage:
Gibt es eine zuverlässige Möglichkeit, PageHeaderBand auf jeder Seite drucken zu lassen, wenn ein einzelnes mehrseitiges TableObject verwendet wird? FastReport.NET?
Mobile version