文章目录
- 金蝶云星空业务对象列表显示动态列
- 需求设计
- 开发实现
- 列表插件
- 字段标题
- 数据绑定前事件
- 数据绑定
- 列表插件注册
- 测试
金蝶云星空业务对象列表显示动态列
需求设计
《产品序列号档案》的序列号、适用组织分别关联《序列号主档》的序列号字段,的适用组织表的组织,的在库状态。
开发实现
列表插件
字段标题
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"]);
}
}
}