2017-06-14 10 views
0

現在、私はJasper Reportsを使って以下の方法でpdfファイルを生成しています。同じjrxml形式の複数のレポートを1つのファイルにまとめる

私は「singlePagePdf.jrxml」として

をjrxmlファイルを作成し、関連するURLが呼び出されたときに、次のように

<bean id="singlePagePdf" 
     class="org.springframework.web.servlet.view.jasperreports.JasperReportsPdfView" 
     p:url="classpath:reports/singlePagePdf.jrxml" 
     p:reportDataKey="datasource"> 
    <property name="headers"> 
     <props> 
      <prop key="Content-Disposition"> 
       attachment; filename=singlePage.pdf 
      </prop> 
     </props> 
    </property> 
</bean> 

は、だから私のコントローラがそれを処理する次のように私は、Beanを宣言しました。

@RequestMapping(value = "/generate-single-pdf", method = RequestMethod.GET) 
    @ResponseBody 
    public ModelAndView generatePageForEmployeePdf(@RequestParam("empId") String employeeId) { 
     List<EmployeeWork> employeeWorkDetails = employeeService.getEmployeeWorkDetails(employeeId); 
     JRDataSource jrDataSource = new JRBeanCollectionDataSource(employeeWorkDetails); 
     Map<String, Object> parameterMap = new HashMap<>(); 
     parameterMap.put("title", "Employee Work Deails"); 
     parameterMap.put("employee", employeeId); 
     parameterMap.put("datasource", jrDataSource); 
     return new ModelAndView("invoicePdf", parameterMap); 
    } 

現時点では、1人の従業員のレポートが正常に生成されます。今私は同じ形式(同じjrxmlファイルを使用して)の従業員のリストのレポートを作成し、単一のpdfファイル(つまり、複数の従業員の作業の詳細レコードを持つPDFファイル)に出力したい。

アイデア?予め

+1

別のjrxmlを使用して、現在のjrxmlをサブレポートとして使用できます。 1人のユーザーをパラメータとして渡す場合は、それ以外の場合のみ印刷されます。それ以外の場合はすべてのユーザーの詳細が印刷されます。 –

+0

ありがとう、@ FahadAnjum。現在、サブレポートパラメータを使用してjrxmlを準備するのが少し難しいとして、私は実際のサンプルを探しています。 – B378

+0

多くの方法があります.1つまたは複数の雇用者、サブレポートを持つクエリをサポートするようにレポートを変更するか、このようなジャスパープリントを追加するだけです。https://stackoverflow.com/q/36929868/5292302 –

答えて

0

おかげで、この記事を参照して下さい: How to collate multiple jrxml jasper reports into a one single pdf output file

としては、上記の記事で説明した、このタスクは、好ましい形式(singlePagePdf.jrxml)を使用して、個々のレポートを生成するためにループを使用することによって達成することができますjprintListに追加して最終出力を取得します。

関連する問題