起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 155|回复: 8

【结贴】任务列表中的问题

[复制链接]
发表于 2008-9-18 10:56:45 | 显示全部楼层 |阅读模式
现在遇到一个问题:我在用协同管理系统登陆时,在登陆界面,‘部门岗位’不选为‘自动’,则进入后在系统自带的‘待办任务’里和我自己开发的‘待办任务’里都能看到待办任务。但若在登陆时‘部门\岗位’选为自动,则进入后在系统自带的‘待办任务’里能看到任务,但在我自己开发的‘待办任务’里却什么也看不到。这是什么原因?

待办任务看不到了.jpg

35.57 KB, 下载次数: 107

回复

使用道具 举报

 楼主| 发表于 2008-9-18 10:57:43 | 显示全部楼层
图片

待办任务.jpg

180.16 KB, 下载次数: 101

回复 支持 反对

使用道具 举报

发表于 2008-9-18 11:24:03 | 显示全部楼层
检查一下你自己开发功能是怎么过滤任务的?
可以和系统的功能对比一下过滤条件
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-18 11:50:53 | 显示全部楼层
这是我的主要代码,麻烦你能看一下,共同找出问题之所在
procedure TDBRWCT.BizFormCreate(Sender: TObject);

var
  lViewMode: string;
  lFilterType: string;
  lFilterDesc: string;
  lLocateID: string;
begin
  ParserRunParams(lViewMode, lFilterType, lFilterDesc, lLocateID);

  MyTaskDoc.FilterBeginUpdate;
  try
    MyTaskDoc.DocBarTask.ShowMaxButton := False;
    MyTaskDoc.FilterToAutoFill := True;
    // MyTaskDoc.RightsFilter := False;
    if lViewMode <> '' then
      MyTaskDoc.ViewMode := TMyFuncInfo.StrToViewMode(lViewMode)
    else
      //MyTaskDoc.ViewMode := TViewMode.vmTaskGrid;
      MyTaskDoc.ViewMode := MyFuncInfo.TViewMode.vmTaskGrid;
    if SysUtils.SameText(lFilterType, TRTLConsts.NeedProcessTaskTypeStr) then
      MyTaskDoc.ProcessStates := [TProcessState.psProcess]
    else if SysUtils.SameText(lFilterType, TRTLConsts.PostTaskTypeStr) then
      MyTaskDoc.ProcessStates := [TProcessState.psPost]
    else
      //MyTaskDoc.ProcessStates := [TProcessState.psProcess, TProcessState.psFinish, TProcessState.psPost, TProcessState.psPostFinished];
    MyTaskDoc.ProcessStates := [TProcessState.psProcess];
    MyTaskDoc.DateRange := TDateRange.drAll;
    MyTaskDoc.OrgTypes := TaskCenterInfo.TTaskCenterInfo.DefaultDesktopTaskOrgRange;
  finally
    MyTaskDoc.FilterEndUpdate;
  end;

  if lFilterDesc <> '' then
    Caption := SysUtils.Format('%s(%s)', [Caption, lFilterDesc]);

  MyTaskDoc.OpenTask;
  MyTaskDoc.InfoTask.DataSetTaskIndex.Locate('FGUID', lLocateID, []);
  MyTaskDoc.OnViewModeChange := DoTaskDocViewModeChange;
  MyTaskDoc.OnTaskOpened := DoTaskOpened;
{
  lTaskDoc := MyTaskDoc;
  lTaskDoc.OpenTask;
  lTaskDoc.DocBarTask.ShowMaxButton := False;
  lTaskDoc.TaskGridDoc.TaskIndexDataDataSetChange(nil);}

  FMessageHandler := TRelevancyBizMessageHandler.Create(Self);
  Context.AddMessageHandler(TRefreshRelevanciesMessage.GetName, FMessageHandler);
  FDocMessageHandler := TDocRelevancyBizMessageHandler.Create(Self);
  Context.AddMessageHandler(TRefreshDocRelevanciesMessage.GetName, FDocMessageHandler);

