我需要使用JasperReports报告打印条形码标签。我有正确的设计贾斯珀报告,我可以预览它使用iReport。但是,当我通过Java应用程序将参数传递给jasper报告时,条形码报告永远不会生成。
使用以下代码
//Print barcode
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = (Connection)
DriverManager.getConnection("jdbc:mysql:///miracleposdb", "root", "mysql");
String reportSource = "../src/reports/barcode.jrxml"; /* Report Path*/
Map<String, Object> params = new HashMap<String, Object>();
params.put("printid", lblbarcodeID.getText());
JasperReport jasperReport = JasperCompileManager.compileReport(reportSource); /*Compiling */
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,
params, DB.MiraclePOS.connect()); /*Filling report*/
JasperViewer.viewReport(jasperPrint, false); /*For Print*/
} catch (Exception e) {
}发布于 2012-05-08 07:48:52
如果您查看jrxml文件,条形码部分应该如下所示:
在我的例子中,我使用了barcode4j
<componentElement>
<reportElement x="353" y="42" width="200" height="50"/>
<jr:Code39 xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" textPosition="bottom">
<jr:codeExpression>
<![CDATA[$P{printid}]]>
</jr:codeExpression>
</jr:Code39>
</componentElement>我使用netbean报告查看器来生成PDF视图,它为我工作。
注:
当您使用iReport拖放条形码时,jrxml的barcode部分应该有空CDATA:
<![CDATA[]]>如果在这种情况下生成PDF,那么barcord就不会出现,因为没有值。
还要确保使用iReport设置参数。
希望这能有所帮助。
https://stackoverflow.com/questions/9313735
复制相似问题