设计器直接打开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对象的需求了。