0

嗨,我是堆栈溢出的新手,我在水晶报告中遇到问题。

先感谢您

我正在从数据库中获取输出,例如

名称 数量 费率 金额

芒果冰淇淋 1 100 100

巧克力棒 1 150 150

祖鲁巴 1 50 50

巧克力蛋筒 1 50 50

库尔菲 1 100 100

ABC 1 100 100

XYZ 1 50 50

总计:- 600

现在我想做的是合并前三个原始文件并在第三个原始文件上拆分。我希望输出看起来像这样

名称 金额

芒果冰淇淋,巧克力棒,Zulubar 300

巧克力锥,Kulfi,ABC 250

XYZ 50

总计:- 600

我怎样才能做到这一点?

4

2 回答 2

0

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

  1. 创建 3 个详细信息部分detailAdetail Bdetail C

  2. 创建一个公式@First将其放在详细信息 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;
    
  3. 同样创建第二个公式@second将其放入Detail2

    Local Numbervar var_Chocolate cone;
    Local Numbervar var_Kulfi;
    Local Numbervar var_ABC;
    Shared Numbervar total;
    
    if Name='Chocolate cone'
    then var_Chocolate cone:= Amount;
    
    if Name='Kulfi'
    then var_Kulfi:= Amount;
    
    if Name='ABC'
    then var_ABC:= Amount;
    
    total:=total+var_Chocolate cone+var_Kulfi+var_ABC;
    var_Chocolate cone+var_Kulfi+var_ABC;
    
  4. 创建第三个公式@Third将其放在细节 C

    Local Numbervar var_XYZ;
    Shared Numbervar total;
    
    if Name='XYZ'
    then var_XYZ:= Amount;
    
    total:=total+var_XYZ;
    var_XYZ;
    
  5. 创建第 4 个公式Display并放置在报表页脚中。

     Shared Numbervar total;
     total;
    
于 2014-07-05T11:03:03.757 回答
0

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

// {@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, ", ");
于 2014-07-07T14:02:35.310 回答