起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: liubin

【搞定】客户中心问题**

[复制链接]
 楼主| 发表于 2007-5-21 09:51:02 | 显示全部楼层
掉到第2页了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-21 10:22:27 | 显示全部楼层
我被遗忘了啊,等待中。。
回复 支持 反对

使用道具 举报

发表于 2007-5-21 11:01:42 | 显示全部楼层
定义一个参数,实现取当作操作者的管理权限,参考以“GetAllSubordinationItems”在bbs上搜索
然后通过定义数据集策略,过滤数据就可以了,参考《用户手册》第7章 业务功能   7.6.3  的相关说明
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-21 14:57:52 | 显示全部楼层
http://bbs.justep.com/forum.php? ... lSubordinationItems
看了上述代码用到客户关系模块里 返回的是TStrings
procedure TMainForm.DoFilter;
begin
  CustomerIndexDataSet.UserFilter := '';
  CustomerIndexDataSet.SQLFilter :=  GetSubordinations;//这里的Sring类型的
  CustomerIndexDataSet.SQLFiltered := True;
  if not FIsCheckedRelationData and CustomerIndexDataSet.IsEmpty then
  begin
    FIsCheckedRelationData := True;
    cmbMngData.ItemIndex := 1;
    DoFilter;
  end;
end;

用哪段代码过滤我进入的 GetSubordinations  方法比较好?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-21 15:03:17 | 显示全部楼层
GetSubordinations;//这里的TSrting类型的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-21 16:17:36 | 显示全部楼层
是TString 类型 ,打的太急,不好意思, 顶下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-22 13:08:25 | 显示全部楼层
我把任务中心都看了好几遍了,没看出来能有直接移植的代码, 看过 http://bbs.justep.com/showthread.ph...ordinationItems 觉得可能能在客户中心用上过滤,请指点下啊
回复 支持 反对

使用道具 举报

发表于 2007-5-22 15:08:09 | 显示全部楼层
OrgSys.OrgSystem.GetAllSubordinationItems  它返回的是一个列表,通过这个lOrgSubordinationItems.Count 去循环,去拼SQLFilter 的条件。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-22 16:48:32 | 显示全部楼层
我在客户基本信息下修改了GetFilterByDeptsAndFileName方法  如下: 有2个问题,请指教
function TCustomerInfo.GetFilterByDeptsAndFileName(const ADepts: TStrings; const AFieldName: String): string;
const
  cUserFilter = '%s LIKE';
var
  lOrgSubItems: TStrings;
  lOperator: TOPerator;
  lOrgSubordinationItems: TOrgSubordinationItems;
  lOrgUnit: TOrgUnit;
  lPersonMember: TOrgUnit;
begin
  if ADepts.Count > 0 then
    lOperator := TContextUtils.GetOperator(Context);//取出操作者
    for i := 0 to lOperator.PositionCount-1 do //取出操作者所属岗位
      begin
        lPersonMember := lOperator.Positions.PersonMember;//取出所属岗位对应的人员成员
      end;
   try
    OrgSys.OrgSystem.GetAllSubordinationItems(lPersonMember, lOrgSubordinationItems);
    if lOrgSubordinationItems.Count > 0 then
      for i := 0 to lOrgSubordinationItems.Count-1 do
        begin
          lOrgUnit := OrgSys.OrgSystem.FindUnit(lOrgSubordinationItems.DeptID,       //问题1:这步怎么取出所有下属名称
            lOrgSubordinationItems.PositionID, lOrgSubordinationItems.PersonID);
        end
  finally
    lOrgSubordinationItems.Free;
  end;
    Result := 'FSales like ''%'''  //问题2: 怎么去拼SQLFilter 的条件
  else
    Result := cNoneRecordFilter;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-23 08:46:38 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-11 12:37 , Processed in 0.034015 second(s), 12 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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