Crystal XI - 如何找到同一商品的2个客户价格之间的差异

时间:2014-05-21 19:39:15

标签: crystal-reports crystal-reports-xi

我有一张表格,列出了客户编号,商品编号和商品价格(根据客户编号)。我想在Crystal中做的是显示每个客户/商品编号的商品价格与特定客户('Jeremy')的商品价格的差异。例如:

Customer name = Jeremy
price for item 1 = $20
price for item 2 = $30
price for item 3 = $40

Customer name = Mike
price for item 1 = $10
price for item 2 = $25
price for item 3 = $30

对于所有客户和所有项目显示: 当前客户的名称,当前项目名称以及Jeremy的商品价格与当前客户的商品价格之间的差异。 即
    迈克,第1项,10美元(差价)     迈克,第2项,5美元(差价)     迈克,第3项,10美元(差异)

我对如何显示当前顾客的商品价格与每件商品的Jeremy商品价格之间的价格差异感到困惑(然后与Jeremy相比,为每位顾客重复相同的步骤)。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

有多种方法可以做到这一点......但我建议的最好方法是使用子报告。

我的方法:

  1. 在主报告中获取2个子报告,并创建2个详细信息部分,并将每个部分放在一个详细信息部分中。

  2. 在第一个子报告中写下以下公式,并使用子报告链接传递到主报告。

  3. @ Item1的

    Shared numbervar item1;
    if(Customer name = "Jeremy")
    then item1:=Item1 database value
    

    @项目2

    Shared numbervar item2;
    if(Customer name = "Jeremy")
    then item2:=Item2 database value
    

    @项目3

    Shared numbervar item3;
    if(Customer name = "Jeremy")
    then item3:=Item3 database value
    

    现在将值传递给主报告并存储在变量中。

    @ Main_Item1

    Shared numbervar item1;
    Shared numbervar item4;
    item4:=item1;
    

    @ Main_Item2

    Shared numbervar item5;
    Shared numbervar item2;
    item5:=item5;
    

    @ Main_Item3

    Shared numbervar item6;
    Shared numbervar item3;
    item6:=item3;
    

    现在创建第二个子报告,并使用子报告链接将item4item5item6的值传递到子报告2。

    在子报告2中按客户分组:

    @ display_item1

    Shared numbervar item4;
    
    if (customer name <> "jeremy")
    then
    item4-item1
    

    @ display_item2

    Shared numbervar item5;
    
    if (customer name <> "jeremy")
    then
    item5-item5
    

    @ display_item3

    Shared numbervar item6;
    
    if (customer name <> "jeremy")
    then
    item6-item3
    

    现在压制子报告1并且不要压缩子报告2.

    现在,您的显示子报告2中的所有值都是客户Jeremy的差异..如果您希望显示jeremy值,请将上述条件更改为另一个公式中的=Jeremy。< / p>

    如果您遇到任何问题,请告诉我。

答案 1 :(得分:0)

在阅读进一步评论之前我的建议。尝试从存储过程中获取此值,或者说当您获取数据时,添加一列比较值。哪个是更快的解决方案,在水晶报告方面无需担心。

我在db方面做过这类问题,而不是水晶报告方。

你还想在水晶报告中,那么你可以通过变量中的公式来实现。

您必须将值存储在每个变量的详细信息部分中,并在结果时进行比较。

您可以通过交叉表报告进行操作,最后您只需添加公式化变量即可得出结果,但这是一项繁琐的工作。