Crystal reports Crystal Report:如何在详细信息部分合并和拆分行

Crystal reports Crystal Report:如何在详细信息部分合并和拆分行,crystal-reports,crystal-reports-8.5,Crystal Reports,Crystal Reports 8.5,嗨,我是堆栈溢出新手,我在crystal report中遇到了一个问题 先谢谢你 我从数据库中得到了如下输出 Name Qty Rate Amount Mango ice cream 1 100 100 Chocobar 1 150 150 Zulubar 1 50 50 Chocolate cone

嗨,我是堆栈溢出新手,我在crystal report中遇到了一个问题

先谢谢你

我从数据库中得到了如下输出

Name Qty Rate Amount Mango ice cream 1 100 100 Chocobar 1 150 150 Zulubar 1 50 50 Chocolate cone 1 50 50 Kulfi 1 100 100 ABC 1 100 100 XYZ 1 50 50 Total:- 600 现在我要做的是合并前三个原始数据并在第三个原始数据上拆分。 我希望输出像这样

Name Amount Mango ice creame, Chocobar, Zulubar 300 Chocolate cone, Kulfi, ABC 250 XYZ 50 Total:- 600
我该怎么做呢?

假设您的需求是静态的,不涉及动态的。遵循以下流程:

创建3个详图部分,详图A、详图B和详图C

创建一个公式@首先将其放置在细节a中

Local Numbervar var_Mango_ice_creame;
Local Numbervar var_Chocobar;
Local Numbervar var_Zulubar;
Shared Numbervar total;

if Name='Mango ice creame'
then var_Mango_ice_creame:= Amount;

if Name='Chocobar'
then var_Chocobar:= Amount;

if Name='Zulubar'
then var_Zulubar:= Amount;

total:=total+var_Mango_ice_creame+var_Chocobar+var_Zulubar;
var_Mango_ice_creame+var_Chocobar+var_Zulubar;
同样地,创建第二个公式@second place in Detail2

创建第三个公式@将其放在细节C中的第三位

Local Numbervar var_XYZ;
Shared Numbervar total;

if Name='XYZ'
then var_XYZ:= Amount;

total:=total+var_XYZ;
var_XYZ;
创建第四个公式显示并放置在报告页脚中

 Shared Numbervar total;
 total;

创建用于分组目的的公式字段:

// {@grouper}
Ceiling(RecordNumber/3)
在此字段上添加一个组

创建手动运行总计字段:

// {@reset}
// place in group header; suppress

WhilePrintingRecords;
Stringvar Array reset;
Stringvar Array values;
values := reset;

// {@increment}
// place in details; suppress

WhilePrintingRecords;
Stringvar Array values;

Redim Preserve values[Ubound(values)+1];
values[Ubound(values)] := {table.name_field};

// {@display}
// place in group footer

WhilePrintingRecords;
Stringvar Array values;
Join(values, ", ");

如果你把你迄今为止所尝试过的东西包括进来,并且更具体地说明你可能会遇到的任何错误,这将是很有帮助的。
// {@reset}
// place in group header; suppress

WhilePrintingRecords;
Stringvar Array reset;
Stringvar Array values;
values := reset;

// {@increment}
// place in details; suppress

WhilePrintingRecords;
Stringvar Array values;

Redim Preserve values[Ubound(values)+1];
values[Ubound(values)] := {table.name_field};

// {@display}
// place in group footer

WhilePrintingRecords;
Stringvar Array values;
Join(values, ", ");