起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 1483|回复: 31

【搞定】[请求]参数不能传值???**

[复制链接]
发表于 2007-4-3 11:44:19 | 显示全部楼层 |阅读模式
FGZDH是在同一业务信息下的两个表单下进行传值的,但是在TJHZXM能够得到该值,在TZLGLXX就得不到,并且也得不到opendialog1.FileName值,注释掉在掉WDMLCTXX: WDCL.TWDMLCTXX;这个窗体得创建却可以得到,不知道为什么?是不是传值得方式出现问题?还是这样定义窗体错误?请大家帮忙看看!

在表单TZLGLXX中的代码
procedure TZLGLXX.N1Click(Sender: TObject);
var
  WDMLCTXX: WDCL.TWDMLCTXX;//已经引用WDCL该业务空间,创建窗体
  temp :String;
begin
  if OpenDialog1.Execute then
  Begin
    temp := ExtractFileName(opendialog1.FileName);
    WDMLCTXX:= WDCL.TWDMLCTXX.Create(Self.Context);
    WDMLCTXX.FNAME:= ExtractFileName(opendialog1.FileName);
    WDMLCTXX.FFILETPYE:= ExtractFileExt(opendialog1.FileName);
    WDMLCTXX.FGZDH:= FGZDID;// FGZDH定义在该表单的PUBLIC下,将FGZDH值传递给WDMLCTXX窗体来使用FGZDID值在下面的代码中得到
    WDMLCTXX.ShowModal;
  end;
end;

在TJHZXM中的代码
procedure TJHZXM.dtlstXMListChangeNode(Sender: TObject; OldNode, Node: TTreeListNode);
begin
  TZLGLXX(Infobroker.info).FGZDID := DataSetBroker_XMList.DataSet.FieldByName('GZDXH').AsString;
  info.DataSetWDZLSJJ.Filtered:= false;
  info.DataSetWDZLSJJ.Filter:='GZDXH='            +Business.System.SysUtils.QuotedStr(TZLGLXX(Infobroker.info).FGZDID);
  info.DataSetWDZLSJJ.Filtered := True;
end;


得到info
  private
    {private declarations}
    function GetInfo: JHGLZXXX.TJHGLZXXX;
  public
    {public declarations}
    property Info: JHGLZXXX.TJHGLZXXX read GetInfo;
  end;

function TJHZXM.GetInfo: TJHGLZXXX;
begin
  Result := (InfoBroker.Info as TJHGLZXXX);
end;
回复

使用道具 举报

 楼主| 发表于 2007-4-3 12:52:42 | 显示全部楼层
不要沉下去呀!呵呵,帮忙看看吧!谢谢啦!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-3 14:10:34 | 显示全部楼层
就是如题意思啊!
我用TZLGLXX(Infobroker.info).FGZDID:=’’在A表单中得到值,在另一个表单B使用FGZDID,A,B两个表单在同一个业务空间下;调用另一个业务信息下的窗体,使用
WDMLCTXX: WDCL.TWDMLCTXX;//已经引用该业务信息
来定义创建窗体,但是最后出错,FGZDID没有传过来,并且监视opendialog1.FileName这个值也提示‘没有定义WDMLCTXX’,我注释掉这个窗体定义以及使用监视opendialog1.FileName却正常!
回复 支持 反对

使用道具 举报

发表于 2007-4-3 15:15:03 | 显示全部楼层
A,B两个表单在同一个业务空间下?
这是什么意思?

你在A表单中为TZLGLXX(Infobroker.info).FGZDID赋值,希望在B表达中使用。
那么你必须要保证A、B表单访问的是同一个业务信息的实例。
如果他们访问的是TZLGLXX信息的两个不同的实例,是肯定不能互相传递变量值的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-3 15:54:51 | 显示全部楼层
A,B就是在同一个业务信息下的

TZLGLXX就是B表单,TJHZXM是A表单
TZLGLXX(Infobroker.info).FGZDID在A表单赋值了,FGZDID在B表单上定义并且想在B表单上使用,但是没传过来呀!
现在就是这个问题◎
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-3 16:01:50 | 显示全部楼层
可能传值不是最主要的问题,因为

WDMLCTXX: WDCL.TWDMLCTXX;//已经引用该业务信息

通过这样定义一个窗体并调用他以后,在监视FGZDID和opendialog1.FileName的时候出现
表达式错误:Undeclared identifier "TWDMLCTXX"这个错误,不知道为什么?

如果只是参数没传过来,理应会出现opendialog1.FileName这个值的,但是没有!
回复 支持 反对

使用道具 举报

发表于 2007-4-3 16:10:18 | 显示全部楼层
你是否把A和B文档分别放在了不同的功能中?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-3 16:42:06 | 显示全部楼层
不是的,A,B是再同一个功能下的
回复 支持 反对

使用道具 举报

发表于 2007-4-3 17:08:11 | 显示全部楼层
你把资源传上来我看看吧!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-4 08:52:43 | 显示全部楼层
代码在《计划管理中心》中,想通过在从表单《计划中项目》得到“工作单序号”,传递到表单《资料管理》中来,FGZDID定义在《资料管理》。WDMLCTXX是《文档处理》业务信息下的一个窗体,在《资料管理》中创建并调用。

help1.rar

1.4 MB, 下载次数: 138

回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-18 20:18 , Processed in 0.058640 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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