起步软件技术论坛-X3

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

【结贴】把单个业务空间拖拽出来单独显示的问题

[复制链接]
发表于 2009-4-30 10:36:28 | 显示全部楼层
修改协同常量库(COLLABORATIONCONSTS)里面的RunFunc函数:如
static function TRTLConsts.RunFuncs: string;
begin
if IsInOwnerFuncs('Biz:\GJDLSCJYYYXT\TGYJYRBFUNC_NEW.FUNC') then
  Result := 'Biz:\GJDLSCJYYYXT\TGYJYRBFUNC_NEW.FUNC;' +
    'Biz:\COLLABORATION\SchedulerFunc.Func;'+
    'Biz:\COLLABORATION\DesktopFunc.Func'
   else
  Result := 'Biz:\COLLABORATION\DesktopFunc.Func;' +
    'Biz:\COLLABORATION\SchedulerFunc.Func';
//TGYJYRBFUNC_NEW为要运行的功能
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-30 11:29:41 | 显示全部楼层
static function TRTLConsts.RunFuncs:TStringArray;  
begin

Result := TSystemConsts.RunFuncs;
end;
原版的代码是这样的,我照着楼上所写的,改了代码,还改了函数的返回值类型, 但是编译的时候报错:
IsInOwnerFuncs 是没有声明的标示符。
回复 支持 反对

使用道具 举报

发表于 2009-4-30 11:50:50 | 显示全部楼层
这个IsInOwnerFuncs 可能是amao800613是自己定义的方法,当然会报错,

你找TSystemConsts.RunFuncs这个是配置库中的方法,你找到配置库中的runfuncs就会看到默认运行的那两个功能,然后你在这里面修改吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-30 14:02:44 | 显示全部楼层
在配置库中发现了函数:static function TSystemConsts.CustomDesktopFunc: string;     ,修改一下,工作台的显示就变了,10楼那幅图中最上方那一条,高亮度的那个“工作台”的标签能不能也不显示呢?
回复 支持 反对

使用道具 举报

发表于 2009-4-30 14:07:31 | 显示全部楼层
那个工作台是你们自己添加的吧?还是使用业务功能树配置出来的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-30 15:09:48 | 显示全部楼层
楼上的问题,我再同别人探讨一下。接着12楼:
我是由以下函数
static function TSystemConsts.RunFuncs: TStringArray;
begin
   Result := [CustomDesktopFunc,
    'Biz:\COLLABORATION\SchedulerFunc.Func'];

end;
找到CustomDesktopFunc,函数的,
原版的CustomDesktopFunc函数是
static function TSystemConsts.CustomDesktopFunc: string;
begin
  Result := 'Biz:\COLLABORATION\CustomDesktopFunc.Func';
end;
我发现'Biz:\COLLABORATION\CustomDesktopFunc.Func' 这个参数如果简单地换成其他的空白窗体,那么工作台就是空白的了。
现在的需求是,business.jsp中run函数的第二个参数如果是空,加载原来的那个工作台窗体,如果run函数的第二个参数不是空,那么就加载空白窗体。
在CustomDesktopFunc函数中,经过showmessage,我发现
GetParamValue('Biz:\SYSTEM\DICT\YWCSZ1.ParamGroup\YWKJID.Param')的值,在平台显示出来之前是空的,平台显示出来之后才把这个全局参数的值给取出来。可这时候就晚了,原来的工作台已经显示出来了,那个空白窗体并没有加载。
我要把什么作为判断条件,来判断run函数的第二个参数是否为空? 或者我在别的什么事件中做判断,根据判断结果,来决定加载工作台窗体,还是空白窗体?
回复 支持 反对

使用道具 举报

发表于 2009-4-30 18:24:09 | 显示全部楼层
1.在系统初始化static procedure TINIT.Init;中把TSettingLib.Init; 这段代码放到procedure TINIT.DoRun;  方法中,就放到    inherited DoRun;  这句后面
2.在配置库中定义一个变量用来标记系统初始化中的参数,然后在配置库中定一个静态方法对这个参数赋值。
3.在系统初始化dorun方法中TSettingLib.Init; 这句的前面调用配置库中的那个方法,把Parameters作为参数传过去。
4.在CustomDesktopFunc方法中判断你定义的参数是否为空来设置默认运行起来的功能。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-4 09:23:55 | 显示全部楼层
上面第2条,是什么意思?我不明白到底要怎么做?
系统初始化的参数是什么,怎么传递到配置库的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-4 10:14:39 | 显示全部楼层
上面第2条,静态方法中对这个参数赋值,那么这个参数应该在哪儿声明呢?具体怎么声明?
我刚刚查了delphi中没有静态变量。
回复 支持 反对

使用道具 举报

发表于 2009-5-4 10:22:05 | 显示全部楼层
系统初始化的参数是什么,怎么传递到配置库的?

参数就是你从business.jsp中传进来的参数,即dorun方法中的parameters

配置库中:
1.声明一个全局变量 : var lBizParam :String;
2.定义一个静态方法:
声明:static  procedure SetBizParam(AParam:String);
实现:
static  procedure TSystemConsts.SetBizParam(AParam:String);
begin
  lBizParam  :=AParam;
end;
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-22 02:00 , Processed in 0.046479 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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