简体   繁体   English

无法从DynamicReports生成报告

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM