栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何打印多个带有条形码的报告或一个报告中的多个条形码

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何打印多个带有条形码的报告或一个报告中的多个条形码

只需对查询进行少量修改即可轻松完成,而无需通过几种方式进行编程。

解决方案1.将单个报告与明细栏中的条形码组件一起使用

您可以使用单个报告的模板在 一个 报告中生成多个条形码。

在这种情况下, queryString 表达式(适用于 Oracle DB)将如下所示:

SELECt seq_barpre.nextval AS barpre, rownum FROM dual ConNECT BY LEVEL <= $P{quantity}

-它会根据需要多次从序列中生成一个值。的 $ P {量} 参数确定要生成的行(条形码)的数量。

工作的 rjxml 文件:

<jasperReport ...>    <parameter name="quantity" >        <defaultValueexpression><![CDATA[20]]></defaultValueexpression>    </parameter>    <queryString>        <![CDATA[SELECt seq_barpre.nextval AS barpre, rownum FROM dual ConNECT BY LEVEL <= $P{quantity}]]>    </queryString>    <field name="BARCODE" />    <field name="ROWNUM" />    <title>        <band height="82" splitType="Stretch"> <textField>     <reportElement x="145" y="18" width="240" height="20"/>     <textElement/>     <textFieldexpression><![CDATA["The number of barpres 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:preexpression><![CDATA[$F{BARCODE}]]></jr:preexpression>     </jr:barbecue> </componentElement>        </band>    </detail></jasperReport>

结果将是( $ P {quantity} == 5 ):


在您的情况下, queryString 表达式将如下所示:

SELECt to_char(PALLET_ID_NO_SEQ.nextval) AS barpre, rownum FROM dual ConNECT BY LEVEL <= $P{quantity}

条形码 组件的表达式为:

new com.pepkorit.BarbecueRotateRenderer(    net.sourceforge.barbecue.BarpreFactory.createCode128C($F{barpre}),    false, true, 1, 50, 190, 50)

解决方案2.使用组头带

您可以使用与第一个解决方案相同的 queryString 表达式。 rownum 上的group 字段将帮助我们生成
单个 报告,其中包含多个属于其自身组的条形码(一组-一个条形码)。所述 条形码 组分应放置到 组页眉 带。

使用 isStartNewPage 属性,我们可以管理是否在新页面上生成组。

rjxml 文件:

<jasperReport ...>    <parameter name="quantity" >        <defaultValueexpression><![CDATA[20]]></defaultValueexpression>    </parameter>    <queryString>        <![CDATA[SELECt seq_barpre.nextval AS barpre, rownum FROM dual ConNECT BY LEVEL <= $P{quantity}]]>    </queryString>    <field name="BARCODE" />    <field name="ROWNUM" />    <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:preexpression><![CDATA[$F{BARCODE}]]></jr:preexpression>         </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 barpres is: " + $P{quantity}]]></textFieldexpression> </textField>        </band>    </title></jasperReport>

如果对于 rownumGroup* 组为 isStartNewPage =“ false” ,则结果为( $ P
{quantity} == 7
):
__*

如果对于 rownumGroup* 组为 isStartNewPage =“ true” ,则结果为( $ P
{quantity} == 5
):
__*

解决方案3.使用子报表

我们可以将 Subreport 组件添加到 Detail区域请参阅第一个解决方案 )或 Group Header
请参阅第二个解决方案 )区域。在这种情况下,您不仅可以将 条形码 组件添加到子报表中,还可以添加所需的所有内容。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/419049.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号