FastReport开源对象数据源

Shi*_*rod 2 fastreport

我尝试使用 FastReport 开源软件根据我将提供给报告的数据构建报告。

我在演示中找到了我想要的东西(https://github.com/FastReports/FastReport/tree/master/Demos/OpenSource/DataFromBusinessObject/DataFromBusinessObject

在这个演示中,我在报告文件中看到BusinessObjectDataSource使用了 a,这似乎就是我想要使用的。

但是,我没有看到在社区设计器中添加此类源的方法。我需要手动添加所有这些吗?或者有没有办法生成所需的标记?我在他们的网站上找不到解决方案。

Shi*_*rod 6

我找到了一种方法,通过手动制作所需的 xml,如下所示:

<BusinessObjectDataSource Name="Invoices" ReferenceName="Invoices" Enabled="true">
  <Column Name="Reference" DataType="System.String"/>
  <Column Name="Date" DataType="System.String"/>
  <Column Name="CompanyName" DataType="System.String"/>
  <Column Name="InvoiceEmail" DataType="System.String"/>
  <Column Name="VAT" DataType="System.String"/>
  <Column Name="Street" DataType="System.String"/>
  <Column Name="Number" DataType="System.String"/>
  <Column Name="City" DataType="System.String"/>
  <Column Name="ZipCode" DataType="System.String"/>
  <Column Name="Country" DataType="System.String"/>
  <Column Name="TotalPrice" DataType="System.Decimal"/>
  <Column Name="VATValue" DataType="System.Decimal"/>
  <Column Name="VATPercentage" DataType="System.Decimal"/>
  <Column Name="VATComment" DataType="System.String"/>
</BusinessObjectDataSource>
Run Code Online (Sandbox Code Playgroud)

唯一的缺点是,如果我的对象发生变化,我需要更新它(但至少是有效的!)


小智 6

我找到了一种生成空报告的方法,其中包含从业务对象生成的字段。您只需创建一个空的报表对象,在其 Dictionary 属性上调用“RegisterBusinessObject()”,然后保存报表本身:

var report = new Report();
report.Dictionary.RegisterBusinessObject(
              new List<Invoice>(), // a (empty) list of objects
              "Invoices",          // name of dataset
              2,                   // depth of navigation into properties
              true                 // enable data source
       );
report.save(@"invoiceReport.frx");
Run Code Online (Sandbox Code Playgroud)

如果您的对象发生变化,您仍然需要更新报告描述,但至少您不必手动编码!