【问题标题】:Crystal Reports sort by subreportCrystal Reports 按子报表排序
【发布时间】:2011-11-22 15:04:39
【问题描述】:

所以我每天都有一系列订单。我们将它们添加到数据库中,然后使用 Crystal Reports 制作这些订单的装箱单。我们有两张表,一张用于订单信息(名称、地址、订单号等),一张用于商品。在 Crystal Report 中,我们使用报表的顺序,然后使用与订单号关联的所有项目创建一个子报表。现在我已经被要求我们需要按第一个项目的项目编号排序的所有订单。如何按子报表中的字段对报表进行排序?

【问题讨论】:

  • 我不确定你在问什么。我认为目前包装单是按订单号订购的。你是说你想忽略订单号,只根据产品/项目代码(例如)。那么你会得到一个混乱的订单编号,但是一个产品/项目代码的有序列表?或者您是否希望它仍然按订单号的顺序,但然后在子报告中按产品/项目代码排序?

标签: crystal-reports


【解决方案1】:

首先,您可以在没有子报告的情况下完成此报告。报告将按订单号和组标题中的订单字段进行分组。详细信息部分将包含订单项。

在任何情况下(我的方法或您的方法),如果您只是需要按商品编号对订单商品进行排序,只需在记录排序专家中引用该字段即可。

如果您需要按每个订单的 order-items[0](列表中的第一项)对订单进行排序,则需要创建一个返回项目 # 的 SQL 表达式。如果您在 SQL 表达式字段上添加一个组,然后将该组设为顶级组 (G1),则报告将首先按 SQL 表达式分组,然后按顺序 #。 SQL 表达式应类似于:

(
//this will select the numerically-smallest item# for a given order#
SELECT min(item #)
FROM  order-items
//correlate to 'main' query
WHERE order#=order.order#
)

如果您需要更复杂的“第一项 #”规则(无论是什么意思),您需要将其包含在 SQL 表达式中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多