2

ReportViewer に画像ロゴを動的に追加する方法を教えてください。この画像を db から取得し、Base64 に変換してから、ReportViewer に追加する必要があります... 次のコードは次のとおりです。

rpViewer.LocalReport.EnableExternalImages = true;

        Company _company = db.Companys.Where(c => c.codCompany == c.codCompany).Single();

        //first step
        byte[] img = _company.imagem.ToArray();   //  i get image from db
        MemoryStream _ms = new MemoryStream(img);

        string logo = Convert.ToBase64String(img); //convert to base64

        // 2 step  
        List<ReportParameter> lstReportParams = new List<ReportParameter>();//Create params
        lstReportParams.Add(new ReportParameter("Logo", logo));
        lstReportParams.Add(new ReportParameter("LogoMimeType", "image/png"));

        // Doesn't work here (see error below)
        this.rpViewer.LocalReport.SetParameters(lstReportParams); 

        this.rpViewer.RefreshReport();

エラー:

{"ローカル レポートの処理中にエラーが発生しました。"}
{"このレポートで定義されていないレポート パラメーター 'ロゴ' を設定しようとしました。"}

Rldc で​​:

MIMEType =Parameters!LogoMimeType.value
Value ="System.Convert.FromBase64String(Parameters!Logo.Value)" 

うまくいかないのはなぜですか?

パラメータを認識しないのはなぜですか?

その画像を ReportViewer に読み込むことができます。

4

2 に答える 2

2

パラメータリストがレポートで認識されるようにするには、RDLCファイルにロゴパラメータを作成する必要があります。

RDLCファイルを編集し、パラメーターを作成する必要があります。これを行うには、Visual StudioでRDLCファイルを開き、ファイルメニューの[レポート]をクリックして、[レポートパラメーター]を選択します。

于 2009-07-20T15:27:02.777 に答える
1

エラー メッセージは、レポート パラメーターのロゴを定義していないことを示しています。このレポート パラメータは定義されていますか?

また、送信するパラメーターのサイズに関する問題が発生している可能性もあります。

異なる画像を表示する必要があるレポートで、同様の問題がありました。私たちの場合、約10枚の画像しかありませんでした。

私たちがこれを解決した方法は、すべての画像をレポートに配置し、パラメータに応じてそれらを表示または非表示に設定することでした。

于 2009-07-19T12:10:13.033 に答える