一、需求设计
《产品序列号档案》的序列号、适用组织分别关联《序列号主档》的序列号字段,的适用组织表的组织,的在库状态。
二、开发实现
列表插件
字段标题
public override void CreateListHeader(CreateListHeaderEventArgs e) { // 创建动态列 header = e.ListHeader.AddChild();// 将动态列放在列表的最后面 //header = e.ListHeader.AddChild(1);// 将动态列放在列表的指定位置 header.Key = "FStockStatus"; header.FieldName = "FStockStatus"; header.Caption = new LocaleValue("库存状态"); header.ColType = SqlStorageType.Sqlnvarchar; header.Width = 300; header.Visible = true; header.ColIndex = e.ListHeader.GetChilds().Max(o => o.ColIndex) + 1; }
数据绑定前事件
public override void BeforeBindData(EventArgs e) { base.BeforeBindData(e); //表单插件的全局变量定义:List<DynamicObject> getSerialStutas = AfterSaleServiceHelper.GetSerialStockStatus(this.Context).ToList();// 获取档案序列号的库存状态 }
数据绑定
public override void FormatCellValue(FormatCellValueArgs args) { base.FormatCellValue(args); if (args.Header.Key.Equals("FStockStatus", StringComparison.OrdinalIgnoreCase)) { string fid = args.DataRow["FID"] + "";//查询条件 var thisSerial = getSerialStutas.Where(s => (s["FID"] + "").Equals(fid)).FirstOrDefault(); if (thisSerial != null) { args.FormateValue = string.Format("{0}", thisSerial["FSTOCKSTATUSVALUE"]); } } }
三、列表插件注册
四、测试