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

时间:2018-03-20 21:12:50

标签: jasper-reports jasperserver

我想在定义它的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>

1 个答案:

答案 0 :(得分:0)

@Siddharth在评论中指出并由同事向我建议,有一种方法可以在用户界面之外指定控件的标签。

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

有关XML文件的示例,请首先将报表发布到JasperReports Server上的某个位置。出于此示例的目的,报告文件名为report.jrxml,位置为path/to/your; JasperReports Server似乎将您的报告发布到path/to/your/report/Main jrxml(根据JasperSoft Studio资源库资源管理器)或path/to/your/report(根据JasperReports服务器Web UI)。

其次,从JasperReports Server(via the Web UIvia the command line)导出报告; JasperReports Server将生成一个包含以下内容的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服务器。如果你通过命令行导入,我建议导入目录,而不是zip文件 - 看起来命令行导入是关于zip格式的挑剔。此外,如果通过命令行导入,则必须重新启动JasperReports服务器,然后才能运行更改的报告。

相关问题