using Kingdee.BOS.Core.List.PlugIn; using Kingdee.BOS.Core.List.PlugIn.Args; using Kingdee.BOS.Core.Metadata; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.ServiceHelper; using Kingdee.BOS.Util; using System; using System.ComponentModel; using System.Linq; namespace MyCompany.MyProject.ListPlugIn { [Description("列表插件"), HotUpdate] public class ListPluginTemplate : AbstractListPlugIn { public override void PrepareFilterParameter(FilterArgs e) { base.PrepareFilterParameter(e); e.AppendQueryFilter("FDOCUMENTSTATUS = 'C'"); } public override void BarItemClick(BarItemClickEventArgs e) { base.BarItemClick(e); if (e.BarItemKey.EqualsIgnoreCase("MYBTN")) { // e.Cancel = true; } } public override void AfterBarItemClick(AfterBarItemClickEventArgs e) { base.AfterBarItemClick(e); if (!e.BarItemKey.EqualsIgnoreCase("MYBTN")) return; // 白名单:SelectedRowsInfo → GetPrimaryKeyValues → ListModel.GetData var rows = this.ListView.SelectedRowsInfo; var billIds = rows.GetPrimaryKeyValues(); if (billIds.Length == 0) { this.View.ShowWarnningMessage("未选择行"); return; } var datas = this.ListModel.GetData(rows); foreach (DynamicObject row in datas) { string billNo = Convert.ToString(row["BillNo"]); // PropertyName } // 批量写回示例见 snippets/ListBatchRemarkSample.cs // BusinessDataServiceHelper.Save(this.Context, this.View.BillBusinessInfo, ...); this.View.ShowMessage("处理完成,共" + billIds.Length + "条"); } public override void ListRowDoubleClick(ListRowDoubleClickArgs e) { base.ListRowDoubleClick(e); } public override void OnFormatRowConditions(ListFormatConditionArgs args) { base.OnFormatRowConditions(args); var dataRow = ((DynamicObjectDataRow)args.DataRow).DynamicObject; if (dataRow.DynamicObjectType.Properties.ContainsKey("FMaterialId")) { args.FormatConditions.Add(new FormatCondition { BackColor = "#0000FF" }); } } public override void BeforeDoOperation(BeforeDoOperationEventArgs e) { base.BeforeDoOperation(e); if (e.OperateKey.EqualsIgnoreCase("DELETE")) { e.Cancel = true; this.View.ShowWarnningMessage("取消删除"); } } } }