起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 308|回复: 3

[分享]信息和信息代理

[复制链接]
发表于 2007-12-6 10:59:16 | 显示全部楼层 |阅读模式
根据给定的URL,在当前环境查找信息,如果没有就创建
function TMainForm.GetInfoByURL(AURL: String): TInfo;
var
  lBizClassURL: TBizClassURL;
begin
  //根据给定的BizURL,创建信息
  lBizClassURL := TBizClassURL.Create;
  lBizClassURL.BizURL.URL := AURL;
  Result := Context.GetBizObject(lBizClassURL) as TInfo;
  lBizClassURL.Free;
end;

也可以按照其他对象创建方式一样
lInfo := TYWXX1.Create(Context);
来创建信息,并使用它
这种方式创建的对象,不会在Context中查看时候已经存在这个信息
回复

使用道具 举报

 楼主| 发表于 2007-12-6 11:09:19 | 显示全部楼层

信息代理TInfoBroker

如果不在设计时,定义InfoBroker所代理的信息,可以在运行期代码赋值
有两种方式,一种是指定它对应的信息的URL,一种是用一个信息对这个信息代理赋值
方法一:指定信息URL
var
  lInfoBroker: TInfoBroker;
  lDocView: TDocView;
begin
  lInfoBroker := TInfoBroker.Create(Self);
  //设置自动代理,根据指定的URL自动在环境中找到信息,如果没有找到则创建信息
  lInfoBroker.AutoBroker := True;
  //设置信息的BizURL
  lInfoBroker.BizClassRef.BizURL.URL := 'Biz:\LZ\DLKJXX.Info';
  //后面是代码创建DocView了,可以不关心
  lDocView := TDocView.Create(Self);
  lDocView.Align := TAlign.alClient;
  //设置信息代理
  lDocView.InfoBroker := lInfoBroker;
  //设置文档名
  lDocView.DocFileName := 'SJWG1.FormDoc';
  lDocView.Parent := Self;
end;
方法二:用信息对代理赋值
var
  lInfo: TInfo;
  lInfoBroker: TInfoBroker;
  lBizClassURL: TBizClassURL;
  lDocView: TDocView;
begin
  //根据给定的BizURL,创建信息
  lBizClassURL := TBizClassURL.Create;
  lBizClassURL.BizURL.URL := 'Biz:\LZ\DLKJXX.Info';
  lInfo := Context.GetBizObject(lBizClassURL) as TInfo;
  lBizClassURL.Free;
  lInfoBroker := TInfoBroker.Create(Self);
  //设置不自动代理,需要对Info赋值才可以用
  lInfoBroker.AutoBroker := False;
  //用创建的信息实例对Info赋值,这样就可以代理这个信息了
  lInfoBroker.Info := lInfo;
  //后面是代码创建DocView了,可以不关心
  lDocView := TDocView.Create(Self);
  lDocView.Align := TAlign.alClient;
  //设置信息代理
  lDocView.InfoBroker := lInfoBroker;
  //设置文档名
  lDocView.DocFileName := 'SJWG1.FormDoc';
  lDocView.Parent := Self;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-6 13:04:09 | 显示全部楼层

文档查看器TDocView

lDocView := TDocView.Create(Self);
  lDocView.Align := TAlign.alClient;
  //设置信息代理
  lDocView.InfoBroker := lInfoBroker;
  //设置文档名
  lDocView.DocFileName := 'SJWG1.FormDoc';
  lDocView.Parent := Self;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-3 09:51:38 | 显示全部楼层
可以用代码创建一个信息,然后用信息代理指向这个信息
可以用代码创建一个信息中的数据集,然后用数据集代理指向这个数据集
但是不能用代码创建一个文档,然后让DocView指向这个文档
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-5 14:03 , Processed in 0.043567 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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