Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在Crystal报表中以单行显示父级子级_Database_Crystal Reports_Crosstab_Crystal Reports 2010 - Fatal编程技术网

Database 在Crystal报表中以单行显示父级子级

Database 在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和

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和Far的头。此外,我可以对每个记录的A、B和C行进行汇总,但不能为所有记录创建所有B的列总和

我已经尝试创建了一个很好的群组,但这给了我如下结果:

ID Boo  Far 
1  Test 15  
            Bar
            1
            2
            3
当然这看起来很正常。但我(或客户…)不希望这样


有什么帮助吗?

您可以使用变量跟踪表A中每个条目的A、B、C值

  • 保留已为{TableA.ID}设置的分组。将要显示的所有项目移动到组页脚中
  • 在(现在为空)组标头中,初始化/重拨大小为3的数组
  • 在(现在为空)详细信息部分,有条件地更新数组,使索引1包含“A”的值,2包含“B”的值,等等。如下所示:

    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
  • 抑制“组标题”和“详细信息”部分,以便它们不会显示在报告中
  • 现在,在组页脚中,对于表A中的每个父记录,您应该可以访问表B中A、B、C的所有对应值

  • 注意:打印记录时,所有公式都需要使用
    以正常工作。

    在{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的列总和

    我引入了一个新行,最后排序,其中包含数据源中每个组的所有总和