2011-12-21 22 views
0

Iデータセットのパラメータの値を設定する場合は、値はメインレポートのパラメータフィールドに設定されますが、データセットパラメータには設定されません。デフォルト値オプションは、メインレポートのパラメータ値を設定するために表示されていません。私はircport 4.0.2.Soを使用して、HashMapを通過するデータセットのパラメータの値を動的に設定する方法を教えてください。Mainreportパラメータの動的値のデータセットパラメータ/デフォルト値を設定する-IREPORT

ご協力いただきありがとうございます。

` 

<subDataset name="dataset1"> 
     <parameter name="ID" class="java.lang.Integer" isForPrompting="false"> 
      </parameter> 
     <queryString> 
      <![CDATA[select FIELD_LABEL,MONTHLY,ANNUAL,SUM FROM SALARY_DETAILS WHERE CANDIDATE_ID=$P{ID}]]> 
     </queryString> 
     <field name="FIELD_LABEL" class="java.lang.String"/> 
     <field name="MONTHLY" class="java.lang.Integer"/> 
     <field name="ANNUAL" class="java.lang.Integer"/> 
     <field name="SUM" class="java.lang.Integer"/> 
    </subDataset> 
` 

<parameter name="CANDIDATE_ID" class="java.lang.Integer"/> 
    <queryString> 
     <![CDATA[SELECT FIRST_NAME,LAST_NAME,DATE_OF_JOINING ,DESIGNATION,LABEL,SUM 
FROM CANDIDATE C 
LEFT JOIN PROFILE_INFO PI ON PI.ID = C.PROFILE_ID 
LEFT JOIN LEVELS L ON PI.LEVEL_ID = L.ID 
LEFT JOIN SALARY_DETAILS SD ON SD.CANDIDATE_ID = C.ID 
WHERE C.ID=$P{CANDIDATE_ID} GROUP BY C.ID=$P{CANDIDATE_ID}]]> 
    </queryString> 
    <field name="FIRST_NAME" class="java.lang.String"/> 
    <field name="LAST_NAME" class="java.lang.String"/> 
    <field name="DATE_OF_JOINING" class="java.sql.Date"/> 
    <field name="DESIGNATION" class="java.lang.String"/> 
    <field name="LABEL" class="java.lang.String"/> 
    <field name="SUM" class="java.lang.Integer"/> 

final String driverClass = "com.mysql.jdbc.Driver"; 
      final String connectionURL = "jdbc:mysql://localhost:3306/mydb"; 
      final String userID = "root"; 
      final String userPassword = "root"; 
      HashMap<String, Integer> map = new HashMap<String, Integer>(); 
      map.put("CANDIDATE_ID",1); 
      map.put("ID",1); 
      Connection con = null; 
      Class.forName(driverClass).newInstance(); 
      con = DriverManager.getConnection(connectionURL, userID,userPassword); 
      InputStream input = new FileInputStream(new File(
        "/home/user/Desktop/OfferLetter.jrxml")); 
      JasperDesign design = JRXmlLoader.load(input); 
      JasperReport report = JasperCompileManager.compileReport(design); 
      JasperPrint print = JasperFillManager.fillReport(report,map, con); 

      OutputStream pdfOP = new FileOutputStream(new File(
        "/home/user/Desktop/OfferLetter.pdf")); 

      JasperExportManager.exportReportToPdfStream(print, pdfOP); 
      pdfOP.close(); 
      con.close(); 
+0

iReport(GUIテンプレートデザイナー)またはJasperReports APIについてお話ししていますか?パラメータまたはデータソースを設定しますか? –

+0

こんにちはアレックス..あなたの返信に感謝しています...それはiReportのGUIテンプレートデザインのデータセットです。私は1つのパラメータを作成しましたが、私は動的に値を入力したいのですが、hasmapを介して値を入力している間はデータセットパラメータです。大文字と小文字のメインレポートパラメータは、ハッシュマップを通じて値を入力しています。私はメインレポートクエリで2つのクエリ1を使用しています、そして、データセットクエリでもう1つ使用しています。データセットクエリでは、メインレポートパラメータ値としてデフォルト値を設定しようとしていますが、パラメータ名を表示していません。 – Anil

+0

テンプレートとコードを投稿できますか? –

答えて

0

私はそれが何かを助けることを願っています。

リストデータソース設定を変更し、データセットのメインレポートパラメータをマッピングしました。

Right Click on List(component) -> Edit list(Component) -> Data source -> use connection expression -->Add parameter and map with default value of main report. 
関連する問題