我是jasper的初学者,正在编写一份报告,其中我只需要在表格中存在数据时显示表格的标题。我目前在我的jrxml中有以下代码片段:
<frame>
<reportElement stretchType="ContainerHeight" x="240" y="37" width="110" height="52" uuid="some-uuid">
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<staticText>
<reportElement positionType="Float" x="0" y="0" width="110" height="16" uuid="some-uuid">
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement>
<font size="12" isBold="true"/>
</textElement>
<text><![CDATA[EMPLOYEES]]></text>
</staticText>
<componentElement>
<reportElement positionType="Float" x="0" y="16" width="110" height="16" isRemoveLineWhenBlank="true" uuid="some-uuid">
<property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/>
</reportElement>
<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="employeesDataSet" uuid="some-uuid">
<dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("employees")]]></dataSourceExpression>
</datasetRun>
<jr:column width="110" uuid="some-uuid">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column1"/>
<jr:detailCell height="16">
<textField isStretchWithOverflow="true">
<reportElement style="paragraph" stretchType="ElementGroupHeight" x="0" y="0" width="110" height="16" isRemoveLineWhenBlank="true" uuid="some-uuid"/>
<textElement markup="html">
<font size="12"/>
</textElement>
<textFieldExpression><![CDATA["<B>" +($F{type} != null ? $F{type} : "") + "</b> " + ($F{result} != null ? $F{result} : "") + ", " + ($F{value} != null ? $F{value} : "") + " " + ($F{unit} != null ? $F{unit} : "")]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
</jr:table>
</componentElement>
</frame>
将数据写入报表的JSON如下所示:
"employees": [
{
"type": "HR",
"result": "1",
"value": "Positive"
},
{
"type": "MD",
"result": "3",
"value": "Positive"
}
]
如何仅在存在数据时显示静态标头EMPLOYEES
,而在JSON中没有数据时不显示任何内容?
我已尝试添加<代码>
<printWhenExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("employees") != null]]></printWhenExpression>
我已经找到了解决方案,并将其发布在这里,以便其他面临类似问题的人可以参考。
要检查json数组是否有更多元素,请使用next()方法。这句话对我有用:
<printWhenExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("employees").next()]]></printWhenExpression>
其他条件,抱歉,当购物车是空的时候,购物车中没有物品不打印
问题内容: 只是试图在视图中显示我通过ajax从控制器获取的数组,但它显示的是[object Object],[object Object]而不是array。请在下面检查我的js文件: 问题答案: 使用转换到。 试试这个: 我认为,这对您有帮助-
六羟甲基三聚氰胺六甲醚。。在某些情况下,我有一个对象需要在hazelcast实例上执行操作。所以我实现了HazelcastInstanceAware接口,但这似乎不适用于嵌套类。。。 以下核心输出"null"到控制台: 公共类NullError实现可序列化,HazelcastInstanceAware{私有瞬态HazelcastInstance instance1;私有瞬态HazelcastIns
我想知道如何为不同对象的数组指定JSON模式。这个线程给了我一半的答案,但当我有每种类型的对象的多个实例时,它就失败了。 下面是一个基于这里给出的示例的示例XML,但是重复了“product”对象:- 下面的模式将只在每种类型都有单个实例时(例如,如果“product”只出现一次)验证上面的XML。 为了增加娱乐性,我不能使用像“anyof”这样的关键字,因为我要将这个模式嵌入到一个Swagger
问题内容: 我需要用车把一个json对象数组模板化:(通过chrome控制台)[object,object,object,object]其中每个对象都由以下属性组成:名称,姓氏,ecc。 我知道不可能将对象数组放在车把中,但是我们必须创建具有数组所有对象的all属性的唯一对象。谁能建议我一个函数来创建它 问题答案: 您可以在调用模板时将数组设置为包装对象的属性。 例如,以作为持有财产 并且您的模板
null null null