在代码生成工具的各种功能规划中,我们一向以客户的需求作为驱动,因此也会根据需要增加一些特殊的功能或者处理。在实际的开发中,虽然我们一般以具体的表进行具体业务开发,但是有些客户提出有时候视图开发也是很常见的,为了提高代码生成和界面生成的效率,基于视图开发的过程也应该支持。还有主从表的界面生成操作,在很多实际的业务领域也是很常见的。基于上面的需求,本次代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能,为客户的高效率开发快马加鞭、保驾护航。
1、基于视图的代码生成和界面生成操作
为了支持视图的相关代码生成,我们把代码生成工具底层的元数据进行了优化整合,是指在代码生成方面,具体的表和视图不再有具体的差异,基本上都是可以统一对待,实现快速的框架代码生成、Winform界面生成、Web界面生成操作的,所有的表的相关属性,视图也具有,因此在代码模板方便,不需要进行调整,兼容了代码模板的属性处理,提高了已有代码模板的安全性。
如上所示,为了区分表和视图的位置,我们把视图统一放在了表的后面,方便选择处理,在选择的时候,表和视图都是一视同仁,所以代码生成的处理适用于表的,也是适用于视图的,可以统一一并生成,极大的提高了代码生成的效率。
当然,视图的增删改操作,和表毕竟不一样,一般视图只是为了查询数据进行展示的,所以在实际开发的时候,可以适当屏蔽视图的增删改操作,或者自定义相关的接口进行处理。
在Winform界面的生成的时候,我们也一样整合了视图的列表,可以基于视图进行界面代码的生成。
不过我们注意到,一般表我们使用备注信息作为Winform界面的字段说明信息的,如果是视图,那么是无法获取到它的视图字段备注信息的,因为视图的字段备注是不存在的,为了实现和表一样具有中文备注的界面,我们增加了一个对视图字段进行备注信息维护的界面,有着字段的备注,我们生成Winform界面的时候,对应字段的标签就有中文信息了。
通过Enterprise Library架构生成的相关代码,也同时具有相关的备注信息,如下代码所示。
通过代码生成工具里面的Winform界面代码生成,当然也会具有相关的备注信息,可以在界面上显示对应的中文标签信息了。
视图的Winform界面代码生成和普通的表生成的Winform界面操作过程一样,具体界面操作如下所示。
这样生成的Winform界面操作和普通表的处理方式一致,而且对应的视图字段也有了备注信息,因此在界面上的标签说明也就和表一样,可以显示备注信息了。
2、主从表的界面生成操作
在有些情况下,有些业务表是具有主从关系的,如一个是汇总信息,一个是明细信息,如仓库的入库、出库操作,会员的消费操作,都是典型的主从表应用场景,可以把它们作为一个界面生成的案例进行处理。
标准的主从表界面如下界面所示。
或者会员消费信息的横向界面展示如下所示。
在我之前的代码生成界面里面,主要是生成标准的分页列表展示,以及编辑明细两个标准界面,为了更加丰富开发工具的界面生成,根据上面两种界面的综合情况,增加一个主从表的界面生成操作,这样可以更加适应实际的业务开发工作,高效进行界面的快速生成。
如在代码生成工具里面,设置主从表的界面生成如下所示。
生成Winform界面代码后,在VS编辑器里面,可以看到如下所示界面。
最后在实际程序上运行生成的界面,就可以看到预览的界面效果了,界面效果如下所示。
为了方便,上面界面增加了一个复选框,用来切换横向或者纵向展示明细列表的,勾选后进行横向显示,如下所示。
上面主从表的展示,还包括了明细表信息的汇总功能,这样基本上满足了主从表的信息展示了,如果需要,还可以在这基础上进行更方便的改进了。
代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能的更多相关文章
-
在代码生成工具Database2Sharp中增加Vue&;Element 工作流页面的快速生成
在我们基于框架开发系统的时候,往往对一些应用场景的页面对进行了归纳总结,因此对大多数情况下的页面呈现逻辑都做了清晰的分析,因此在我们基于框架的基础上,增量式开发业务功能的时候,能够事半功倍.代码生成工 ...
-
基于Metronic的Bootstrap开发框架经验总结(18)-- 在代码生成工具Database2Sharp中集成对Bootstrap-table插件的分页及排序支持
在我们开发系统界面,包括Web和Winform的都一样,主要的界面就是列表展示主界面,编辑查看界面,以及一些辅助性的如导入界面,选择界面等,其中列表展示主界面是综合性的数据展示界面,一般往往需要对记录 ...
-
在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容32位64位Oracle驱动
由于我们开发的辅助工具Database2Sharp需要支持多种数据库,虽然我们一般使用SQLServer来开发应用较多,但是Oracle等其他数据库也是常用的数据库之一,因此也是支持使用Oracle等 ...
-
C#反射实现 C# 反射 判断类的延伸类型 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码 C# ADO.NET的SqlDataReader对象,判断是否包含指定字段 页面中添加锚点的几种方式 .net 简单实用Log4net(多个日志配置文件) C# 常用小点
C#反射实现 一.反射概念: 1.概念: 反射,通俗的讲就是我们在只知道一个对象的内部而不了解内部结构的情况下,通过反射这个技术可以使我们明确这个对象的内部实现. 在.NET中,反射是重要的机制, ...
-
使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码
在前面随笔<基于Metronic的Bootstrap开发框架--工作流模块功能介绍>和<基于Metronic的Bootstrap开发框架--工作流模块功能介绍(2)>中介绍了B ...
-
利用代码生成工具Database2Sharp设计数据编辑界面
在Winform程序开发中,界面部分的开发工作量一般是比较大的,特别是表的字段数据比较多的情况下,数据编辑界面所需要的繁琐设计和后台逻辑处理工作量更是直线上升,而且稍不注意,可能很多处理有重复或者错误 ...
-
代码生成工具Database2Sharp的架构介绍
1)代码生成工具介绍 Database2Sharp是一款代码生成工具和数据库文档生成工具,该工具从2005年开始至今,一直伴随着我们的客户和粉丝们经历着过各种各样的项目开发,在实际开发中能带来效率的提 ...
-
调整代码生成工具Database2Sharp的Winform界面生成,使其易于列表工具栏的使用。
在Winform界面开发的时候,有时候我们客户喜欢把功能放在列表界面的顶部,这样界面和功能整齐放置,也是一种比较美观的方式,基于这种方式的考虑,改造了代码生成工具的Winform界面生成规则,把增删改 ...
-
代码生成工具更新--快速生成Winform框架的界面项目
在之前版本的代码生成工具Database2Sharp中,由于代码生成都是考虑Winform和Web通用的目的,因此Winform界面或者Web界面都是单独生成的,在工具中生成相应的界面后,复制到项目里 ...
随机推荐
-
在php中防止SQL注入的方法
摘要:我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行 php能够更安全.整个PH ...
-
07 SQL优化技术
本章提要------------------------------------------------------调优技术及什么时候使用------------------------------- ...
-
DBA_基本Bash语法汇总(汇总)
2014-06-26 Created By BaoXinjian
-
关于python decode()和 encode()
1.先收集一下这几天看到的关于decode()解码和encode()编码的用法 bytes和str是字节包和字符串,python3中会区分bytes和str,不会混用这两个.字符串可以编码成字节包,而 ...
-
Fragment总结
一.总体工程图: 二.main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android& ...
- java IO输入输出流实现文本复制
-
Laravel安装redis扩展
Laravel安装redis扩展 1.使用命令行,执行(当然要先安装composer) composer require predis/predis 2.执行完就安装好了,redis相关配置可以到.e ...
-
【LeetCode】134.Gas Station
Problem: There are N gas stations along a circular route, where the amount of gas at station i is ga ...
-
『TensorFlow』slim模块常用API
辅助函数 slim.arg_scope() slim.arg_scope可以定义一些函数的默认参数值,在scope内,我们重复用到这些函数时可以不用把所有参数都写一遍,注意它没有tf.variable ...
-
See you~ HDU1892
一开始还离散化弄了好久 离散化细节弄得好差 这题用二维树状数组做很快 因为树状数组下标不为0 所以所有下标要加一处理 还有就是算矩阵的时候要处理两个坐标的大小关系 个人感觉树状数组用for语句写 ...