这段时间用Jasper画报表,讲真的Jasper IDE真的很难用,网上找很久都没找到用table画的配置方法,以下是直接操作源码画table的方法,不用IDE一样可以做出来(不过样式还是得借助IDE拖拽调整容易些),以下是简要介绍,如果你对Jasper比较熟悉,只需得知table数据源的配置方式可以跳过前面的直接看table设置:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.4.0.final using JasperReports Library version 6.4.1 -->
<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="CC_RESULT_INV" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uu/>
</reportElement>

以下是本文的关键 table 如果你对其他很熟悉只需看这里和上面的count_result_inv数据配置和数据的使用格式即可
<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="count_result_inv" uu>datasetRun>

(以下是table里的结构 列名和对应的参数设置)
<jr:column width="40" uu/>
</band>
</summary>
</jasperReport>

我的数据格式:

 

{
"po": {
"countNum": "123456789",
"startCountTime": "1000",
"endCountTime": "1000",
"printUser": "1000",
"printTime": "1000",
details:
[
{
"num": "1",
"ownerCode": "OW2913221",
"ownerName": "张三",
"barcode": "SKU201708250822",
"skuName":"好商品不要用选",
"size": "102",
"color": "红",
"styleNum": "25",
"brand": "1000",
"lot": "1000",
"loc": "1000",
"lpn": "1000",
"caseNum": "1",
"systemQty": "100",
"qty": "10",
"diffQty": "-90",
"countTime": "1000"
},
{
"num": "1",
"ownerCode": "OW2913221",
"ownerName": "张三",
"barcode": "SKU201708250822",
"skuName":"好商品不要用选",
"size": "102",
"color": "红",
"styleNum": "25",
"brand": "1000",
"lot": "1000",
"loc": "1000",
"lpn": "1000",
"caseNum": "1",
"systemQty": "100",
"qty": "10",
"diffQty": "-90",
"countTime": "1000"
}]
}
}

报表效果:Jasper之table报表

相关文章: