项目中需要根据某些条件来设置往来单位(为多类别基础资料)设置过滤条件。
插件处理参考如下:
[code] public override void BeforeF7Select(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeF7SelectEventArgs e)
{
base.BeforeF7Select(e);
string key;
switch (key = e.FieldKey.ToUpperInvariant())
{
case "FPRODEPTNAME":
{
string filterStr;
if (this.SetProDeptFilter(out filterStr))
{
e.ListFilterParameter.Filter = filterStr;
}
break;
}
}
}
public override void BeforeSetItemValueByNumber(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeSetItemValueByNumberArgs e)
{
base.BeforeSetItemValueByNumber(e);
string key = e.BaseDataFieldKey.ToUpper();
switch (key)
{
case "FPRODEPTNAME":
{
string filterStr;
if (this.SetProDeptFilter(out filterStr))
{
e.Filter = filterStr;
}
break;
}
default:
break;
}
}
///
/// 根据协议类型判断协议单位
///
private bool SetProDeptFilter(out string filterStr)
{
filterStr = "";
DynamicObject proType = this.View.Model.GetValue("FProType") as DynamicObject;
string deptType = this.View.Model.GetValue("FProDeptType").ToString();
if (proType != null && deptType != null)
{
if (proType["Number"].ToString().Equals("002") && deptType.Equals("BD_Supplier"))
{
filterStr = "FNumber IN(SELECT FNumber FROM T_BD_Supplier WHERE FDOCUMENTSTATUS='C' AND FFORBIDSTATUS='A' AND F_HK_AGENCY=1)";
}
}
return !string.IsNullOrWhiteSpace(filterStr);
}
}[/code]
推荐阅读