2017-12-18 61 views
1

Crystalレポートを使用して、ストアドプロシージャを呼び出し、さまざまな値を含むテーブルを返します。Crystalレポートに特定の行を配置する方法

この表のさまざまな行をレポートのさまざまな位置に配置したいと考えています。

{sp_MyReport.Column1} 
し、必要に応じてレポートについてのそれらを飛散 - :この目的を達成するために、私は、このように式で指定されたデータ項目に式フィールドを作成します。別の行を選択するには、私はに選択式を変更します -

{sp_MyReport.IdColumn} = 2 

しかし、私はこれを行う際に、他のすべての式フィールドのレコード選択が一致するように変更されたので、私は今まで、データの1行を持つことができます項目が表示されます。

まず、これについて適切な方法でフォーミュラフィールドを作成しています(ヘッダーのテキストが意図したとおりに使用されていないことを示す必要があります)。

もしそうなら、異なる行を表示するために異なる数式フィールドを取得するにはどうすればよいですか?

もしそうでなければ、私は何をしていますか?

+0

ヘッダーと値のみを呼び出そうとしている場合、簡単な方法では、 '{sp_MyReport.IdColumn}'をオンにするクロスタブを使用します(サブレポートは非​​表示にしないでください)。行の列と値 – Siva

答えて

1

1つの方法は、ストアドプロシージャを含むサブレポートを作成し、共有変数を使用して値をキャッシュすることです。

メインレポートに表示する必要がある値ごとの変数を定義し、それに対応する値を割り当てます。次のようにサブレポートで

式になります。

WhilePrintingRecords; 
Shared NumberVar myValueX; 
Shared NumberVar myValueY; 

//assign the corresponding value to the variable 
If {sp_MyReport.IdColumn}=2 Then myValueX := {sp_MyReport.ValueColumn} 
If {sp_MyReport.IdColumn}=3 Then myValueY := {sp_MyReport.ValueColumn} 

を次のように式を作成し、メインレポートに値を表示するには:

WhilePrintingRecords; 
Shared NumberVar myValueX; 

サブレポートを内側に配置する必要があります変数としてのレポートヘッダーセクションは、常に上から下に評価されます。

サブレポートを非表示にするには、レポートデザインを「破棄」せずにレポートのどこかに収まるようにサイズを小さくします。

関連する問題