|
public ReportModel Report { get; set; }
#region Constructor
public ReportViewModel()
{
this.Reports = new ObservableCollection<ReportModel>();
ReportModel report1 = new ReportModel();
report1.Name = "Report 1";
report1.ReportPath = this.GetFullPath("Company Sales.rdlc");
this.Reports.Add(report1);
ReportModel report2 = new ReportModel();
report2.Name = "Report 2";
report2.ReportPath = this.GetFullPath("drilldown.rdlc");
this.Reports.Add(report2);
}
public void SelectionChanged(object param)
{
if (param != null)
{
foreach (object item in (IEnumerable)param)
{
this.Report = item as ReportModel;
this.SetupViewer();
this.SetDataSource();
this.viewer.RefreshReport();
}
}
}
private void SetDataSource()
{
if (this.Report.Name == "Report 1")
{
this.viewer.DataSources.Add(new ReportDataSource("Sales", new CompanySalesDemo.AdventureWorks().GetDataTable()));
}
else
{
this.viewer.DataSources.Add(new ReportDataSource("Customers", CompanySalesDemo.Customers.GetData()));
}
}
public void Loaded(object sender, RoutedEventArgs e)
{
Window mainWindow = sender as Window;
this.viewer = mainWindow.FindName("viewer") as Syncfusion.Windows.Reports.Viewer.ReportViewer;
this.Report = new ReportModel() { Name = "Report 1", ReportPath = this.GetFullPath("Company Sales.rdlc") };
this.SetupViewer();
this.SetDataSource();
this.viewer.RefreshReport();
}
private void SetupViewer()
{
this.viewer.Reset();
this.viewer.DataSources.Clear();
this.viewer.ProcessingMode = ProcessingMode.Local;
this.viewer.ReportPath = this.Report.ReportPath;
}
private string GetFullPath(string report)
{
string templateDirectory = @"../../RDLC/";
string dir = new DirectoryInfo(templateDirectory).FullName;
return System.IO.Path.Combine(dir, report);
} |