首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将JSON文件指定为JasperStarter的数据源?

如何将JSON文件指定为JasperStarter的数据源?
EN

Stack Overflow用户
提问于 2017-03-01 10:10:03
回答 1查看 823关注 0票数 0

我使用命令行中的JasperStarter,使用process (pr)命令运行Jasper报告。JasperStarter的版本为3.1.0,键入jasperstarter --help时显示有一个--json-query选项。我唯一能找到的文档是:

按下

它用于3.0.0 (并且没有--json-query选项)。

我需要提供一个JSON文件作为报表的数据源,但无法看到这是如何实现的。我尝试了以下几点,但都没有成功:

代码语言:javascript
复制
jasperstarter.exe pr -f pdf -o MyReportName MyReportTemplate --json-query MyJson.json

我如何告诉JasperStarter使用JSON文件作为数据源?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-16 09:58:45

这就是JasperStarter 3.1.0二进制文件对我有用的地方:

jasperstarter.exe pr -t json --json-query "Northwind.Customers" --data-file northwind.json -f pdf -o ReportOutput JsonCustomersReport.jrxml

我已经将JsonCustomersReport.jrxmlnorthwind.json放在运行命令的同一个文件夹中。

JsonCustomersReport.jrxml是来自JasperReports json数据源示例的一个修改版本(我已经删除了指定JSON文件、查询字符串和子报表声明的属性):

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="JsonCustomersReport" pageWidth="595" pageHeight="842" columnWidth="515" leftMargin="40" rightMargin="40" topMargin="50" bottomMargin="50" uuid="bbe115b5-a5a0-4b39-9b73-7092dc59ab6d">
    <style name="Sans_Normal" isDefault="true" fontName="DejaVu Sans" fontSize="12" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false"/>
    <style name="Sans_Bold" fontName="DejaVu Sans" fontSize="12" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false"/>
    <style name="Sans_Italic" fontName="DejaVu Sans" fontSize="12" isBold="false" isItalic="true" isUnderline="false" isStrikeThrough="false"/>
    <field name="CustomerID" class="java.lang.String">
        <property name="net.sf.jasperreports.json.field.expression" value="CustomerID"/>
    </field>
    <field name="CompanyName" class="java.lang.String">
        <property name="net.sf.jasperreports.json.field.expression" value="CompanyName"/>
    </field>
    <title>
        <band height="50">
            <line>
                <reportElement x="0" y="0" width="515" height="1" uuid="fc148b4e-50df-4a12-aa14-8505a4cfa6e1"/>
            </line>
            <staticText>
                <reportElement style="Sans_Normal" x="0" y="10" width="515" height="30" uuid="5bf7651c-cd6b-4eaf-b65a-1413d60faab0"/>
                <textElement textAlignment="Center">
                    <font size="22"/>
                </textElement>
                <text><![CDATA[Customer Orders Report]]></text>
            </staticText>
        </band>
    </title>
    <pageHeader>
        <band height="21">
            <staticText>
                <reportElement style="Sans_Bold" mode="Opaque" x="0" y="5" width="515" height="15" forecolor="#FFFFFF" backcolor="#333333" uuid="da0f1cad-f552-424b-bf19-b41cabbfa4ac"/>
                <text><![CDATA[Customer Order List]]></text>
            </staticText>
        </band>
    </pageHeader>
    <detail>
        <band height="50">
            <textField>
                <reportElement style="Sans_Bold" x="5" y="5" width="100" height="15" isPrintWhenDetailOverflows="true" uuid="0aaeed6e-7ba1-4ab9-be59-d6ca702995fc"/>
                <textFieldExpression><![CDATA[$F{CustomerID}]]></textFieldExpression>
            </textField>
            <staticText>
                <reportElement style="Sans_Bold" isPrintRepeatedValues="false" x="404" y="5" width="100" height="15" isPrintWhenDetailOverflows="true" uuid="68e08f51-8c24-4c85-95f3-616e40c8ddab"/>
                <text><![CDATA[(continued)]]></text>
            </staticText>
            <line>
                <reportElement x="0" y="20" width="515" height="1" isPrintWhenDetailOverflows="true" uuid="6d76c22c-329f-4e77-a886-8580d3cb6bc1"/>
            </line>
            <textField>
                <reportElement style="Sans_Bold" x="109" y="5" width="291" height="15" isPrintWhenDetailOverflows="true" uuid="9a4a0a5d-4b75-4d2b-a647-aa495101df48"/>
                <textFieldExpression><![CDATA[$F{CompanyName}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <pageFooter>
        <band height="40">
            <line>
                <reportElement x="0" y="10" width="515" height="1" uuid="1371178a-a590-4616-affe-a4e1a24bcc84"/>
            </line>
            <textField>
                <reportElement x="200" y="20" width="80" height="15" uuid="3eb302d8-0855-4f82-a666-3c9628dce372"/>
                <textElement textAlignment="Right"/>
                <textFieldExpression><![CDATA["Page " + String.valueOf($V{PAGE_NUMBER}) + " of"]]></textFieldExpression>
            </textField>
            <textField evaluationTime="Report">
                <reportElement x="280" y="20" width="75" height="15" uuid="86f46fca-dbcb-4a60-b2f7-f8da6a4224f7"/>
                <textFieldExpression><![CDATA[" " + String.valueOf($V{PAGE_NUMBER})]]></textFieldExpression>
            </textField>
        </band>
    </pageFooter>
</jasperReport>

northwind.json也是来自JasperReports json数据源示例的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42528805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档