Einige Benutzer bevorzugen es, Tabellen zu erstellen, indem sie die Tab-Breite anpassen, oder sie müssen eine Tabelle in einem Format erstellen, das sie nicht unterstützt.
In früheren Versionen von FastReport .NET hatte RichObject die Möglichkeit, die Tab-Breite in einer Zeile zu steuern, aber alle Größen nach dem ersten Tabulieren waren gleich. In der aktuellen Version wurde dies behoben und es ist nun möglich, die Größe für jedes Tabulatorzeichen einzustellen.
Eine neue Eigenschaft für das Textobjekt ermöglicht TabPositions Ihnen, die Tab-Breite festzulegen. Sie wird bei der Konvertierung eines RichObjects verwendet. Sie können die Breite von Tabulatorzeichen jetzt auf zwei Arten steuern:
– über den Code, indem die Breite der einzelnen Tabulatorzeichen für jede TextObject-Zeile festgelegt wird;
– durch Laden des fertigen Dokuments in RichObject.
Diese Eigenschaft kann im Designer vorübergehend nicht bearbeitet werden. Wenn es mehr Tabulatorzeichen als Breitenwerte gibt, wird die Tabulatorgröße normal sein, und wenn es mehr Werte als Tabulatorzeichen gibt, werden die überschüssigen Breitenwerte nicht angewendet.
Original-RTF-Dokument:
So sah es in der letzten Version aus:
In der aktuellen Version:
//create instance of class Report Report report = new Report(); //create report page ReportPage pageBase = new ReportPage(); //create data band DataBand dataBand = new DataBand(); //create text object TextObject textObject = new TextObject(); //set the text value textObject.Text = "1\t2\t3\t4"; //set width for every symbol tab in centimeters textObject.TabPositions = new FloatCollection() { Units.Centimeters * 2.5f, Units.Centimeters * 3.5f, Units.Centimeters * 5 }; //add the text object to data band textObject.Parent = dataBand; //set generated name textObject.CreateUniqueName(); //set the text object bounds textObject.Bounds = new RectangleF(0, 0, Units.Centimeters * 15, Units.Centimeters * 0.5F); //create one more text object TextObject textObject2 = new TextObject(); textObject2.Text = "5\t6\t7\t8"; textObject2.TabPositions = new FloatCollection() { Units.Centimeters * 2.5f, Units.Centimeters * 3.5f, Units.Centimeters * 5 }; textObject2.Parent = dataBand; textObject2.CreateUniqueName(); textObject2.Bounds = new RectangleF(0, Units.Centimeters * 1, Units.Centimeters * 15, Units.Centimeters * 0.5F); //create one more text object TextObject textObject3 = new TextObject(); textObject3.Text = "9\t10\t11\t12"; textObject3.TabPositions = new FloatCollection() { Units.Centimeters * 2.5f, Units.Centimeters * 3.5f, Units.Centimeters * 5 }; textObject3.Parent = dataBand; textObject3.CreateUniqueName(); textObject3.Bounds = new RectangleF(0, Units.Centimeters * 2, Units.Centimeters * 15, Units.Centimeters * 0.5F); //add the band to band collection pageBase.Bands.Add(dataBand); //add created page to report page collection report.Pages.Add(pageBase); //show report report.Show();
Mit den neuen Erweiterungen können Sie also RichObject und TextObject in eine Alternative zum Table-Objekt verwandeln.