找回密码
 立即注册

QQ登录

只需一步,快速开始

Lenka.Guo 讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-4-21 13:56  /   查看:4488  /  回复:0
本帖最后由 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的加载资源,代码如下:
  1. if (chkCustomButton.IsChecked == true)
  2.                 {
  3.                     string langDictPath = "DefaultWPFViewerTemplates.xaml";
  4.                     Uri langDictUri = new Uri(langDictPath, UriKind.Relative);
  5.                  ResourceTheme.Source = langDictUri;
  6.                 }
复制代码


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


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

  5.             TotalNumber = Convert.ToInt32(pageCount);
  6.             timer = new Timer();
  7.             timer.Interval = 2000;
  8.             timer.Tick += timer_Tick;
  9.             timer.Start();
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部