起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 437|回复: 23

【结贴】[请求]如何实现对未读邮件的统计,并显示在界面上。**

[复制链接]
发表于 2007-12-3 11:36:23 | 显示全部楼层 |阅读模式
客户觉得用过messager提醒不习惯,想在界面上直接显示邮件的未读邮件的数量,然后通过按钮打开邮件功能,如图所示数量要显示在工具栏上,有没有什么好办法?

我查了下旧帖,对未读邮件主要通过对邮件索引表进行查询,数据集我已经完成了。
SELECT *
  FROM TMAILREFERENCE
  WHERE TMAILREFERENCE.FOWNERGUID = '&[操作者编号]' and TMAILREFERENCE.FSTATE = 129 and TMAILREFERENCE.FPATHGUID = 'BIZ_INBOX'

下面我应该如何做呢?
我想想步骤应该还有这几步
1、对这个数据集添加一个统计字段,计算记录个数。
2、建立一个表格,显示数据集记录个数,添加一个button,指定到邮件功能。
3、将这个表格放到工具栏上。

我这样的想法对不对,有没有更好的办法?

jietu.jpg

54.75 KB, 下载次数: 175

回复

使用道具 举报

发表于 2007-12-3 11:42:49 | 显示全部楼层
建议:
不如直接在sql上用sum语句。
可能还需要用timer控件定时取邮件的数量。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-3 11:52:24 | 显示全部楼层
最初由 lixy 发布
[B]建议:
不如直接在sql上用sum语句。
可能还需要用timer控件定时取邮件的数量。 [/B]


是指使用Tquery直接count实现么?
回复 支持 反对

使用道具 举报

发表于 2007-12-3 14:20:40 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-5 09:40:51 | 显示全部楼层
现在遇到了这样的一个问题,别人发了个邮件给我,我在一开始在TMAILREFERENCE表中是查不到这个邮件的索引的,非要进入邮件功能后,才能看到TMAILREFERENCE中这个邮件索引记录。
后来查了下状态不但是129还需要384才行,我想问一下,除了这里两个状态外,如果我要查询某人的未读邮件还需要哪几个状态啊。
.                                                                                                                                                                                                    .
.                                                                                                                                                                                                    .
回复 支持 反对

使用道具 举报

发表于 2007-12-5 10:24:16 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-5 11:08:24 | 显示全部楼层
最初由 lixy 发布
[B]看看这个帖子能不能帮你
http://bbs.justep.com/forum.php?mod=viewthread&tid=17383 [/B]


好像不行啊,这个帖子里也没提具体哪几个状态算作未读邮件。
回复 支持 反对

使用道具 举报

发表于 2007-12-5 11:35:36 | 显示全部楼层
那个状态是个位运算的一个算法。按照你上面的129和384都符合,应该是二进制第4位为0是未读。
你可以看看
业务模型\协同系统\个人事务\邮件库\邮件存储模块
代码

  msUnknown    = 0;
  msReceived   = 1;
  msCreated    = 2;
  msSent       = 4;
  msReaded     = 8;
  msReplied    = 16;
  msSending    = 32;
  msTranSmited = 64;
  msInternal   = 128;                             // 内部邮件
  msLoaded     = 256;                             // 没有Load的内部邮件
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-5 11:50:52 | 显示全部楼层
我修改了协同常量库的代码,想将未读邮件显示在工作台上。

static function TRTLConsts.DefaultDesktopPanelDesc: TDesktopPanelDescArray;
const
  cTaskFuncURL = 'Biz:COLLABORATIONMyTaskFunc.Func';
  cPlanFuncURL = 'Biz:COLLABORATIONPlanCenterFunc.Func';
  cCustomerFuncURL = 'Biz:OPERATIONCRMSPACECustomerMngFunc.Func';
  cNeedProcessDocURL = 'Biz:COLLABORATIONTaskCenterInfo.InfoNeedProcessNav.FormDoc';
  cPlanDocURL = 'Biz:COLLABORATIONPlanCenterInfo.InfoPlanNav.FormDoc';
  cPostDocURL = 'Biz:COLLABORATIONTaskCenterInfo.InfoPostNav.FormDoc';
  cCustomerDocURL = 'Biz:OPERATIONCRMSPACECustomerInfo.InfoCustomerNav.FormDoc';
begin
  Result := [CreateDesktopPanel('待办任务', cNeedProcessDocURL, cTaskFuncURL, SysUtils.Format('-f%s -vvmTaskGrid -d待办', [TRTLConsts.NeedProcessTaskTypeStr])),
             CreateDesktopPanel('当前计划', cPlanDocURL, cPlanFuncURL, '-p'),
             CreateDesktopPanel('提交任务', cPostDocURL, cTaskFuncURL, SysUtils.Format('-vvmTaskGrid -f%s -d交办', [TRTLConsts.PostTaskTypeStr])),
             CreateDesktopPanel('我的邮件', 'Biz:MASTERMINDXTGLYWGN1.FuncMainForm.Form', 'Biz:COLLABORATIONJUSTEPMAIL.FUNC', '')
             //CreateDesktopPanel('我的客户', cCustomerDocURL, cCustomerFuncURL, '')
             ];
end;

static function TRTLConsts.DesktopUnionRect: TRectArray;
begin
  Result := [];//[Classes.Rect(0, 1, 3, 2), Classes.Rect(1, 2, 3, 3)];
end;

运行的时候报错如附件

工作台的代码停留在黑体行上
constructor TDesktopPanel.Create(AOwner: TComponent; const ADocURL: string; VirtualParent: TWinControl);
begin
  inherited Create(AOwner);

  FDesktopInfo := TInfoBroker.Create(Self);
  FDesktopInfo.AutoKind := TAutoKind.akPrivate;
  Assert(ADocURL <> '', 'ADocURL不能为空');
[B]  FDesktopInfo.BizClassRef.BizURL.URL := SysUtils.ExtractFileDir(ADocURL);[/B]
  FDesktopDoc := FDesktopInfo.Info.CreateDocByFileName(SysUtils.ExtractFileName(ADocURL)) as TDesktopDoc;

  FDesktopDoc.OnMoreClick := MoreLabelClick;
  FDesktopDoc.DesktopParent.Parent := VirtualParent;
end;

baocuo.jpg

15.58 KB, 下载次数: 153

回复 支持 反对

使用道具 举报

发表于 2007-12-5 13:18:50 | 显示全部楼层
签入刷新缓存,并退出建模工具,再初始化运行试试。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-1 18:03 , Processed in 0.044127 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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