利用代码生成工具Database2Sharp设计数据编辑界面

时间:2022-09-21 15:52:10

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

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

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

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

利用代码生成工具Database2Sharp设计数据编辑界面

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

利用代码生成工具Database2Sharp设计数据编辑界面

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

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

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

利用代码生成工具Database2Sharp设计数据编辑界面

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

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

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

利用代码生成工具Database2Sharp设计数据编辑界面

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

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

利用代码生成工具Database2Sharp设计数据编辑界面

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

利用代码生成工具Database2Sharp设计数据编辑界面

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

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

利用代码生成工具Database2Sharp设计数据编辑界面

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

利用代码生成工具Database2Sharp设计数据编辑界面

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

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

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

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

利用代码生成工具Database2Sharp设计数据编辑界面

利用代码生成工具Database2Sharp设计数据编辑界面

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. C&num;反射实现 C&num; 反射 判断类的延伸类型 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码 C&num; ADO&period;NET的SqlDataReader对象&comma;判断是否包含指定字段 页面中添加锚点的几种方式 &period;net 简单实用Log4net(多个日志配置文件) C&num; 常用小点

    C#反射实现   一.反射概念: 1.概念: 反射,通俗的讲就是我们在只知道一个对象的内部而不了解内部结构的情况下,通过反射这个技术可以使我们明确这个对象的内部实现. 在.NET中,反射是重要的机制, ...

  9. 在代码生成工具Database2Sharp中使用ODP&period;NET(Oracle&period;ManagedDataAccess&period;dll)访问Oracle数据库,实现免安装Oracle客户端,兼容32位64位Oracle驱动

    由于我们开发的辅助工具Database2Sharp需要支持多种数据库,虽然我们一般使用SQLServer来开发应用较多,但是Oracle等其他数据库也是常用的数据库之一,因此也是支持使用Oracle等 ...

随机推荐

  1. Linux&lpar;Unix&rpar;时钟同步ntpd服务配置方法

    http://xu20cn.blog.51cto.com/274020/69689 假定时钟服务器IP地址为:192.168.0.1 服务器端配置: 1:置/etc/ntp.conf文件内容为: se ...

  2. js获取页面宽度高度及屏幕分辨率

    网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWid ...

  3. mysql 查询执行的流程

    1.客户端发送一个请求给服务器.2.服务器先检查查询缓存,命中了缓存,直接返回缓存中的数据,否则进入下一个阶段.3.服务器进行sql解析,预处理,再由优化器生成对应的执行计划.4.mysql根据执行计 ...

  4. flex开发小技巧集锦

    关于flex开发网上有非常多的相关信息介绍,因此我们要想学习关于flex开发的知识信息技能是一件非常简单和方便的事情.而针对于flex开发小编要告诉大家的是一些flex开发小技巧.利用这些小技巧能够有 ...

  5. Android-adb shell 读取手机系统文件

    1.首先保证手机是root 状态 2.运行 adb shell 页面以后 su root 3.ls 就会发现目录结构可以显示了

  6. stl&lowbar;alloc&period;h

    /* * Copyright (c) 1996-1997 * Silicon Graphics Computer Systems, Inc. * * Permission to use, copy, ...

  7. MiniSD卡是什么

    Mini SD卡比目前主流的普通SD卡(如DC或DV上使用的SD卡),在外形上更加小巧,重量仅有3克左右,体积只有21.5x20x1.4mm,比普通SD卡足足节省了60%的空间.别小看这么小的外形,它 ...

  8. Column store index 列数据如何匹配成行数据?

    SQL Server 2012引入了列存储索引,对每列的数据进行分组和存储,然后联接所有列以完成整个索引.这不同于传统索引,传统索引对每行的数据进行分组和存储,然后联接所有行以完成整个索引. 在访问基 ...

  9. TFS&lpar;Team Foundation Server&rpar;简介和新手入门

    在两部分的文章.我会介绍Team Foundation Server一些核心功能,着重于产品的日常应用是如何将这些功能结合使用. 作为一个软件开发.在我的职业生涯,.我常常用于支持软件开发过程中大量的 ...

  10. tensorflow-mnist报错&lbrack;WinError 10060&rsqb; 由于连接方在一段时间后没有正确答复解决办法

    问题原因: tensorflow提供了tensorflow.exapmles.tutorials.mnist.input_data模块下载mnist数据集.代码如下 如果path路径底下没有mnist ...