◆ 背景说明与实现思路
润乾报表设计器提供的菜单项可以由用户自定义,用户可以追加一些菜单项,也可以替换一些现有的菜单项。目前可以追加菜单项的有文件菜单、编辑菜单、报表菜单、填报菜单、工具菜单、帮助菜单或重定向系统菜单。
菜单的定制包括两个步骤:1、写程序实现菜单的功能2、增加菜单按钮
自定义菜单类必须继承com.raqsoft.report.ide.configmenu.CMAction,实现其public void actionPerformed(ActionEvent e)方法,该类有两个保护变量:
protected String argument;
protected ICMHandler handler;
argument 即在配置菜单按钮时配置文件指定的argument字符串
handler 即ICMHandler,这是一个润乾报表提供的消息处理类,程序员可以通过这个接口发送消息以获取到自己想得到的一些东西。
◆ com.raqsoft.report.ide.configmenu.ICMHandler
public Object processMessage(String desc, Object argument); //此方法供程序员发送消息并接收返回值
desc 消息的简短描述,大小写无关
argument 传给润乾报表
返回值 润乾报表执行消息后返回给程序员的想要得到的东西
另外:润乾报表设计器中com.raqsoft.report.ide.GVIde是一静态类,里面包含了润乾报表设计器IDE的界面组成构件,用户可以直接访问该类的属性以获取自己感兴趣的IDE构件。
可以访问的构件说明:
1. appMenu :设计器的主菜单对象。类型(JMenu)
2. dsActive :当前活动的数据源定义,类型(com.raqsoft.report.ide.base.DataSource)
3. dsModel :数据源列表定义,类型(com.raqsoft.report.ide.base.DataSourceListModel)
4. toolBarProperty :设计器第一个工具条,可设置颜色的那条。类型(com.raqsoft.report.ide.ToolBarProperty)
5. toolBarEditor : 设计其第二个工具条,可设置表达式的那条,类型(com.raqsoft.report.ide.ToolBarEditor)
自定义菜单类
◆ 代码示例
package one.client;
import javax.swing.*;
import java.net.*;
import java.io.*;
import java.awt.event.ActionEvent;
import java.util.*;
import com.raqsoft.report.ide.configmenu.CMAction;
public class OneRpx extends CMAction {
public void actionPerformed( ActionEvent e ) {
public void actionPerformed( ActionEvent e ) {
…………
}
}
参考文件:MyMenu.java
自定义菜单按钮的配置
菜单按钮的配置在reportsystemconfig_zh.xml文件中,该文件所处位置应为类路径可以搜索到的位置。
文件结构:
<REPORT>
<CONFIG_MENU>
<F_20000 argument="" classname="one.client.MyMenu" hotkey="ctrl+h" text="打开报表" object="report" />
</CONFIG_MENU>
<CONFIG splashFile="config/runqiansplash.jpg">
</CONFIG>
</REPORT>
F_10为菜单项的数字标识号,
F_ 前缀表示菜单将添加到润乾报表的文件菜单中;
E_ 前缀表示菜单将添加到润乾报表的编辑菜单中;
R_ 前缀表示菜单将添加到润乾报表的报表菜单中;
I_ 前缀表示菜单将添加到润乾报表的填报菜单中;
T_ 前缀表示菜单将添加到润乾报表的工具菜单中;
C_ 前缀表示菜单将添加到润乾报表的远程菜单中;
H_ 前缀表示菜单将添加到润乾报表的帮助菜单中。
后面跟的序号原则上大于 20000。但是如果小于20000而和系统的其他命令冲突则会造成程序菜单混乱。但是和以下的系统菜单序号相同时,则程序不追加新的配置菜单项,而会把如下列出的系统菜单的行为重定向到配置菜单指定的操作。
可替换的系统菜单命令列表:
报表菜单 |
|||||
文件菜单 |
值 |
编辑菜单 |
值 |
报表菜单 |
值 |
新建 |
5 |
撤销 |
205 |
参数 |
505 |
新建报表向导 |
6 |
重复 |
210 |
宏 |
510 |
新建报表组 |
7 |
剪切 |
215 |
数据集 |
515 |
新建填报 |
9 |
复制 |
220 |
报表组设置 |
520 |
新建行式填报 |
2005 |
粘贴 |
225 |
报表属性 |
350 |
打开 |
10 |
插入 |
|
行属性 |
305 |
打开填报 |
11 |
插入行 |
405 |
列属性 |
310 |
快速打开 |
15 |
插入列 |
410 |
边框设置 |
325 |
关闭 |
30 |
追加数据行 |
415 |
统计图 |
335 |
关闭全部 |
35 |
追加数据列 |
420 |
条形图 |
345 |
保存 |
20 |
插入格 |
441 |
第三方图形 |
346 |
另存为 |
25 |
追加格 |
443 |
表达式 |
348 |
打印 |
50 |
局部报表 |
430 |
子报表 |
340 |
预览 |
55 |
行区域 |
455 |
数据类型 |
330 |
导出 |
|
列区域 |
456 |
图片 |
331 |
excel文件 |
101 |
删除 |
|
数据图层 |
333 |
分页excel文件 |
102 |
删除行 |
261 |
编辑风格 |
365 |
带公式excel |
103 |
删除列 |
263 |
设置密码 |
366 |
word文件 |
106 |
删除前格 |
265 |
|
|
pdf文件 |
104 |
清除 |
|
工具菜单 |
值 |
分页pdf文件 |
105 |
设为空白格 |
230 |
添加到样式 |
610 |
文本式pdf文件 |
111 |
设为初始格 |
235 |
添加为预定义格 |
611 |
文本式分页pdf文件 |
112 |
清除格式 |
240 |
配色方案 |
618 |
Text文件 |
108 |
清除内容 |
245 |
JSP编辑器 |
615 |
Html文件 |
110 |
清除编辑风格 |
246 |
脚本编辑 |
616 |
Xml文件 |
109 |
清除数据图层 |
247 |
导入Excel |
612 |
excel文件 |
121 |
移动 |
|
上载文件 |
622 |
分页excel文件 |
122 |
上移行 |
461 |
报表迁移 |
620 |
带公式excel |
123 |
下移行 |
463 |
数据源 |
605 |
最近文件 |
97 |
左移列 |
465 |
多维数据库 |
650 |
最近连接 |
98 |
右移列 |
467 |
选项 |
625 |
退出 |
60 |
上移单元格 |
471 |
|
|
|
|
下移单元格 |
473 |
远程菜单 |
值 |
帮助菜单 |
值 |
左移单元格 |
475 |
登录 |
801 |
关于 |
1005 |
右移单元格 |
477 |
注销 |
802 |
技术支持 |
1015 |
搜索 |
250 |
连接数据源 |
811 |
清理内存 |
1010 |
替换 |
255 |
上传文件 |
812 |
|
|
|
|
打开文件 |
810 |
填报菜单 |
|||||
文件菜单 |
值 |
编辑菜单 |
值 |
填报菜单 |
值 |
新建 |
5 |
撤销 |
2115 |
参数 |
2301 |
新建报表向导 |
6 |
重复 |
2117 |
格间校验 |
2305 |
新建报表组 |
7 |
剪切 |
2121 |
页属性 |
2315 |
新建填报 |
9 |
复制 |
2123 |
行属性 |
2325 |
新建行式填报 |
2005 |
粘贴 |
2125 |
列属性 |
2331 |
打开 |
10 |
插入 |
|
边框设置 |
2335 |
打开填报 |
11 |
插入行 |
2101 |
单元格校验 |
2321 |
快速打开 |
15 |
插入列 |
2102 |
编辑风格 |
2323 |
关闭 |
2030 |
追加数据行 |
2104 |
数据图层 |
2333 |
关闭全部 |
2035 |
追加数据列 |
2105 |
数据处理 |
2311 |
保存 |
2020 |
插入表格 |
2111 |
上载文件 |
2313 |
另存为 |
2025 |
追加表格 |
2113 |
数据源 |
605 |
最近文件 |
97 |
删除 |
|
选项 |
2341 |
最近连接 |
98 |
删除行 |
2107 |
|
|
退出 |
60 |
删除列 |
2108 |
远程菜单 |
值 |
|
|
删除表格 |
2139 |
登录 |
2801 |
帮助菜单 |
值 |
清除 |
|
注销 |
2802 |
关于 |
1005 |
设为初始格 |
2131 |
连接数据源 |
2811 |
技术支持 |
1015 |
清除格式 |
2133 |
上传文件 |
2812 |
清理内存 |
1010 |
清除内容 |
2135 |
打开文件 |
2810 |
|
|
清除填报属性 |
2137 |
|
|
|
|
移动 |
|
|
|
|
|
上移行 |
2141 |
|
|
|
|
下移行 |
2143 |
|
|
|
|
左移列 |
2145 |
|
|
|
|
右移列 |
2147 |
|
|
|
|
左移表格 |
2151 |
|
|
|
|
右移表格 |
2153 |
|
|
Argument 为任意意义的字符串参数,用户在自定义的类里面可以使用该参数,当然也可以不用。
Classname 增加的菜单项需要执行的类名, 且该类必须实现com.raqsoft.report.ide.configmenu.CMAction抽象类。
Text 菜单显示的中文名称
Hotkey 为菜单项指定热键,只能为某个字母,或者 ctrl+字母 两种格式。
Object 增加的菜单项显示在报表菜单还是填报菜单,有report、input、all三个取值。
report时表示只在报表菜单上增加
input时表示只在填报菜单上增加
object不填或all时表示是公用的,报表和填报都增加
CONFIG 系统的配置选项:
Splahfile = IDE启动时的splash 画面文件。该文件为类路径上搜索的相对路径。
不指定该选项则不启动splash窗口。