功能描述

无论什么系统,除了常规的单表处理外,主从表的应用都是非常普遍的,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;
}

参考文章

RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列目录

RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介绍

RDIFramework.NET框架SOA解决方案(集Windows服务、WinForm形式与IIS形式发布)-分布式应用

RDIFramework.NET代码生成器全新V3.5版本发布-重大升级

代码生成器下载

1、代码生成器使用说明下载

2、代码生成器百度网盘下载地址

3、代码生成器本地下载


一路走来数个年头,感谢RDIFramework.NET框架的支持者与使用者,大家可以通过下面的地址了解详情。

RDIFramework.NET官方网站:http://www.rdiframework.net/

RDIFramework.NET官方博客:http://blog.rdiframework.net/

特别说明,框架相关的技术文章请以官方网站为准,欢迎大家收藏!

RDIFramework.NET框架由专业团队长期打造、一直在更新、一直在升级,请放心使用!

欢迎关注RDIFramework.net框架官方微信公众号(微信号:guosisoft),及时了解最新动态。

使用微信扫描二维码立即关注

RDIFramework.NET V3.3 WinForm版新增订单管理主从表事例的更多相关文章

  1. RDIFramework.NET V3.3 WinForm版新增日程管理功能模块

    功能描述 日程管理基于月.周.日的日历视图,把安排到每一天的具体时间点,让每一天的时间都充分利用:甚至您也可以把个人非工作事项也安排进来,完全是属于自己的全时间管理.就是将每天的工作和事务安排在日期中 ...

  2. RDIFramework.NET V3.3 WinForm版角色授权管理新增角色对操作权限项、模块起止生效日期的设置

    在实际应用在我们可能会有这样的需求,某个操作权限项(按钮)或菜单在某个时间范围内可以让指定角色访问.此时通过我们的角色权限扩展设置就可以办到. 在我们框架V3.3 WinForm版全新增加了角色权限扩 ...

  3. RDIFramework.NET V3.3 Web版新增报表管理功能模块-重量级实用功能

    功能描述 在RDIFramework.NET V3.3 Web版本新增了全新的报表管理功能模块,非常实用的功能,重量级推荐.主要用于对日常常用的报表做定制展示.可以自动发布到模块(就可授权给指定资源访 ...

  4. RDIFramework.NET V3.3 Web版新增日程管理功能模块

    功能描述 在RDIFramework.NET V3.3 Web版本我们新增了日程管理.基于月.周.日的日历视图,把安排到每一天的具体时间点,让每一天的时间都充分利用:甚至您也可以把个人非工作事项也安排 ...

  5. RDIFramework.NET V3.3 Web版新增系统公告、系统新闻模块方便需要的客户

    1.系统新闻功能描述 在RDIFramework.NET V3.3版本中新增了系统新闻模块,用户可以根据实际情况做相应应用,如用在内部业务系统的展示中或网站上新闻的展示.新闻可以分类进行管理,非常的实 ...

  6. RDIFramework.NET V3.3 Web版角色授权管理新增角色对操作权限项、模块起止生效日期的设置

    在实际应用在我们可能会有这样的需求,某个操作权限项(按钮)或菜单在某个时间范围内可以让指定角色访问.此时通过我们的角色权限扩展设置就可以办到. 在我们框架V3.3 Web版本全新增加了角色权限扩展设置 ...

  7. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.0 版新增消息管理

    在V3.0版本的Web(Mvc.WebForm)与WinForm中我们新增了“消息管理”模块.“消息管理”模块是对框架的所有消息进行管理.通过左侧的消息分类可以查看所选分类的所有消息列表.在主界面上我 ...

  8. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.0 版新增系统参数管理

    欲了解V3.0版本的相关内容可查看下面的链接地址. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.0 版本发布 在V3.0版本的Web(Mvc.WebForm)与WinF ...

  9. RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本━新增岗位管理-WinForm部分

    RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本 新增岗位管理-WinForm部分 岗位(职位)管理模块主要是针对组织机构的岗位(职位)进行管理,包括:增加.修改. ...

随机推荐

  1. 复仇者联盟3热映,我用python爬取影评告诉你它都在讲什么

    Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理 ...

  2. 单台PC玩转NEUTRON(一:环境准备)

    要开始从事云计算网络领域的技术研究.过去10年一直是从事传统网络相关的工作,新的事务在知识结构上还有一些差异,边学边写,作为个人总结,也共享给大家. 工欲善其事必先利其器,好的开发调测环境让人学习工作 ...

  3. eclipse使用javaFX写一个HelloWorkld

    ------------------------------------------------ 操作系统:Ubuntu18.04 EclipseVersion: Oxygen.3a Release ...

  4. js 的 骚操作

    单行的js 代码虽然简洁,但却不易维护,甚至难以理解, 但这却并不影响前端童鞋们编写简洁代码的热情, 一   , 生成随机ID // 生成长度为10的随机字母数字字符串 Math.random().t ...

  5. Vue 进阶之路(二)

    之前的文章我们初识了 vue,对其原理,数据绑定和方法进行了简单的演示,本篇将对 vue 插值表达式,v-text,v-html 进行讲解. <!DOCTYPE html> <htm ...

  6. Docker入门学习

    Python爬虫 最近断断续续的写了几篇Python的学习心得,由于有开发经验的同学来说上手还是比较容易,而且Python提供了强大的第三方库,做一个小的示例程序还是比较简单,这不我之前就是针对Pyt ...

  7. Android快速开发常用知识点系列目录

    项目构建 Android项目目录结构模板以及简单说明[简单版] Android Studio配置统一管理依赖版本号引用 Android多Module下的Application引用方式 APP开篇 An ...

  8. flex 布局实现固定头部和底部,中间滚动布局

    关键词:display: flex,flex: 1,  overflow-y: scroll; 实现:head 和footer 固定,中间body多了滚动,少了撑满: head和footer宽度根据内 ...

  9. 自定义view 波浪效果

    实现波浪效果view,可以自定义view,也可以自定义drawable,我个人比较喜欢重写drawable,因此这里是自定义drawable实现效果,费话少说,先看效果. 这里用了两种方式实现波浪效果 ...

  10. JDBC:SqlServer连接TCP/IP连接失败,到主机 的 TCP/IP 连接失败。报错信息:com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。

    作者QQ:1161493927,欢迎互相交流学习. 报错信息:com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败. j ...