2012-04-01 28 views
1

実行時に(動的に)レポート内(ヘッダー内)にイメージをロードしたいと思います。ReportViewer WPF - イメージを動的に設定する

は、私はすでに次のパラメータを作成しました:

Name: Path 
Datatype: String (should be the path to the image) 
Allow Blank = True 

はその後、私はdragedてきたが、私のレポートにイメージコントロールをdroped。 セット名へ:Image2の ImageSourceは:外部 使用以下の画像:

 viewerInstance.LocalReport.EnableExternalImages = true; 
     List<ReportParameter> param1 = new List<ReportParameter>(); 
     //header_2.png exists (for test purposes) in the root folder 
     param1.Add(new ReportParameter("Path", @"/header_2.png")); 
     viewerInstance.LocalReport.SetParameters(param1); 

それはdoesnの:(戻って私のメインウィンドウで)私は、次のコードを追加した今[@Path]

仕事。 このエラーメッセージが表示されます:

指定されたバインディング制約に一致する 'ReportViewer.MainWindow'型のコンストラクタの呼び出しで例外がスローされました。 {"レポート定義元が指定されていません"}

アイデアはありますか?

答えて

1

SSRS 2008の絶対パスを使用して外部画像を使用する方法についてはあまりよく分かりませんが、私は回避策を提供することができますが、これはあなたが使用するすべての画像事前に利用可能なレポートを使用してください。

レポートに画像コントロールを追加できます。イメージコントロールプロパティで、名前を指定し、イメージソースを埋め込みとして選択し、インポートをクリックしてイメージを選択します。 「インポート」をクリックします。イメージがインポートされます。これですべての画像をインポートできます。完了したら、画像制御プロパティに再度アクセスし、この画像を「[@Path]」として設定します。これで、絶対パスを渡す必要はなく、インポートされたイメージの中でイメージ名のみを渡す必要があります。イメージ名は、レポートデータのイメージの下に表示されます。

this msdn articleのように、外部画像を使用する場合は、絶対パスではなく画像のURLを指定する必要があります。この場合、サーバー上に画像を表示して、パスパラメーターにパスを渡すことができます。外部として画像ソースを選択します。私はこれを試して、それは動作します。

編集:レポートマネージャを使用してReportServerに画像をアップロードし、画像ソースを外部として指定した後、その画像のパスをRDLの相対パスとして指定することもできます。例えば、。 /Report/Logo.png。複数の画像をアップロードして、パスをパラメータとしてレポートに提供することもできます。

関連する問題