【问题标题】:Transposing Row Data as Columns in Crystal Reports在 Crystal Reports 中将行数据转换为列
【发布时间】:2017-05-04 13:54:55
【问题描述】:

我从存储过程中返回了以下数据

Staff  Category   Amount
-----  -------    ------
Bob    Art        123
Bob    Sport      777
Bob    Music      342 
Jeff   Art        0
Jeff   Sport      11
Jeff   Music      27

即使金额为零,也将始终为所有员工返回所有类别

我想在我的 Crystal Report 上做的是这样输出:-

Staff   Art     Sport   Music   
-----   ---     -----   -----   
Bob     123     777     342
Jeff    0       11      27

我实际上想将类别行中的数据转置为我的报告中的标题或列。

我不想使用交叉表,因为我还有其他需要添加的东西不能很好地融入交叉表

关于如何在 Crystal 中执行此操作有什么想法吗?我使用的是版本 11

【问题讨论】:

    标签: crystal-reports crystal-reports-xi


    【解决方案1】:

    应该能够在您的存储过程中使用 PIVOT 表实现这一点。可以找到关于 PIVOT 表的帮助文件 here

    【讨论】:

    • 为此 +1。谢谢,很有用。我绝对可以看到它的用途。虽然这让我在报告中添加了大约 20 个额外字段,因为大约有 20 个类别
    【解决方案2】:

    按人员对报告进行分组,并将人员、艺术、体育、音乐作为文本字段放在组标题中。

    现在在细节部分将数据放置为

    Staff, formula 1 (If Category='Art' then Amount), formula 2 (If Category='Sport' then Amount), formula 3 (If Category='Music' then Amount)
    

    如果员工只有一个值,则可以,否则将员工放在组页脚中,并对组页脚中的所有值求和(不要从详细信息中删除公式 1、2、3)

    【讨论】:

    • 如果我将类别放在详细信息部分,它只会将每个类别放在一行中,而不是将类别用作列
    • 这将与两个添加一起工作: 1. 您必须将其放在组页脚中,而不是将其放在详细信息部分。 2.您需要插入这些字段的摘要,而不是将金额字段直接放在该部分中,例如maximum()
    • 所以,我很清楚,您的意思是:- 1. 按员工分组报告 2. 将员工字段和类别字段按原样放在页脚中,并放置一个汇总字段 max(金额)也在页脚中?
    • @David 为不完整的答案道歉,请查看我编辑的答案,如果有帮助,请使用它。虽然我没有在本地测试,但我相信这会奏效
    • 可以,谢谢。有趣的是,就像数据透视示例一样,我需要在报告中为我拥有的每个类别提供一个字段,所以如果类别发生变化(不太可能),那么我需要相应地修改报告。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多