起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: hero419

【结】在工作台上左键点击某条提交任务,有可能直接“取回”,大家遇到过么?**

[复制链接]
 楼主| 发表于 2008-4-15 13:55:55 | 显示全部楼层
远程一下吧,我在本地环境初始化数据库后做了个简单的功能,这个问题存在。
重现方法:
1、在“提交任务”区域点击右键,将出现“取回”“详情”“刷新”的菜单。
2、不要点击菜单项目,左键点击其他区域取消菜单,反复几次。
3、这时左键点击某条“提交任务”,会取回该任务。
回复 支持 反对

使用道具 举报

发表于 2008-4-15 14:05:48 | 显示全部楼层
我试试
回复 支持 反对

使用道具 举报

发表于 2008-4-16 10:01:55 | 显示全部楼层
恩,找到问题了。楼主可以暂时按这样改。缺陷已经提交,后续版本会修改。


业务模型\协同系统\任务\任务中心信息
procedure TTaskOperations.FixPopupMenu(APopupMenu: TPopupMenu; ActionList: TActionList;  AFilterType: TFilterType);
var
  I: Integer;
  lMenuItem: TMenuItem;
  lTaskTypeInfo: TCMTaskTypeInfo;
begin
  if (AFilterType = TFilterType.ftPost) then
  begin
    for I := APopupMenu.Items.Count - 1 downto 0 do
      if (APopupMenu.Items[I].Action <> nil) and
        (FindBizOperation(APopupMenu.Items[I].Action as TAction) <> '') then
        APopupMenu.Items.Delete(I);
    if FTaskCenterInfo.Task = nil then
      Exit;
    if FTaskCenterInfo.Task.IsFlowTask then
    begin
      if OperatorBizOperations.IndexOf('Biz:\COLLABORATION\TaskOptionGroup.OperationGroup\FetchBack.Operation') >= 0 then
      begin
        lMenuItem := TMenuItem.Create(APopupMenu);
        APopupMenu.Items.Insert(1, lMenuItem);//APopupMenu.Items.Insert(0, lMenuItem);  修改此处
        lMenuItem.Action := GetBizOperationAction('Biz:\COLLABORATION\TaskOptionGroup.OperationGroup\FetchBack.Operation', ActionList);
        Exit;
      end;
    end;
  end else
    FixPopupMenu(APopupMenu, ActionList);
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-16 14:19:04 | 显示全部楼层
谢谢李工,结了吧。
回复 支持 反对

使用道具 举报

发表于 2008-6-13 11:08:17 | 显示全部楼层
统一修改方式:
业务模型\协同系统\任务\任务中心信息\任务导航(基类

procedure TTASKNAV.GridClick(Sender: TObject);
var
  lCanExcuteMenu: TMenuItem;
  I: Integer;
begin
  TSystemCore.BeginWaiting;
  try
  //  actViewDetail.Visible := not (FFilterType = TFilterType.ftNeedProcess);
    if FFilterType = TFilterType.ftNeedProcess then
      FTaskOperations.FixPopupMenu(PopupMenu, ActionList);
    if PopupMenu.Items.Count > 0 then
    begin
      lCanExcuteMenu := nil;
      // 排除“刷新”和“-”菜单
      for I := 0 to PopupMenu.Items.Count - 3 do
      begin
        if PopupMenu.Items[I].Action <> nil then
          PopupMenu.Items[I].Action.Update;

        if PopupMenu.Items[I].Enabled and PopupMenu.Items[I].Visible and
          ((FTaskOperations.FindBizOperation(TAction(PopupMenu.Items[I].Action)) = cProcessOperation)
           or (PopupMenu.Items[I].Action = actViewDetail))
          then
        //默认执行详细和处理
        begin
          lCanExcuteMenu := PopupMenu.Items[I];
          Break;
        end;
      end;
      if lCanExcuteMenu <> nil then
        lCanExcuteMenu.Click;
    end;
  finally
    TSystemCore.EndWaiting;
  end;
end;
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-17 07:53 , Processed in 0.041668 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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