1

私は、メインのクエリと、独自のQueryを持つテーブル(サブデータセットを含む)を含むメイン レポートを持っています。

メイン レポートのクエリを指定する方法は知っていますが、作成レポートの Java コードでサブデータセットのクエリを指定する方法がわかりません。

誰でも助けてくれませんか?

私のコード:

public static java.sql.Connection cx = Connexion.SetConOn();

public static void Create report(String Query, String model, String title, String art) {
    try {
        JRDesignQuery jrd = new JRDesignQuery();
        JasperDesign design = JRXmlLoader.load(model);
        jrd.setText(Query);
        design.setQuery(jrd);
        Map map = new HashMap();
        JasperReport etat = JasperCompileManager.compileReport(design);
        JasperPrint print = JasperFillManager.fillReport(etat, map, cx);
        File f = new File("C:\\" + fdg);
        f.mkdir();
        JasperExportManager.exportReportToPdfFile(print, f.getPath() + "\\" + title + ".pdf");
        JasperViewer jv = new JasperViewer(print, false, Locale.FRENCH);

        try {
            java.awt.image.BufferedImage bi = javax.imageio.ImageIO.read(jv.getClass().getResource("/cycloplan/Images/Burn-icon1.png"));
            javax.swing.ImageIcon myImg = new javax.swing.ImageIcon(bi);
            jv.setIconImage(myImg.getImage());

        } catch (java.io.IOException ex) {
            ex.printStackTrace();
        }

        jv.setTitle(title);
        jv.setAlwaysOnTop(true);
        jv.setVisible(true);
    } catch (JRException ex) {
        ex.printStackTrace();
    }
}
4

1 に答える 1

1

このJasperDesignクラスには、サブデータセットにアクセスするいくつかの異なる方法があります。javadoc [リンク]を見てください。サブデータセット クエリを設定するには、次のコードが機能するはずsubQueryStringですdatasetName

JRDesignQuery subQuery = new JRDesignQuery();
subQuery.setText(subQueryString);
Map<String, JRDataset> datasetMap = design.getDatasetMap();
JRDesignDataset subDataset = (JRDesignDataset) datasetMap.get(datasetName);
subDataset.setQuery(subQuery);

(* このコードは実際にテストしていません。YMMV)

于 2012-09-26T11:59:28.070 に答える