2010-01-10 1 views
0

Я использую reportviewer, и я хотел бы добавить неизвестное количество изображений в отчет о времени выполнения. Пользователь должен выбрать некоторые изображения (в другом месте), и эти изображения должны отображаться в отчете один за другим. Вы не знаете, как это сделать с помощью Reportviewer?Вставьте неизвестное количество изображений в отчет во время выполнения с помощью reportviewer

спасибо, Офир

+1

Refer ===> http://stackoverflow.com/questions/24806768/rdlc-dynamically-add-images-to-report/24823606#24823606 – prvn

ответ

0

Есть много способов сделать это. Вот одна из возможностей:

Вам нужно будет настроить источник данных для отчета динамически, this blog post поможет с этим.

Ваш набор данных должен иметь таблицу с одним столбцом типа string.

В конструкторе отчетов (дважды щелкните файл rdlc) добавьте таблицу. Удалите столбцы до тех пор, пока они не останутся. В оставшейся ячейке добавьте изображение. Задайте тип изображения внешним. Установите src изображения в выражение, которое является полем вашего набора данных.

Во время выполнения собирайте все изображения, которые пользователь хочет. Эти изображения должны быть доступны для средства просмотра отчетов где-нибудь, в локальной файловой системе для средства просмотра WinForms или на сервере для просмотра WebForms. Затем настройте строковый массив, содержащий пути к этим изображениям в качестве источника данных отчета. Отчет будет использовать эти строки для поиска изображений и добавления одного изображения для каждой строки, которую вы ему даете.

0

Я сделал следующее, чтобы показать список изображений с неизвестным количеством элементов в матрице.

Сначала создайте набор данных, в котором есть только одно поле, вы можете, что хотите, я назвал его «filepath» и именем набора данных «DataSet5». Вы можете изменить имя и использовать его соответствующим образом.

Затем вам нужно добавить таблицу, удалить ненужные строки и столбцы, чтобы вы остались только с 1 матрицей столбцов и строк (1x1). Вставьте изображение в этот столбец, установите его свойства сейчас. Источник изображения должен быть ВНЕШНИМ.

В вашем файле aspx.cs для отчета, получите пути к изображениям из базы данных, теперь получите абсолютные пути для них и добавьте «файл: ///», так как в отчетах должен быть показан файл. Я сделал так:

string rel_Path = HttpContext.Current.Server.MapPath("~"); 
if (_articleOrders.Any()) 
    { 
     foreach (ArticleOrder order in _articleOrders) 
     { 
      if (!string.IsNullOrEmpty(order.ArticleImage)) 
      { 
       if (File.Exists(rel_Path + "\\" + order.ArticleImage)) 
       { 
        var AIpath = "file:///" + rel_Path + "\\" + order.ArticleImage; 
        articleImagesList.Add(AIpath); 
       } 
      } 
     } 
     CreateDatasetForImages(articleImagesList); 
    } 

Затем я добавил данные в набор данные, как показано ниже:

private void CreateDatasetForImages(List<string> articleImagesList) 
{ 
    DataTable table = new DataTable(); 
    table.Columns.Add("filepath", typeof(string)); 

    foreach (string articleImage in articleImagesList) 
    { 
     DataRow drow = table.NewRow(); 
     string pat = articleImage; 
     drow["filepath"] = pat; 
     table.Rows.Add(drow); 
    } 
    FlowerBookingReportViewer.LocalReport.DataSources.Add(new ReportDataSource("DataSet5", table)); 
} 

Теперь снова перейти на свойство изображения и установить «Использовать эту картинку» на [путь_к_файл] как это имя столбец в нашем наборе данных, который удерживает путь изображения. Надеюсь, это сработает для кого-то!

 Смежные вопросы

  • Нет связанных вопросов^_^