Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > ireport подотчет


Автор: izver84 11.4.2012, 15:30
Здрасте, возник вопрос.
Есть база на postgresql.
Есть программа на java "Прием заказов".
Нужно сделать такой отчет:
Название фирм выдуманы.

-------------------------------------------------------
| Отчет № 1 |
-------------------------------------------------------
клиент | сумма заявки | тонаж |
-------------------------------------------------------
"Солнечные дни" | 2000.00 | 150 |
-------------------------------------------------------
"Шоколадный рай" | 1000.00 | 60 |
-------------------------------------------------------
.....................................................................
.....................................................................
-------------------------------------------------------
"Ананас" | 5000.00 | 20 |
-------------------------------------------------------

Пользователь нажимает на "Шоколадный рай" и ему высвечивается другой отчет, который отображает какую продукцию заказал данный потребитель.

Такое вообще реально сделать? 

Автор: alex_nevolin 12.4.2012, 09:27
Как препологается выводить отчет?
Если это html то можно сделать drill down через Hyperlink
http://jasperforge.org/uploads/publish/jasperreportswebsite/trunk/samples.html

Автор: izver84 12.4.2012, 12:48
Цитата(alex_nevolin @ 12.4.2012,  09:27)
Как препологается выводить отчет?
Если это html то можно сделать drill down через Hyperlink
http://jasperforge.org/uploads/publish/jasperreportswebsite/trunk/samples.html

Програма на яве 
Есть класс Ip
Код

package Sbit;
import java.sql.SQLException;
public class Ip {
public static String ip="ip adress";
}


Также есть класс  DBConnector  соеденеие с сервером баз данных
Код

package Sbit;

//import java.awt.Container;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
import java.util.Vector;
import javax.swing.table.AbstractTableModel;


public class DBConnector {
    public Connection connection; 
    public static Connection getConnection() {
        // TODO Автоматически созданная заглушка метода
        //return null;
        Connection connection = null;

        if (connection != null) {
        return connection;
        }
        Driver d;
        try{
        //    Class.forName(”org.gjt.mm.mysql.Driver”).newInstance()
            d = (Driver)Class.forName("org.postgresql.Driver").newInstance();
        }
        catch (Exception e) {
            System.out.println("Error 1");
            System.out.println(e.getStackTrace());
        }
        String ip="";
        Ip Ip = new Ip();
        ip=Ip.ip;
        try{
            if (connection==null){
        connection = DriverManager.getConnection("jdbc:postgresql://"+ip+":5432/database", "user", "password");
    
            }
        }
        catch(SQLException e)
        {
            System.out.println(e.getMessage());
        }
        return connection;
    }
    

    
//------------------------------------------------------
}




Также есть класс  Ireport формирование очета, отображение в JasperDesign
Код

package Sbit;


import java.awt.Dimension;
import java.io.InputStream;
import java.sql.Connection;
import java.util.HashMap;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
public class Ireport {
public    String sourceFileName; 
public    HashMap parameters = new HashMap();
public void ireport(){     
try {
   JasperDesign jasperDesign = JRXmlLoader.load(sourceFileName);
    JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

    Connection conn = DBConnector.getConnection(); 
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,parameters, conn);   
    JasperViewer.viewReport(jasperPrint,false);
      
   
} catch (JRException ejr) {

    ejr.printStackTrace();

}
}
}




Вызов отчета
Код

                  Ireport ir =new Ireport();    
                    ir.sourceFileName="name.jrxml";                                        
                    ir.ireport();
        


Отображаеться вот такой отчет
http://radikal.ru/F/s019.radikal.ru/i625/1204/fb/a769673300ba.png.html

Выбераем клиента, появляеться вот такой отчет 
http://radikal.ru/F/s019.radikal.ru/i627/1204/ee/f3de7fca2599.png.html

Автор: Ares4322 14.5.2012, 15:14
Понятно, что на программа на Java)
Формат вывода отчета какой(PDF, HTML, cvs)?
В HTML можно ссылки вставить определенного формата и при переходе по ним выдавать то, что нужно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)