Enterprise Solution 界面设计规范
Enteprise Solution有一套自己的界面设计规范,也是很多年(10年以上)管理软件界面精华的积累。没有一个软件从一开始就很善于界面设计,许多个小小的改善,比如控件位置的移动,控件摆放顺序的改变,都是经过客户检验或是深思熟虑的。
1 对于必须输入值的项,控件中有小光标表示。
如上图所示,合约编号和 客户编号都是必须输入的,所以该控件的右边有一个小光标显示。当控件中有值时,这个光标不再显示。
国内的管理软件比如金蝶软件,对于必须输入值,它会在标签处标识一个星号,如下图所示,端口号的标签后面有一个星号,表示该项为必须输入项。
2 统一的界面操作,增删查改都是统一的界面。
参考销售合同的界面,最上面是菜单,由框架根据当前打开的功能加载,菜单下面是工具条,可以做什么操作一目了然。
界面状态栏显示当前登入的账套,用户和期间。
3 查找与钻取
对于引用其它主档或是单据的字段,应该要增加查找,方便用户从弹出窗口中选择值。同时也需要增加钻取,以方便直接跳转到对应的功能中。
查找客户窗体例子:
钻取有点类似于网页中的链接,双击后可打开功能。比如上面销售合同中的客户编号字段,DE有下划线,双击后直接打开维护客户主档功能。
4 将作用相似的控件组合在一起,方便用户操作识别。
参考下面的销售单的部分界面,与财务相关的控件用付款组合框包括起来(GroupBox),与成本相关的内容用成本累总组合框包括起来。
成本累总组合框中,有一个依次累总的含义在里面,比如成本中相关的公式是:
净贸易金额= 总物料金额 + 税额, 贸易折扣金额=总物料金额 * 贸易折扣
公式中右边的项列在前面,排列到最后的控件一般是总计。
5 屏幕分辨率
WinForms桌面程序在遇到不同尺寸的显示器,控件的位置对齐方面需要仔细测试。目前采取的方法是固定设计器的尺寸,所有的控件都必须摆放在固定尺寸的控件中,不允许拖动窗体基类的尺寸。Enterprise Solution界面基类EntryForm的尺寸如下代码所示。
- this.ClientSize = new System.Drawing.Size(912, 656);
对于设计器界面摆放不下的控件,可以增加TabPage来重新摆放,保证所有的窗体满足最小的尺寸的屏幕而不用来回拖动固定条。
6 对于长时间运行的操作,提供进度条、动画等反映正在进行的比较耗时间的过程。
首先所有关于数据操作的地方,Enterprise Solution都会将它封装到BackgroundWorker控件中调用,这样可避免死锁界面。上图中销售合同的界面,工具条中的每一个按钮事件,都会调用它关联的后台线程控件。
如果是专门的数据处理程序,则会单独用进度条显示,以增加界面友好性。
7 根据用户的权限或当前的状态自动隐藏或者禁用功能
用户不能点或是不应该点的按钮应该变灰色或是直接隐藏。
用户没有权限查看的字段需要隐藏。
用户不能进入的公司账套需要隐藏。
这个部分的要点就是变灰和隐藏,保证界面简单友好。试想用户点击一个按钮,系统再提示没有权限去查看,界面体验性该有多糟糕。
8 界面元素的长度
界面元素的长度是按照数据库中对应的字段长度设计的。参考第4条中的界面元素,控件的长度也表达了数据库中对应的字段的长度。
除非是特殊要求或是要求对齐美观,Enterprise Solution 90%以上的界面控件都是依据数据库字段的长度设计的。
9 执行破坏性的作之前,需要获得用户的确认
这是必须要做到的,关于删除操作或是过帐操作,必须用户确认才可以继续。不过为了照顾到用户的感受,同时也可以提供不用确认的方法供程序员调用。
- SaveEntity(bool showConfirm)
//默认调用传递true,也可以传false参数以表示不需要确认 SaveEntity(true);
10 输入数据或递交数据时,进行相应的数据校验
LLBL Gen Pro自动为每个实体类生成一个验证类型,在这里编写实体相关的验证代码。
- [Serializable]
- public partial class SalesContractValidator : ValidatorBase
- {
- // Add your own validation code between the two region markers below. You can also use a partial class and add your overrides in that partial class.
- // __LLBLGENPRO_USER_CODE_REGION_START ValidationCode
- public override bool ValidateFieldValue(IEntityCore involvedEntity, int fieldIndex, object value)
- {
- bool result = base.ValidateFieldValue(involvedEntity, fieldIndex, value);
- if (!result) return false;
- switch ((SalesContractFieldIndex) fieldIndex)
- {
- case SalesContractFieldIndex.CustomerNo:
- return this.ValidateCustomerNo((string) value);
- }
- return true;
- }
- private bool ValidateCustomerNo(string value)
- {
- if (!string.IsNullOrEmpty(value))
- {
- ICustomerManager customerManager = ClientProxyFactory.CreateProxyInstance<ICustomerManager>();
- customerManager.ValidateCustomerNo(Shared.CurrentUserSessionId, value);
- }
- return true;
- }
数据验证包含字段值验证,数据表必须输入字段验证,逻辑验证。开发继承于EntryForm的功能的窗体有一半的工作量就是在做数据验证。
11 行列间距保持一致
行和列的间距基本要求是保持12pt,这也是微软推荐的间距。在设计器中拖动控件时,设计器会显示出一点小横线,表示距离正好是12pt,此时可放开控件让它落在当前位置上。
看图中的几条线,智能的窗体设计器在帮助对齐控件间的位置。
12 界面的色调让人感到统一
所有的界面只用基本的控件颜色,除非是客户要求的颜色或是特殊的功有,上面几张图中的控件颜色都是统一的。下面的订单追踪功能,用颜色来标识特殊的数据,起到画龙点睛的作用。
ASP.NET Web开发中经常会用到交替颜色,不同的行颜色不一样,每隔一行会用相同的颜色标识。WinForms程序中也有客户喜好这种交替色的方案。
13 键盘键编程
以下几个方面要重点测试,必须严格遵守:
1 Tab键的顺序,一般是从上到下,从左到右;
2 热键的使用,逐一测试;一般在控件上要标示出来,写代码时用&表示后面的字符是热键。
3 Enter键常常用来用跳转到下一行或下一个控件(TabIndex顺序)的方法。
14 目前做不到的地方
1 对于常用的功能,做到不必阅读手册就使用
ERP软件界面复杂,很少有功能是可以直接看界面就可以学会操作。
2 是否提供UNDO功能用以撤销不期望的操作
只有很少的功能提供UNDO操作,比如取消送货,取消记帐凭证。
复杂的逻辑逆转操作需要写很多代码或操作,单据间的关联也需要维护,给系统增加了相当的复杂度。
3 所有界面元素提供了充分而必要的提示
WinForms提供了Tooltips控件,当鼠标旋停在控件上时,会显示一段提示性的文字,或是在桌面的右下角冒出气泡的提示。
对于更多的界面元素的用法,还是要参考帮助手册,或是向技术支持要求支援。
Enterprise Solution 界面设计规范的更多相关文章
- Enterprise Solution 3.1 企业应用开发框架 .NET ERP/CRM/MIS 开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms
行业:基于数据库的制造行业管理软件,包含ERP.MRP.CRM.MIS.MES等企业管理软件 数据库平台:SQL Server 2005或以上 系统架构:C/S 开发技术 序号 领域 技术 1 数据库 ...
- Enterprise Solution 开源项目资源汇总 Visual Studio Online 源代码托管 企业管理软件开发框架
Enterprise Solution 是一套管理软件开发框架,在这个框架基础上开发出一套企业资源计划系统Enterprise Edition. 现将Enterprise Solution开发过程中遇 ...
- Windows 10 部署Enterprise Solution 5.5
Windows 10正式版发布以后,新操作系统带来了许多的变化.现在新购买的电脑安装的系统应该是Windows 10.与当初用户不习惯Windows 7,购买新电脑后第一个想做的事情就是重装成XP,估 ...
- Enterprise Solution 企业资源计划管理软件 C/S架构,支持64位系统,企业全面应用集成,制造业信息化
Enterprise Solution是一套完整的企业资源计划系统,功能符合众多制造业客户要求.系统以.NET Framework技术作为开发架构,完善的功能可有效地帮助企业进行运营策划,减低成本,如 ...
- Windows Server 2012部署Enterprise Solution 5.4
最近一个客户升级系统,改用Windows Server 2012作为服务器操作系统.升级之后性能未见明显的改善,在不改变代码的基础上,考虑到C/S架构的能力,增加内存或是处理器的处理能力似乎可以解决一 ...
- Enterprise Solution 企业管理软件开发框架
Enterprise Solution 开源项目资源汇总 Visual Studio Online 源代码托管 企业管理软件开发框架 Enterprise Solution 是一套管理软件开发框架,在 ...
- iOS和Android的app界面设计规范(转)
记录一下iOS和Andoird的界面设计规范,方便进行标准的产品设计,并与设计师顺畅沟通 iOS篇 界面尺寸 设备 分辨率 状态栏高度 导航栏高度 标签栏高度 iPhone6 plus 1242×22 ...
- Enterprise Solution 2.2 开发帮助文档集合
首先是一个PPT文档,从宏观层面展示Enterprise Soltion的几个功能特色. Enterprise Solution解决方案安装与配置 将源代码解决方案和演示程序在电脑中进行配置,作为了解 ...
- (转)iOS7界面设计规范(13) - UI基础 - 与iOS的系统整合
突然就到了周日傍晚.你永远不会知道自己的生活在接下来的一周当中能够发生多少变化:各种不可预知性所带来的更多是快感还是焦虑与不安,冷暖自知.相比之下,白天工作当中那些需求列表与排期文档就显得那么可爱了, ...
随机推荐
- 一款免费支持PDF、word、excel、PPT、jpeg之间互转线上软件
偶然发现的一款免费支持PDF.word.excel.PPT.jpeg之间互转,支持合并pdf.加密解密PDF的线上软件,首先声明,不是广告党,我自己试用过,确实是目前我用过最好用的,如果有朋友有更好的 ...
- NSIS(001)检测和结束进程是否运行?
配合插件:killer.dll 导入DLL:ReserveFile "${NSISDIR}\Plugins\killer.dll" 使用方法: ;可以检测和结束32位程序进程和64 ...
- mysql 索引问题
转自http://www.blogjava.net/happyenjoylife/archive/2011/12/17/366639.html mysql innodb存储与索引的总结 Innodb存 ...
- Connecting sql server2008 through C#
本实例只在于将通过ASP.NET上的控件(如button.textbox等)结合C#中类的应用,将自己需要的数据存入当地的SQL SERVER数据库中 首先我们在项目中需要建立一个ASP.NET We ...
- LintCode 111 Climbing Stairs
这道题参考了这个网址: http://blog.csdn.net/u012490475/article/details/48845683 /* 首先考虑边界情况,当有1层时,有一种方法. 然后再看2层 ...
- eclipse左边导航package explorer自动定位
eclipse或myeclipse中右边编辑界面点击 左边导航自动定位 左导航Package Explorer的右上角有一个黄色双向箭头图标,鼠标移动到上面提示"Link with ...
- centos 后台执行C#控制台程序
1. nohup nohup 无疑是我们首先想到的办法.顾名思义,nohup 的用途就是让提交的命令忽略 hangup 信号.让我们先来看一下 nohup 的帮助信息: NOHUP() User Co ...
- 图解,为多个oracle数据库下添加ArcSde实例
最开始肯定要先建一个oracle数据库,我假设名称为dbgis 1, 2, 3, 不重新指定就会出现这个错误,因为以前有sde.dbf文件了 4, 5, 6, 7, 8, 如果以前授权成功过就会出现这 ...
- dijit样式定制之TextBox(一)
参考资料:http://dojotoolkit.org/reference-guide/1.9/dijit/themes.html http://archive.dojotoolkit.org/nig ...
- 去它的h5,我还是用js写原生跨平台app吧
智能手机功能越来越强大,已经在逐渐替代电脑的作用.百度.腾讯.阿里的移动端日活数也在逐步的赶上甚至超越电脑端用户.叫喊着“mobile first”的公司越来越多,App开发者应运而生,且队伍日趋庞大 ...