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]