{取指定人员的管理权限,所有的岗位}
static function TZYJ.GetSubordinations(APersonID: String; IncludeSelf: boolean): TStrings;
var
i, j : integer;
lList : TList;
lPersonMember: TOrgUnit;
lSubs : TStrings;
ResultUrls :Tstrings;
begin
ResultUrls := TStringlist.Create; //隐式向上转型
lList := TList.Create;
try
OrgSys.OrgSystem.GetPersonMembers(APersonID, lList); //取出所有的人员成员
for i := 0 to lList.Count-1 do
begin
lPersonMember := lList.Items As TOrgUnit;
lSubs := GetSubordinations(lPersonMember As TPersonMember, IncludeSelf); //取出该人员成员对应的管理权限
for j := 0 to lSubs.Count-1 do
if ResultUrls.IndexOf(lSubs[j]) < 0 then
ResultUrls.Add(lSubs[j]);
lSubs.Free;
end;
finally
lList.Free;
Result := ResultUrls;
end;
end;
static function TZYJ.GetSubordinations(AContext: TContext; IncludeSelf: boolean): TStrings;
var
lOperator : TOPerator;
begin
lOperator := TContextUtils.GetOperator(AContext); //取出操作者
Result := GetSubordinations(lOperator.ID, IncludeSelf);
end; |