2011-01-11 12 views
1

iReportツールを使用してジャスパー・レポートを作成しました。ここでは、2つのデータ・セットを登録しました.1つはテーブル内のデータをポーリングし、 。ジャスパー・レポート:Javaプログラムから複数のSQL照会を渡す方法

ツールを使用して設定が成功し、レポートが表示されたら適切なデータが表示されます。どのように私はJavaプログラムからクエリを呼び出すしようとすると、私は失われています。これをどう処理すればいいですか?私は自分のプログラムとして持っているサンプルソースコードを1つだけクエリに渡すことができます。私が使用しています

サンプルソースコード:

  Connection conn = getConnection("172.16.88.171", "1522", "orcl", "audi", "audi"); 
     System.out.println("Got jdbc connection..."); 
     Statement stmt = conn.createStatement(); 
     ResultSet rset = stmt.executeQuery("SELECT DB_USER, OS_USER, USERHOST, STATEMENT_TYPE, SQL_TEXT FROM DBA_FGA_AUDIT_TRAIL"); 


     InputStream input = new FileInputStream(new File("E:\\jasper_reports\\sampleADPTemplate_chart.jrxml")); 
     JasperDesign design = JRXmlLoader.load(input); 
     JasperReport report = JasperCompileManager.compileReport(design); 

     JasperPrint print = JasperFillManager.fillReport(report, new HashMap(), conn); 

     OutputStream output = new FileOutputStream(new File("E:\\jasper_reports\\JasperReporttoPDF.pdf")); 
     JasperExportManager.exportReportToPdfStream(print, output); 

これは、単一のクエリを渡します。どのように私は複数のクエリを渡すつもりです。

ありがとうございました。

答えて

3

iReportのjrxmlファイル内にクエリを格納するだけで済みます。レポートを柔軟にするには、パラメータを使用します。これにより、実行時に必要な値をユーザーが定義できるようになります。

ここでは、2つのコンボボックスから2つの値を取得し、HashMapに追加してマップをiReportに渡す例を見ることができます。これらのパラメータは、この例では "storeName"と "actionCode"で、iReport内に格納されているクエリの値を指定するために使用されます。

サブレポート内に複数のクエリを含めることができます。

try { 

    String shopName = jComboBox1.getSelectedItem().toString(); 
    String actionCode = jComboBox2.getSelectedItem().toString(); 

    HashMap<String, Object> map = new HashMap<String, Object>(); 
    map.put("storeName", shopName); 
    map.put("actionCode", actionCode); 

    URL reportFileURL = getClass().getResource("../ireps/AccessCounter.jrxml"); 
    File reportFile = new File(reportFileURL.toURI()); 
    JasperDesign jasperDesign = JRXmlLoader.load(reportFile); 
    JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); 
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, con); 

    JasperViewer jv = new JasperViewer(jasperPrint); 
    JDialog viewer = new JDialog(this, "Batch Report", true); 
    viewer.setBounds(jv.getBounds()); 
    viewer.getContentPane().add(jv.getContentPane()); 
    viewer.setResizable(true); 
    viewer.setIconImage(jv.getIconImage()); 
    viewer.setVisible(true); 

} catch (JRException exc) { 
    System.out.println(exc.getMessage()); 
} catch (URISyntaxException exs) { 
    System.out.println(exs.getMessage()); 
} 
+0

入力いただきありがとうございます。私は新たにジャスパーの報告を調べて、この問題に遭遇しました。私はこの地域でもっと探求して探検します。あなたのこのヒントは私にとってさらに助けになります。再度、感謝します。 – Abdul

関連する問題