5

似乎axapta报告中的每个正文部分只能打印单个表中的列(始终)。例如:我有一个包含以下表格的报表:SalesLine、InventTable 和 CustTable。然后我想在同一行上打印每个表中的列。似乎我可以在将字段放置在可编程部分时这样做,但当我将它们放置在正文部分时却不行。

我发现了一些丑陋或性能不佳的解决方法。必须有一个干净的方法来做到这一点?

4

4 回答 4

4

应该可以做到这一点,基本系统中有几个报告以这种方式工作。以 4.0 中的 SalesContractShipment 报告为例。

在您的报表上,为 SalesLine 创建一个数据源,然后在该报表下分别为 InventTable 和 CustTable 创建一个数据源。在 InventTable 和 CustTable 上,确保 FetchMode 设置为 1:1。如果您创建自定义 fetch 方法,请确保以正确的顺序调用 send()。您应该首先发送 CustTable,然后是 InventTable,最后是 SalesLine。在报表设计中,为 SalesLine 创建一个主体。然后,您应该能够使用该正文中三个表中的任何一个的字段。

如果您仍然遇到问题,我可以考虑两种解决方法。一种是基于这三个表创建一个视图,并基于该视图创建一个报告。另一种是基于 SalesLine 创建报表并使用 displayMethods 从 InventTable 或 CustTable 中查找您需要的任何字段。

于 2008-10-25T19:24:04.237 回答
1

您应该能够向报表添加多个数据源,然后为您添加的第一个数据源创建一个正文。右键单击正文并选择 New Control -> Field From AnyTableThatIsADataSource。然后,您可以添加所需的任何字段,它将打印所有这些字段的列。

于 2011-05-05T13:54:40.293 回答
1

将所有字段放在最后一个 SourceTable_Body 中,它会显示所有字段,因为 QueryRun 逐表并用每个对应的 Body 填充 body,所以最后一个 body 将包含所有字段的数据。

于 2011-06-27T12:06:35.450 回答
0

考虑使用临时表。先用你的数据填充它,然后在报告中使用。

于 2010-08-01T17:59:21.690 回答