Esempio n. 1
0
 protected void RegisterViewer(IReportViewerSource viewer)
 {
     _viewers.Add(viewer);
 }
Esempio n. 2
0
 protected void RegisterViewer(IReportViewerSource viewer)
 {
     _viewers.Add(viewer);
 }
        internal void DisplayReportResults(DataMatrix data)
        {
            StatusMessage("Preparing view...");

            if (this.Report != null)
            {
                reportContent.Children.Clear();
                if (Report.Viewers.Count == 0 || Report.Viewers.Count == 1)
                {
                    IReportViewerSource viewerSource = null;
                    if (Report.Viewers.Count == 0)
                    {
                        viewerSource = new TabularDataViewerSource();
                    }
                    else
                    {
                        viewerSource = Report.Viewers[0];
                    }
                    FrameworkElement control = viewerSource.ConstructView(Report, data, this);
                    reportContent.Children.Add(control);
                }
                else
                {
                    TabControl tab   = new TabControl();
                    int        count = 0;
                    foreach (IReportViewerSource tmpViewerSource in Report.Viewers)
                    {
                        var viewerSource = tmpViewerSource; // need to capture a local because of the closure below
                        var tabItem      = new TabItem {
                            Header = viewerSource.Name
                        };

                        // Create the first view straight away...
                        if (count == 0)
                        {
                            var scroller = new ScrollViewer();
                            scroller.Content = viewerSource.ConstructView(Report, data, this);
                            tabItem.Content  = scroller;
                        }
                        else
                        {
                            tabItem.RequestBringIntoView += new RequestBringIntoViewEventHandler((s, e) => {
                                if (tabItem.Content == null)
                                {
                                    var scroller     = new ScrollViewer();
                                    scroller.Content = viewerSource.ConstructView(Report, data, this);
                                    tabItem.Content  = scroller;
                                }
                            });
                        }


                        tab.Items.Add(tabItem);
                        count++;
                    }
                    reportContent.Children.Add(tab);
                }
            }

            StatusMessage("{0} records retrieved.", data.Rows.Count);
        }