Toggle navigation
首页
产品中心
全新RDIF.vNext低代码框架
镇店
.NET C/S开发框架
.NET Web敏捷开发框架
.NET 快速开发框架(全新EasyUI版本)
.NET 代码生成器
.NET WebAPI服务端开发框架
客户案例
付款方式
国思学堂
技术文章
新闻资讯
下载
关于
首页
技术文章
RDIF.NET
正文
原创
2021-02-25
浏览 (
16181
)
RDIFramework.NET V3.3 WinForm版新增订单管理主从表事例
## 功能描述 ## 无论什么系统,除了常规的单表处理外,主从表的应用都是非常普遍的,RDIFramework.NET V3.3 WinForm版本中新增了一个主从表的事例供大家参考。主从表的界面设计大同小异,主要还是在处理CRUD操作时的一些特殊性,如:新增、修改、删除操作要放在同一事务提交,删除主表数据,从表对应数据也应相应删除等。主从表一般涉及两个以上的表,一个是主表,其他的是从表的,在实际情况下,一般包含两个表较多,下面我们以两个表的主从表关系进行分析展示。 ## 订单管理主从表关系结构图 ## ![订单管理主从表关系结构图](http://doc.rdiframework.net/blog/article/20181213100733876.png-pw) ## 功能展示 ## 对于订单管理主从表结构信息,主界面展示分为两部分:一部分是主表信息,一部分是从表信息,单击主表对应信息后,显示对应从表的列表信息,如下图所示。 ![file](http://doc.rdiframework.net/blog/article/20181213100838022.png-pw) 新增产品如下图所示,丰富的控件展示,列表直接编辑,自动计算并汇总等实用功能。 ![file](http://doc.rdiframework.net/blog/article/20181213100911973.png-pw) ![file](http://doc.rdiframework.net/blog/article/20181213100926098.png-pw) ![file](http://doc.rdiframework.net/blog/article/20181213100953491.png-pw) ![file](http://doc.rdiframework.net/blog/article/20181213101010916.png-pw) 打印功能: ![打印功能](http://doc.rdiframework.net/blog/article/20181213101106545.png-pw) ## 核心功能代码参考 ## **编辑界面保存代码参考** 在编辑界面不仅可以新增数据,还可以编辑数据,调用相同的保存数据的方法。 ``` //保存数据 private void btnSave_Click(object sender, EventArgs e) { if (!this.Changed) { //数据未被修改过就直接返回即可 this.DialogResult = DialogResult.OK; this.Close(); } else { CaseOrderEntity orderEntity = GetFormOrderEntity(); grdOrderDetail.FocusedView.CloseEditor(); var orderDetailList = new List<CaseOrderDetailEntity>(); for (int i = 0; i < this.gridViewOrderDetail.RowCount; i++) { var detailInfo = gridViewOrderDetail.GetRow(i) as CaseOrderDetailEntity; detailInfo.OrderId = orderEntity.Id; if (detailInfo != null) { orderDetailList.Add(detailInfo); } } try { int returnValue = caseOrderService.SaveOrder(this.UserInfo, OrderId, orderEntity, orderDetailList); if (returnValue > 0) { MessageBoxHelper.ShowSuccessMsg(RDIFrameworkMessage.MSG0011); this.DialogResult = DialogResult.OK; this.Close(); OnFormClosedRefreash?.Invoke(); } } catch (Exception ex) { ProcessException(ex); } } } ``` **保存数据服务实现参考** ``` /// <summary> /// 新增或修改 /// </summary> /// <param name="userInfo">用户</param> /// <param name="keyValue">主键值</param> /// <param name="entity">实体对象</param> /// <param name="detailEntitys">明细对象</param> /// <returns></returns> public int SaveOrder(UserInfo userInfo, string keyValue, CaseOrderEntity entity, List<CaseOrderDetailEntity> detailEntitys) { int returnValue = 0; var parameter = ParameterUtil.CreateWithMessage(userInfo, MethodBase.GetCurrentMethod(), this.serviceName, "SaveOrder-新增或修改"); ServiceUtil.ProcessBusinessDbWithTran(userInfo, parameter, dbProvider => { if (!string.IsNullOrEmpty(keyValue)) { //主表 var manager = new CaseOrderManager(dbProvider, userInfo); entity.Id = keyValue; returnValue = manager.UpdateEntity(entity); //明细表 var managerDetail = new CaseOrderDetailManager(dbProvider, userInfo); managerDetail.Delete(new KeyValuePair<string, object>(CaseOrderDetailTable.FieldOrderId, keyValue)); foreach(CaseOrderDetailEntity orderDetail in detailEntitys) { orderDetail.OrderId = keyValue; orderDetail.Enabled = 1; orderDetail.DeleteMark = 0; managerDetail.Add(orderDetail); } } else { //主表 var manager = new CaseOrderManager(dbProvider, userInfo); entity.Enabled = 1; entity.DeleteMark = 0; string orderKey = manager.Add(entity); returnValue = string.IsNullOrEmpty(orderKey) ? 0 : 1; //明细表 var managerDetail = new CaseOrderDetailManager(dbProvider, userInfo); foreach (CaseOrderDetailEntity orderDetail in detailEntitys) { orderDetail.OrderId = orderKey; orderDetail.Enabled = 1; orderDetail.DeleteMark = 0; managerDetail.Add(orderDetail); } } }); return returnValue; } ``` ----- ![往期推荐](http://doc.rdiframework.net/rdiblog/20210219151130) - [全新跨平台版本.NET敏捷开发框架-RDIFramework.NET5.0震撼发布](http://www.guosisoft.com/article/detail/241) - [RDIFramework.NET敏捷开发框架助力企业BPM业务流程系统的开发与落地](http://www.guosisoft.com/article/detail/251) - [通过SignalR技术整合即时通讯(IM)在.NET敏捷开发框架中落地](http://www.guosisoft.com/article/detail/252) - [RDIFramework.NET WinForm版新增通知公告、系统新闻模块](http://www.guosisoft.com/article/detail/254) - [RDIFramework.NET Web版报表管理-助力企业高效智能图表](http://www.guosisoft.com/article/detail/255) - [RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列目录](http://www.guosisoft.com/article/detail/190) - [RDIFramework.NET敏捷开发框架 ━ 工作流程组件介绍](http://www.guosisoft.com/article/detail/233) - [RDIFramework.NET敏捷开发框架 ━ 工作流程组件Web业务平台](http://www.guosisoft.com/article/detail/256) - [RDIFramework.NET敏捷开发框架 ━ 工作流程组件WinForm业务平台](http://www.guosisoft.com/article/detail/172) - [微信公众号开发系列-玩转微信开发-目录汇总](http://www.guosisoft.com/article/detail/216) - [史上最全面的SignalR系列教程-目录汇总](http://www.guosisoft.com/article/detail/230) - [RDIFramework.NET敏捷开发框架通过SignalR技术整合即时通讯(IM)](http://www.guosisoft.com/article/detail/229) - [RDIFramework.NET框架基于Quartz.Net实现任务调度详解及效果展示](http://www.guosisoft.com/article/detail/221) - [RDIFramework框架整合微信开发应用效果展示](http://www.guosisoft.com/article/detail/219) ----- 一路走来数个年头,感谢RDIFramework.NET框架的支持者与使用者,大家可以通过下面的地址了解详情。 RDIFramework.NET官方网站:[http://www.rdiframework.net/](http://www.rdiframework.net/) [http://www.guosisoft.com/](http://www.guosisoft.com/) 特别说明,框架相关的技术文章请以官方网站为准,欢迎大家收藏! RDIFramework.NET框架由海南国思软件科技有限公司专业团队长期打造、一直在更新、一直在升级,请放心使用! 欢迎关注RDIFramework.NET框架官方微信公众号(微信号:**guosisoft**),及时了解最新动态。 使用微信扫描二维码立即关注 ![微信二维码](http://doc.rdiframework.net/rdiblog/20210127112204.png)
正文到此结束
本文标签:
.NET
RDIF.NET
版权声明:
本站原创文章,由
guosisoft.com
发布,遵循
CC 4.0 by-sa
版权协议,转载请附上原文出处链接和本声明。
上一篇
RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件WinForm业务平台
下一篇
RDIFramework.NET敏捷开发框架 ━ 工作流程组件介绍
热门推荐
{{article.title}}
热门指数:
浏览({{article.lookCount + 5000}})
相关文章
{{article.title}}
该篇文章的评论功能暂时被站长关闭
说给你听
本文目录
文章标签
RDIF.NET
其他
微信开发
.NET
消息交互
.NetCore
项目管理
常用工具
工作流
Web前端
数据库
挨踢业界
随机文章
ORACLE常见问题一千问[401至500](不怕学不成、就怕心不诚!)
史上最全面的SignalR系列教程-4、SignalR 自托管全解(使用Self-Host)-附各终端详细实例
RDIFramework.NET代码生成器全新V5.1版本发布
RDIFramework.NET V3.2->WinForm版本重构岗位授权管理界面更规范、高效与美观
RDIFramework.NET V3.3 WinForm版新增日程管理功能模块
书写高质量JavaScript代码的要义(The Essentials of Writing High Quality JavaScript)翻译
[推荐]ORACLE SQL:经典查询练手第三篇(不懂装懂,永世饭桶!)
[推荐]ORACLE SQL:经典查询练手(不懂装懂,永世饭桶!)
一文讲通.NET Core部署到Windows IIS最全解决方案
.NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)
.NET快速信息化系统开发框架 V3.2->Web版本模块管理界面新增模块排序功能
微信公众号开发C#系列-3、搭建微信本地调试环境-借助花生壳实现内网穿透
如何有效创建工作分解结构?
SQLServer中的CTE(Common Table Expression)通用表表达式使用详解
[推荐]ORACLE SQL:经典查询练手第一篇(不懂装懂,永世饭桶!)
.NET编译项目时出现《此实现不是 Windows 平台 FIPS 验证的加密算法的一部分》处理方法
.Net Core发布到Linux下验证码失效的处理
前端设计,确定按钮正慢慢消失
DevExpress破解后运行弹出试用窗口问题处理方式
信息系统项目管理系列之五:项目整体管理
网站信息
文章总数:599 篇
标签总数:8 个
分类总数:8 个
留言数量:1385 条
在线人数:
89
人
运行天数:1321天
最后更新:2023-05-18
QQ:406590790
13005007127