起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 222|回复: 2

【搞定】如何用OrgTreeView只取组织机构特定部门的岗位和人员**

[复制链接]
发表于 2007-6-5 19:59:08 | 显示全部楼层 |阅读模式
procedure TMainForm.OrgTreeView1Change(Sender: TObject; Node: TTreeNode);
var
  lBuf: string;
  lID: string;
  lName: string;
  lKind: string;
  lBizURL: TBizURL;
  lOrgUnit: TOrgUnit;
begin

  lBizURL := TBizURL.Create;
  lBizURL.URL := TOrgNode(OrgTreeView1.Selected.Data).ObjectID;

  lOrgUnit := OrgSys.OrgSystem.GetUnit(lBizURL);
  lID := lOrgUnit.ID;
  lName := lOrgUnit.DisplayName;

  case TBizObjectKind(lOrgUnit.OrgKind) of
    Business.Model.TBizObjectKind.boOrgRoot: lKind := '根';
    Business.Model.TBizObjectKind.boOrgan: lKind := '机构';
    Business.Model.TBizObjectKind.boDept: lKind := '部门';
    Business.Model.TBizObjectKind.boPositionMember: lKind := '岗位';
    Business.Model.TBizObjectKind.boPersonMember: lKind := '人员';
  else
    lKind := '(未知:' + TOrgNode(OrgTreeView1.Selected.Data).ObjectKind + ')';
  end;

  lBizURL.Free;

  lBuf := lKind + #13 + #10 + lID + #13 + #10 + lName;
  memo1.SetTextBuf(lBuf);

end;
目前已经能取组织机构全部部门下的岗位和人员,但~
例如目前有A 和B两个部门,我怎样过滤当A部门的人员进来后,只显示A部门的岗位和人员?
回复

使用道具 举报

发表于 2007-6-6 09:55:34 | 显示全部楼层
var
  lContextCurrent: TContextCurrent;
  lOrgUnit: TOrgUnit;
  lBizNode: TBizNode;
  lBizNodes: TStrings;
begin
  lContextCurrent := TContextCurrent.Create(Context);
  lBizNodes := TStringList.Create;
  try
    lOrgUnit := lContextCurrent.Dept;
    lBizNode := BizTree.BizTreeStructure.FindNodeByBizURL(lOrgUnit.BizURL);
    if Assigned(lBizNode) then
      lBizNodes.AddObject(lBizNode.GUID, lBizNode);
    otv.StartWithNodes := lBizNodes; //otv是OrgTreeView控件
    otv.ReloadTree;
  finally
    lContextCurrent.Free;
    lBizNodes.Free;
  end;
end;
回复 支持 反对

使用道具 举报

发表于 2007-6-18 14:29:36 | 显示全部楼层
楼主,还有问题吗?
没有就结贴了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-11 17:44 , Processed in 0.042133 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表