我有一个 条形码 报告,该报告使用序列( Oracle 后端)生成我的 条形码 编号。
这是在我的查询:
SELECT to_char(PALLET_ID_NO_SEQ.nextval) FROM dual
我将此字段放置在设计器窗口中,该窗口将显示 条形码 值。
我有一个带有表情的图像:
new com.pepkorit.BarbecueRotateRenderer(
net.sourceforge.barbecue.BarcodeFactory.createCode128C(
$F{TO_CHAR(PALLET_ID_NO_SEQ.NEXTVAL)}), false, true, 1, 50, 190, 50)
以上是使用序列值的 条形码 。
我希望能够说打印/生成100或更多报告。目前,我一次只能生成一份报告。
因此,我的第一个猜测是获取一个提示用户输入值的参数,该值将指示要打印的 条形码 数量,每个 条形码 都有一个单独的编号。
我不确定我关于解决此问题的想法是否正确以及如何做到。
有人可以帮忙吗?
只需对查询进行少量修改即可轻松完成,而无需通过几种方式进行编程。
您可以使用单个报告的模板在 一个 报告中生成多个条形码。
在这种情况下, queryString 表达式(适用于 Oracle DB)将如下所示:
SELECT seq_barcode.nextval AS barcode, rownum FROM dual CONNECT BY LEVEL <= $P{quantity}
-它会根据需要多次从序列中生成一个值。的 $ P {量} 参数确定要生成的行(条形码)的数量。
工作的 rjxml 文件:
<jasperReport ...>
<parameter name="quantity" class="java.lang.Integer">
<defaultValueExpression><![CDATA[20]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[SELECT seq_barcode.nextval AS barcode, rownum FROM dual CONNECT BY LEVEL <= $P{quantity}]]>
</queryString>
<field name="BARCODE" class="java.lang.Integer"/>
<field name="ROWNUM" class="java.lang.Integer"/>
<title>
<band height="82" splitType="Stretch">
<textField>
<reportElement x="145" y="18" width="240" height="20"/>
<textElement/>
<textFieldExpression><![CDATA["The number of barcodes is: " + $P{quantity}]]></textFieldExpression>
</textField>
</band>
</title>
<detail>
<band height="47" splitType="Stretch">
<componentElement>
<reportElement x="145" y="10" width="200" height="28"/>
<jr:barbecue xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" type="2of7" drawText="false" checksumRequired="false">
<jr:codeExpression><![CDATA[$F{BARCODE}]]></jr:codeExpression>
</jr:barbecue>
</componentElement>
</band>
</detail>
</jasperReport>
结果将是( $ P {quantity} == 5 ):
在您的情况下, queryString 表达式将如下所示:
SELECT to_char(PALLET_ID_NO_SEQ.nextval) AS barcode, rownum FROM dual CONNECT BY LEVEL <= $P{quantity}
条形码 组件的表达式为:
new com.pepkorit.BarbecueRotateRenderer(
net.sourceforge.barbecue.BarcodeFactory.createCode128C($F{barcode}),
false, true, 1, 50, 190, 50)
您可以使用与第一个解决方案相同的 queryString 表达式。 rownum 上的group 字段将帮助我们生成
单个 报告,其中包含多个属于其自身组的条形码(一组-一个条形码)。所述 条形码 组分应放置到 组页眉 带。
使用 isStartNewPage 属性,我们可以管理是否在新页面上生成组。
该 rjxml 文件:
<jasperReport ...>
<parameter name="quantity" class="java.lang.Integer">
<defaultValueExpression><![CDATA[20]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[SELECT seq_barcode.nextval AS barcode, rownum FROM dual CONNECT BY LEVEL <= $P{quantity}]]>
</queryString>
<field name="BARCODE" class="java.lang.Integer"/>
<field name="ROWNUM" class="java.lang.Integer"/>
<group name="rownumGroup" isStartNewPage="true">
<groupExpression><![CDATA[$F{ROWNUM}]]></groupExpression>
<groupHeader>
<band height="50">
<componentElement>
<reportElement x="145" y="11" width="200" height="28"/>
<jr:barbecue xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" type="2of7" drawText="false" checksumRequired="false">
<jr:codeExpression><![CDATA[$F{BARCODE}]]></jr:codeExpression>
</jr:barbecue>
</componentElement>
</band>
</groupHeader>
</group>
<title>
<band height="82" splitType="Stretch">
<textField>
<reportElement x="145" y="18" width="240" height="20"/>
<textElement/>
<textFieldExpression><![CDATA["The number of barcodes is: " + $P{quantity}]]></textFieldExpression>
</textField>
</band>
</title>
</jasperReport>
如果对于 rownumGroup* 组为 isStartNewPage =“ false” ,则结果为( $ P
{quantity} == 7
): __*
如果对于 rownumGroup* 组为 isStartNewPage =“ true” ,则结果为( $ P
{quantity} == 5
): __*
我们可以将 Subreport 组件添加到 Detail区域 ( 请参阅第一个解决方案 )或 Group Header (
请参阅第二个解决方案 )区域。在这种情况下,您不仅可以将 条形码 组件添加到子报表中,还可以添加所需的所有内容。
我有一个使用JSF和PrimeFaces开发的项目。我需要用Jasper在PDF上显示条形码。我怎样才能做到这一点?
我是Jasper报告的新手。我有一个包含2组的报告。根据查询,正在打印多页。 第一组高度 - 95分,第二组高度 - 144分 我希望这些多页打印在一页中(我希望一页中包含5页)。每页高度为239点。(即使页面内容小于239分,我希望将剩余部分保留为空白,并在239分后开始下一页)。我尝试创建一个报告,并将上述报告作为子报告,并设置主报告的高度为1195(239*5)点。尽管如此,这些都被打印在不
https://docs.gradle.org/current/userguide/jacoco_plugin.html 并使用Gradle过滤JaCoCo覆盖报告 但没有发现任何线索 以下是gradle文件的内容 下面看我自己的答案
我现在一筹莫展。 请求代码收集在一个ArrayList中,这样当程序退出时,另一个函数可以清除所有警报。 现在的问题是:我的警报器打不响。我能够找到这个函数的错误。AlarmManager实例很好。我在底部设置了一个测试警报(在带有星号的行之后)。着火了。为什么???
我的POM现在看起来像, 这将生成一个报告,但仅使用最后一个功能。我有多个跑步者,所以我试图找出: A.如何将多个JSON组合成一个报告或 B.当每个测试完成时,我如何附加到一个JSON文件上? 这两种方法似乎都是可行的解决方案,但我更喜欢一种,因为我在pom.xml中似乎只遗漏了一行,因为我目前已经生成了多个JSON文件
我想在多个浏览器中运行同一组测试用例。为此,我将测试(每个测试针对单个浏览器)放在testng xml的一个套件下。运行之后,我从testng获得一个html报告,如果其中一个浏览器中出现测试失败,它在报告中不可见。还有别的办法吗?