0

SSRS で、関係に応じて、個人に関する情報と会社に関する情報を (大まかに) 返すデータセットを作成しました。

#####################################################################
# Name     # Roles # LinkedTo # Birthdate  # Adress # CompanyAdress #
#####################################################################
# Joe      # VP    # Corp A   # 1945-01-01 # 123    # 456           #
# Joe      # CEO   # Corp A   # 1945-01-01 # 123    # 456           #
# Joe      # VP    # Corp B   # 1945-01-01 # 123    # 543           #
# Bill     # CEO   # Corp B   # 1950-12-31 # 234    # 543           #
#####################################################################

私のレポートには 2 つのセクションが含まれています。1 つ目はその人の情報を表示し、2 つ目はそのリンクを表示します。

######################################
# Joe    # 1945-01-01   # Roles(???) # <-- This is a subreport
######################################
# Linked to : Corp A (VP)            # 
# Linked to : Corp A (CEO)           # 
# Linked to : Corp B (VP)            #
######################################

######################################
# Bill    # 1950-12-31   # ???       # <-- same subreport
######################################
# Linked to : Corp B (CEO)           #
######################################

サブレポートはグループに属し、データセットの [名前] 列でフィルター処理されます。

担当者のすべての役割 (Joe の場合は VP、CEO および VP、Bill の場合は CEO) をリストしたいと考えています。

グループ化により、サブレポートは配列ではなく最初の値 (Joe : VP、Bill : VP) のみを受け取るようです。

パラメータ @Roles が複数の値を受け取ることができることを示しました。しかし、それだけでは十分ではないようです。

それをどのように変更すればよいですか?

4

1 に答える 1

1

パラメーターの問題は、配列内の最初のインデックス付きアイテムを取得している場合、AVAILABLE またはデフォルト値が正しく設定されていない可能性があります。EG: パラメータを設定すると、次のように非常にシンプルになります。

declare @Temp table ( id int, Name varchar(8) )

insert into @Temp values (1, 'A'), (1, 'B'), (2, 'C');

Select 
  Id
, Name
from @Temp

サブレポートなどを含むグループ化がある場合、複数を許可している場合でも、値を 1 つだけ設定している可能性があります。パラメータをスコープにとらわれないようにしたい場合(つまり、レポートのどこで値を決定するかは気にしません)。使用可能な値とデフォルト値を「クエリから値を取得する」ように設定し、一致するデータセットを設定して、同じ静的値のみを返すように設定し、それらの値を毎回取得することができます。

まったく別の RDL ファイルにあるレポートに対してこれを行い、名前のみのパラメーターを持つように設定し、他のことは忘れます。次に、変数として名前だけで別のレポートに関連付けます。別の名前を付けることができるテストを行いますが、毎回同じデータが常に表示されます。通常、レポートがネストされていて、複数のパラメータまたは共有セットがある場合に問題が発生します。グループ化のレベルが変わるという問題が発生する可能性があるため、親子関係がある 2 つのレポートでデータセット IMHO を共有しないでください。

理論的には、レポートに関連付けられたふりパラメータ @Id を設定し、「Where Id = @ID」という行を追加した場合、1 を入れることができ、サブレポートが「A」と「B」の 2 つの行を与える場合。レポートをテストするには、1 または 2 を入力する必要があり、2 つの異なる値が得られるはずです。もしそうなら、私はこのレポートが設計どおりに機能していることを知っていますが、その呼び出しは何らかの方法で間違っています. そうでない場合は、サブレポートが最初の問題です。同じ人物でテストした場合と同じサイズとデータがレポートに表示されない場合は、向きとサイズに問題があるか、グループ化によってレポートの一部しか表示されない可能性があります。サブレポートを折りたたむレポートを作成し、レポートが表示されると幅が大きくなるようにしたので、SSRS 2008R2 以降を使用している場合はこれが機能することがわかります。

私の例は非常に単純でしたが、メイン レポート (特に述語) と共有されていない通常のデータセットを使用して、データをサブレポートに適用できます。

于 2013-07-25T20:45:28.323 に答える