在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. 含有Date和Timestamp的Java和Json互相转化

    工程 代码 package com.my.json.helper; import java.text.DateFormat; import java.text.SimpleDateFormat; im ...

  2. 完全图解scrollLeft,scrollWidth,clientWidth,offsetWidth 获取相对途径,滚动图片(网上找的,未经试验,但觉得比较好)

    获取元素的位置属性可以通过 HTMLElement.offsetLeft HTMLElement.offsetTop 但是,这两个属性所储存的数值并不是该元素相对整个浏览器画布的绝对位置,而是相对于其 ...

  3. java项目中读取properties文件

    这里的配置文件都放在src下面, System.properties的内容 exceptionMapping=exceptionMapping.properties config=config.pro ...

  4. ATA/SATA/SCSI/SAS/FC总线简介

    ATA/SATA/SCSI/SAS/FC 都是应用于存储领域的总线,在当今的存储系统中,普遍应用的硬盘接口主要有 SATA . SCSI . SAS 和FC , ATA 比较古老,在一些老的低端存储系 ...

  5. ECshop 怎样修改商品详细页的“浏览次数”

    怎样修改商品详细页的“浏览次数” 最好可以修改为成倍增加的,比如客户浏览了一次,显示的是20次. 修改 goods.php  文件的下面这行代码即可 $db->query('UPDATE ' . ...

  6. [GraphQL] Serve a GraphQL Schema as Middleware in Express

    If we have a GraphQL Schema expressed in terms of JavaScript, then we have a convenient package avai ...

  7. 学习之路三十九:新手学习 - Windows API

    来到了新公司,一开始就要做个程序去获取另外一个程序里的数据,哇,挑战性很大. 经过两周的学习,终于搞定,主要还是对Windows API有了更多的了解. 文中所有的消息常量,API,结构体都整理出来了 ...

  8. HBase修改压缩格式及Snappy压缩实测分享

    一.要点 有关Snappy的相关介绍可参看Hadoop压缩-SNAPPY算法,如果想安装Snappy,可以参看Hadoop HBase 配置 安装 Snappy 终极教程. 1. HBase修改Tab ...

  9. SQL SERVER 2008 如何查询含有某关键词的表

    最新文章:Virson's Blog 文章来自:百度知道 /** 查询一个数据库中所有的数据中是否包含指定字符串 */ ) set @str='字符串' --要搜索的字符串 ) declare tb ...

  10. javascript中apply()方法解析-简单易懂!

    今天看到了js的call与apply的异同,想着整理一下知识点,发现了一篇好文章,分享过来给大家,写的非常好! 参考: http://www.cnblogs.com/delin/archive/201 ...