在Winform程序开发中,界面部分的开发工作量一般是比较大的,特别是表的字段数据比较多的情况下,数据编辑界面所需要的繁琐设计和后台逻辑处理工作量更是直线上升,而且稍不注意,可能很多处理有重复或者错误,利用代码生成工具Database2Sharp设计数据编辑界面可以极大提高开发效率,减少出错机会,结合DevExpress的布局拖动调整,更是如虎添翼,使你从繁琐的界面设计开发工作中解脱出来,缺少的只是你的灵感。

1、数据编辑界面设计步骤

一般情况下,如无其他工具的辅助下,我们需要在界面上放置好相关的界面控件,并调整控件的名称,调整控件位置布局,在后台中逐个编写控件赋值的显示代码和保存到数据库的赋值语句,特别是控件命名、显示数据,保存数据这些操作,是非常繁琐累人的,也是最容易出错的地方。

利用代码生成工具Database2Sharp,除了可以快速生成整体Winform开发框架的界面代码,让你一秒钟内就搭建一个完整标准的框架应用,最重要的,Winform界面设计这些繁杂的工作,也可以使用它进行完成,再也不用拘束于重复的劳动中了,可以静下心来找找灵感了。代码生成工具Database2Sharp的Winform界面代码生成界面如下所示。

查询类和数据编辑类,基本上是我们设计界面的两种标准界面,如下所示。

由于这个主查询界面,利用分页控件,以及动态生成的条件基本上就能满足要求了,繁琐的工作主要在数据编辑界面上,本文主要介绍数据编辑界面的设计工作在利用代码生成工具方面的改进。

一般情况下,我们利用代码生成工具生成的界面都是需要调整的,但是界面的控件名称已经根据字段进行了对应,后台的数据显示、输入验证、数据保存等需要控件和实体类一一对应的关系,也已经做好了,所做的只需要把界面调整的更加好看即可。

所以,生成的界面大致情况如下所示。

虽然生成的编辑界面,字段说明作为控件的标签,字段名称作为控件名称的部分内容,并且日期和数值控件类型也已经调整好,但是离我们真正的呈现给用户的数据编辑界面还是有一定的距离。

不要紧,下面我来演示一下如何实现界面的进一步的调整。

首先,我们知道,DevExpress的LayoutControl布局控件,对于其中的控件位置,都可以在设计模式进行动态拖动调整的,如下所示。

于是,我们可以根据合理的排版布局,对其中的界面元素拖动到合理的布局,并增加一些空白的控制位置,或者调整布局单元的约束类型为自定义,并设置控件的最大宽度或者高度,这样可以合理调整好数据编辑界面。

另外,我们可以在设计模式下,控件的右上角上,调整控件为自己希望的类型,如下所示。

通过上面的多样化调整,我们可以最终把界面拖动设计成这个效果。

2、多选项卡的数据编辑界面

按照上面这样的调整流程,对于一般情况下的数据编辑界面,我们可能基本满足了要求了,但是对于一些字段输入比较多的表格,我们最好能够通过TabControl把不同范畴的输入内容分开,一个选项卡负责一部分数据,这样可以有效利用屏幕的空间进行输入。例如,上面的数据,通过引入一个TabControl, 把病人基本信息和随访信息分开,就可以得到这样的运行界面效果。

或者更多数据的人员信息的数据编辑界面效果如下所示,通过分门别类,我们可以有效管理看似很凌乱的数据内容了。

但是,这样多选项卡的数据编辑界面,我们可能无法一下就生成符合要求的界面效果,我们可以先整体生成一个全部所需字段的数据编辑界面,就是按照上面的流程一样生成,然后重新复制一份到一个临时的窗体里面作为备份保留。

在原来的界面上,删除除第一个选项卡页面的控件内容,这时候,我们知道,后台的对应代码还保留着这些删除界面控件的数据显示、赋值保存的对应关系的代码,我们要保留它们,因为我们不是真的删除这些关联的控件。

然后在TabControl中,创建第二个TabPage选项卡页面,然后在备份保留的窗体界面上,把第一个TabPage选项卡页面中存在的控件删除,然后把剩下的其他控件,全部通过LayoutControl方式复制到第二个TabPage选项卡页面里面,这样整个控件和后台代码的关系,就又完整了,如果有更多的控件需要拆分,按照上述的方法重新操作一次即可。

例如,下面的例子源自我的客户关系管理系统模块(CRM)中的联系人管理,由于联系人信息比较多,我把它分为了两个TabPage选项卡页面进行管理,操作的思路就是用刚才介绍的方式进行调整的。

