⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reportstarter.java

📁 compiere 报表源码,可以在ECLIPSE 下运行和编译,报表是与IREPORT一起使用
💻 JAVA
字号:
/**
 *   reportServer for JasperReport.
 *   Copyright (C) 2004  Peter Shen.
 *   Shanghai, China.
 *   Email: zpshen@gmail.com
 *
 *   This library is free software; you can redistribute it and/or
 *   modify it under the terms of the GNU Lesser General Public
 *   License as published by the Free Software Foundation; either
 *   version 2.1 of the License, or (at your option) any later version.
 *
 *   This library is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *   Lesser General Public License for more details.
 *
 *   You should have received a copy of the GNU Lesser General Public
 *   License along with this library; if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 *   Contributor: Marco LOMBARDO, Compilo subAdministrator.
 *                lombardo@mayking.com, mar9000@gmail.com
 *                Italy.
 **/
package net.sf.compilo.report;

import net.sf.compilo.interfaces.ReportServer;
import net.sf.compilo.interfaces.ReportServerHome;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;

import org.compiere.db.CConnection;
import org.compiere.process.SvrProcess;

import java.rmi.RemoteException;
import java.util.Properties;

import javax.naming.InitialContext;

/**
 *  ReportStarter
 *
 * 	@author 	Peter Shen
 * 	@version 	$Id: ReportStarter.java,v 1.4 2005/08/04 09:42:42 pshen Exp $
 *	@description:	Process Class for generating the JasperReports
 */
public class ReportStarter extends SvrProcess
{
    private static ReportServer server;
    private Properties m_ctx = null;
    
    protected void prepare ()
    {    
        try
        {        	
        	if(server == null)
        	{        		
        		InitialContext ic = CConnection.get().getInitialContext(false);
						
        		if (ic != null)
        		{
        			ReportServerHome reportServerHome = (ReportServerHome)ic.lookup (ReportServerHome.JNDI_NAME);
        			if (reportServerHome != null)
        				server = reportServerHome.create();
        		}
        	}        	
        }
        catch (RemoteException re)
        {
        	log.saveError("ReportStarter.startProcess: Can not run report - ", re);
        	
        }        
        catch (Exception ex)
		{
        	 log.saveError("ReportStarter.startProcess: Can not run report - ", ex);            
		}             
    }
    

    protected String doIt () throws Exception
    {
        if(server == null)
    	{
    	    log.finer("ReportStarter.startProcess Cannot find the Application Server");
    	    return "ReportStarter.startProcess Cannot find the Application Server";
    	}
        
        try
        {   
            JasperPrint jasperPrint = server.runReport(this.getCtx(), this.getProcessInfo());
        	if(jasperPrint == null)
        	{
        		log.finer("ReportStarter.startProcess Cannot process JasperPrint Object");
        		return "ReportStarter.startProcess Cannot process JasperPrint Object";
        	}
            
        	log.finer( "ReportStarter.startProcess run report -"+jasperPrint.getName());
        	
        	JasperViewer jasperViewer = new JasperViewer(jasperPrint, false);
            jasperViewer.setVisible(true);
            jasperViewer.show();
        }        
        catch (JRException e)
        {
            log.saveError("ReportStarter.startProcess: Can not run report - ", e);
            return e.getMessage();
        }
        catch (Exception ex)
		{
        	 log.saveError("ReportStarter.startProcess: Can not run report - ", ex);
        	 return ex.getMessage();
		}
        return "";
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -