3

私のアプリケーションでは、SSRS を使用して従業員の給与明細を作成しています。Payslip レポートは、5 列の Tablix で構成されています。5 つのうち、「単位」と呼ばれる列と「請求金額」と呼ばれる列があります。

このレポートには複数の行グループ レベルがありますが、この質問で唯一重要なのは、給与明細番号行グループ "RG_SlipNum" です。各「RG_SlipNum」RowGroup の後に改ページがあります。

ユーザーが給与明細を印刷する場合、必要に応じて最大 5 つのパラメーターを指定して、結果セットをフィルター処理して印刷することができます。

従業員は、配達されたユニット数 * レート (ユニットベース)、または配達の請求額のパーセンテージ (請求ベース) に基づいて支払うことができます (単純化しすぎていますが、うまくいけば、私のドリフトを理解していただけます)。

従業員が単位ベースの場合、単位列を表示し、「請求額」列を非表示にします。請求書ベースの場合は、両方の列を表示します。

私のデータセットには、上記のロジックに基づいて列を表示するか非表示にするかを示すビット フィールドがあります。現在のrowGroup内の基礎となる行ごとに1または0になります。「請求書の値」列の列表示式で First(,) 関数を使用しようとしました。ただし、RowGroup 名を使用して First Function の範囲を現在の Payslip Rowgroup に制限しようとすると、常に次のエラーが発生します。

「Tablix 'X' の非表示の式には、集計関数に対して無効なスコープ パラメーターがあります。スコープ パラメーターは、含まれているグループの名前、含まれているグループの名前のいずれかと等しい文字列定数に設定する必要があります。データ領域、またはデータセットの名前。」

だから、私の質問

First() 関数の Scope 引数として RowGroup 名を定義できますか?

そうでない場合、これを達成するためにデータセット/RDLを完全に作り直さずにこれを達成する最良の方法は何ですか. (SSRS2008使用)

4

1 に答える 1

1

フォーラムの質問を投稿した直後に、それを理解する (または何らかの回避策を講じる) のはなぜですか?

誰かがこれを見たら、まだいくつかの(より良い)回答が欲しいのですが、列を表示するかどうかを決定するビット フィールドの値に Tablix のセルを設定しました。次に、列の表示式を変更してセルの値を確認し (ReportItems!textboxname.Value を使用)、機能しています。給与明細をスクロールすると、列の表示が適切に変化します。

于 2012-09-13T15:26:54.797 に答える