本周在公司开发了两个小的应用程序,其一是解决部门每天加班人数统计以及月加班情况分析的小程序,其二是控制系统首页portal显示版块及次序的应用。这里做些总结的主要原因是记录下自己刚开始接触软件设计的思路及期望以后能在此基础上做的更好。
程序一:加班人数统计(涉及公司信息,后续补上)
程序二:首页版块配置
系统提供多个可供在首页上显示的版块,每个版块可以为一个或多个用户角色服务。系统管理员统一设置每个角色可以使用版块的权限及版块直接的次序,系统同时提供给系统管理员保存版块布局的功能。
效果图:
表结构:
1、T_SY_ROLERELBK 角色版块对应表
字段
|
类型
|
说明
|
WID
|
|
业务主键
|
XT_ROLE
|
|
角色名称
|
BK_WID
|
|
版块WID
|
CX
|
|
次序
|
2、版块列表T_SY_BK
3、布局表T_SY_LAYOUT
4、布局版块列表T_SY_LAYOUT_BK
字段
|
类型
|
说明
|
WID
|
|
|
LAYOUT_WID
|
|
布局WID
|
BK_WID
|
|
版块WID
|
CX
|
|
次序
|
说明:由外键可知,这里存在几种关系:角色和版块之间是1:n;布局和版块之间是n:n,划分出对应关系就简单了。
实现细节:
1、聊聊EXT的开源协议
由于功能是用Ext来实现的,开发的时候我使用的类库是Ext3.1.1,在迁移至系统时出现了一些问题。问题一:我在Panel面板中这样定义一个tbar, tbar: {id: 'createTbarId'},查阅了Ext的API也发现tbar属性是可以定义为Array或是object的;问题二:在切换角色的时候我需要将中部面板中所有的portal先清理掉再重新添加新的portal,我使用的是Panel中的removeAll()方法移除Panel容器中的所有组件。结果查阅Ext2.0API竟然没有此方法。此外在网上查了一下,Ext在2.1.0以后就将开源协议由原来的LGPL改为了GPL,说白了LGPL允许用户私有化产品,而GPL不允许用户私有化产品,必须公用。再说直接点既然Ext支持GPL和商业协议,如果你的产品是用于商业用途那对不起,请你购买。对于一直支持Ext社区发展的同学确实心里拔凉拔凉的。。。
2、布局方面
页面使用了三种布局方式:BorderLayout、ColumnLayout、AnchorLayout,虽然没有用过所有的布局方式,但是这三种还是比较常用的,并且能满足于一般应用了。据说Ext有11中布局方式。首先用border布局将页面划分为了west和center两个区域。这里需要说明一下的是:north、south区域的宽是整个容器的宽度,所以不要指定其宽度,指定也没有作用;west、east区域的高度是整个容器的高度减去north、south的高度;center区域不用指定宽高,根据其他四个区域就可以将其计算出来。在西部的Panel中使用了anchor布局方式指定其anchor:'100% 50%'即容器占用整个西部面板100%宽度和50%的高度。中间区域使用了一个面板容器,容器中存放xtype:portal类型的组件。对于portal我们设定其为column布局,只需要指定其columnWidth:.5即可。
3、不是问题的问题
由于Ext2.0版本不支持Panel组件上面的removeAll()方法,导致我需要自己手动的实现删除。也就意味着本来一行代码:Ext.getCmp('index:column1').removeAll()可以搞定的事情需要分解成如下方式:
var col1 = Ext.getCmp('index:column1');
for(var seq=0; seq<col1.items.length; seq++){
var portal = col1.items.item(col1.items.keys(seq));
portal.ownerCt.remove(portal,true);
seq --;
}
4、动态添加工具条
在页面组件全部渲染完毕后,开始渲染工具条,需要从后台数据库中将已经保存好的布局方式加载上来显示在tbar中,在回调方法里我使用了Ext.getCmp('createTbarId').add({});循环的创建工具条按钮。
注意:createTbarId是上面定义好的,如果在3.0以上版本中可以直接定义对象,如果是以下版本就需要定义为数组或直接new Ext.Toolbar({id: 'createTbarId',height: 30})
此外,添加下拉菜单也蛮有意思的:
Ext.getCmp('createTbarId').add(new Ext.SplitButton({
text: '操作',
arrowTooltip: '更多',
menu: new Ext.menu.Menu({
items: [{
id: '',
text:'',
iconCls: '',
handler: function(item){
//。。。
}
}]
})
}));
分享到:
相关推荐
本报告由北京航空航天大学于2011-09版本发布,旨在评估和分析【系统名称】的设计和性能。 1. **范围**: - **标识**:报告明确了适用的系统和软件的完整信息,包括标识号、标题、版本号和发行型号,遵循特定的命名...
### 09N03LA-VB TO252 N-Channel MOSFET 晶体管参数介绍与应用说明 #### 产品概述 09N03LA-VB TO252 是一款采用 TO252 封装的单通道 N-Channel 沟道 MOSFET(金属氧化物半导体场效应晶体管)。该器件采用了先进的 ...
- **设计规范与开发规范制定**(2011年09月26日-2011年09月30日):在此阶段确定整个系统的设计原则和技术标准,为后续的开发工作奠定基础。 - **采购管理系统设计**(2011年10月09日-2011年10月23日) - **库存管理...
- **2013-03-15**:添加了对于GPT预定义定时器功能的需求,这表明随着技术的发展,对GPT Driver的功能有了更具体的要求。 - **2011-12-22**:重新工作了需求追溯机制,这表明为了提高文档的质量和一致性,进行了...
3. **本科阶段**(2016.03-至今) - 学校:奈森医学网络继续学院 - 专业:临床护士 - 通过网络学习的方式进一步提升自己的专业知识水平。 ### 实践经验 1. **校内实践** - 时间:2009.09-2013.03 - 地点:...
03-海尔集团 培训管理手册 39页 04-康佳集团平培训管理办法24页 05-美的-内部讲师管理办法 08-联通科技2008年度教育训练计划书 14页 09-佳能培训项目组织流程(2009-9版) 10-酒店员工培训大全-169页 11-某公司2008...
- **CE认证**:符合欧盟的EMC指令(2014/30/EU)、LVD指令(2014/35/EU)和RoHS指令(2011/65/EU),并满足相关标准EN61800-3和EN61800-5-1的要求。 - **TUV认证**:依据EN61800-5-1标准,证明产品的安全性与可靠性...
│ ├03 - ARM准备工作及熟悉开发板3.avi │ ├04 - ARM准备工作及熟悉开发板4.mp4 │ ├05 - 原理图及电路图1.mp4 │ ├06 - 原理图及电路图2.avi │ ├07 - 原理图及电路图3.mp4 │ ├08 - ARM世界 .mp4 │ ├09 -...
- **腾讯日志审计系统**(2013.03-2013.04):基于Java开发的日志审计系统,主要负责态势模块和审计模块的编码维护工作。 4. **专业技能**:精通Java开发,熟悉Spring MVC、Hibernate等框架;熟练掌握SQL Server、...
### 数学建模历年试题解题方法总结 #### 一、引言 数学建模是一项综合性极强的学科活动,它不仅考验参赛者的数学功底,还对其逻辑思维能力、创新意识以及解决实际问题的能力提出了较高要求。通过对历年的数学建模...
2. **奈森一百丁信息科技有限公司 - 软件工程师 (2010.03-2012.03)** - 参与公司内部业务系统的设计与改进工作。 - 承担客户调研、需求分析、方案撰写等任务,并参与多个大型电子商务项目的策划。 ### 三、教育...
tar xvf arm-2011.03-42-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 ``` 3. **配置环境变量**:同样需要编辑`/etc/profile`文件,添加以下内容以设置ChaiTools相关的环境变量。 ```bash PATH=$JAVA_HOME/bin:/...
In[8]: df = pd.DataFrame({'name':list('ABCDA'),'house':[1,1,2,3,3],'date':['2010-01-01','2010-06-09','2011-12-03','2011-04-05','2012-03-23']}) ``` 这个DataFrame包含了四个人(A、B、C、D)在不同时间点...
- **日报集团**(2010.06-2011.09):通过这段实习经历,求职者获得了宝贵的销售实践经验。 - **奈森设计精密仪器有限公司**(2012.04-2014.01):这段经历让求职者对UG编程绘图有了深入的理解和实践。 - **...
该文档是广东晨轩物业管理有限公司制定的质量/环境/职业健康安全管理程序文件汇编,旨在满足ISO9001:2015、ISO14001:2015以及GB/T28001-2011标准的要求。该文件于2016年10月25日发布并实施,版本号为A/0。 ### 二、...
根据给定文件的信息,我们可以总结出以下关于新代数控系统OpenCNC MACRO手册的关键知识点: ### 一、概述 新代数控系统OpenCNC MACRO手册是针对SYNTEC OpenCNC MACRO开发工具的操作手册。该手册旨在帮助用户理解和...
### 柴达木盆地古近系沉积相研究... (期刊名), 2014, 03: 0001-09. 通过上述总结可以看出,这项研究不仅在理论层面揭示了柴达木盆地古近系沉积相的特征及其演化规律,而且在实践层面对于油气勘探具有重要的指导意义。
该文档版本为v0.5,由CrifanLi撰写,首次发布于2011年,并在2012年进行了修订。 #### USB HID 基础知识 USB HID协议定义了一种标准的方法,用于处理个人计算机与其连接的各种输入设备之间的数据交换。这些设备包括...