框架升级:业务单据查询结果显示2种方式(显示主表、序时薄)

框架升级:业务单据查询结果显示2种方式(显示主表、序时薄)
代码生成器
选择【序时薄主从表组合】

生成的窗体预览
标准主表查询表格 - 仅生成主表的字段

DAL层查询方法
C# 全选
public List<ZX_EvalProduct> Query(req_EvalProduct input)
{
var q = _Database.GetQueryable<ZX_EvalProduct>();
if (!input.DocNo.IsEmpty())
q = q.Where(w => w.DocNo.CompareTo(input.DocNo) == 0);
//返回查询结果
return q.ToList();
}
序时薄 - 生成主表\明细表的字段
主表、明细表同名字段, 明细表res_XXX模型的属性加_Dtl, 如 DocNo_Dtl。 对应的标题显示:明细_单号。

查询序时薄DAL层接口
C# 全选
public List<res_ZX_EvalProduct> Query(req_EvalProduct input)
{
// 序时薄-主从表关联查询
var q_MD = from m in _Database.GetQueryable<ZX_EvalProduct>()
join d in _Database.GetQueryable<ZX_EvalProductDtl>() on m.DocNo equals d.DocNo into tmp
from d in tmp.DefaultIfEmpty()
select new { Master = m, Detail = d };
if (!input.DocNo.IsEmpty())
{
q_MD = q_MD.Where(w => w.Master.DocNo.CompareTo(input.DocNo) == 0);
}
////
////主从表模糊查询例子!重要!
////
//if (!input.content.IsEmpty())//查询条件
//{
// //查主表匹配
// q_MD = q_MD.Where(w => w.Master.DocNo == input.content
// || w.Master.SupplierCode == input.content
// || (w.Master.SupplierName ?? "").Contains(input.content)
// //查明细表匹配
// || (w.Detail != null && (w.Detail.DocNo == input.content
// || w.Detail.ProductCode == input.content
// || (w.Detail.ProductName ?? "").Contains(input.content)
// || (w.Detail.Remark ?? "").Contains(input.content))));
//}
//序时薄:关联主从表查询
var qJoin = (from a in q_MD
select new res_ZX_EvalProduct
{
//主表:ZX_EvalProduct
isid = a.Master.isid,
DocNo = a.Master.DocNo,
DocDate = a.Master.DocDate,
CustomerCode = a.Master.CustomerCode,
CustomerName = a.Master.CustomerName,
EVNO = a.Master.EVNO,
材料毛重 = a.Master.材料毛重,
产品实重 = a.Master.产品实重,
材质 = a.Master.材质,
订料规格 = a.Master.订料规格,
机种 = a.Master.机种,
料号 = a.Master.料号,
品名 = a.Master.品名,
产品长度 = a.Master.产品长度,
表面处理 = a.Master.表面处理,
工艺代码 = a.Master.工艺代码,
物料编码_ERP编号 = a.Master.物料编码_ERP编号,
产品规格 = a.Master.产品规格,
原物料编号 = a.Master.原物料编号,
发料比率 = a.Master.发料比率,
Remark = a.Master.Remark,
CreationDate = a.Master.CreationDate,
CreatedBy = a.Master.CreatedBy,
LastUpdateDate = a.Master.LastUpdateDate,
LastUpdatedBy = a.Master.LastUpdatedBy,
FlagApp = a.Master.FlagApp,
AppUser = a.Master.AppUser,
AppDate = a.Master.AppDate,
//明细表:ZX_EvalProductDtl
isid_Dtl = a.Detail == null ? null : a.Detail.isid,
DocNo_Dtl = a.Detail == null ? null : a.Detail.DocNo,
SortId = a.Detail == null ? null : a.Detail.SortId,
WorkCenter = a.Detail == null ? null : a.Detail.WorkCenter,
ProcedureName = a.Detail == null ? null : a.Detail.ProcedureName,
ProcessId = a.Detail == null ? null : a.Detail.ProcessId,
ProcessName = a.Detail == null ? null : a.Detail.ProcessName,
ProcessDesc = a.Detail == null ? null : a.Detail.ProcessDesc,
WorkHour = a.Detail == null ? null : a.Detail.WorkHour,
PersonCount = a.Detail == null ? null : a.Detail.PersonCount,
Price = a.Detail == null ? null : a.Detail.Price,
DeviceName = a.Detail == null ? null : a.Detail.DeviceName,
DefectRatio = a.Detail == null ? null : a.Detail.DefectRatio,
ScrapRatio = a.Detail == null ? null : a.Detail.ScrapRatio,
Remark_Dtl = a.Detail == null ? null : a.Detail.Remark,
LastUpdateDate_Dtl = a.Detail == null ? null : a.Detail.LastUpdateDate,
LastUpdatedBy_Dtl = a.Detail == null ? null : a.Detail.LastUpdatedBy,
});
var listResult = qJoin.ToList();
//
//您可以在这里处理listResult数据
//
//返回查询结果
return listResult;
}影响的代码
1、DoDelete方法:要删除表格全部明细记录。
2、DoMoveXXX方法:按单据号码移动。
3、DoSave方法:
4、res_主表模型/res_明细表模型
res_主表模型要包含res_明细表模型
5、DAL层:Query方法、GetDataByKey方法

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网





