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;
}
參考文章
RDIFramework.NET — 基於.NET的快速資訊化系統開發框架 — 系列目錄
RDIFramework.NET ━ .NET快速資訊化系統開發框架 ━ 工作流程元件介紹
RDIFramework.NET框架SOA解決方案(集Windows服務、WinForm形式與IIS形式釋出)-分散式應用
RDIFramework.NET程式碼生成器全新V3.5版本釋出-重大升級
程式碼生成器下載
一路走來數個年頭,感謝RDIFramework.NET框架的支持者與使用者,大家可以通過下面的地址瞭解詳情。
RDIFramework.NET官方網站:http://www.rdiframework.net/
RDIFramework.NET官方部落格:http://blog.rdiframework.net/
特別說明,框架相關的技術文章請以官方網站為準,歡迎大家收藏!
RDIFramework.NET框架由專業團隊長期打造、一直在更新、一直在升級,請放心使用!
歡迎關注RDIFramework.net框架官方微信公眾號(微訊號:guosisoft),及時瞭解最新動態。
使用微信掃描二維碼立即關注
相關文章
- Thinkphp訂單系統,DukuanCMS競價訂單系統,單品訂單管理系統,多產品訂單管理系統PHP
- MySQL 主從複製過濾新增庫表過濾方案MySql
- MySQL 5.7主從新增新從庫MySql
- Winform DataGridViewTextBoxCell 編輯新增右鍵選單,編輯選中文字ORMView
- 圖書管理系統【JavaWeb:使用者、購買、訂單模組、新增許可權】JavaWeb
- 訂單管理系統分析及改進
- 新增表單請求後鉤子
- winform之在主窗體中不顯示子窗體的選單欄ORM
- 數字賦能,高效管理內衣訂單
- Helio for mac(音樂創作工具) v3.3免費版Mac
- 向Mysql主鍵自增長表中新增資料並返回主鍵MySql
- SAP 獲取採購訂單表頭長文字
- 簡單搭建MySQL主從複製MySql
- 訂單系統:從0到1設計思路
- smdms超市訂單管理系統之登入功能
- 資料庫主鍵、從鍵(易懂版)資料庫
- WinForm依賴注入簡單使用ORM依賴注入
- ava 新增、刪除Excel表單控制元件Excel控制元件
- 10億級別訂單的分庫分表方案
- 9.Flink實時專案之訂單寬表
- Window 10 單機配置MYSQL主從同步MySql主從同步
- 什麼是RFID數字化?看從訂單到配送的製造業管理RFID應用
- ComponentOne使用技巧——從Winform穿越到WPFORM
- TableStore實戰:億量級訂單管理解決方案
- 【中後臺應用】從表單抽象到表單中臺抽象
- 從12個方面詳細解讀Pulsar的主題與訂閱
- C#-用Winform製作一個簡單的密碼管理工具C#ORM密碼
- 智雲通CRM:如何掌握談判主動權,拿下大訂單?
- 如何快速最佳化幾千萬資料量的訂單表
- 關於c語言單項鍊表尾新增C語言
- c#winform主題實現的一個方法C#ORM
- MySQL主從同步(一主一從、一主多從、主從從)等結構的概述與配置MySql主從同步
- 【RocketMQ】主從模式下的消費進度管理MQ模式
- erp 專案訂單重構--修改訂單狀態部分
- SAP CRM訂單資料庫表CRMD_SHIPPING的填充原理資料庫
- 利用儲存的成交訂單,生成實盤交易分析報表
- 基於TableStore的海量電商訂單後設資料管理
- 順通訂單及客戶檔案資料管理系統