Lenka.Guo 发表于 2016-4-21 13:56:33

WPF: 如何隐藏ReportViewerToolbar并实现自动翻页

本帖最后由 Lenka.Guo 于 2016-4-21 13:57 编辑

功能介绍:当需要将报表嵌入到某一应用中,与应用程序无缝连接。让用户感受不到报表控件的存在;隐藏Toolbar之后,无法点击“下一页”按钮,因此需要自动执行报表翻页功能。
功能点:
1. 隐藏WPF Report Viewer的Toolbar
2. 自动翻页功能

源码下载:


开发环境:

Visual Studio 2012 +ActiveReports 10 SP1+ WPF

实现步骤:
1. 新建WPF 应用

2. 在MainWindows.xaml 中添加Viewer控件,添加 Without Toolbar Checkbox

3.添加ActiveReports 提供的自定义WPF Viewer的XAML模板: DefaultWPFViewerTemplates.xaml,在安装路径下可找到:C:\Program Files (x86)\GrapeCity\ActiveReports 10\Deployment\WPF\Templates

4.修改DefaultWPFViewerTemplates.xaml中的ViewToolbar的Visibility 属性为Collapse


找到节点: <Style TargetType="View:MainToolbar">
将: <ToolBar IsEnabled="{Binding IsUIEnabled, Mode=OneWay}" >
修改为:<ToolBar IsEnabled="{Binding IsUIEnabled, Mode=OneWay}" Visibility="Collapsed">

5. 在MainWindow.xaml.cs 中指定ReportViewer的加载资源,代码如下:
if (chkCustomButton.IsChecked == true)
                {
                  string langDictPath = "DefaultWPFViewerTemplates.xaml";
                  Uri langDictUri = new Uri(langDictPath, UriKind.Relative);
               ResourceTheme.Source = langDictUri;
                }

6. 自动翻页功能实现,返回设计界面,选中ReportsViewer ,在属性窗口中,选择“事件”,生成LoadCompleted 事件。
7. 使用计时器,定时修改CurrentPage。
int currentpages = ReportViewer.CurrentPage;


            var pageCount = ((ViewerViewModel)ReportViewer.DataContext).Model.Document.TotalPageCount;
      
         // ReportViewer.Action+=new EventHandler<Viewer.Wpf.Viewer.ActionEventArgs>(GetPageNumber);

            TotalNumber = Convert.ToInt32(pageCount);
            timer = new Timer();
            timer.Interval = 2000;
            timer.Tick += timer_Tick;
            timer.Start();


页: [1]
查看完整版本: WPF: 如何隐藏ReportViewerToolbar并实现自动翻页