起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 147|回复: 6

【结贴】[问题] 关于“公共地址簿”的几个问题**

[复制链接]
发表于 2008-4-14 21:56:36 | 显示全部楼层 |阅读模式
现在邮件中的公共地址簿下默认有两个:“公司内部通讯簿”和“客户联系人通讯簿”,
1. 公司内部通讯簿 与 组织机构不完全吻合,这个通讯簿与组织机构有什么区别?
2. 这两个通讯簿谁有权限维护,在具体应用中是如何使用的?
3. 如何隐藏这两个默认的通讯簿,只保留客户自己建立的通讯簿?

公共地址簿.jpg

178.72 KB, 下载次数: 102

回复

使用道具 举报

发表于 2008-4-15 09:19:48 | 显示全部楼层
1.公司内部通讯簿是从组织机构同步过去的,目前还有些问题,还会继续做些修改
  客户联系人是从客户中心同步的

2.这两个都是系统自动同步产生的,不用维护

3。目前如果要隐藏需要写代码,以后会提供配置功能
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-15 10:08:32 | 显示全部楼层
现在需要隐藏“公共地址簿”,只保留“个人地址簿”,请问如何用代码实现?
回复 支持 反对

使用道具 举报

发表于 2008-4-15 11:56:43 | 显示全部楼层
1、清除“协同系统\协同数据库\事务\通讯簿(组)”表中组织、客户的分组数据

2、注释掉地址簿procedure TADDRESSLISTNEWFORM.Init;中的代码
    if not DataSetAddressListGroup.Locate('FCLIENTACCOUNT;FGROUPID',
      Variants.VarArrayOf([BizSys.BizSystem.ClientAccount, cComPanyInnerAddressID]),[]) then
    begin
      DataSetAddressListGroup.Append;
      DataSetAddressListGroup.FieldByName('FCLIENTACCOUNT').AsString := BizSys.BizSystem.ClientAccount;
      DataSetAddressListGroup.FieldByName('FGROUPID').AsString := cComPanyInnerAddressID;
      DataSetAddressListGroup.FieldByName('FOWNERID').AsString := csAddressGroupBaseGUID;
      DataSetAddressListGroup.FieldByName('FGROUPDISPLAYNAME').AsString := cComPanyInnerAddressName;
      DataSetAddressListGroup.FieldByName('FPARENTGUID').AsString := csAddressGroupBaseGUID;
      DataSetAddressListGroup.FieldByName('FORDER').AsInteger := SysUtils.StrToInt(TJUSTEPCOMMONUNIT.GetAutoIncreaseID(Context,'AddressGroup','通讯簿组递增序号'));
      DataSetAddressListGroup.Post;
    end;
    if not DataSetAddressListGroup.Locate('FCLIENTACCOUNT;FGROUPID',
      Variants.VarArrayOf([BizSys.BizSystem.ClientAccount, cClientLinkManAddressID]),[]) then
    begin
      DataSetAddressListGroup.Append;
      DataSetAddressListGroup.FieldByName('FCLIENTACCOUNT').AsString := BizSys.BizSystem.ClientAccount;
      DataSetAddressListGroup.FieldByName('FGROUPID').AsString := cClientLinkManAddressID;
      DataSetAddressListGroup.FieldByName('FOWNERID').AsString := csAddressGroupBaseGUID;
      DataSetAddressListGroup.FieldByName('FGROUPDISPLAYNAME').AsString := cClientLinkManAddressName;
      DataSetAddressListGroup.FieldByName('FPARENTGUID').AsString := csAddressGroupBaseGUID;
      DataSetAddressListGroup.FieldByName('FORDER').AsInteger := SysUtils.StrToInt(TJUSTEPCOMMONUNIT.GetAutoIncreaseID(Context,'AddressGroup','通讯簿组递增序号'));
      DataSetAddressListGroup.Post
    end;
    if  DataSetAddressListGroup.UpdatesPending then
       DataSetAddressListGroup.ApplyUpdates;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-18 21:37:24 | 显示全部楼层
按照楼上方法操作后,虽然“公共地址簿”中没有数据了,但是其他人还是能够往里面添加人员的,如何完全从联系人组里将“公共地址簿”屏蔽?

公共地址簿问题.jpg

340.37 KB, 下载次数: 73

回复 支持 反对

使用道具 举报

发表于 2008-4-19 10:22:11 | 显示全部楼层
修改地址簿代码
procedure TADDRESSLISTNEWFORM.actAddGroupUpdate(Sender: TObject);
begin

  //TAction(Sender).Enabled := (FAddressDMForm.CanNewAddress(tvGroup.Selected));  原有的
  TAction(Sender).Enabled := (FAddressDMForm.CanNewAddress(tvGroup.Selected)) and (tvGroup.Selected.AbsoluteIndex<>0);
end;
//屏蔽的代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-20 21:25:10 | 显示全部楼层
谢谢,结贴!
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-10 12:20 , Processed in 0.046078 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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