首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向Fastreport公开对象

向Fastreport公开对象
EN

Stack Overflow用户
提问于 2011-01-19 19:20:08
回答 2查看 2.1K关注 0票数 2

我主要使用FastReport (评估版)打印发票和报价。我试图在数据源和应用程序逻辑之间保持分离,所以我想知道是否有一种简单的方法可以直接向FastReport公开Delphi对象。目前,我正在使用自定义数据源,但这是大量手工操作。

基本上,我想使用我已经安装的TInvoice对象并使用FastReport打印它。

是否有人实现了一个共同的祖先类或接口来将Delphi对象作为数据源公开给FastReport (或其他报告工具)?

编辑:,我正在使用Delphi。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-19 20:01:15

使用Delphi 2010或更高版本,您可以使用以下代码:

http://code.google.com/p/robstechcorner/source/browse/branches/rttiwork/ObjDS.pas

它可以以下列方式使用:

代码语言:javascript
复制
//typically created and declared someplace else
cds : TClientDataSet; 
Invoice : TInvoice;

var
  Mapper : TDataSetMapping;
begin
  Mapper := TDataSetMapping.Create(cds);
  Mapper.Value := Invoice;
  // CDS is now populated with the values stored in Invoice
end; 
票数 9
EN

Stack Overflow用户

发布于 2011-01-19 22:50:17

如果你在找有报酬的,我有东西给你。支持简单类型,内存流类作为备注字段,和子对象.在德尔菲7和xe工作。低于自然的东西。也可以使用绑定进行编辑。

代码语言:javascript
复制
{$M+}
TSubInfo = class
publish
  property AMem: TMemoryStream read ... write ....
  property ADat: TDateTime read ... write ....
end;

TInvoice = class
publish
  property AInt: Integer read ... write ...
  property AStr: string read ... write ...
  property ASubInfo: TSubInfo read ... write ...
end;
{$M-}

var
  DataSet: TObjectDataSet; // is decendent from TDataSet
  Invoice: TInvoice;
begin
  Invoice := TInvoice.Create...
  DataSet := TObjectDataSet.Create...;
  DataSet.BindObject := Invoice;
  DataSet.Active := True;
  .....

以apz28的身份联系我

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4739644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档