CSFrameworkV6|业务单据数据查询页面显示主从表关联数据解决方案|C/S开发框架
作者:csframework|C/S框架网  发布日期:2023/08/03 12:44:39

应客户要求,业务单据的数据查询页面要同时显示主从表数据,需要做以下调整:

1、查询条件,增加查询明细表字段的条件

CSFrameworkV6|业务单据数据查询页面显示主从表关联数据解决方案|C/S开发框架

查询结果显示一张单据对应多条明细记录。

DAL层查询方法 DAL.Query

C# 全选
            //查询主从表
            var qJoin = (from s in q
                         join b in q1 on s.PONO equals b.PONO into tmp //必须使用左连,避免无明细表出不了数据
                         from b in tmp.DefaultIfEmpty()
                         select new res_PO
                         {
                             isid = s.isid,
                             PONO = s.PONO,
                             DocDate = s.DocDate,
                             POUser = s.POUser,
                             DocType = s.DocType,
                             SupplierCode = s.SupplierCode,
                             SupplierName = s.SupplierName,
                             SupplierAddress = s.SupplierAddress,
                             SupplierTel = s.SupplierTel,
                             SupplierFax = s.SupplierFax,
                             SupplierContact = s.SupplierContact,
                             SupplierContactPhone = s.SupplierContactPhone,
                             PayType = s.PayType,
                             FlagStop = s.FlagStop,
                             FlagPrint = s.FlagPrint,
                             Remark = s.Remark,
                             CreationDate = s.CreationDate,
                             CreatedBy = s.CreatedBy,
                             LastUpdateDate = s.LastUpdateDate,
                             LastUpdatedBy = s.LastUpdatedBy,
                             FlagApp = s.FlagApp,
                             AppUser = s.AppUser,
                             AppDate = s.AppDate,
                             DeliveryDate = s.DeliveryDate,
                             TotalAmount = s.TotalAmount,
                             TotalSquar = s.TotalSquar,
                             TotalVolumn = s.TotalVolumn,
                             TotalWeight = s.TotalWeight,

                             //明细表字段
                             CustomerGoodsNo = b == null ? "" : b.GoodsNo,
                             CustomerOrderNo = b == null ? "" : b.CustomerOrderNo,
                             PaperLength = b == null ? 0 : b.PaperLength,
                             PaperName = b == null ? "" : b.PaperName,
                             PaperNameProduce = b == null ? "" : b.PaperNameSupplier,
                             PaperSpec = b == null ? "" : b.PaperSpec,
                             PaperSpecProduce = b == null ? "" : b.SupplierSpec,
                             PaperWidth = b == null ? 0 : b.PaperWidth,
                         }
                         ).Distinct();

            //返回查询结果
            return qJoin.OrderByDescending(o => o.CreationDate).ToList();

2、删除记录 DoDelete方法

整单删除,要删除多条记录。

删除前要用户确认。

CSFrameworkV6|业务单据数据查询页面显示主从表关联数据解决方案|C/S开发框架

3、新增\修改 -> 保存

CSFrameworkV6|业务单据数据查询页面显示主从表关联数据解决方案|C/S开发框架

4、审核操作

审核:

C# 全选
        public override void DoApproval(IButtonInfo button)
        {
            AssertFocusedRow();

            var row = (res_SO)_SummaryView.GetFocusedRow();

            if (row.FlagApp == "Y")
            {
                Msg.Warning($"单据 <{row.SONO}> 已经审核,不可重复操作!");
            }
            else
            {
                if (Msg.AskQuestion($"确定要审核单据 <{row.SONO}> 吗? "))
                {
                    if (_BLL.ApprovalBusiness(row)) //审核单据
                    {
                        //更新表格缓存记录的审核状态
                        gvSummary.GetDataSource<res_SO>()
                            .Where(w => w.SONO == row.SONO).ToList().ForEach(i => i.FlagApp = "Y");
                        gvSummary.RefreshData();

                        if (this.IsShowDetailPage)
                        {
                            this.DoViewContent(null);//显示单据明细
                        }
                    }
                }
            }
        }

反审:

CSFrameworkV6|业务单据数据查询页面显示主从表关联数据解决方案|C/S开发框架

5、测试场景

新增一张单据,多条明细,保存后查看表格数据是否正常

修改单据,修改一条明细,保存后查看表格数据是否更新正常

删除单据,查看表格里是否删除了整单记录。

C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
参考文档:

CSFrameworkV6|数据下钻功能,双击表格打开单据(表单穿透、表单跳转)|C/S开发框架
开发数据查询窗体 | MiniFramework蝇量框架 | Winform框架|C/S开发框架
扩展按钮功能:数据字典窗体复制记录单据数据 | CSFrameworkV5旗舰版开发指南|C/S开发框架
DataLock | 数据锁、单据号码锁、并发锁(C#源码)|C/S开发框架
WinFramework轻量级开发框架 | 新建Winform业务数据窗体|C/S开发框架
C/S开发框架新功能:批量更新业务单据的业务员、制单人制表人
通用数据操作按钮组件 ucButtonFunction | MiniFramework | 蝇量级开发框架|C/S开发框架
无法升级数据库"CSFramework_WebAPITest",因为它是只读的,它具有只读文件,或是用户无权修改其中的某些文件|C/S开发框架
软件数据库设计报告文档模板docx文件下载 | CSCODE.NET|C/S开发框架
文档名称:软件测试(验收)、详细设计、数据库设计、概要设计、需求分析模板合集(5个模板)docx文件下载 | CSCODE.NET|C/S开发框架
客户管理 (Customer , 基础资料数据维护) | CSFramework.WebApi后端框架|C/S开发框架
SQL获取数据库中所有用户自定义存储过程、函数、触发器|C/S开发框架
IDbMetalQuery:CSFramework.DB数据库底层元数据接口|C/S开发框架
代码生成器生成查询窗体支持下拉选择存储过程|C/S开发框架
FAQ:点明细表删除按钮删除一条数据,保存后发现其他记录也被删除了!|C/S开发框架
上一篇 下一篇