报表知识库
我要提问

设计器直接打开reportdefine对象


设计器直接打开reportdefine对象


 


一些客户使用润乾报表
做二次开发,在开发的过程中用到了设计器,客户需要在后台通过
java类直接调用润乾的设计器,设计器自动启动,然后打开一张需要的报表
,以便对报表
做编辑。而有些时候客户的报表
模板也是通过程序读取的或者是从数据库中读取出来的,这样需要设计器直接打开的就是一个
reportdefine对象,而不是一个实体的raq文件,下面就介绍一下如何用api启动设计器并直接打开一个reportdefine对象。


首先读取一个reportdefine对象:


String file = “F://qwer.raq”;


   ReportDefine rd = (ReportDefine)ReportUtils.read(file);


 


然后实例化一个FrameMain对象,也就是设计器的主窗口:


FrameMain fm = FrameMain.main0(args);


打开一个报表
的页面编辑器:


SheetEditor sheeteditor = fm.openSheetEditor(“”, false);


注意上面的openSheetEditor()方法第一个参数为空,因为打开的是一个reportdefine对象,没有实体的raq文件,所以第一个参数置空。


完整的使用代码如下:


package com.zhengzhong.practise;


 


import java.awt.event.ActionEvent;


import java.io.File;


import java.io.InputStream;


import java.net.URL;


import java.net.URLConnection;


import java.util.HashMap;


 


import javax.swing.JOptionPane;


import javax.swing.JTabbedPane;


 


import com.runqian.base4.tool.ConfigFile;


import com.runqian.report4.ide.FrameMain;


import com.runqian.report4.ide.GVIde;


import com.runqian.report4.ide.MenuMain;


import com.runqian.report4.ide.SheetEditor;


import com.runqian.report4.ide.configmenu.CMAction;


import com.runqian.report4.ide.dialog.DialogInputFile;


import com.runqian.report4.model.ReportDefine;


import com.runqian.report4.model.engine.ExtCellSet;


import com.runqian.report4.util.ReportUtils;


 


 


public class StartIDE  {


 


       /**


        * @param args


        * @throws Throwable


        */


       public static void main(String[] args) throws Throwable {


              // TODO Auto-generated method stub


           //String []s = new String[3];


           //s[0]= “-Dstart.home=%START_HOME%”;


           //s[1]=”com.runqian.starter.StartUtil”;


           //s[2]=”com.runqian.starter.Report4DesignerProcessor”;


              String file = “F://qwer.raq”;


              ReportDefine rd = (ReportDefine)ReportUtils.read(file);


              FrameMain fm = FrameMain.main0(args);


              SheetEditor sheeteditor = fm.openSheetEditor(“”, false);


              sheeteditor.setReport(rd);


              fm.setVisible(true);


              //MenuMain menu = (MenuMain) GVIde.appMenu;


              //menu.getMenuItem(4);


              //fm.openSheetFile(“C:\\Program Files\\reportHome\\webapps\\demo\\reportFiles\\11.raq”);


        //fm.openSheetFile(file.getPath());


             


       }


      


}


 


直接运行上面的代码,就可以看到报表设计
器自动启动了,并且打开了一张报表,这张报表就是
API中所指定的reportdefine对象,具体效果如下图所示:



 


这样就实现了二次开发过程中使用API调用设计器,然后直接打开reportdefine对象的需求了。