Ich versuche gerade, einen Bericht zu erstellen, der eine Tabelle verwendet, um eine einfache Sortierung für die Benutzer zu ermöglichen. Ich habe eine Menge Fragen und Dokumentationen untersucht, aber ich kämpfe immer noch mit der korrekten Methode, den Bericht in JasperSoft Studio zu erstellen. Ich habe es funktioniert auf eine Art, aber es ist sehr langsam und ich bin mir sicher, es ist nicht die richtige Methode, um darüber zu gehen. Hier ist mehr oder weniger, wie ich tue es im Moment:Korrekte Weise, eine Jasper Reports-Tabelle mit Parametern zu verwenden?
<subDataset name="Dataset1" uuid="6926ab77-6601-4046-a16e-ff19290b3c00">
<parameter name="param" class="java.lang.Integer"/>
<queryString>
<![CDATA[select
fields
from table
where column = ($P{param})]]>
</queryString>
<!-- fields -->
<field name="field" class="java.lang.String"/>
</subDataset>
<parameter name="param" class="java.lang.Integer"/>
<queryString>
<![CDATA[select
fields
from table]]>
</queryString>
<summary>
<band height="66">
<componentElement>
<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
<datasetRun subDataset="Dataset1" uuid="933a99f0-f34a-457e-9b90-f641f54fe213">
<datasetParameter name="param">
<datasetParameterExpression><![CDATA[$P{param}]]></datasetParameterExpression>
</datasetParameter>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
</datasetRun>
<jr:column width="100" uuid="ad2b846b-732a-4b83-aec0-959f19ce2972">
<jr:columnHeader style="Table_CH" height="30">
<staticText>
<reportElement x="0" y="0" width="100" height="30" uuid="84616414-4739-471e-b853-7a537e72c959"/>
<text><![CDATA[columnHeader]]></text>
</staticText>
</jr:columnHeader>
<jr:detailCell style="Table_TD" height="30">
<textField>
<reportElement x="0" y="0" width="100" height="30" uuid="bafa83be-5223-4f44-88dd-249256c22a72"/>
<textFieldExpression><![CDATA[$F{field}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
</jr:table>
</componentElement>
</band>
</summary>
Ist es wirklich notwendig, um die Abfrage zweimal ausführen? Wenn ich versuche, eine Abfrage zu entfernen und sie zu umgehen, erhält die Tabelle niemals Daten. Dieses Problem scheint so einfach, es muss eine Methode dazu geben.
Perfekt, genau das, was ich gesucht habe. Ich dachte mir, dass es so eine einfache Lösung geben würde. Ich danke dir sehr! – YamSMit