(二)精通Jaspersoft Studio:利用JSON数据源创建动态主子报表

报表模板

一、创建json数据源

1、Json文件

{
    "full_list_no": "FW202501001",
    "delivery_list": [
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        },
        {
            "id": "1234567891000000002",
            "listNo": "202501001",
            "projId": "1234567891000000001",
            "fullListId": "1234567891000000000",
            "num": 1,
            "sapMaterialAmount": 1200,
            "contNo": "HT202501010001",
            "produceCode": "C01-1001-001",
            "projName": "江西储能设备维修改造项目",
            "saleOrdLineProjNo": 20,
            "materialNo": "100012345",
            "productionOrder": "10000007541",
            "saleOrderNo": "100000011",
            "projAmount": 10000.10
        }
    ]
}

2、创建数据源

二、创建主报表

1、创建主报表

2、添加报表数据源

预览数据

3、添加表头

将表格抬头拖到Title中

添加静态文本

删除多余的部分,只保留 Title 、Page Footer 和 Detail 1

三、创建子报表

1、创建子报表文件

拖动子报表到Detail中

2、选择子报表数据源

3、绘制表头

绘制表头,拖动StaticText到PageHeader,组件放在左上角,依次排序

组件加上边框

4、制作序号

拖动 Text Field 到Detail 1中,制作自动序号

设置这个Text Field的表达式,以便它能够显示递增的序号

双击刚刚添加的Text Field,设置Edit Expression

$V{REPORT_COUNT}.toString()

预览下效果

5、绘制表格内容

拖动Fields中的字段到制定位置,设置边框,字体,位置等

四、主子模板关联

1、主模板添加参数subPath

切换至主模板,并创建参数

2、Subreport配置Expression,Data source Express

Expression

$P{subPath}+"delivery_detail.jasper"

Data source Express

((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("delivery_list")

五、编译预览

1、编译子主报表

先编译子报表

再编译主报表

然后预览

输入子报表的路径,注意最后加“\”,然后回车

C:\Users\10870004\JaspersoftWorkspaceV2\MyReports\

2、导出pdf文件

【问题】

导出pdf中文字体不显示

【解决】

在studio中添加字体

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rainbow酱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值