C# C/S架构明细表产品资料输入及单条记录选取方案
C# C/S架构明细表产品资料输入及单条记录选取方案
如采购订单、销售订单、库存调整、出入库等功能的明细表货品资料栏位,为了提供便捷的操作及丰富的体验,理想的做法是即可输入货品编号又能提供灵活的选择功能。下图是开发框架提供的货品编码输入解决方案:
货品编码:该栏位集成ButtonEdit组件特性,在GridColumn.CustomEdit指定RepositoryItemButtonEdit类型。这样即可输入编码又能打开选择窗体选择货品。
货品名称:使用左连接LEFT JOIN 从货品表关联查询出来。
功能实现
1. 明细表的数据源从视图(View)获取,比如采购订单明细表是tb_POs对应的视图是vw_POs,视图的主要功能是使用左连接关联出货品的信息,比如货品名称、单位等在表格内只读显示(背景色为浅灰色)。
2. ButtonEdit绑定两个处理事件。ButtonClick是ButtonEdit的Click事件,点击按钮打开frmFuzzySearch窗体,并传入一个回调函数(Callback),当用户选择一条货品资料,按确定按钮会调用这个事件,回调函数的功能是给货品资料相关的栏位赋值。Validating事件是检查用户输入的编码是否存在,跟据编码从后台查询货品并返回DataRow对象,如果编码存在DataRow不为空,否则提示用户“编码不存在!”,另一个功能是设置货品资料相关栏位的值,与回调函数调用的是同一个方法:SearchStockCallBack。
C# Code:
(colD_ProductCode.ColumnEdit as RepositoryItemButtonEdit).ButtonClick = new ButtonPressedEventHandler(OnStockCode_ButtonClick);
(colD_ProductCode.ColumnEdit as RepositoryItemButtonEdit).Validating = new CancelEventHandler(OnStockCode_Validating);
(colD_ProductCode.ColumnEdit as RepositoryItemButtonEdit).ButtonClick = new ButtonPressedEventHandler(OnStockCode_ButtonClick);
(colD_ProductCode.ColumnEdit as RepositoryItemButtonEdit).Validating = new CancelEventHandler(OnStockCode_Validating);
C# Code:
/// <summary>
/// 选择货品资料,设置当前货品相关栏位的资料
/// </summary>
private void SearchStockCallBack(DataRow resultRow)
{
if (resultRow == null) return;
int H = gvDetail.FocusedRowHandle;//当前记录号
gvDetail.SetRowCellValue(H, colD_ProductCode, ConvertEx.ToString(resultRow[tb_Product.ProductCode]));//货品编码
gvDetail.SetRowCellValue(H, colD_ProductName, ConvertEx.ToString(resultRow[tb_Product.ProductName]));//货品名称
gvDetail.UpdateCurrentRow();
}
/// <summary>
/// 选择货品资料,设置当前货品相关栏位的资料
/// </summary>
private void SearchStockCallBack(DataRow resultRow)
{
if (resultRow == null) return;
int H = gvDetail.FocusedRowHandle;//当前记录号
gvDetail.SetRowCellValue(H, colD_ProductCode, ConvertEx.ToString(resultRow[tb_Product.ProductCode]));//货品编码
gvDetail.SetRowCellValue(H, colD_ProductName, ConvertEx.ToString(resultRow[tb_Product.ProductName]));//货品名称
gvDetail.UpdateCurrentRow();
}

其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
