powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Просветите немного
3 сообщений из 3, страница 1 из 1
Просветите немного
    #33975085
Фогель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня вот встала Задача: необходимо генерировать на построенной странице отчета данные из БД с возможностью просмотра отчета и его отправки на печать,итак данные такие:
Работник Сумма
Иванов 100
Петров 200

Я читал на форуме что для это имеются два средства IReport и JasperReport, но
как пользоваться JasperReport не понимаю, вот нарыл примерчик :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
 package  nl.amis.jasper.test;

 import  java.sql.Connection;
 import  java.sql.SQLException;
 import  java.util.HashMap;
 import  java.util.Map;

 import  net.sf.jasperreports.engine.JRException;
 import  net.sf.jasperreports.engine.xml.JRXmlLoader;
 import  net.sf.jasperreports.engine.JasperCompileManager;
 import  net.sf.jasperreports.engine.JasperFillManager;
 import  net.sf.jasperreports.engine.JasperExportManager;
 import  net.sf.jasperreports.engine.JasperPrint;
 import  net.sf.jasperreports.engine.JasperReport;
 import  net.sf.jasperreports.engine.design.JasperDesign;
 import  net.sf.jasperreports.view.JasperViewer;
 import  nl.amis.database.Database;

 public   class  EmpDeptReport {

         public   static   void  main(String[] args) {
//                 First, load JasperDesign from XML and compile it into JasperReport
                 try  {
                        JasperDesign jasperDesign = JRXmlLoader.load("EmpDeptReport.xml");
                        JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

//                 Second, create a map of parameters to pass to the report.
                        Map parameters =  new  HashMap();
                        parameters.put("Title", "EmpDept JasperReport");
                        
//                 Third, get a database connection
                         Connection conn = Database.getConnection(); 

//                 Fourth, create JasperPrint using fillReport() method
                        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, 
                                           parameters, conn);

//                 You can use JasperPrint to create PDF
                        JasperExportManager.exportReportToPdfFile(jasperPrint, "EmpDeptReport.pdf");

//                 Or to view report in the JasperViewer
                        JasperViewer.viewReport(jasperPrint);
                }  catch  (JRException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }  catch  (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
        }
}

0) Не мог бы кто разъяснить что здесь к чему, в частности файл EmpDeptReport.xml - это я так понимаю можно получить в IReport, а можно ли вручную, если да, то зачем тогда этот IReport нужен ?

1) И вообще вот я построил фрейм самый обычный, есть на нем кнопка "Сформировать отчет" - юзер на ней нажимает и дальше по идее должен генерироваться отчет - который в моем понимании должен иметь кнопки -"Просмотр" и "Печать" - а при использовании Jasperreports какой вид отчета генерируется ?

2) Как вот класс, созданный в моем вышевыложенном примере прикрутит к фрему этому - просто в обработке от нажатия кнопки создавать класс EmpDeptReport() или как ?) - а как вот класс, созданный в моем вышевыложенном примере прикрутит к фрему этому - просто в обработке от нажатия кнопки создавать класс EmpDeptReport() или как ?


И вообще может кто интересные ссылки выложит или книжки, чтобы разобраться?
...
Рейтинг: 0 / 0
Просветите немного
    #33975116
Dremmm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
посмотри JFreeReport, он умеет с TableModel и ResultSet'ом работать
к нему и графический редактор есть, т.е который создает xml-ку по куторой формируется отчет
...
Рейтинг: 0 / 0
Просветите немного
    #33975590
Фогель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо глянул но вот только в какие классы импортировать надо для его работы, я импортирую только
import org.jfree.report.modules.misc.referencedoc.ObjectReferenceGenerator;
но несмотря на это он в упор не видит почти все мои классы, все jar-ки вроде подключил к проекту (работаю в JBuilder)
вот собсна мой примерчик
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
 import  org.jfree.report.modules.misc.referencedoc.ObjectReferenceGenerator;

 public   class  My {

   public  My() {
  }

   public   void  executeReport (){ 
  
    URL in = getClass().getResource("patient.xml"); 
     if  (in ==  null ) 
    { 
       try  { 
         throw   new  ReportDefinitionException("URL is invalid"); 
     }  catch  (ReportDefinitionException e1) { 
        e1.printStackTrace(); 
     } 
    } 
  
     try  
    { 
       final  ReportGenerator generator = ReportGenerator.getInstance(); 
      JFreeReport report = generator.parseReport(in); 
      report.setData (data); 
  
       final  PreviewDialog frame =  new  PreviewDialog(report); 
      frame.pack(); 
      RefineryUtilities.positionFrameRandomly(frame); 
      frame.setVisible(true); 
    } 
     catch (Exception e) 
    { 
       try  { 
         throw   new  ReportDefinitionException("Parsing failed", e); 
     }  catch  (ReportDefinitionException e1) { 
        e1.printStackTrace(); 
     } 
    } 
  } //end of executeReport() 
  
    public   static   void  main ( final  String[] args) 
    { 
      // initialize JFreeReport 
      JFreeReportBoot.getInstance().start(); 
      executeReport(); 
  } 

}



Чувствую еще классов каких-то импортировать нужно ... но ума не приложу какие!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Просветите немного
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]