Database 在Crystal报表中以单行显示父级子级
Crystal Reports是否可以执行以下操作 表ADatabase 在Crystal报表中以单行显示父级子级,database,crystal-reports,crosstab,crystal-reports-2010,Database,Crystal Reports,Crosstab,Crystal Reports 2010,Crystal Reports是否可以执行以下操作 表A ID Boo Far 1 Test 15 2 Tast 24 表B Foo Bar ParentID A 1 1 B 2 1 C 3 1 A 17 2 c 18 2 我想让我的报告看起来像 ID Boo Far A B C 1 Test 15 1 2 3 2 Tast 24 17 18 你不用交叉桌子吗?因为有了交叉表,我得到了头a、B、C,但不能显示ID、Boo和
ID Boo Far
1 Test 15
2 Tast 24
表B
Foo Bar ParentID
A 1 1
B 2 1
C 3 1
A 17 2
c 18 2
我想让我的报告看起来像
ID Boo Far A B C
1 Test 15 1 2 3
2 Tast 24 17 18
你不用交叉桌子吗?因为有了交叉表,我得到了头a、B、C,但不能显示ID、Boo和Far的头。此外,我可以对每个记录的A、B和C行进行汇总,但不能为所有记录创建所有B的列总和
我已经尝试创建了一个很好的群组,但这给了我如下结果:
ID Boo Far
1 Test 15
Bar
1
2
3
当然这看起来很正常。但我(或客户…)不希望这样
有什么帮助吗?您可以使用变量跟踪表A中每个条目的A、B、C值
whileprintingrecords;
numbervar array myArray;
select {TableB.Foo}
case 'A' : myArray[1]:={tableB.Bar}
case 'B' : myArray[2]:={tableB.Bar}
case 'C' : myArray[3]:={tableB.Bar}
default : 0 //handle error case
注意:打印记录时,所有公式都需要使用
编码>以正常工作。在{Table a.ID}上创建一个组
将表A字段添加到组标题部分;抑制组页脚部分
创建三个公式:
// {@a}
If {Table B.Foo}='A' Then {Table B.Bar}
Else 0
// {@b}
If {Table B.Foo}='B' Then {Table B.Bar}
Else 0
// {@c}
If {Table B.Foo}='C' Then {Table B.Bar}
Else 0
添加到详细信息部分。隐藏详细信息部分
在每个公式上插入摘要字段。移动到组标题部分;与列标题对齐。我会使用交叉选项卡对象,但我不确定数据的真实外观
解决:
无法显示ID、Boo和Far的标题
您可以将它们合并到一个新列中以显示为行标题。它们不会显示为单独的列,如A、B和C,只是元组的一个列
解决:
我无法为所有记录创建所有B的列总和
我引入了一个新行,最后排序,其中包含数据源中每个组的所有总和