【问题标题】:How to use .net objects with Crystal Reports?如何在 Crystal Reports 中使用 .net 对象?
【发布时间】:2010-11-30 16:02:19
【问题描述】:

我必须创建一份复杂的报告,但我不知道具体该怎么做。我在不同的详细信息部分有一些列和两个子报告。我向子报表发送一个参数,该参数表示某一列的当前行的值。我的问题是,当我完成将列的所有值(子报表参数)发送到子报表时,我必须将发送到子报表的参数更改为另一列的值,而不发送相同的参数两次。

我相信如果我使用 .net 对象,我可以更轻松地创建此报告,但我的问题是我不知道如何设计我的报告。我想使用 IEnumerable 集合作为报告的数据源。或者也许有一个公式可以做到这一点。

你能解释一下怎么做吗?

【问题讨论】:

  • 这不是答案,但我不能安静 - Crystal Reports 是最糟糕的报告工具选择,你可以做到。我强烈推荐任何其他工具(免费和商业),因为它们中的任何一个都更好。
  • @TcK,这是您没有证据的非常强烈的意见。你能举一些例子吗?我几乎每天都使用 Crystal 来制作专业的 PDF 报告,并且没有很多问题。
  • @PowerUser:是的 - 这是非常强烈的意见。但这个观点源于7年的报道经验。 Crystal Reports 在技术上是最差的(即在运行时动态创建报告和/或在运行时扩展报告),对程序员/设计人员的生产力来说是最差的。并且“最好的”价格比其他工具大(有或没有源代码)。我真的不明白为什么我应该花更多的钱购买工具和更多的时间来制作报告,而不是设计师和 API 的舒适度。

标签: .net crystal-reports


【解决方案1】:

我不知道您的报告有多复杂,但我认为您不需要特殊对象来将数据放入子报告中。

如果您的子报表只是直接从源中提取数据而不是从主报表中传递,该怎么办?即,您的单个值是从主报告传递的,但如果您需要获取一整列,那么您可以直接访问源代码。

示例:您的报告按 customerID 对销售额进行分组。对于每个客户,都有一个子报表。在每个子报表中,出于某种原因,您都希望计算客户总数。因此,您将 1 customerID 从主报表传递到子报表。要在子报表中获取完整的客户 ID 列表,请直接从数据源中提取。

另类想法: 你可以在主报告中进行计算并将结果传递给子报告吗?

【讨论】:

  • 不,我认为我不能将结果传递给子报表。问题是我必须传递一列的值,然后传递另一列的一些值,而不重复这些值。我必须注意将这些值传递给子报表的顺序,因为我需要一个特定的顺序。
  • 在这种情况下,如何在外部进行所有计算?这样,您可以使用良好的旧 SQL 来完成所有繁重的工作。例如,Crystal 可以从完成所有繁重工作的 MS Access 表中的查询中提取最终结果。
猜你喜欢
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-24
  • 1970-01-01
  • 1970-01-01
  • 2014-06-06
相关资源
最近更新 更多