起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: dahaigegege

【结贴】请教代码关闭功能的问题

[复制链接]
 楼主| 发表于 2010-1-19 11:32:16 | 显示全部楼层
在对象查看器中能够看到Biz:\COLLABORATION\CUSTOMDESKTOPFUNC.Func(工作台)下面的TASKCENTERINFO,而且有两个,但是在程序中却取不到这个TASKCENTERINFO
回复 支持 反对

使用道具 举报

发表于 2010-1-19 11:34:29 | 显示全部楼层
那个帖子里我说过了,要从环境中找到任务中心信息,而工作台下,先是面板信息,面板信息下才有任务中心信息。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-19 11:39:34 | 显示全部楼层
是的。我发现你上面说的问题了,但现在不知如何改写这部分代码,我现在要用下面这行代码作决断
if lContext.Children.Owner is TPanelInfo then    编译提示TPanelInfo未声明,如何声明?
回复 支持 反对

使用道具 举报

发表于 2010-1-19 11:49:48 | 显示全部楼层
楼上的这种用法不对。
你参照28楼的代码写法来实现才可以。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-19 13:21:23 | 显示全部楼层
可以结贴了,谢谢引导,已经成功,下面将完整的代码发出来,以供有这样需求的占在一线的兄弟姐妹们一共分享,
// 刷新工作台待办任务的函数
static procedure TSUPERVISE_RECORD_BROWSE_IMPROVE_VERIFY_FORM.refreshWorkDesktop(AContext: TContext);
const
  //  Biz:\COLLABORATION\CUSTOMDESKTOPFUNC.FUNC
  cDesktopURL = 'Biz:\COLLABORATION\CUSTOMDESKTOPFUNC.FUNC';  // 'Biz:\COLLABORATION\DesktopFunc.Func';      //Biz:\COLLABORATION\MYTASKFUNC.FUNC
  cTaskCenterURL = 'Biz:\COLLABORATION\TASKCENTERINFO.INFO';
  cPanelInfoURL = 'Biz:\COLLABORATION\PANELINFO.INFO';
var
  lBizObject: TBizObject;
  i: Integer;
  lContext: TContext;
begin

  lContext := AContext.FindParentContext(BizSys.IL_PERSON);    //人员环境  ; 查找某个隔离级的父环境

  //在人员环境找工作台功能
  for i:=0 to lContext.ChildCount-1 do
  try
    if (lContext.Children.Owner is TFunc) then  //**********这边必须加上类型判断,不然会出错。
      if SysUtils.SameText(cDesktopURL, (lContext.Children.Owner as TFunc).BizClassURL.BizURL.URL) then
        begin
            lBizObject := lContext.Children.Owner;
            break;
        end

  except
   end;

  if lBizObject=nil then exit;
  //在工作台功能上找任务中心信息
  lContext := lBizObject.Context;
  for i:=0 to lContext.ChildCount-1 do
  try
       begin
         if SysUtils.SameText(cPanelInfoURL, (lContext.Children.Owner as TInfo).BizClassURL.BizURL.URL) then
            begin
                 lBizObject := lContext.Children.Owner;
                 if lBizObject <> nil then
                    begin
                      lContext := lBizObject.Context;
                      for i:=0 to lContext.ChildCount-1 do
                       begin
                          try
                            if SysUtils.SameText(cTaskCenterURL, (lContext.Children.Owner as TInfo).BizClassURL.BizURL.URL) then
                              begin
                                  lBizObject := lContext.Children.Owner;
                                  //刷新数据集
                                  if (lBizObject as TInfo).DataSetByID('TaskIndex').Active then
                                     (lBizObject as TInfo).DataSetByID('TaskIndex').Refresh;
                                 // Exit;
                              end;
                          except
                          end;
                        end;  // end for

                    end;   // end if

            end;  // end if
       end;
  except
  end;

end;
回复 支持 反对

使用道具 举报

发表于 2010-1-19 13:49:21 | 显示全部楼层
good
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-13 04:05 , Processed in 0.049769 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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