如何在Crystal Report中将行转置为列

时间:2019-03-18 17:25:59

标签: crystal-reports crystal-reports-2010 sapb1

我具有以下数据结构

**ParentItem        ChildItem**        description
ParentItem1         childItem1       childitem1 desc
ParentItem1         childItem2       childItem2 desc
ParentItem1         childItem3       childitem3 desc
ParentItem1         childItem4       childitem4 desc
ParentItem2         childItem1       childitem1 desc 
ParentItem2         childItem2       childItem2 desc

转置为

ParentItem1       childItem1,       childitem2,      childitem3,       childitem3
                  childitem1 desc   childitem2 desc   childitem3 desc  childitem4 desc

ParentItem2       childItem1,       childitem2,      
                  childitem1 desc   childitem2 desc  

我尝试了此操作,但给了我错误消息The remaining text does not appear to be a part of the formula

stringvar mydata;
if {ParentItem1} = previous(ParentItem1) then mydata := mydata + ', ' + {childItem1};
else  
mydata := mydata + ', ' + {childItem1};
mydata;

我也尝试了以下操作,但是显示了多行,我希望在同一行中全部显示。注意:{WOR1.ItemCode}是包含子项的字段

if{WOR1.ItemCode} like "20*" then{WOR1.ItemCode}
else if{WOR1.ItemCode} like "40*" then{WOR1.ItemCode}
else if{WOR1.ItemCode} like "10*" then{WOR1.ItemCode}
else if{WOR1.ItemCode} like "50*" then{WOR1.ItemCode}
else if{WOR1.ItemCode} like "320*" then{WOR1.ItemCode}
else if{WOR1.ItemCode} like "30*" then{WOR1.ItemCode}
else ""

1 个答案:

答案 0 :(得分:0)

您可以使用多列完成类似的操作(而且维护起来更容易)。

首先按**ParentItem分组,然后将“详细信息”部分格式化为使用多列,在“布局”标签中设置宽度,然后选择“先跨后向下”。

您甚至可以将组标题设置为“在以下部分中加衬”,以将其与第一个详细信息内联。