Ich habe eine ziemlich grundlegende Vorlage in .jrxml, die Kreuztabellenelement mit Header und eine Zelle enthält.dynamische Spaltenbreite mit Jaspis-Bericht
Ich verwende Kreuztabelle, weil ich dynamische Anzahl von Spalten habe. Ich gebe Datenquelle als Parameter von der Bohne, also kenne ich eine Anzahl von Spalten kurz vor Berichterstellung. Ich möchte Spalten mit "dynamischer" Breite.
Ich versuche, vorhandene jrxml zu lesen und dann die Spaltenbreite basierend auf der Anzahl der Spalten direkt vor der Berichterstellung zu reparieren.
Bis jetzt habe ich herausgefunden, wie man Datei lädt und und ich bekomme richtige Band (ich weiß, es ist immer Sekunde) und richtige Element (DynamicCrosstab). Ich kann nicht herausfinden, wie man die Spaltenbreite einstellt.
Mein aktueller Code:
JasperDesign template = JRXmlLoader.load("C:\\repos\\templateFile.jrxml");
JRBand[] bands = template.getAllBands();
//getting crosstab
JRElement element = bands[1].getElementByKey("dynamicCrosstab");
if (element instanceof JRCrosstab) {
//missing code to get cells and set width
}
//compiling template before using it to generate report
JasperCompileManager.compileReportToFile(template, "C:\\repos\\templateFile.jasper");
Tnx für jede Hilfe im Voraus.
Sie können stattdessen [DynamicJasper] (http://dynamicjasper.com/) in Betracht ziehen. –