明细表使用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)的明细表处理机制。
参考文档:
C# C/S架构明细表产品资料输入及单条记录选取方案 界面是否全部使用dev的控件?还是也可以选择其它的控件库? 使用Dock.Fill控件被遮挡解决方法(将被遮挡的组件设置为顶层既可解决) CS开发框架旗舰版主从从表(多级明细表)实例,自动生成主从表代码 C/S系统开发框架多级明细表(三级表/主从从表)数据结构参考 明细表插入记录Insert报错:行插入位置-2147483648无效。 使用bllBaseDataDict类提交业务单据(主从表)的明细表实例|C/S框架网 支持主从表BLL单独提交明细表优化UpdateDetailKey方法|C/S框架网 更新明细表的外键-优化方法UpdateDetailKey|C/S框架网 数据字典基础资料窗体主键设置为自动生成流水号码解决方案 主从表界面自动计算明细表合计汇总金额数量 DevStyle.SetTreeListSelectStyle 设置TreeList组件只读状态(用于选择) Dev ButtonEdit按钮设置图片和文字 公司资料设置sys_CompanyInfo表变更主键为CompanyCode C/S开发框架教程:使用基础资料(数据字典)的DAL层更新主从表(或多表)数据
其它资料:
什么是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内容管理系统 | |