起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 282|回复: 13

【结贴】求助:两个窗体共同继承同一个业务信息问题**

[复制链接]
发表于 2009-2-9 15:07:13 | 显示全部楼层 |阅读模式
A,B两个窗体共同引用业务信息,两个窗体除部分代码不同外,其余一切相同,A窗体正常,但B窗体出现如下错误:
[警告] 循环引用: "Biz:\BGZDH\SWGL\SWCY\SWFK.FUNC"-->"Biz:\BGZDH\SWGL\SWCY\SWGLYWXXChild.Info"-->"Biz:\BGZDH\SWGL\SWGLYWXX.Info"-->"Biz:\BGZDH\SWGL\SWGLYWXX.Info"
[警告] 循环引用: "Biz:\BGZDH\SWGL\SWCY\SWFK.FUNC"-->"Biz:\BGZDH\SWGL\SWCY\SWFK.Func"
[错误]Biz:\BGZDH\SWGL\SWCY\SWFK.FUNC.DIR\SWF.Form.pas(140, 17): Undeclared identifier "XYPSYY"
[错误]Biz:\BGZDH\SWGL\SWCY\SWFK.FUNC.DIR\SWF.Form.pas(146, 6): Undeclared identifier "showBJCLYJ"
[错误]Biz:\BGZDH\SWGL\SWCY\SWFK.FUNC.DIR\SWF.Form.pas(151, 13): Undeclared identifier "showBJCLYJ"
[错误]Biz:\BGZDH\SWGL\SWCY\SWFK.FUNC.DIR\SWF.Form.pas(153, 9): Undeclared identifier "showBJCLYJ"
[错误]Biz:\BGZDH\SWGL\SWCY\SWFK.FUNC.DIR\SWF.Form.pas(154, 12): Undeclared identifier "showBJCLYJ"
[错误]Biz:\BGZDH\SWGL\SWCY\SWFK.FUNC.DIR\SWF.Form.pas(168, 13): Undeclared identifier "showBJCLYJ"
回复

使用道具 举报

发表于 2009-2-9 15:13:47 | 显示全部楼层
2个窗体在什么位置?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-9 15:20:19 | 显示全部楼层
在同一个文件夹下。收文传阅、收文反馈共同引用收文管理业务信息的子对象

11.jpg

4.17 KB, 下载次数: 152

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-9 15:23:16 | 显示全部楼层
上面的错误是我调用功能XYPSYY"时出现的
procedure TSWF.ToolButton10Click(Sender: TObject);
begin
    showYJ();
end;

procedure TSWF.showYJ();
var
   showBJCLYJ : XYPSYY.TMainForm ;
  bFind: Boolean;

begin
     strLCTaskGUID := FlowBroker1.flowcontrol.CurrentTask.GUID;
     strLCNodeDisplayName := FlowBroker1.FlowControl.CurrentProcUnit.DisplayName;
     showBJCLYJ := XYPSYY.TMainForm.Create(Self.Context);
     try
        bFind := dsbSWYJ.DataSet.Locate('FWYJGUID', IFHaveYJ, []);
        if bFind then
        begin
            showBJCLYJ.RichEdit1.Text := dsbSWYJ.DataSet.FieldByName('YJ').AsString;
        end;
        showBJCLYJ.ShowModal;
        if showBJCLYJ.ModalResult = Business.Forms.Controls.mrOk then
        begin
          if bFind then
           dsbSWYJ.DataSet.edit
         else
           dsbSWYJ.DataSet.Append;
           dsbSWYJ.DataSet.FieldByName('YJ').AsString := showBJCLYJ.RichEdit1.Text;
           dsbSWYJ.DataSet.FieldByName('LCHJID').AsString := strLCTaskGUID;
           dsbSWYJ.DataSet.FieldByName('LCHJMC').AsString := strLCNodeDisplayName;
           dsbSWYJ.DataSet.ApplyUpdates(false);
           DocView1.Doc.Close;
           DocView1.OpenView(TDocMode.dmEdit);
        end;
     finally
            showBJCLYJ.Free;
            dsbSWYJ.DataSet.Filter :='';
             dsbSWYJ.DataSet.Filtered := true ;
     end;
end;
回复 支持 反对

使用道具 举报

发表于 2009-2-9 15:31:04 | 显示全部楼层
从图上看,信息是继承的
问题:
1、这2个功能引用的信息是引用子对象,还是原始的信息?
2、2个功能间是否有继承关系?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-9 15:32:53 | 显示全部楼层
引用子对象,功能之间无继承关系
回复 支持 反对

使用道具 举报

发表于 2009-2-9 15:33:23 | 显示全部楼层
重点看看:
[警告] 循环引用: "Biz:\BGZDH\SWGL\SWCY\SWFK.FUNC"-->"Biz:\BGZDH\SWGL\SWCY\SWGLYWXXChild.Info"-->"Biz:\BGZDH\SWGL\SWGLYWXX.Info"-->"Biz:\BGZDH\SWGL\SWGLYWXX.Info"
[警告] 循环引用: "Biz:\BGZDH\SWGL\SWCY\SWFK.FUNC"-->"Biz:\BGZDH\SWGL\SWCY\SWFK.Func"
原始信息是否又引用了SWFK.FUNC
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-9 15:56:36 | 显示全部楼层
原始信息没有引用SWFK.func,
窗体调用还需要在什么地方加代码?
回复 支持 反对

使用道具 举报

发表于 2009-2-9 16:06:59 | 显示全部楼层
功能引用过信息,访问信息就是  信息单元名.类名 的格式。
你肯定是搞乱了,是否能重新做一下。如果还是不行,你做一个简单的例子,把资源放到帖子上,我看下是什么情况。
回复 支持 反对

使用道具 举报

发表于 2009-2-9 16:09:14 | 显示全部楼层
如果对继承理解不深刻,那就把原始的信息复制一份用。我还不确认跟继承是否有关系,但这样做至少能排除这样一个问题点。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-28 01:08 , Processed in 0.049393 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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