本帖最后由 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();
复制代码
|