end;


procedure TDBRWCT.BizFormDestroy(Sender: TObject);
begin    //
DocRelevancyNavBar := nil;
  Context.RemoveMessageHandler(TRefreshDocRelevanciesMessage.GetName, FDocMessageHandler);
  FDocMessageHandler.Free;

  RelevancyNavBar := nil;
  Context.RemoveMessageHandler(TRefreshRelevanciesMessage.GetName, FMessageHandler);
  FMessageHandler.Free;

end;
procedure TDBRWCT.Notification(AComponent: TComponent; Operation: TOperation);
begin
  inherited;
  if (AComponent = FRelevancyNavBar) and (Operation = TOperation.opRemove) then
    FRelevancyNavBar := nil;
  if (AComponent = FDocRelevancyNavBar) and (Operation = TOperation.opRemove) then
    FDocRelevancyNavBar := nil;
end;

procedure TDBRWCT.SetRelevancyNavBar(Value: TRelevancyNavBar);
begin
  if FRelevancyNavBar <> Value then
  begin
    if FRelevancyNavBar <> nil then
      FRelevancyNavBar.RemoveFreeNotification(Self);
    FRelevancyNavBar := Value;
    if FRelevancyNavBar <> nil then
      FRelevancyNavBar.FreeNotification(Self);
  end;
end;

function TDBRWCT.GetMyTaskDoc: MyFuncInfo.TMyTaskDoc;
begin
  Result := dcvMyFuncInfo.Doc as MyFuncInfo.TMyTaskDoc;
end;

procedure TDBRWCT.ParserRunParams(out ViewMode, FilterType, FilterDesc, LocateID: string);
var
  lParser: TCommandLineParser;
  lOption: TCommandLineOptionDefine;
begin
  lParser := TCommandLineParser.Create(nil);
  try
    lOption := lParser.OptionDefines.Add;
    lOption.Name := '-v';
    lOption.HasValue := True;
    lOption.DisplayName := '显示模式';

    lOption := lParser.OptionDefines.Add;
    lOption.Name := '-f';
    lOption.HasValue := True;
    lOption.DisplayName := '过滤选项';

    lOption := lParser.OptionDefines.Add;
    lOption.Name := '-d';
    lOption.HasValue := True;
    lOption.DisplayName := '过滤选项描述信息';

    lOption := lParser.OptionDefines.Add;
    lOption.Name := '-l';
    lOption.HasValue := True;
    lOption.DisplayName := '定位记录';

    lParser.Parse('-fNeedProcess -vvmTaskGrid -d待办');

    ViewMode := lParser.GetOption('-v').Value.Value;
    FilterType := lParser.GetOption('-f').Value.Value;
    FilterDesc := lParser.GetOption('-d').Value.Value;
    LocateID := lParser.GetOption('-l').Value.Value;
  finally
    lParser.Free;
  end;
end;
回复 支持 反对

使用道具 举报

发表于 2008-9-18 16:59:00 | 显示全部楼层
楼主把看不到任务功能的对象查看器(ctrl shift alt o)中环境贴出来看一下,把平台自带的和你的功能环境分别贴出来看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-24 17:28:13 | 显示全部楼层
原先没分处室的时候,我开发的待办任务都能看到上一个节点的发给的任务,就分了处室后,待办列表中的任务有些看不到。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-24 17:35:49 | 显示全部楼层
代码都是参考MyTaskFunc.Func,只是在方法ParserRunParams中参数改成了lParser.Parse('-fNeedProcess -vvmTaskGrid -d待办');
回复 支持 反对

使用道具 举报

发表于 2008-9-24 18:10:34 | 显示全部楼层
楼主用5楼的方法主要是看一下你这两个功能可能运行时候的环境不一样,看一下出问题功能的环境与正常功能的环境又什么区别。
回复 支持 反对

使用道具 举报

发表于 2008-9-27 10:28:49 | 显示全部楼层
楼主反馈一下情况怎么样了?
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-22 21:17 , Processed in 0.044310 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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