常用列表插件
获取选中行单据 this.ListView.SelectedRowsInfo
在这基础上获取单据fid:GetPrimaryKeyValues();(返回值为数组)
在这基础上获取单据体的id集合:GetEntryPrimaryKeyValues();(返回值为数组)
获取选中行的其他基本信息 this.ListModel.GetData 返回值为DynamicObjectCollection
public class ClassName:AbstractListPlugIn
public override void BarItemClick(BOS.Core.DynamicForm.PlugIn.Args.BarItemClickEventArgs e)
if(e.BarItemKey.Equals("YDIE_tbTest"))
ListSelectedRowCollection listcoll= this.ListView.SelectedRowsInfo;
//string[] listKey = listcoll.GetPrimaryKeyValues();
// foreach(string key in listKey)
// this.View.ShowMessage(info);
//string[] listKey = listcoll.GetEntryPrimaryKeyValues();
// foreach(string key in listKey)
#endregion// this.View.ShowMessage(info);
this.ListModel.GetData(listcoll);
DynamicObjectCollection dycoll = this.ListModel.GetData(listcoll);
for(int i =0;i<dycoll.Count;i++)
info = info + "," + dycoll[i]["FBillNo"];
info = info + "," + dycoll[i]["FDate"];
定义一个FormatCondition fc = new FormatCondition();
设置样式 fc.BackColor = ColorTranslator.ToHtml(System.Drawing.Color.FromArgb(255, 255, 187));
添加到事件中:args.FormatConditions.Add(fc);
思路:通过添加一个按钮打开二开的动态表单,将要修改的字段和值输入动态表单,回传后在后台将值更新到选中的单据。
尝试一个简单的批量修改(固定修改一个字段):首先在单据上添加一个字段
新建动态表单,增加列表上对应的字段,再增加一个用来存储id的字段,方便确定要修改的单据
编辑列表插件,点击批改按钮时触发,并将选中行的单据id传到打开的单据上,如果没有选中则提示
public class BatchUpdateListPlugin : AbstractListPlugIn
public override void BarItemClick(BarItemClickEventArgs e)
if (e.BarItemKey.Equals("YNPX_tbBatchUpdate"))
ListSelectedRowCollection selectRows = this.ListView.SelectedRowsInfo;
string[] ID = selectRows.GetPrimaryKeyValues();
this.View.ShowMessage("请选择单据!", MessageBoxType.Notice);
for (int i = 0; i < ID.Length; i++)
FID = FID + ID[i].ToString() + ",";
DynamicFormShowParameter formParameter = new DynamicFormShowParameter();
formParameter.FormId = "YNPX_CSPGB";
formParameter.CustomParams.Add("FID", FID.Substring(0, FID.Length - 1));
this.View.ShowForm(formParameter);
public class UpdateDataFace : AbstractDynamicFormPlugIn
DataTable dt = new DataTable();
public override void OnLoad(EventArgs e)
FID = this.View.OpenParameter.GetCustomParameter("FID");
this.View.Model.SetValue("FID", FID.ToString());
public override void BarItemClick(BarItemClickEventArgs e)
IOperationResult opResult = new OperationResult();
if (e.BarItemKey == "YNPX_tbBatchUpdate")
strFID = this.View.Model.GetValue("FID").ToString().Trim().Split(',');
for (int i = 0; i < strFID.Length; i++)
//更新销售出库单,单据头表T_SAL_OUTSTOCK,物料属性F_YDIE_WLSX字段
sql = "/*dialect*/update T_SAL_OUTSTOCK set F_YNPX_CSPG = '" + this.Model.DataObject["F_YNPX_CSPG"].ToString() + "' where FID=" + strFID[i] +
";select FBILLNO from T_SAL_OUTSTOCK where FID=" + strFID[i];
ds = DBUtils.ExecuteDataSet(this.Context, sql);
opResult.OperateResult.Add(new OperateResult()
Name = "更新" + dt.Rows[0]["FBILLNO"].ToString(),
MessageType = MessageType.Normal,









浙公网安备 33010602011771号