我需要使用JasperReports
报告打印条形码标签。我已经正确设计了Jasper报告,我可以使用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) {
}
答案 0 :(得分:0)
如果查看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 report viewer来生成PDF视图,它对我有用。
注意:强>
使用iReport拖放条形码时,jrxml的条形码部分应为空CDATA:
<![CDATA[]]>
如果在这种情况下生成PDF,则由于没有值,因此不会显示条形码。
还要确保使用iReport设置参数。
希望这有帮助。