[英]Cannot generate report from DynamicReports
I referred this link to generate report in web browser through servlet 我引用了此链接以通过servlet在Web浏览器中生成报告
But my code isn't working 但是我的代码不起作用
Here is my code 这是我的代码
response.setContentType("application/pdf");
OutputStream outputstream = response.getOutputStream();
try {
StyleBuilder boldStyle = stl.style().bold();
StyleBuilder boldCenteredStyle = stl.style(boldStyle)
.setHorizontalAlignment(HorizontalAlignment.CENTER);
StyleBuilder columnTitleStyle = stl.style(boldCenteredStyle)
.setBorder(stl.pen1Point())
.setBackgroundColor(Color.LIGHT_GRAY);
StyleBuilder CenteredStyle = stl.style().setHorizontalAlignment(HorizontalAlignment.CENTER);
StyleBuilder titleStyle = stl.style(boldStyle).setFontSize(15);
JasperReportBuilder report = DynamicReports.report();//a new report
TextColumnBuilder<Integer> rowNumberColumn = col.reportRowNumberColumn("No.").setStyle(CenteredStyle);
TextColumnBuilder<java.util.Date> columndate = col.column("Date", "Date_Of_Sale", type.dateType()).setStyle(CenteredStyle);
TextColumnBuilder<String> columnItem = col.column("Item Name", "Item_Name", type.stringType()).setStyle(boldStyle);
TextColumnBuilder<String> columnCustomer = col.column("Customer Name", "Customer_name", type.stringType()).setStyle(CenteredStyle);
TextColumnBuilder<Double> columnunit = col.column("Unit Price", "Item_Price", type.doubleType()).setStyle(CenteredStyle);
TextColumnBuilder<Integer> columnqty = col.column("Qty", "Item_qty", type.integerType()).setStyle(CenteredStyle);
TextColumnBuilder<BigDecimal> columnsub = columnqty.multiply(columnunit).setTitle("Subtotal").setStyle(CenteredStyle);
ColumnGroupBuilder itemGroup = grp.group(columnItem);
report
.columns(
rowNumberColumn,columnCustomer,columndate,columnunit,columnqty,columnsub
)
.title(//title of the report
Components.text("Sale Report").setStyle(titleStyle))
.setColumnTitleStyle(columnTitleStyle)
.highlightDetailEvenRows()
.pageFooter(Components.pageXofY().setStyle(boldCenteredStyle))//show page number on the page footer
.setDataSource(createDataSource(from,to));
report.groupBy(itemGroup).subtotalsAtFirstGroupFooter(sbt.sum(columnunit).setStyle(boldCenteredStyle),sbt.sum(columnsub).setStyle(boldCenteredStyle))
.subtotalsAtSummary(sbt.sum(columnunit).setStyle(boldCenteredStyle),sbt.sum(columnsub).setStyle(boldCenteredStyle));
report.toPdf(outputstream);
}
catch(DRException e)
{
e.printStackTrace();
}
outputstream.flush();
outputstream.close();
I am populating the report from database which is working fine but the report is not getting displayed in Web Browser 我正在从工作正常的数据库中填充报告,但该报告未在Web浏览器中显示
I was also facing the same issue and following code worked for me. 我也面临着同样的问题,下面的代码为我工作。
OutputStream outputStream = response.getOutputStream();
response.setContentType("application/pdf");
response.setHeader("Content-disposition","attachment;filename="+filename);
report.toPdf(OutputStream);
OutputStream.flush();
OutputStream.close();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.