如何获取Crystal Report中的Previous公式字段值?

时间:2014-04-28 09:54:15

标签: c#-4.0 crystal-reports vb.net-2010 crystal-reports-2010

我正在创建一个水晶报告,其中包含公式字段,如Openbalance,debitamount,creditamount和结束余额的详细信息部分按类型分组..

在此,前一天的平仓余额将是第二天的期初余额。 请帮助我获取前一天的结算余额,该余额将在未结余额栏中。

提前致谢。

2 个答案:

答案 0 :(得分:2)

@Shiva。非常感谢你的想法。它工作得很好。但我的要求需要进行小的改动。 我需要每个记录的期初余额。所以我刚创建了组间组(即首先按名称和内部对记录进行分组,按序列号分组,以便我可以获取每条记录的值)

然后如你所说,但没有使用对应部分。

在页脚部分(按序列号分组)中,创建一个公式字段:

    Shared Numbervar a;
    a:=//the value you want to pass

在标题部分(按序列号分组)中,创建一个公式字段:

    Shared NumberVar b;
    Shared NumberVar a;
    b:=a;

最后,在详细信息部分公式字段中,

    Shared Numbervar b;
    b

答案 1 :(得分:0)

Note: This is just an idea not the tested solution

这是一个典型的情况,但一个方法是尝试下面的解决方案。

  1. 根据Date对报告进行分组。
  2. 将记录的值存储在Shared Variable
  3. 现在在组更改为新值时使用该值,然后将值重置为零。
  4. 发现第一条记录:

    在组标题中创建公式@count reset

    Shared NumberVar count;
    count:=0;
    

    现在详细部分增加计数@Increment并压制公式:

    Shared Numbervar count;
    count:=count+1;
    

    现在存储最后一个值并将其显示为第一个值,如下面的过程:

    在组页脚@StoreLast中创建以下公式。

    Shared Numbervar a;
        a:=// your value that you want to pass.
    

    现在在组标题中创建公式@Store Value@reset,如下所示,并将公式放在@reset的左侧。如果展示位置发生变化,结果将为零。

    @store Value

    Shared NumberVar b
    Shared NumberVar a;
    b:=a;
    

    @reset

    Shared NumberVar a;
    a:=0
    

    现在详细列出公式;

    Shared Numbervar b;
    
    If `{@Increment}`=1
    then b
    else 
    //your code for the rest of values.