自定义岗位信息字段按员工任岗信息字段中的岗位信息进行过滤

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

自定义岗位信息字段按员工任岗信息字段中的岗位信息进行过滤

@[TOC](目录) ### 0、背景 在采购订单上新增了岗位信息字段,如果按照界面上的申请人字段中的岗位信息对基础资料F7列表进行过滤呢?首先想到的就是在BOS中配置过滤条件,但是获取申请人岗位信息单据体中的所有岗位并不简单,可参考二开插件实现。 ### 1、新增岗位信息类型的基础资料字段 ![image.webp](/download/0100e11604bd87a242a19939deb12bb85f4c.webp) ### 2、界面申请人字段添加引用属性【人员】 ![image.webp](/download/01005c987961280e4883995f8f6a970d44e6.webp) ### 3、C#代码示例 ```c# using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Core.Metadata; using Kingdee.BOS.Core.SqlBuilder; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.ServiceHelper; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TestDemo { public class AppEdit : AbstractBillPlugIn { public override void BeforeF7Select(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeF7SelectEventArgs e) { base.BeforeF7Select(e); switch (e.FieldKey.ToUpperInvariant()) { case "FAPPPOST": long personId = 0; DynamicObject applicant = this.Model.GetValue("FApplicantId") as DynamicObject; DynamicObject person = applicant["Person"] as DynamicObject; if (null != person) { personId = Convert.ToInt64(person["Id"]); } string postFilter = string.Empty; if (personId > 0) { long useOrgId = Convert.ToInt64(this.Model.DataObject["ApplicationOrgId_Id"]); QueryBuilderParemeter param = new QueryBuilderParemeter { FormId = "BD_NEWSTAFF", SelectItems = SelectorItemInfo.CreateItems("FPosition"), FilterClauseWihtKey = string.Format(" FPERSONID = {0} AND FUSEORGID={1} ", personId, useOrgId) }; DynamicObjectCollection query = QueryServiceHelper.GetDynamicObjectCollection(this.Context, param, null); if (query == null || query.Count == 0) { return; } List<string> postIds = new List<string>(); for (int i = 0; i < query.Count; i++) { DynamicObject post = query[i]; postIds.Add(Convert.ToString(post["FPosition"])); } postFilter = "FPOSTID IN ('" + string.Join("','", postIds) + "')"; } if (string.IsNullOrEmpty(e.ListFilterParameter.Filter)) { e.ListFilterParameter.Filter = postFilter; } else { e.ListFilterParameter.Filter += " AND " + postFilter; } break; default: break; } } } } ``` ### 4、实现效果 ![image.webp](/download/010096f1e39fd6954095a96f488aab648f5e.webp) **其他更多文章入口:**[https://wenku.my7c.com/link/s/lbRPP](https://wenku.my7c.com/link/s/lbRPP)

自定义岗位信息字段按员工任岗信息字段中的岗位信息进行过滤

@[TOC](目录)### 0、背景在采购订单上新增了岗位信息字段,如果按照界面上的申请人字段中的岗位信息对基础资料F7列表进行过滤呢?首先想到...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息