对于TIPTOP系统,标准的按钮都有相对应的小图标,如下图:
但是对于自己添加的按钮,很少有小图标的;
那下面我就分析一下怎么让自己加的按钮也有小图标:看效果(右边按钮):
【当然我这个是直接用的系统里面的按钮,其实那个图标也可以自己去设置的】
那这个是怎么加上去的呢?且听一步步道来:哈哈
1.首先,我们run一支程序的时候,我们可以通过后台看到如下信息:
简单说明一下:
4st:存放屏幕显示的Style设定。
4ad:存放每支程序Action代码与显示说明数据转换的资料。其下结构为:语言别/系统别/各程序转换数据文件
4tm:存放每支程序的TopMenu数据。其下结构为:系统别/各程序转换数据文件
4tb:存放各类程序的ToolBar设定数据。
我们可以清楚的看到其中有一个4ad加载两次,一次为标准的tiptop目录下的,一次为客制的topcust下面的。
我们主要关注topcust/config目录下的内容 如下:
/u1/topprod/topcust/config/4ad/2/cqc /cqci120.4ad
这个是我修改过的:image属性是我加进去的。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<?xml version='1.0'?>
<ActionDefaultList>
<ActionDefault name="create_size" text="尺寸维护" image="pen" />
<ActionDefault name="create_a" text="外观维护" image="agree" />
<ActionDefault name="create_c" text="功能维功" image="deny" />
<ActionDefault name="create_d" text="包装维护" image="modify_flow" />
<ActionDefault name="create_e" text="其他检测项目" image="withdraw" />
</ActionDefaultList>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
就是这个image属性影响前面的图标。其实很简单。不过这里只介绍怎么在调试OK的程序里面加这个。
再说一点,通过这种直接修改4ad的方法能达到效果,但是只要你运行p_zz右边按钮【Action维护】即是程序p_base_act程序。此效果就没有了
也就是说它会重新生成.4ad文件覆盖已经有的文件,所以就不存在image属性了。
如果想不用通过这里去改,那就得改程序咯:
也简单的说一下吧:
p_base_act.4gl里面有个 FUNCTION p_base_act_output_4ad() 这个函数,这个就是往4ad里面写按钮信息的。
————————————————————————————————————————————
……………………………………
IF lc_module.subString(1,1) = "c" THEN
LET ls_filename = ls_topcust.trim() || "/4ad/" || lc_gbd03 || "/" || lc_module CLIPPED || "/" || lc_gap01 CLIPPED || ".4ad" ##文件名
ELSE
LET ls_filename = ls_top.trim() || "/4ad/" || lc_gbd03 || "/" || lc_module CLIPPED || "/" || lc_gap01 CLIPPED || ".4ad"
END IF
display "Info 4ad name = ",ls_filename
LET lc_cmd = "cat /dev/null > ", ls_filename CLIPPED #TQC-630006 #MOD-650098 ###写之前置为空
RUN lc_cmd
LET li_openhead=FALSE #档头未开启
…………下面这段就是写的具体内容。可以很清楚的看到没有 Image 属性
(你知道这里的三个属性name ,text , comment 在界面上是哪里的内容么?往下看图)
# 2004/06/14 看有没有 comments 有就倒
IF cl_null(la_gbd.gbd05) THEN
LET ls_str = " <ActionDefault name=\"",la_gbd.gbd01 CLIPPED,"\" text=\"",la_gbd.gbd04 CLIPPED,"\" />"
ELSE
LET ls_str = " <ActionDefault name=\"",la_gbd.gbd01 CLIPPED,"\" text=\"",la_gbd.gbd04 CLIPPED,"\"comment=\"",la_gbd.gbd05 CLIPPED,"\" />"
END IF
IF li_openhead = FALSE THEN
# 2004/04/17 输出档头
LET lc_channel = base.Channel.create()
CALL lc_channel.openFile( ls_filename CLIPPED, "a" )
CALL lc_channel.setDelimiter("")
CALL lc_channel.write("<?xml version='1.0'?>")
CALL lc_channel.write("<ActionDefaultList>")
LET li_openhead = TRUE
END IF
CALL lc_channel.write(ls_str)
END IF
END FOREACH
IF li_openhead = TRUE THEN
CALL lc_channel.write("</ActionDefaultList>")
CALL lc_channel.close()
END IF
——————————————————————————————————————————
name= TEST9,text=Action名称,comment=Action说明
其实要想加个imgae属性也是很容易的;可以在GBD_FILE table里面加一个栏位拉记录,
用来维护imges字段,然后修改p_base_act_output_4ad() 此函数就OK啦。
是不是很简单呢。有兴趣的可以试一下,甚至还可以不用系统的图片,自己加图片。
只要不把TIPTOP玩死就OK啦………