Crystal Reports交叉表计算或动态列

时间:2012-08-13 15:50:10

标签: sql crystal-reports crystal-reports-xi

我在sql中有以下数据。

Date |Customer|DespatchOrder|Value|ApprovedCredit
08/10|Axe     |AGB-01       |50   |200
08/12|Axe     |AGB-02       |75   |200
08/13|Axe     |AGB-03       |80   |200
08/15|Axe     |AGB-04       |10   |200
08/09|Vex     |VSE-01       |50   |150
08/10|Vex     |VSE-02       |60   |150
08/13|Vex     |VSE-03       |40   |150

在sql中进行了一些操作后,我设法在水晶报表的交叉表中显示我的数据,如下例所示:

AXE
Date |ApprovedCredit|Total|AGB-01|AGB-02|AGB-03|AGB-04
08/09|200           |0    |0     |0     |0     |0
08/10|200           |50   |50    |0     |0     |0
08/11|200           |50   |50    |0     |0     |0
08/12|200           |125  |50    |75    |0     |0
08/13|200           |205  |50    |75    |80    |0
08/14|200           |205  |50    |75    |80    |0
08/15|200           |215  |50    |75    |80    |10

VEX
Date |ApprovedCredit|Total|VSE-01|VSE-02|VSE-03
08/09|120           |50   |50    |0     |0     
08/10|120           |110  |50    |60    |0     
08/11|120           |110  |50    |60    |0     
08/12|120           |110  |50    |60    |0     
08/13|120           |150  |50    |60    |40    
08/14|120           |150  |50    |60    |40    
08/15|120           |150  |50    |60    |40    

我遇到的问题,我无法找到一种方法来计算交叉表内的超限列,超限是由approvedcredit计算的 - Total(交叉表中的列)

AXE
Date |ApprovedCredit|Total|OverLimit|AGB-01|AGB-02|AGB-03|AGB-04
08/09|200           |0    |0        |0     |0     |0     |0
08/10|200           |50   |0        |50    |0     |0     |0
08/11|200           |50   |0        |50    |0     |0     |0
08/12|200           |125  |0        |50    |75    |0     |0
08/13|200           |205  |5        |50    |75    |80    |0
08/14|200           |205  |5        |50    |75    |80    |0
08/15|200           |215  |15       |50    |75    |80    |10

VEX
Date |ApprovedCredit|Total|OverLimit|VSE-01|VSE-02|VSE-03
08/09|120           |50   |0        |50    |0     |0     
08/10|120           |110  |0        |50    |60    |0     
08/11|120           |110  |0        |50    |60    |0     
08/12|120           |110  |0        |50    |60    |0     
08/13|120           |150  |30       |50    |60    |40    
08/14|120           |150  |30       |50    |60    |40    
08/15|120           |150  |30       |50    |60    |40    

如果你知道如何做到这一点,请帮忙,我试图创建没有交叉表的报告,但是动态列标题不成功。由于此报告的动态特性,我想继续使用交叉表,有时可能有超过10个DespatchOrders,但如果使用交叉表无法做到这一点,请帮助替代。

我发现使用带有值公式

的计算成员在Crystal Report中创建超限列
ApprovedCredit - GridValueAt(CurrentRowIndex, 0 ,0)

CrystalValueAt函数现在由水晶报告支持xi既不是计算成员也不是。只是另一个砖墙

1 个答案:

答案 0 :(得分:0)

如果您可以计算上游的超限值,交叉表将很容易。如果您不能这样做,则需要将交叉表列和汇总字段值基于公式而不是数据源中的实际字段。在公式中,返回要在大多数列中显示的字段值,并计算要在超限列中显示的值。