- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
背景:Jaspersoft studio 6.
有这个交叉表:
交叉表的数据集:
select 'prod1' as prod, 'mon1' as month, 1 as val
union all select 'prod1' as prod, 'mon2' as month, 1 as val
union all select 'prod2' as prod, 'mon1' as month, 1 as val
union all select 'prod2' as prod, 'mon2' as month, 1 as val
union all select 'prod3' as prod, null as month, null as val
问题:您可能已经注意到,prod3 没有与 mon1 或 mon2 相关的数据。但我仍然需要它显示在报告中。因此,Jasper 创建了空列。我怎样才能摆脱空列?我尝试过在不同地方为空时为空或在空白时删除行,但没有任何效果。即使在某些时候我可以摆脱空文本,但单元格仍在呈现,因此边框和背景颜色仍然显示。
和源文件(只有一个行组和一个列组的交叉表):
<?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="test" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="d00fbad1-be1e-4544-b22f-6dca803b6714">
<style name="Crosstab_CH" mode="Opaque" backcolor="#F0F8FF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="Crosstab_CT" mode="Opaque" backcolor="#005FB3">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="Crosstab_CD" mode="Opaque" backcolor="#FFFFFF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<queryString>
<![CDATA[select 'prod1' as prod, 'mon1' as month, 1 as val
union all select 'prod1' as prod, 'mon2' as month, 1 as val
union all select 'prod2' as prod, 'mon1' as month, 1 as val
union all select 'prod2' as prod, 'mon2' as month, 1 as val
union all select 'prod3' as prod, null as month, null as val]]>
</queryString>
<field name="prod" class="java.lang.String"/>
<field name="month" class="java.lang.String"/>
<field name="val" class="java.lang.Integer"/>
<summary>
<band height="229" splitType="Stretch">
<crosstab ignoreWidth="true">
<reportElement x="10" y="14" width="520" height="116" isRemoveLineWhenBlank="true" uuid="bb1bb352-1dab-438b-b2c8-b73286af3a9c">
<property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/>
</reportElement>
<rowGroup name="prod1" width="60">
<bucket class="java.lang.String">
<bucketExpression><![CDATA[$F{prod}]]></bucketExpression>
</bucket>
<crosstabRowHeader>
<cellContents mode="Opaque" style="Crosstab_CH">
<textField>
<reportElement x="0" y="0" width="60" height="20" uuid="d56c7426-8030-4919-8869-86129c230a48"/>
<textFieldExpression><![CDATA[$V{prod1}]]></textFieldExpression>
</textField>
</cellContents>
</crosstabRowHeader>
<crosstabTotalRowHeader>
<cellContents mode="Opaque" style="Crosstab_CT">
<staticText>
<reportElement x="0" y="0" width="60" height="20" forecolor="#FFFFFF" uuid="ef3d9aab-f696-48c4-b95b-6be099951c55"/>
<text><![CDATA[Total prod1]]></text>
</staticText>
</cellContents>
</crosstabTotalRowHeader>
</rowGroup>
<columnGroup name="month1" height="20">
<bucket class="java.lang.String">
<bucketExpression><![CDATA[$F{month}]]></bucketExpression>
</bucket>
<crosstabColumnHeader>
<cellContents mode="Opaque" style="Crosstab_CH">
<textField isBlankWhenNull="false">
<reportElement x="0" y="0" width="60" height="20" uuid="f8dca50f-1f98-425b-bc4e-8a9505901477"/>
<textFieldExpression><![CDATA[$V{month1}]]></textFieldExpression>
</textField>
</cellContents>
</crosstabColumnHeader>
<crosstabTotalColumnHeader>
<cellContents mode="Opaque" style="Crosstab_CT">
<staticText>
<reportElement x="0" y="0" width="60" height="20" forecolor="#FFFFFF" uuid="4960b0b9-4df7-4216-908e-e042ccf2e3a6"/>
<text><![CDATA[Total month1]]></text>
</staticText>
</cellContents>
</crosstabTotalColumnHeader>
</columnGroup>
<measure name="val_MEASURE1" class="java.lang.Integer" calculation="Sum">
<measureExpression><![CDATA[$F{val}]]></measureExpression>
</measure>
<crosstabCell width="60" height="20">
<cellContents mode="Opaque" style="Crosstab_CD">
<textField isBlankWhenNull="false">
<reportElement x="0" y="0" width="60" height="20" uuid="d207dcd9-1db6-4adb-a7ba-1b539fa06993"/>
<textFieldExpression><![CDATA[$V{val_MEASURE1}]]></textFieldExpression>
</textField>
</cellContents>
</crosstabCell>
<crosstabCell width="60" height="20" columnTotalGroup="month1">
<cellContents mode="Opaque" style="Crosstab_CT">
<textField>
<reportElement x="0" y="0" width="60" height="20" forecolor="#FFFFFF" uuid="59ff8664-202c-4ec7-966c-93c30b372202"/>
<textFieldExpression><![CDATA[$V{val_MEASURE1}]]></textFieldExpression>
</textField>
</cellContents>
</crosstabCell>
<crosstabCell width="60" height="20" rowTotalGroup="prod1">
<cellContents mode="Opaque" style="Crosstab_CT">
<textField>
<reportElement x="0" y="0" width="60" height="20" forecolor="#FFFFFF" uuid="686e7851-9a94-4cbe-aac1-60703fdfc049"/>
<textFieldExpression><![CDATA[$V{val_MEASURE1}]]></textFieldExpression>
</textField>
</cellContents>
</crosstabCell>
<crosstabCell width="60" height="20" rowTotalGroup="prod1" columnTotalGroup="month1">
<cellContents mode="Opaque" style="Crosstab_CT">
<textField>
<reportElement x="0" y="0" width="60" height="20" forecolor="#FFFFFF" uuid="acbe85bf-5cea-40d3-9951-cb0de8baa353"/>
<textFieldExpression><![CDATA[$V{val_MEASURE1}]]></textFieldExpression>
</textField>
</cellContents>
</crosstabCell>
</crosstab>
</band>
</summary>
</jasperReport>
最佳答案
好的,问题解决了。与 Jasper 无关(它是一个很好的工具,但老实说它只是缺少一些功能)。解决方案是简单地给 prod3 一个列组和 0 值。关键是任何组字段都没有空值,因此 Jasper 无法生成空组。对于这种情况,只需提供任何现有组成员(mon1 或 mon2)的 prod3 值和 0 值。对于一个真实的案例,必须有一些 sql 困惑才能实现这一点,但这比使用 jasper 进行黑客攻击要容易得多。
select 'prod1' as prod, 'mon1' as month, 1 as val
union all select 'prod1' as prod, 'mon2' as month, 1 as val
union all select 'prod2' as prod, 'mon1' as month, 1 as val
union all select 'prod2' as prod, 'mon2' as month, 1 as val
union all select 'prod3' as prod, 'mon1' as month, 0 as val
关于jasper-reports - Jasper 报告删除/隐藏空组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37949758/
我有一个在旧版 iReport 3.0 中构建的 JRXML 报告,现在我想将其更新到较新的 iReport 4.7。 这样做的步骤是什么,请解释一下? 最佳答案 您可以使用位于 jasperserv
我的问题是,即使该行是空白的,它仍然占据了 band 高度的空间,因此在下一个 band 之前有比平时更大的间隙。 我的 jasper 文件中的乐队看起来像这样:
我在使用 Eclipse JasperReports Studio 时遇到了一个我无法解决的问题。我有一个非常基本的报告,其中包含返回大约 30 行的详细信息字段。我有一个要合并到主报告中的子报告,但
我有一个包含许多列但只有几行的交叉表。当我生成报告时,交叉表会重用一页中行下方的空白空间,并为相同的行呈现下一列。这样,几页被垂直压缩在一页上: 我想要第 天的列20 到天 27 (交叉表的第二部分)
我们正在使用 jaspersoft studio 创建报告,但我被困在查询部分。 从逻辑上讲,我想要的查询类型是: select * from mytable where
我想在 ireport 中创建多个组,并且数据应该以分组方式显示。例如: 首先应该完全打印 Group1 数据,然后, 第一组: 模块数据 在此之后我想完全打印 Group2 数据 组2: 类别数据
我有一个 Jasper 报告,它有一个详细信息部分,在详细信息部分内有一个来自数据库的打印字段。因此,如果我的查询返回 100 行,我会得到 100 行,这会生成一个大约 10 页长的报告,因为 10
我正在使用 Jasper 报告。我有一个页眉、详细信息和摘要带。页眉在所有页面上重复,但有时只有摘要部分移到最后一页,因为详细信息在此之前的页面中结束。标题不打印在最后一页,即摘要页。 有人知道为什么
这个问题在这里已经有了答案: How to pass ArrayList to JasperReports? (3 个回答) 上个月关闭。 如何创建将在详细信息部分迭代 arraylist 的报告,该
我有一个包含两个框架的 columnHeader 带。 如果参数为 TRUE,则第一帧必须可见,如果参数为 FALSE,则第二帧必须可见。 所以我只想显示一帧。 我按顺序放置了两帧。可见性还可以,但是
我在 jasper 报告中有一个表格,我需要该表格中某些单元格的内容垂直对齐。 我正在尝试使用 iReport 编辑报告。 在 iReport 中,我可以进入单元格的属性并看到垂直对齐设置为“中间”。
我正在尝试生成包含表格的报告。这些是 jrxml 的重要部分:
我想为文本字段绘制一个虚线底部边框,以多行显示其内容。 例如: Address: 104th Street, - - - - - - - - - - -- - - - - - - -
我在 Maven 中使用 Jasper Reports 5.2.0 和 Spring MVC。 我已经使用 JasperViewer 完成了报告,但突然出现了无法解决的错误: net.sf.jaspe
我想将图像嵌入到我的JasperReports jrxml文件中。我有这个目录结构。 Tomcat Root webapps reports -->images --> compa
我有三个不同的查询,并希望根据 jasper 报告中获取的值运行它们。查询是在 Jrxml 文件本身中编写的。如何根据不同的动态值运行不同的查询。 喜欢(这只是一个 sudo 代码) If($(a)
以下是一些演示问题的屏幕截图:首先,这是没有列表元素的设计: 这是该报告的结果(注意有两页): 现在如果我添加列表元素,设计如下: 这是摘要带的 jrxml:
我们的一份报告经常运行,其中包含大约 14,000 名司机。 参数的架构(在父报表中)如下所示: 选择(在子报表中)的 where 子句如下所示: and $X{IN, cast(e.l
背景:Jaspersoft studio 6. 有这个交叉表: 交叉表的数据集: select 'prod1' as prod, 'mon1' as month, 1 as val u
我想问一下。如何在 中的段落后添加中断一个文本字段 . 例如, 报告是为传达信息的特定目的而制作的文本作品(通常是写作、演讲、电视或电影)。 像这样:- "A report is a textual
我是一名优秀的程序员,十分优秀!