1

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 を操作することで、以下の例のように、Crystal レポートのクロス集計にデータを表示することができました。

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    

私が抱えている問題は、クロス集計内の超過列を計算する方法が見つからないことです。超過は承認されたクレジットによって計算されます-合計(クロス集計内の列)

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)

GridValueAt 関数が Crystal レポートでサポートされるようになりました xi どちらも計算メンバーではありません。ちょうど別のレンガの壁

4

1 に答える 1

0

上流で超過値を計算できれば、クロス集計は簡単になります。それができない場合は、クロス集計列と集計フィールドの値を、データソースの実際のフィールドではなく数式に基づいて作成する必要があります。数式では、ほとんどの列に表示するフィールド値を返し、超過列に表示する値を計算します。

于 2012-08-21T14:52:39.660 に答える