2015-01-28 4 views
0

я упомянул this ссылку для создания отчета в веб-браузере через сервлетНевозможно создать отчет 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(); 

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

ответ

0

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

OutputStream outputStream = response.getOutputStream(); 
response.setContentType("application/pdf"); 
response.setHeader("Content-disposition","attachment;filename="+filename); 
report.toPdf(OutputStream); 
OutputStream.flush(); 
OutputStream.close(); 
Смежные вопросы