起步软件技术论坛-X3

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

【结贴】用 ocx直接运行一个功能**

[复制链接]
发表于 2009-4-27 13:07:08 | 显示全部楼层
25楼的应该是bug,楼主杀掉进程吧。

不要用run2了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-27 13:10:23 | 显示全部楼层
我现在已经不用run2了,我用
X3X.Run("", "TXK", "", "");
我只做了这么点修改,都出这个错误。
回复 支持 反对

使用道具 举报

发表于 2009-4-27 13:20:02 | 显示全部楼层
你去掉第2个参数使用ie就不报错了么?
传完整的空间url,类似:Biz:\OPERATION\这样。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-27 13:32:42 | 显示全部楼层
我刚刚试了试,用系统自带的business.jsp也出这样的错误。
http://127.0.0.1:8081/x3/business.jsp 运行两次后就出这个错误了,
“传完整的空间url,类似:Biz:\OPERATION\这样。” 是什么意思?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-27 13:36:45 | 显示全部楼层
29楼里面说,定义一个全局参数,x3不支持全局变量,是吧?
全局参数是怎么个定义法?,是不是定义一个业务参数呢?
回复 支持 反对

使用道具 举报

发表于 2009-4-27 13:45:19 | 显示全部楼层
25楼的错误可能是楼主在代码中创建了什么对象没有释放可能就会有这个错误了。
就是第2个参数传一个完整的空间url而不是 空间Id ,比如X3X.RUN("","Biz:\OPERATION","","");

对,定义一个隔离级是全局的业务参数。这个参数所在参数组的隔离级是全局
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-27 13:55:29 | 显示全部楼层
哦,25楼的问题,我再想想,现在我继续照着29楼的方法继续~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-27 14:28:07 | 显示全部楼层
我用下面方法设置我的业务参数的值为下面的AValue的值。
procedure TINIT.SetParamValue(AValue, URL: String);
var
  lParam: TBizParam;
  lBizURL: TBizURL;
  lContextCurrent: TContextCurrent;
begin
  lBizURL := TBizURL.Create;
  lContextCurrent := TContextCurrent.Create(Context);
  try
    lBizURL.URL := URL;
    lParam := lContextCurrent.GetParam(lBizURL);
    lParam.Value := AValue;
  finally
    lBizURL.Free;
  end;
end;
但是我不知道怎么取这个业务参数的值,我想采用类似的方法,我这么写的:
function TOperatorFuncNavBar.GetParamValue(URL: String):string;
var
  lParam: TBizParam;
  lBizURL: TBizURL;
  lContextCurrent: TContextCurrent;
begin
  lBizURL := TBizURL.Create;
  lContextCurrent := TContextCurrent.Create(nil);//.Create(Context);
  try
    lBizURL.URL := URL;
    lParam := lContextCurrent.GetParam(lBizURL);
    result:=lParam.Value;
  finally
    lBizURL.Free;
  end;
end;
结果编译的时候,1.TContextCurrent.Create(Context),报错,
2. lparam.value是object类型,不能隐式转换为string类型。
我不知道该如何取这个参数的值。
回复 支持 反对

使用道具 举报

发表于 2009-4-27 14:41:12 | 显示全部楼层
类似这样,你用AValue赋值就可以了,然后在dorun的后面调用一下这个方法,把从business.jsp中获取的值作为参数传递给这个方法
procedure TInit.SetParamValue(AValue: String);
var
  lParam: TBizParam;
  lBizURL: TBizURL;
  lContextCurrent: TContextCurrent;
begin
  lBizURL := TBizURL.Create;
  lContextCurrent := TContextCurrent.Create(Context);
  try
    lBizURL.URL := 'Biz:\SYSTEM\SYSPARAMS.PARAMGROUP\KJURL.Param';
    lParam := lContextCurrent.GetParam(lBizURL);
    lParam.Value :=   AValue;
  finally
    lBizURL.Free;
  end;
end;
回复 支持 反对

使用道具 举报

发表于 2009-4-27 14:42:32 | 显示全部楼层
取的时候类似这样转换一下:
result :=Variants.VarToStr(lParam.Value);
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

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

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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