2013-08-07 1 views
1

Я создал простой пример проекта, где я пытаюсь подключить созданный объект к отчету и просматривать его через SyncFusion ReportViewer.Подключение SyncFusion ReportViewer к объекту

Главное окно приложения выглядит следующим образом:

<Window x:Class="testApp.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:syncfusion="http://schemas.syncfusion.com/wpf" 
     Title="MainWindow" Height="350" Width="525" Loaded="OnWindowLoad"> 
    <Grid> 
     <syncfusion:ReportViewer Name="reportViewer1" ReportPath="c:\Pool\test\testApp\testApp\Report1.rdlc" /> 
    </Grid> 
</Window> 

тогда я создал класс Person, который я хочу, чтобы отображаться в коллекции в отчете. Это выглядит следующим образом:

namespace testApp 
{ 
    public class Person 
    { 
     private string m_name; 
     public string Name 
     { 
      get { return m_name; } 
      set { m_name = value; } 
     } 

     private int m_age; 
     public int Age 
     { 
      get { return m_age; } 
      set { m_age = value; } } 

     public Person(string name, int age) 
     { 
      Name = name; 
      Age = age; 
     } 
    } 
} 

Затем я создал .rdlc файл отчета и создал набор данных под названием PersonDataSet, который использует объект источника данных таргетирования класса Person.

В отчете приведена таблица с элементами из PersonDataSet - имя и возраст.

В Loaded функции событий главного окна приложения Im пытается создать список лиц и передать его в отчет:

private void OnWindowLoad(object sender, RoutedEventArgs e) 
     { 
      var persons = new List<Person> 
           { 
            new Person("Jan", 25), 
            new Person("Jana", 24) 
           }; 

      ReportDataSource source = new ReportDataSource 
      { 
       Name = "PersonDataSet", 
       Value = persons 
      }; 

      reportViewer1.DataSources.Add(source); 
      reportViewer1.RefreshReport(); 
     } 

Вместо загрузки отчета с данными лицами, зритель отчет бесконечно loading ..

любая идея, что я делаю неправильно?

спасибо

ответ

1

После нескольких часов поиска я наконец решил его. просто замените метод onload on:

reportViewer1.ReportPath = @"C:\Pool\test\ReportViewerTest\ReportViewerTest\Report1.rdlc"; 
      reportViewer1.ProcessingMode = ProcessingMode.Local; 

      List<Person> persons = new List<Person> 
             { 
              new Person {Age = 99, Name = "Dedek"}, 
              new Person {Age = 14, Name = "Alois"} 
             }; 

      ReportDataSource reportDataSource4 = new ReportDataSource("PersonDataSet", persons); 

      reportViewer1.DataSources.Add(reportDataSource4); 
      reportViewer1.RefreshReport(); 

Очевидно, что необходимо установить режим обработки.

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

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