FastReport.NET – PageHeaderBand wird bei mehrseitigem TableObject nicht wiederholtC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 FastReport.NET – PageHeaderBand wird bei mehrseitigem TableObject nicht wiederholt

Post by Anonymous »

Ich arbeite mit FastReport.NET in einem WinForms-Projekt und habe ein TableObject, das sich über mehrere Seiten erstreckt. (Keine Datentabellen, keine Berichtsdefinitionen)
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;
}
Ich möchte einen echten Seitenkopf (wie PageHeaderBand), der oben auf jeder Seite automatisch wiederholt wird, selbst wenn der Inhalt nur ein großes TableObject ist, das sich über mehrere Seiten erstreckt.
Frage:
Gibt es eine zuverlässige Möglichkeit, PageHeaderBand auf jeder Seite drucken zu lassen, wenn ein einzelnes mehrseitiges TableObject verwendet wird? FastReport.NET?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post