Установить динамические значения параметров набора данных / значения по умолчанию параметра Mainreport-IREPORT - PullRequest
0 голосов
/ 21 декабря 2011

I Я хочу установить значения параметра в наборе данных, в действительности значения задаются в полях параметров основного отчета, но не заполняются в параметре набора данных, поскольку оба имеют одно и то же имя. Даже если в параметре значения по умолчанию не отображается установка основного параметра отчета значение. Я использую ireport 4.0.2. Так вы можете сказать мне, как динамически устанавливать значения параметров в наборе данных, который я передаю через HashMap.

Заранее спасибо за помощь.

`

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

1 Ответ

0 голосов
/ 22 декабря 2011

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

Я изменил конфигурацию источника данных списка и сопоставил основной параметр отчета для набора данных.

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