|
lFilter := ' ftype = ''NEWSPLACARDDEAL'' ';(1)确定显示的是“新闻公告”的任务)
。。。。。。
begin
lFilter := lFilter + SysUtils.Format('and TTask.FPLANSTARTTIME <= ''%s''',
[SysUtils.FormatDateTime('yyyy-mm-dd hh:mm:ss', sysutils.now())]);
lFilter := lFilter + SysUtils.Format('and TTask.FPLANFINISHTIME >= ''%s''',
[SysUtils.FormatDateTime('yyyy-mm-dd hh:mm:ss', sysutils.now())]); (1)这段代码确定了新闻的时间范围。在新闻开始,和结束之间的新闻将被显示
---------------------------------------------------------
lFilter := lFilter + 'and (TTASK.FGUID IN '+
' (SELECT TTASKMESSAGE.FTASKGUID '+
' FROM TTASKMESSAGE '+
' WHERE (TTASKMESSAGE.FSTATE IN '+
// ' (''tmsSend'', ''tmsReceived'', ''tmsProcessing'')) '+
' (''tmsFinished'')) '+ {(A)??这里怎么查的是已经完成的啊??}
' AND (TTASKMESSAGE.FRORGURL IN ('+DoGetQueryURLStr(PersonMemberAndParentURLs)+') or '+
' (TTASKMESSAGE.FRORGURL = ''\ROOT\_UNEXIST_.OGN\.DPT\.PTM\.PSM'' and TTASKMESSAGE.FROGN = '''+lorg+''' )) ) '+
{(B) 上面好像说是:如果选择的是组织机构,那么看看当前登录的人是否在该机构下面,如果是就应该显示该条数据给这个人。OR,组织机构是当前登录的机构,并且人员成员是当前登录人员,也就是发送目标类型是人员成员的。}
' or (TTASK.FGUID IN '+
' (SELECT T1.FGUID '+
' FROM TTASK T1 '+
' WHERE (T1.FSTATE IN (''tsStarted'', ''tsProcessing'')) '+
' AND ((T1.FSDEPT = '''+lDept+''') AND (T1.FSPOSITION = '''+lPosition+''') AND '+
' (T1.FSPERSON = '''+lPerson+'''))))) ';
(C: 这段说的是:还有那些 状态是tsStarted 和tsProcessing ,且 部门,岗位是当前登录的人)
--------------------------------
(A,B,C)是我的理解: 其中部分我理解,还有不理解的。
比如为什么查的是已经完成的啊??、为什么还要显示状态是tsStarted 和tsProcessing 的??为什么要加上TTASKMESSAGE.FROGN = '''+lorg+''' 所在机构的限制条件。??
TTASKMESSAGE.FRORGURL = ''\ROOT\_UNEXIST_.OGN\.DPT\.PTM\.PSM'' ??看不懂这是什么写法?? |
|