Я вызываю эту функцию из формы предварительного просмотра отчета панели.Отчет Jasper слишком долго открывается
демо: Main Panel - [который называет] - ReportSelectionDialog (Frame) - [который открывает] Отчет (Frame)
проблема заключается в том, что когда я открываю отчет непосредственно из MainPanel
демо: Основная панель - - отчет (кадр)
JasperFillManager занимает всего лишь секунду, чтобы заполнить отчет, но когда я делаю первую демонстрацию, для заполнения отчета понадобилось JasperFillManager 20-30 секунд. Я проверил необходимые параметры (соединение, карту параметров), и они были загружены сразу после открытия ReportSelectionDialog. Мне нужен ReportSelectionDialog, но я не хочу так долго ждать, чтобы открыть отчет. Пожалуйста помоги. Вот мой код для загрузки отчета. Есть ли другой способ заполнить отчеты. А также есть способ просто загружать файл .jasper вместо компиляции отчета каждый раз?
private void openReport(){
String reportFile = getFileName(reportList.getSelectedValue().toString());
FileInputStream fs = null;
try {
fs = new FileInputStream(reportPath+reportFile);
JasperDesign jasperDesign = JRXmlLoader.load(fs);
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);
javax.swing.JFrame jframe = new javax.swing.JFrame();
jframe.setIconImage(Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("/timsoftware/images/timlogo.png")));
jframe.getContentPane().add(new JRViewer(jasperPrint));
jframe.pack();
jframe.setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH);
jframe.setVisible(true);
} catch (FileNotFoundException | JRException | HeadlessException e) {
clsErrorHandler.printError(e.toString(), panelName, "PrintRecord");
} finally {
try {
fs.close();
} catch (IOException ex) {
Logger.getLogger(ReportPreviewForm.class.getName()).log(Level.SEVERE, null, ex);
}
}
this.dispose();
}
В большинстве случаев для открытия требуется менее 30-40 секунд. Поэтому я не думаю, что мы можем быстро загрузить его, поскольку у него есть данные для обработки и обновления их в отчете. – Addicted