Не удается создать отчет из DynamicReports

Я ссылался на эту ссылку для создания отчета в веб-браузере через сервлет

Но мой код не работает

Вот мой код

           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();

Я заполняю отчет из базы данных, которая работает нормально, но отчет не отображается в веб-браузере.


person Nishant123    schedule 28.01.2015    source источник


Ответы (1)


Я также столкнулся с той же проблемой, и у меня сработал следующий код.

OutputStream outputStream = response.getOutputStream();
response.setContentType("application/pdf");
response.setHeader("Content-disposition","attachment;filename="+filename);
report.toPdf(OutputStream);
OutputStream.flush();
OutputStream.close();
person sanguine    schedule 31.03.2015