代码如下
static procedure TRWFP.GetOrgUnitID(const AOrgURL: string;
const AOrgKind: TBizObjectKind; var AID: string);
var
lURLs: TStrings;
I: integer;
lURL: string;
lKind: TBizObjectKind;
begin
lURLs := TStringList.Create;
try
FileSys.FileUtils.ExpandFileList(AOrgURL, lURLs);
for I := 0 to lURLs.Count - 1 do
begin
lURL := lURLs[I];
lKind := BizSys.BizSystem.GetObjectKind(lURL);
if lKind = AOrgKind then
begin
AID := FileSys.FileUtils.GetFileNameNoExt(lURL);
Break;
end;
end;
finally
lURLs.Free;
end;
end;
{ 获取指定岗位成员ID下的所有人员成员 }
static procedure TRWFP.GetAllPersonMemberURLsByDept(ADeptID: string;
APersonMemberURLs: TStrings);
var
lOrgExpr: string;
lOrgURLs: TStrings;
begin
lOrgURLs := TStringList.Create;
try
lOrgExpr := 'OrgChildren(OrgKey(''%s'', '''', ''''), OrgCondition(''*.PSM'', '''', ''''), True, False)';
OrgSys.OrgSystem.GetBizURLsByOrgExpr(SysUtils.Format(lOrgExpr, [ADeptID]), lOrgURLs);
APersonMemberURLs.AddStrings(lOrgURLs);
finally
lOrgURLs.Free;
end;
end;
procedure TRWFP.showp();//筛选岗位成员的全部人员
var
lOrgUnit :TOrgUnit;
lBizUrl :TBizURl;
i:integer;
id,c:string;//a c
strs:Tstrings;//b 定义一个Tstrings
bm:string;//岗位成员名称
begin
id:='';
c:='';
if not DataSetJYDB.Eof then //有数据时
begin
if DataSetJYDB.FieldByName('ZYKS').AsString <> ''then
begin
ComboBox1.Items.Clear;
ComboBox2.Items.Clear;
ComboBox3.Items.Clear;
bm:=DataSetJYDB.FieldByName('ZYKS').AsString;
strs:=TStringlist.create;
Org.OrgSys.OrgSystem.GetBizURLsByOrgExpr('OrgCondition(''*.PTM'', :displayname='''+bm+''', '''')',strs);//生成岗位成员ID的url
try
for i := 0 to strs.Count - 1 do
begin
c := strs;//
end;
TRWFP.GetOrgUnitID(c,TBizObjectKind.boDept,id); //调用 指定的 OrgURL , 得到指定类型节点ID的函数
TRWFP.GetAllPersonMemberURLsByDept(id,ComboBox1.Items);{ 获取指定岗位成员ID下的所有人员成员 }
finally
lBizUrl.Free;
end;
{ 把URL转为中文显示 }
lBizUrl :=TBizUrl.Create;
try
for i:=0 to ComboBox1.Items.Count-1 do
begin
lBizUrl.URL :=ComboBox1.Items.ToString;
lOrgUnit :=org.OrgSys.OrgSystem.GetUnit(lBizURL);
ComboBox2.Items.Add(lOrgUnit.DisPlayName);
ComboBox3.Items.Add(lOrgUnit.DisPlayName);
end;
//ComboBox2.ItemIndex :=0;
//ComboBox3.ItemIndex :=0;
finally
lBizUrl.Free;
end;
end
else
begin
ComboBox2.Items.Clear;
ComboBox3.Items.Clear;
end;
end;
end; |