明细表使用ButtonEdit选择商品资料并设置商品名称,单价等信息
明细表使用ButtonEdit选择商品资料并设置商品名称,单价等信息如图:
基本思路:
1. 绑定ButtonEdit的Click,Validating事件。
2. 如用户Click,则打开商品查询窗体,当用户选择一个商品并关闭窗体,调用SearchStockCallBack方法设置商品资料相关字段的值。
3. 如用户输入编号,按回车时触发Validating事件,这时系统跟据bllProduct.GetDataByKey()从数据库取商品的资料,如编号正确,调用SearchStockCallBack()方法设置商品资料相关字段的值。
4. 商品名称必须为“Lookup ” 类型,因为业务单据的明细表只与商品编号关联,而商品名称是通过左联接(LEFT JOIN)查询出来的。新增的商品必须调用SearchStockCallBack方法给商品名称赋值,当存储数据后,下次修改时商品名称是LEFT JOIN查询出来的。
5. DAL层取业务单据的资料表(或主从关系的),建议将SQL封装为存储过程,DAL层不要写太多的SQL,将来不好维护。
部分源码:
private void OnStockCode_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
{
//打开商品查询窗体
frmFuzzySearch.Execute(sender as ButtonEdit, new bllProduct(), this.SearchStockCallBack);
}
//检查商品编号
private void OnStockCode_Validating(object sender, CancelEventArgs e)
{
if (this.IsAddOrEditMode == false) return;
if (string.IsNullOrEmpty((sender as ButtonEdit).Text)) return;
string stockCode = (sender as ButtonEdit).Text.Trim();
DataTable dt = new bllProduct().GetDataByKey(stockCode); //验证产品编号是否正确
if (dt.Rows.Count > 0)
this.SearchStockCallBack(dt.Rows[0]);
else
{
e.Cancel = true;
Msg.Warning("产品编号不存在!");
}
}
private void SearchStockCallBack(DataRow resultRow)
{
if (resultRow == null) return;
//给表格的字段赋值
int H = gvDetail.FocusedRowHandle;
gvDetail.SetRowCellValue(H, colD_ProductID, ConvertEx.ToString(resultRow[tb_Product.ProductID]));
gvDetail.SetRowCellValue(H, colD_ProductName, ConvertEx.ToString(resultRow[tb_Product.ProductName]));
gvDetail.SetRowCellValue(H, colD_AssyNumber, 1);
gvDetail.UpdateCurrentRow();
}
模板窗体:
参考开发框架销售订单(SO)的明细表处理机制。
Dev ButtonEdit按钮设置图片和文字
DevExpress GridView 表格内嵌ButtonEdit按钮列图片按钮及Click事件
C/S结构快速开发框架使用的DevExpress常用组件|C/S开发框架
C#Winform代码生成器新功能 - 支持配置每个字段可弹窗选择数据
DataBinder类详解 | Winform MiniFramework蝇量框架|C/S开发框架
四.业务单据窗体开发步骤|业务单据窗体|C/S快速开发框架|标准版V2.3|软件手册
WinFramework轻量级开发框架 | 主从表窗体开发指南|详细二次开发|C/S开发框架
业务单据窗体开发步骤|开发教程
C/S架构进销存快速开发框架开发模板功能介绍
Winform查询数据对话窗体与选择资料窗体实现|C/S框架网
C/S结构快速开发框架使用的DevExpress常用组件
推荐C# Winform+DevExpress皮肤框架|C/S框架网
弹出窗体勾选多条记录自动添加到明细表
C# C/S架构明细表产品资料输入及单条记录选取方案
C# C/S架构下客户、供应商等大批量数据单条记录选取组件
什么是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内容管理系统 |
在线客服
