起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 363|回复: 15

【结贴】再来请教下~

[复制链接]
发表于 2009-8-17 15:14:52 | 显示全部楼层 |阅读模式
s:=DataSetJYYB.FieldByName('ZYKS').AsString;  //部门

Org.OrgSys.OrgSystem.GetBizURLsByOrgExpr(OrgChildren(OrgKey('SPB', '', ''), OrgCondition('*.PSM', '', ''), True, False),ComboBox1.Items);

//SPB:食品部

假如现在S查出是行政部 那我如何让它自动变成像SPB一样变成显示部门ID?

也就是知道部门的名称,怎么把名称换成部门ID   ??
回复

使用道具 举报

发表于 2009-8-17 15:29:11 | 显示全部楼层
OrgCondition('*.Dpt', :displayname='部门1', '')
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-17 16:02:01 | 显示全部楼层
不懂怎么使用~
跟查找部门全部人员的方法一样吗?
Org.OrgSys.OrgSystem.GetBizURLsByOrgExpr(OrgChildren(OrgKey('SPB', '', ''), OrgCondition('*.PSM', '', ''), True, False),ComboBox1.Items);
回复 支持 反对

使用道具 举报

发表于 2009-8-17 16:04:23 | 显示全部楼层
对,把2楼的那个表达式放到这里,就会取出来部门的url了,有了url就可以取到部门ID了
Org.OrgSys.OrgSystem.GetBizURLsByOrgExpr
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-17 16:09:00 | 显示全部楼层
是这样吗?
Org.OrgSys.OrgSystem.GetBizURLsByOrgExpr(OrgCondition('*.Dpt', :displayname='部门1', ''), Memo1.lines);
回复 支持 反对

使用道具 举报

发表于 2009-8-17 16:19:24 | 显示全部楼层
GetBizURLsByOrgExpr第一个参数是一个字符串,第二个参数是一个TStrings类型
Org.OrgSys.OrgSystem.GetBizURLsByOrgExpr('OrgCondition(''*.Dpt'', :displayname=''部门1'', '''')', Memo1.lines);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-18 09:33:05 | 显示全部楼层
恩~可以了
但没达到我要的效果~
我的需求是
首先获取部门名称 然后通过部门名称查询部门ID 再根据部门ID查出该部门的所有员工
我现在写的代码是这样

procedure TRYFP.showp();//筛选部门的全部人员
var
  lOrgUnit :TOrgUnit;
  lBizUrl :TBizURl;
  s:string;
begin
  DataSetRYB.Open;
  s:=DataSetRYB.FieldByName('ZYKS').AsString;

  Org.OrgSys.OrgSystem.GetBizURLsByOrgExpr('OrgCondition(''*.Dpt'', :displayname='''+s+''', '''')', Memo1.lines);//生成获取部门ID的路径
  lBizUrl :=TBizUrl.Create;
  try
      lBizUrl.URL :=Memo1.Text;
      lOrgUnit :=org.OrgSys.OrgSystem.GetUnit(lBizURL);//获取部门ID
      Dialogs.ShowMessage(lOrgUnit.DisPlayName);
  finally
    lBizUrl.Free;
  end;

  Org.OrgSys.OrgSystem.GetBizURLsByOrgExpr(OrgChildren(OrgKey('lOrgUnit.DisPlayName', '', ''), OrgCondition('*.PSM', '', ''), True, False),ComboBox1.Items);//获取部门的全部人员
end;
回复 支持 反对

使用道具 举报

发表于 2009-8-18 09:42:29 | 显示全部楼层
Org.OrgSys.OrgSystem.GetBizURLsByOrgExpr(OrgChildren(OrgKey('lOrgUnit.DisPlayName', '', ''), OrgCondition('*.PSM', '', ''), True, False),ComboBox1.Items);//获取部门的全部人员
里面的:
OrgKey('lOrgUnit.DisPlayName', '', '')第一个参数是部门id,不是显示名称。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-18 18:16:58 | 显示全部楼层
不好意思~
今天一直忙着做其他~没在研究这个问题
现在我按你说的  但现在编译不了~说是转换文件名失败
现在脑筋短路了~希望不要谦我笨哈~
我把代码贴出来  麻烦你再帮我看看~十分感谢


procedure TRWFP.showp();//筛选部门的全部人员
var
  lOrgUnit :TOrgUnit;
  lBizUrl :TBizURl;
  i:integer;
  s:string;
begin
  DataSetJYDB.Open;
  s:=DataSetJYDB.FieldByName('ZYKS').AsString;
  Org.OrgSys.OrgSystem.GetBizURLsByOrgExpr('OrgCondition(''*.Dpt'', :displayname='''+s+''', '''')', Memo1.lines);//生成获取部门ID的路径

  lBizUrl :=TBizUrl.Create;
  try
      lBizUrl.URL :=Memo1.Text;
      lOrgUnit :=org.OrgSys.OrgSystem.GetUnit(lBizURL);//获取部门ID  //提示这行出错
      Dialogs.ShowMessage(lOrgUnit.DisPlayName);
  finally
    lBizUrl.Free;
  end;
  Org.OrgSys.OrgSystem.GetBizURLsByOrgExpr(OrgChildren(OrgKey('lOrgUnit', '', ''), OrgCondition('*.PSM', '', ''), True, False),ComboBox2.Items);//获取部门的全部人员

end;

1.jpg

16.22 KB, 下载次数: 149

回复 支持 反对

使用道具 举报

发表于 2009-8-19 08:43:59 | 显示全部楼层
错误代码停在哪里?
有SPS.dpt这个部门吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-17 20:31 , Processed in 0.044570 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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