2

SSRS (SQL Server 2005) を使用して、2 つのレポートを設定しました。MAIN_REPORT説明を簡単にするために、それらを と と呼びましょうSUB_REPORT

MAIN_REPORTエリアごとに複数の TagNames を使用して、エリアのセットを返すクエリを実行します。

AREA    Tagname
----------
A1        T1
A1        T2
A2        T3
A3        T4

Area セルの 1 つを選択すると、それが開きSUB_REPORT、パラメータが@ParentTagNamesusingに渡されますJoin(Parameters!ResultsOfSearch.Value,",")ResultsOfSearch上記のタグ名列と同じです (タグ名を選択した領域のものだけに制限する方法はまだわかりませんが、後で心配します)。

SUB_REPORT渡されたパラメーターを受け取り、タグ名について大規模なデータベースを照会し、使用可能な値の最小値、最大値、および平均値を返します。

SELECT
h.TagName as TagName,
Minimum = convert(decimal(38, 2), Min(h.Value)), 
Maximum = convert(decimal(38, 2), Max(h.Value)), 
Average = convert(decimal(38, 2), Avg(h.Value)) 
FROM INSQL.Runtime.dbo.History h 
WHERE h.TagName in (@ParentTagNames)
AND h.wwVersion = 'LATEST'
AND h.wwRetrievalMode = 'Cyclic'
AND h.wwResolution = '60000'
AND h.Value > '-1.0'
AND h.DateTime >= '2009-09-01 12:00:00'
AND h.DateTime <= '2009-09-02 16:00:00'
GROUP BY h.TagName

ただし、@ParentTagNames複数の値に等しい場合、データは返されません。単一のタグと等しい場合は、データを返します。@ParentTagNamesから渡されたデータの書式設定と関係があるに違いないと考えましたが、MAIN_REPORT問題ではないようです。

次の形式を試しました。

T1,T2,T3,T4,T5,T6
'T1','T2','T3','T4','T5','T6'

パラメータの複数値がチェックされていることを確認しました@ParentTagNames。Google は私の失敗に成功しました。

誰?

編集: プロファイラーの魔法!

exec sp_executesql N'SELECT
    h.TagName as TagName,
    Minimum = convert(decimal(38, 2), Min(h.Value)), 
    Maximum = convert(decimal(38, 2), Max(h.Value)), 
    Average = convert(decimal(38, 2), Avg(h.Value)) 
FROM INSQL.Runtime.dbo.History h 
WHERE h.TagName in (@ParentTagNames)
AND h.wwVersion = ''LATEST''
AND h.wwRetrievalMode = ''Cyclic''
--AND h.wwResolution = @Resolution
AND h.wwResolution = ''60000''
AND h.Value > ''-1.0''
--AND h.DateTime >= @StartTime
--AND h.DateTime <= @EndTime

AND h.DateTime >= ''2009-09-01 12:00:00''
AND h.DateTime <= ''2009-09-02 16:00:00''

GROUP BY h.TagName',N'@ParentTagNames nvarchar(46)',@ParentTagNames=N'M12_CPM_Filling_250.Value,M8_Filling_391.Value'
4

1 に答える 1

1

SSRSに着信パラメータを強制的に取得させて配列に入れるには、MAIN_REPORTでSPLIT呼び出しが必要になる場合があると思います。

参照: http://www.stuffthatjustworks.com/HowToPassMultivalueReportParametersToSubreportsInReportBuilder.aspx

于 2012-06-19T20:54:40.650 に答える