在 jrxml 文件中设置输入控件的名称。可能吗?

Set the name of an input control in a jrxml file. Is it possible?

我想在定义它的 jrxml 文件中设置输入控件的名称;这可能吗?

我知道如何通过 Jaspersoft Studio 中的 Repository Explorer 设置输入控件的名称,我知道如何通过 Jaspersoft Server 设置输入控件的名称。

但是,我想在 jrxml 文件中设置输入控件的名称,以便在发布到服务器时自动设置。有没有一个属性可以用,类似下面的:

<parameter name="status_date_minimum" class="java.sql.Date">
  <property name="some.property.key" vhalue="Minimum Status Date"/>
  <defaultValueExpression><![CDATA[java.sql.Date.valueOf(java.time.LocalDate.now().minusYears(10).withMonth(1).withDayOfMonth(1))]]></defaultValueExpression>
</parameter>

正如@Siddharth 在评论中指出的和 co-worker 向我建议的那样,有一种方法可以在用户界面之外指定控件的标签。

JasperReports Server 将每个报告与一个 XML 文件相关联,该文件似乎是在将您的报告发布到服务器时创建的。 XML 文件包含任何输入控件的标签等信息。

对于 XML 文件的示例,首先将您的报告发布到 JasperReports Server 上的某个位置。就此示例而言,报告文件名为 report.jrxml,位置为 path/to/your; JasperReports Server 似乎将您的报告发布到 path/to/your/report/Main jrxml(根据 JasperSoft Studio Repository Explorer)或 path/to/your/report(根据 JasperReports Server Web UI)。

其次,从 JasperReports Server 导出您的报告 (via the Web UI or via the command line); JasperReports 服务器将生成一个包含以下内容的 zip 文件:

/index.xml
/resources/path/.folder.xml
/resources/path/to/.folder.xml
/resources/path/to/your/.folder.xml
/resources/path/to/your/report.xml
/resources/path/to/your/report_files/main_jrxml.data

main_jrxml.data 包含来自 report.jrxml 的数据; report.xml 包含任何输入控件的标签。 report.xml的内容可能类似于下面这样:

<?xml version="1.0" encoding="UTF-8"?>
<reportUnit exportedWithPermissions="true">
    <folder>/resources/path/to/your</folder>
    <name>report</name>
    <version>2</version>
    <label>report</label>
    <description></description>
    <creationDate>2018-03-21T18:12:41.759-04:00</creationDate>
    <updateDate>2018-03-21T18:48:35.602-04:00</updateDate>
    <mainReport>
        <localResource
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                exportedWithPermissions="false" dataFile="main_jrxml.data" xsi:type="fileResource">
            <folder>/resources/path/to/your/report_files</folder>
            <name>main_jrxml</name>
            <version>4</version>
            <label>Main jrxml</label>
            <creationDate>2018-03-21T18:12:41.759-04:00</creationDate>
            <updateDate>2018-03-21T18:48:35.410-04:00</updateDate>
            <fileType>jrxml</fileType>
        </localResource>
    </mainReport>
    <inputControl>
        <localResource
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                exportedWithPermissions="false" xsi:type="inputControl">
            <folder>/resources/path/to/your/report_files</folder>
            <name>status_date_minimum</name>
            <version>1</version>
            <label>status_date_minimum</label>
            <creationDate>2018-03-21T18:48:35.602-04:00</creationDate>
            <updateDate>2018-03-21T18:48:35.602-04:00</updateDate>
            <type>2</type>
            <mandatory>false</mandatory>
            <readOnly>false</readOnly>
            <visible>true</visible>
            <dataType>
                <localResource exportedWithPermissions="false" xsi:type="dataType">
                    <folder>/resources/path/to/your/report_files/status_date_minimum_files</folder>
                    <name>myDatatype</name>
                    <version>0</version>
                    <label>myDatatype</label>
                    <creationDate>2018-03-21T18:48:35.602-04:00</creationDate>
                    <updateDate>2018-03-21T18:48:35.602-04:00</updateDate>
                    <type>3</type>
                    <strictMin>false</strictMin>
                    <strictMax>false</strictMax>
                </localResource>
            </dataType>
        </localResource>
    </inputControl>
    <inputControl>
        <localResource
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                exportedWithPermissions="false" xsi:type="inputControl">
            <folder>/resources/path/to/your/report_files</folder>
            <name>status_date_maximum</name>
            <version>1</version>
            <label>status_date_maximum</label>
            <creationDate>2018-03-21T18:48:35.602-04:00</creationDate>
            <updateDate>2018-03-21T18:48:35.602-04:00</updateDate>
            <type>2</type>
            <mandatory>false</mandatory>
            <readOnly>false</readOnly>
            <visible>true</visible>
            <dataType>
                <localResource exportedWithPermissions="false" xsi:type="dataType">
                    <folder>/resources/path/to/your/report_files/status_date_maximum_files</folder>
                    <name>myDatatype</name>
                    <version>0</version>
                    <label>myDatatype</label>
                    <creationDate>2018-03-21T18:48:35.602-04:00</creationDate>
                    <updateDate>2018-03-21T18:48:35.602-04:00</updateDate>
                    <type>3</type>
                    <strictMin>false</strictMin>
                    <strictMax>false</strictMax>
                </localResource>
            </dataType>
        </localResource>
    </inputControl>
    <alwaysPromptControls>true</alwaysPromptControls>
    <controlsLayout>1</controlsLayout>
</reportUnit>

您可以编辑 reportUnit/inputControl/localResource/label 元素的内容来更改标签的名称。

编辑后,您可以将数据导入JasperReports Server。如果通过命令行导入,我建议导入目录,而不是 zip 文件 - 命令行导入似乎对 zip 格式很挑剔。此外,如果您通过命令行导入,则必须先重新启动 JasperReports 服务器,然后才能 运行 更改后的报告。