ReportViewer WPF - динамическая установка изображений - PullRequest
1 голос
/ 01 апреля 2012

Я хочу загрузить изображения во время выполнения (динамически) в мой отчет (внутри заголовка).

Я уже создал следующий параметр:

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

Затем я перетащил элемент управления изображением в свой отчет.Установите имя: Image2 Imagesource: External Используйте следующее изображение: [@Path]

Теперь (обратно в главное окно) я добавил следующий код:

        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);

Это нене работаетЯ получу это сообщение об ошибке:

Вызов конструктора типа «ReportViewer.MainWindow», который соответствует указанным ограничениям привязки, вызвал исключение.{"Источник определения отчета не указан"}

Есть идеи?

1 Ответ

1 голос
/ 09 апреля 2012

Я не очень уверен в том, как сделать это с внешними изображениями, используя абсолютный путь в SSRS 2008. Но я думаю, что могу предложить обходной путь, но это сработает, только если у вас есть все изображения, которые вы будете использовать в отчетах, доступных вам заранее.

Вы можете добавить элемент управления изображением в отчет. В свойстве «Управление изображениями» укажите имя, выберите источник изображения «Встроенный», нажмите «Импорт» и выберите изображение. Нажмите Импорт. Изображение импортировано. Теперь вы можете импортировать все изображения, как это. После этого перейдите к свойству Image control снова и установите Use this Image как «[@Path]». Теперь вам не нужно передавать абсолютный путь, а только имя изображения среди импортированных изображений, которые вы можете видеть под изображениями в данных отчета.

Кроме того, если вы хотите использовать внешние изображения, согласно этой статье MSDN вам необходимо указать URL-адрес для изображения, а не абсолютный путь. В этом случае вы можете поднять свое изображение на сервере и передать путь в параметре Path. Выберите источник изображения как Внешний. Я проверил это, и это работает.

Изменить: Вы также можете загрузить изображения на сервер отчетов через диспетчер отчетов и указать путь к этому изображению в качестве относительного пути в RDL после указания источника изображения как внешнего. например. /Report/Logo.png. Вы также можете загрузить несколько изображений и использовать их, указав в отчете путь в качестве параметра.

...