设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 10256|回复: 29

[Access本身] 自定义功能区三板斧(二):鬼剔牙

[复制链接]
发表于 2015-12-22 13:27:47 | 显示全部楼层 |阅读模式
本帖最后由 roych 于 2015-12-29 09:11 编辑

剔牙,当然是一个精细活儿了。鬼剔牙,那更是鬼斧神工,从细节上来“剔牙”了。所以,这一招对应的是分析代码,从根本上为大家解惑。

现在,就让我们一步步理解上一节贴出的代码吧。
XML是一种以树结构进行组织数据的,而且相对严格的语言,对大小写敏感。依次展开节点,得到一个这样的结构:
customUI> ribbon> tabs>tab> group

一般来说,树结构数据是除了根节点之外,其它树节点都是可以有兄弟节点(即存在并列结构)的。而这段代码中,我们却只能修改的是tab节点以及其子节点、孙节点,增加ribbon或tabs节点,则会导致无法正常工作(即保持原有设置,而无法自定义功能区)。

不过这很容易理解:我们可以根据需要选择不同的功能区(这将在后面解释),但每次只能使用一个功能区来显示。因此,如果存在多个ribbon的节点,意味着什么呢?一个文件可以同时显示多个功能区,这显然不符合逻辑了。tabs更不用说,一个tabs集合只能被一个功能区所包含了。

也就是说,我们可以通过增加不同的tab选项卡,然后再对每个选项卡分成多个组别,最后在每个组别上增加控件(即上文所述的孙节点)来完成操作。
接下来,我们简单解释下XML代码里的一些属性【里面所有属性值必须加上双引号】:
  
名称
  
说明
注释
customUI
自定义功能区顶级元素
需要指定xmlns属性
ribbon
定义功能区
忽略startFromScratch属性,或者指定为false表示在默认功能区上创建自定义功能区,否则表示新建空白功能区。
tabs
选项卡集合

tab
选项卡

group
选项卡下的组别

button
按钮,隶属于组
通过指定onAction属性值来执行宏或回调函数。
dropdown
下拉列表,隶属于组

combobox
组合框,隶属于组

id
属性,元素唯一标识符
对于自定义功能区,Tab及其子孙节点须以id属性值来标志,命名规则:以英文字符开头且不能包含特殊字符。
idMso
属性,标准控件标识符
类似于id属性,所有属性值为内置的固有名称。
label
属性,控件标签文本
用于显示控件。非内置功能区应指定属性值。
size
属性,控件大小
属性值为:Normal(默认值)或者large
imageMso
属性,控件图标
属性值为Access内置图标对应的指定名称
supertip
属性,提示文本

enabled
属性,是否可用
值为truefalse,可用于用户权限分配或者条件执行程序
visible
属性,是否可见
值为truefalse,大多用于用户权限分配。

注意:XML是一种相对严格的语言,对大小写敏感,因此使用上述表中的名称时请不要改动。

了解这些属性之后,我们再回头看看这段代码【出于篇幅,这里不列出全部代码】。
  1. <ribbon startFromScratch="false">表示在原有的功能区上创建自定义功能区(其实这里是对原有的功能区进行修改)
  2. <tab idMso="TabHomeAccess" visible="false">----表示隐藏“开始”选项卡
  3. <tab idMso="TabExternalData" visible="true">
  4. <group idMso="GroupExport" visible="false">----隐藏“外部数据”中的“导出”组。
复制代码
很显然,默认情况下,原有功能区都是可见的。下面,就让我们来验证下,是不是这样:
点击选项/当前数据库/功能区和工具栏,在下拉菜单中选择“test”。
然后按提示关闭当前数据库,再打开一次。“开始”选项卡以及“导出”组果然不见了。
现在问题来了:如果把startFromScratch的属性改为true,会发生什么情况呢?(请先自行思考,答案回复可见)
游客,如果您要查看本帖隐藏内容请回复
这时候,可能有人会问了:“TabHomeAccess”,“TabExternalData”之类的属性值是怎么找到的?Roych当然记不住那么多名称了,所以在这里就提供一个好办法给大家:
还记得上一个帖子么?不记得的翻一下,看看第一张图,“确定”的左上方是不是有一个“导入/导出”……我相信,聪明的版友应该知道怎么做了。
导出的文件是以exportedUI为扩展名的文件,请用记事本打开试试看?这些代码是不是跟我们之前的XML代码很像?
————————2015-12-29增加测试附件

               上一篇      下一篇



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2015-12-22 14:33:45 | 显示全部楼层
厉害
回复

使用道具 举报

发表于 2015-12-22 15:15:02 | 显示全部楼层
谢谢分享!!
回复

使用道具 举报

发表于 2015-12-22 15:50:39 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2015-12-22 20:36:30 | 显示全部楼层
eeee
回复

使用道具 举报

发表于 2015-12-23 14:17:53 | 显示全部楼层
111111
回复

使用道具 举报

发表于 2015-12-23 16:55:21 | 显示全部楼层
我刚用access2007做了测试不知是我理解不够还是方法不对!功能未实现!
发表于 2015-12-23 17:14:00 | 显示全部楼层
对07与2010等版本,那个界面看了实在头痛,明明有很强的学习冲动,但经常做了一半后,因为界面的繁锁又扔一边不学了,唉,现在继续用着03版的
 楼主| 发表于 2015-12-23 17:26:38 | 显示全部楼层
天涯沦落20131 发表于 2015-12-23 16:55
我刚用access2007做了测试不知是我理解不够还是方法不对!功能未实现!

2007可以用的。可能CustomUI那一行的链接改为再试试:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
具体可以在“选项/自定义功能区/导入导出”里面导出功能区看看里面的设置。
发表于 2015-12-23 21:13:38 | 显示全部楼层
ROYCH 历害呀,没有想到除了技术过硬 ,文彩也不在话下呀, 值得学习一下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-3-29 18:58 , Processed in 0.209095 second(s), 38 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表