0

領域、領域の診断リスト、各診断の診断数、パーセンテージを表示するレポートがあります。これは問題なく機能しますが、多くの地域のデータを選択して表示したいと考えています。

現在、その領域には 1 つの選択肢があり、選択した領域のすべての診断が表に表示されます。基本的に、このテーブルのリストを作成したいので、必要な数の領域について繰り返すことができます。

これはテーブルをリストボックスに入れて、エリアごとにフィルタリングするように Tablix を設定することで実行できると思いますが、これを試してみると、次のようになります。

Error 1 [rsInvalidDetailDataGrouping] The tablix ‘Tablix1’ has a detail member
with inner members. Detail members can only contain static inner members.

私が必要としているものを正確に説明するのは難しいです。現時点では、すべての診断が表示されていますが、それらはすべて同じ地域からのものとしてリストされています。領域 1 からの診断のリスト、次に領域 2 からのリスト、次に領域 3 などのリストが必要です。パーセンテージは、その領域からのパーセンテージである必要があります。現在、それらはすべての領域のパーセンテージです。

これを行う最善の方法は何ですか?

4

2 に答える 2

2

テーブルをリストに入れないでください。テーブルでグループ化を使用するだけです。

ここで、複数のvaueパラメータを呼び出し@Areasて領域を選択し、それらをすべて印刷して、たとえばページ分割で区切って印刷したいとします。診断用のテーブルと、診断で実行される項目用のテーブルDiagnosisItemsのようなものがあると思います。したがって、SQLは次のようになります。

SELECT Diagnoses.Area, Diagnoses.DiagnosisDate, Diagnoses.Description, 
    COUNT(*) AS TotalDiagnoses
FROM Diagnoses 
INNER JOIN DiagnosisItems ON Diagnoses.DiagnosisId = DiagnosisItems.DiagnosisId
WHERE Diagnoses.Area IN @Areas
GROUP BY Diagnoses.Area, Diagnoses.DiagnosisDate, Diagnoses.Description
ORDER BY Diagnoses.Area, Diagnoses.DiagnosisDate, Diagnoses.Description

テーブルをクリックしてから、[詳細]行の左側に表示される灰色のハンドルを右クリックします。を選択Add Groupしてグループ化しAreaます。グループヘッダーとグループフッターを追加します。表で、をAreaグループヘッダーとグループフッターに配置Areaし、その領域の診断の合計を入力します。

=SUM(Fields!TotalDiagnoses.Value)

次に、パーセンテージの詳細行で、次のような式を使用します。

=Fields!TotalDiagnoses.Value / SUM(Fields!TotalDiagnoses.Value, "table1_Group1")

グループハンドルを右クリックし、グループRow Group-Group Properties-Page Breaksの各インスタンス間のページ分割を選択して確認します。

于 2012-12-18T02:52:49.840 に答える
0

Tablix にフィルターをかける必要はないと思います。リストにグループ化を設定し、Tablix を追加するだけです。

于 2012-12-17T23:42:46.683 に答える