利用代码生成工具Database2Sharp设计数据编辑界面的更多相关文章

  1. 利用代码生成工具Database2Sharp生成ABP VNext框架项目代码

    我们在做某件事情的时候,一般需要详细了解它的特点,以及内在的逻辑关系,一旦我们详细了解了整个事物后,就可以通过一些辅助手段来提高我们的做事情的效率了.本篇随笔介绍ABP VNext框架各分层项目的规则 ...

  2. 调整代码生成工具Database2Sharp的Winform界面生成,使其易于列表工具栏的使用。

    在Winform界面开发的时候,有时候我们客户喜欢把功能放在列表界面的顶部,这样界面和功能整齐放置,也是一种比较美观的方式,基于这种方式的考虑,改造了代码生成工具的Winform界面生成规则,把增删改 ...

  3. Web API应用架构在Winform混合框架中的应用(4)--利用代码生成工具快速开发整套应用

    前面几篇介绍了Web API的基础信息,以及如何基于混合框架的方式在WInform界面里面整合了Web API的接入方式,虽然我们看似调用过程比较复杂,但是基于整个框架的支持和考虑,我们提供了代码生成 ...

  4. 在代码生成工具Database2Sharp中增加Vue&Element 工作流页面的快速生成

    在我们基于框架开发系统的时候,往往对一些应用场景的页面对进行了归纳总结,因此对大多数情况下的页面呈现逻辑都做了清晰的分析,因此在我们基于框架的基础上,增量式开发业务功能的时候,能够事半功倍.代码生成工 ...

  5. 代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能

    在代码生成工具的各种功能规划中,我们一向以客户的需求作为驱动,因此也会根据需要增加一些特殊的功能或者处理.在实际的开发中,虽然我们一般以具体的表进行具体业务开发,但是有些客户提出有时候视图开发也是很常 ...

  6. 基于SqlSugar的开发框架循序渐进介绍(3)-- 实现代码生成工具Database2Sharp的整合开发

    我喜欢在一个项目开发模式成熟的时候,使用代码生成工具Database2Sharp来配套相关的代码生成,对于我介绍的基于SqlSugar的开发框架,从整体架构确定下来后,我就着手为它们量身定做相关的代码 ...

  7. 基于Metronic的Bootstrap开发框架经验总结(18)-- 在代码生成工具Database2Sharp中集成对Bootstrap-table插件的分页及排序支持

    在我们开发系统界面,包括Web和Winform的都一样,主要的界面就是列表展示主界面,编辑查看界面,以及一些辅助性的如导入界面,选择界面等,其中列表展示主界面是综合性的数据展示界面,一般往往需要对记录 ...

  8. 利用代码生成工具生成基于ABP框架的代码

    在前面随笔,我介绍了整个ABP优化过框架的分层模型,包括尽量简化整个ABP框架的各个层的关系,以及纳入一些基类的辅助处理,使得我们对应业务分层类或者接口尽可能减少代码,并具有生产环境所需要的基类接口, ...

  9. 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码

    在前面随笔<基于Metronic的Bootstrap开发框架--工作流模块功能介绍>和<基于Metronic的Bootstrap开发框架--工作流模块功能介绍(2)>中介绍了B ...

随机推荐

  1. Scala 深入浅出实战经典 第79讲:单例深入讲解及单例背后的链式表达式

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  2. 【css】ie6 和 ie7 下 position 与 overflow 的问题

    前几天做的项目中碰到这样一个问题,在 ie6 和 ie7 下,给父元素设置 overflow:hidden 不起作用无法隐藏,后来发现是子元素中有设置 position:relative,如果子元素删 ...

  3. 同时大量PPPoE连接请求,攻击PPPoE服务器,导致的用户异常掉线故障分析

    前几天接一个客户电话,PPPoE下用户异常掉线,掉线后拨号困难 到达后,我首先查看PPPoE日志,发现一秒钟内有大量PADI包,浪费服务器的SESSION,同时让服务器无法处理其他用户的请求. 打开W ...

  4. boost 1.56.0 编译及使用

    boost的编译和使用,经过搜集资料和总结,记录成文.感谢文后所列参考资料的作者. 1 下载 地址:http://sourceforge.net/projects/boost/files/boost/ ...

  5. c# 垮线程调用控件

    http://www.cnblogs.com/TankXiao/p/3348292.html

  6. ux.form.field.KindEditor 所见所得编辑器

    注意需要引入KindEditor相关资源 //所见所得编辑器 Ext.define('ux.form.field.KindEditor', { extend: 'Ext.form.field.Text ...

  7. 你还在问android横竖屏切换的生命周期?

    本文原创,转载请注明来自xiaoQLuhttp://www.cnblogs.com/xiaoQLu/p/3324503.html 开源帮助android获得了飞速的发展,开源也导致了数不清的碎片问题. ...

  8. Factorization Machine

    Factorization Machine Model 如果仅考虑两个样本间的交互, 则factorization machine的公式为: $\hat{y}(\mathbf{x}):=w_0 + \ ...

  9. Eclipse 常用最新插件.标记

    Properties Editor     编辑java的属性文件,并可以自动存盘为Unicode格式 http://marketplace.eclipse.org/content/propertie ...

  10. 用 Python 和 OpenCV 检测图片上的条形码

      用 Python 和 OpenCV 检测图片上的的条形码 这篇博文的目的是应用计算机视觉和图像处理技术,展示一个条形码检测的基本实现.我所实现的算法本质上基于StackOverflow 上的这个问 ...