商信互联
此示例演示如何访问用于在XAF Mobile应用程序中显示报告的ReportViewer控件。
在本主题中,假定您有一个使用Reports V2 Module的XAF应用程序,并且已经创建了一个或多个报告(请参阅Reports V2 Module Overview)。
当用户预览报告,移动应用程序显示详细信息视图包含一个搜索项目- MobileReportViewerViewItem。该视图项包装了ReportViewer控件。
请按照以下步骤访问“查看项目”。
创建一个新的ObjectViewController <ViewType,ObjectType>后代。将Controller的ViewType参数设置为DetailView,将ObjectType参数设置为IReportDataV2-持久性类用于存储报告的接口。
在重写的OnActivated方法中,将“视图项”类型作为GetItems <T>()方法的通用参数传递。
处理视图项的ControlCreated事件,并使用ReportViewer属性访问控件。
以下代码演示了此控制器:
using System;
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.ReportsV2;
using DevExpress.ExpressApp.ReportsV2.Mobile;
// ...
public class ReportsCustomizeController : ObjectViewController<DetailView, IReportDataV2> {
// ...
protected override void OnActivated() {
base.OnActivated();
MobileReportViewerViewItem reportViewItem =
View.GetItems<MobileReportViewerViewItem>()[0] as MobileReportViewerViewItem;
reportViewItem.ControlCreated = delegate (object sender, EventArgs e) {
MobileReportViewerViewItem mobileReportViewerViewItem = (MobileReportViewerViewItem)sender;
mobileReportViewerViewItem.ReportViewer.BeforeInitialize =
@"function(args) { args.reportViewerSettings.mobileModeSettings = { readerMode: true }; }";
//mobileReportViewerViewItem.ReportViewer.OnCustomize =
//@"function(args) { args.previewModel.reportPreview.zoom(0.7); }";
};
}
}
Imports System
Imports DevExpress.ExpressApp
Imports DevExpress.ExpressApp.ReportsV2
Imports DevExpress.ExpressApp.ReportsV2.Mobile
' ...
Public Class ReportsCustomizeController
Inherits ObjectViewController(Of DetailView, IReportDataV2)
' ...
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
Dim reportViewItem As MobileReportViewerViewItem = _
TryCast(View.GetItems(Of MobileReportViewerViewItem)()(0), MobileReportViewerViewItem)
AddHandler reportViewItem.ControlCreated, Sub(sender As Object, e As EventArgs)
Dim mobileReportViewerViewItem As MobileReportViewerViewItem = DirectCast(sender, MobileReportViewerViewItem)
mobileReportViewerViewItem.ReportViewer.BeforeInitialize = _
"function(args) { args.reportViewerSettings.mobileModeSettings = { readerMode: true }; }"
'mobileReportViewerViewItem.ReportViewer.BeforeInitialize = _
'"function(args) { args.previewModel.reportPreview.zoom(0.7); }"
End Sub
End Sub
End Class
只能在一个Controller中使用BeforeInitialize或OnCustomize属性。