金蝶云星空业务对象列表显示动态列

发布时间 2023-12-07 12:02:48作者: lanrenka
 

一、需求设计

《产品序列号档案》的序列号、适用组织分别关联《序列号主档》的序列号字段,的适用组织表的组织,的在库状态。

 

二、开发实现

列表插件

 

字段标题

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"]);
        }
    }
}

 

三、列表插件注册

 

 

 

四、测试