Toggle navigation
首页
产品中心
全新RDIF.vNext低代码框架
镇店
.NET C/S开发框架
.NET Web敏捷开发框架
.NET 快速开发框架(全新EasyUI版本)
.NET 代码生成器
.NET WebAPI服务端开发框架
客户案例
付款方式
国思学堂
技术文章
新闻资讯
下载
关于
首页
技术文章
RDIF.NET
正文
原创
2021-02-25
浏览 (
16593
)
RDIFramework.NET V3.3 WinForm版新增订单管理主从表事例
## 功能描述 ## 无论什么系统,除了常规的单表处理外,主从表的应用都是非常普遍的,RDIFramework.NET V3.3 WinForm版本中新增了一个主从表的事例供大家参考。主从表的界面设计大同小异,主要还是在处理CRUD操作时的一些特殊性,如:新增、修改、删除操作要放在同一事务提交,删除主表数据,从表对应数据也应相应删除等。主从表一般涉及两个以上的表,一个是主表,其他的是从表的,在实际情况下,一般包含两个表较多,下面我们以两个表的主从表关系进行分析展示。 ## 订单管理主从表关系结构图 ##  ## 功能展示 ## 对于订单管理主从表结构信息,主界面展示分为两部分:一部分是主表信息,一部分是从表信息,单击主表对应信息后,显示对应从表的列表信息,如下图所示。  新增产品如下图所示,丰富的控件展示,列表直接编辑,自动计算并汇总等实用功能。     打印功能:  ## 核心功能代码参考 ## **编辑界面保存代码参考** 在编辑界面不仅可以新增数据,还可以编辑数据,调用相同的保存数据的方法。 ``` //保存数据 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; } ``` -----  - [全新跨平台版本.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**),及时了解最新动态。 使用微信扫描二维码立即关注 
正文到此结束
本文标签:
.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前端
数据库
挨踢业界
随机文章
.NET快速信息化系统开发框架 V3.2-模块管理按子系统进行分类管理
.NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)
信息系统项目管理系列之四:项目可行性研究与评估
[推荐]ORACLE SQL:经典查询练手第三篇(不懂装懂,永世饭桶!)
微信公众号开发C#系列-9、多公众号集中管理
[特别公告]RDIFramework.NET微信公众号迁移通知
团队项目开发"编码规范"之三:程序注释
RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列目录
.NET Core 环境变量详解
VS2010+以上版本网站发布IIS详细步骤
【保姆级教程】Vue项目调试技巧
WinForm(C/S)项目中使用矢量字体(FontAwsome、Elegant)图标
一文讲通.NET Core部署到Windows IIS最全解决方案
RDIFramework.NET代码生成器全新V5.0版本发布
RDIFramework.NET ━ .NET快速信息化系统开发框架钜献 V2.9 版本震撼发布
.NET Core部署到linux(CentOS)最全解决方案,入魔篇(使用Docker+Jenkins实现持续集成、自动化部署)
RDIFramework.NET开发框架在线表单设计整合工作流程的使用
RDIFramework.NET V3.3 Web版角色授权管理新增角色对操作权限项、模块起止生效日期的设置
后台界面设计之表格设计规范参考
信息系统项目管理系列之八:项目成本管理
网站信息
文章总数:599 篇
标签总数:8 个
分类总数:8 个
留言数量:1385 条
在线人数:
89
人
运行天数:1321天
最后更新:2023-05-18
QQ:406590790
13005007127