0

我正在写一份具有以下结构的水晶报告:

Group 1: School
    Group 2: Student
        Group 3: Category
            Details

我正在尝试将详细信息拆分为带有公式字段的两个单独的列。这工作正常,除了一个公式字段打印在另一个下面,我不知道如何让它们在同一级别上打印。

它看起来像这样:

Category A       Category B
detail 1
detail 2
                detail 1
                detail 2
                detail 3

我希望它看起来像这样:

Category A       Category B
detail 1         detail 1
detail 2         detail 2
                 detail 3

我觉得我错过了一些非常简单的东西,任何人都可以帮助我!

4

1 回答 1

0

不幸的是,这不是一件简单的事情。问题是,由于数据是按类别分组的,它会在下一个类别之前显示一个类别的所有内容。即使您按类别取出分组,您仍然会得到如下数据:

Category A      Category B
detail 1
                detail 1
                detail 2
detail 2
                detail 3

有一种方法可以完全按照您想要的方式获得它,但是每个类别下的整个结果集将被放入每个类别的一个字段中。如果您在屏幕上打印或查看它,这不是问题,但导出到 Excel 会将每一列放入一个单元格中;像这样:

Category A      Category B
+---------+     +---------+
|detail 1 |     |detail 1 |
|detail 2 |     |detail 2 |
+---------+     |detail 3 |
                +---------+

为此,我们将创建基本上是一个文本运行总计字段(或其中两个)。首先,报告标题中的初始化程序:

WhilePrintingRecords;
Global StringVar CatA := "";
Global StringVar CatB := "";
""; //print nothing on screen

然后,详细信息部分中的更新程序。详细信息部分本身实际上会被隐藏(而不是抑制)。

WhilePrintingRecords;
Global StringVar CatA;
Global StringVar CatB;

If {Table.Category} = "Category A"
    //Chr(10) + Chr(13) is a return/newline
    Then CatA := CatA + Chr(10) + Chr(13) + {Table.Detail};

If {Table.Category} = "Category B"
    Then CatB := CatB + Chr(10) + Chr(13) + {Table.Detail};

""; //print nothing

最后,在完成与类别相关的所有内容后(我假设在第 2 组:学生页脚),打印全局变量的结果。因此,对于 A 类:

WhilePrintingRecords;
Global StringVar CatA;

您必须确保结果字段设置为Can grow.

于 2013-04-15T17:33:15.457 回答