多くの検索を行った後、以下の問題に適切な答えが見つかりませんでした。SSRS複数のフィールド値がパラメータとして渡されないドリルダウンレポート
私は専門用語と診断でグループ化された月ごとの総アポイントメント数を示す要約レポートを持っています。私は、関連するクライアントの詳細を表示するには、パラメータとして(すなわち11神経合計の仕様、4月のための)=COUNT((Fields!Appointment_ID.Value)
で、私は、サブクエリにAppointment_IDsのそれぞれを通過したいフィールドをクリックしてください
Specialty_Name Diagnosis Code Feb Mar Apr
Neurology G35X 0 3 4
G379 8 5 7
Total For Spec 8 8 11
Rheumatology H051 4 9 2
M059 6 10 3
Total For Spec 10 19 5
。ただし、サブクエリを準備してから、以前に使用した方法でレポートをドリルダウンすると、最初のAppointment_IDの結果しか得られません。それぞれではありません。
サブクエリレポートがパラメータ@Appointment_ID VARCHAR(MAX)
で設定し、WHERE句れる:
CAST(App.App_ID AS VARCHAR(MAX)) in (
SELECT * FROM Serve1.dbo.CreateParameterTable(@Appointment_ID,',')
)
CreateParameterTable
は、サマリーレポートから文字列を処理する必要があり、当社のサーバー上の関数であり、他のレポートでそう。
(
@StringInput NVARCHAR(MAX)
, @SplitBy NCHAR(1)
)
RETURNS @OutputTable TABLE ([String] NVARCHAR(36))
AS
BEGIN
DECLARE @String NVARCHAR(36)
WHILE LEN(@StringInput) > 0
BEGIN
SET @String = LEFT(@StringInput,
ISNULL(NULLIF(CHARINDEX(@SplitBy, @StringInput) - 1,
-1), LEN(@StringInput)))
SET @StringInput = SUBSTRING(@StringInput,
ISNULL(NULLIF(CHARINDEX(@SplitBy, @StringInput),
0), LEN(@StringInput))
+ 1, LEN(@StringInput))
INSERT INTO @OutputTable ([String])
VALUES (@String)
END
ドリルダウンレポートに複数のAppointment_IDを手動で入力すると、予想される結果が得られます。したがって、サマリーレポートは文字列を渡さないか、関数によって正しく処理されていないか、サブレポートは私が書いた他のレポートで機能している関数の出力が気に入らないようです。私は困惑している。
、値の式を何のように見える?値の完全な配列(Fields!Appointment_ID.Value)、またはちょうど最初のもの(Fields!Appointment_ID.Value [0])を渡していますか? –
こんにちは。これはあなたの最初の例の通りであり、値の完全な配列を渡す必要があります。ありがとう – Gareth
あなたが期待しているものを通過していることを確認するために、上部のサブレポートにFields!Appointment_ID.Valueを追加できますか?これは問題を絞り込みます...パラメータを送信するレポートまたはサブレポートに問題がありますか? –