起步软件技术论坛-X3

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

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

[复制链接]
 楼主| 发表于 2010-1-18 14:22:13 | 显示全部楼层
我刚才也试过了,
SysUtils.UpperCase('Biz:\CSLZ\CSLZ4\ZGN.Func'),'');//功能url
我随便建立一个普通的功能,能够得到  lFunc
但是我换成 "业务模型\协同系统\任务\我的任务
"    其功能url : Biz:\COLLABORATION\MYTASKFUNC.FUNC
时就得不到 lFunc了
回复 支持 反对

使用道具 举报

发表于 2010-1-18 14:53:29 | 显示全部楼层
说明你的环境给的不对

你看看 环境链。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-18 14:57:08 | 显示全部楼层
麻烦您看看No. 9中的环境,我该如何写?
回复 支持 反对

使用道具 举报

发表于 2010-1-18 15:09:59 | 显示全部楼层
12楼说的不对。
你是指 工作台中的 待办任务 点那个更多打开的我的任务(待办)功能吧。
发现的问题是 那个是带参数的 Biz:\COLLABORATION\MyTaskFunc.Func||-fftNeedProcess -vvmTaskGrid -d待办||||||RY1 ,而通过上面的方式得到的是 BIZ:\COLLABORATION\MYTASKFUNC.FUNC||||BM3||GW1||RY1
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-18 15:19:12 | 显示全部楼层
我是通过代码发起的无流程待办任务,是通过任务关联管理中定义了一个任务关联,现在我通过工作台上的待办任务点击打开了No.8的窗体,刚才测试了一下,还是没有得到,代码如下,:
tmpUniqueId := SystemCore.TFuncManager.GetFuncUniqueID(Context,SysUtils.UpperCase('Biz:\COLLABORATION\MyTaskFunc.Func||-fftNeedProcess -vvmTaskGrid -d待办'),'');//功能url

  lFunc := SYSTEMCORE.TSYSTEMCORE.FuncManager.FindRunning(tmpUniqueId);
  if lFunc <> nil then
    SystemCore.TSystemCore.FuncManager.TerminateFunc(lFunc, True);
回复 支持 反对

使用道具 举报

发表于 2010-1-18 15:22:56 | 显示全部楼层
楼主,你 在 这句话处打个断点
lFunc := SYSTEMCORE.TSYSTEMCORE.FuncManager.FindRunning(tmpUniqueId);

然后看看 tmpUniqueId 值,并且进入到 FindRunning 这个函数的实现部分,也就是 业务模型\系统空间\系统运行库\系统核心库 中的这段代码
function TFuncManager.FindRunning(const AUniqueID: string): TFunc;
var
  I: Integer;
begin
  I := -1;
  if RunningFuncIDs.Find(AUniqueID, I) then
    Result := TFunc(RunningFuncIDs.Objects[I])
  else
    Result := nil;
end;

然后你看看 RunningFuncIDs 这里的值,比如 RunningFuncIDs[0/1/2/...]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-18 15:34:37 | 显示全部楼层
tmpUniqueId 的值 : BIZ:\COLLABORATION\MYTASKFUNC.FUNC||-FFTNEEDPROCESS -VVMTASKGRID -D待办||||SBWHB||SBWHBZHGL||BAIYIN
Result := TFunc(RunningFuncIDs.Objects[I]) 没有执行
回复 支持 反对

使用道具 举报

发表于 2010-1-18 15:44:35 | 显示全部楼层
特殊处理一下tmpUniqueId  的值吧,让它与 RunningFuncIDs这里的一致。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-18 16:00:12 | 显示全部楼层
没有明白您的意思,这好像也不是解决之路吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-18 16:26:53 | 显示全部楼层
能不能换种思路,来解决这个问题,比如说: 因为NO.8中的操作页面,是嵌套在"我的任务"中的,在单击No.8中的窗体(整改情况处理)中的一个按钮的时候,我可以通过此按钮的Close方法将"整改情况处理"窗体关闭,现在留下了"我的任务"的外壳,有什么样的代码可以直接关闭这个外壳吗,请给指点.
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-13 02:21 , Processed in 0.044774 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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