本文档说明了在 Silverlight 应用程序中使用 XtraReports 的主要概念。
在本文档中包含下列小节。
客户机-服务器概念
报表被创建在服务器上,客户机只获取结果 —— 在打印预览中并且准备打印和/或导出的报表文档。
意思是在客户机上,不能访问 XtraReport 类。 文档被创建在服务器上,从客户端可以被打印和/或导出。
通过由 ReportService 类维护的 WCF 服务完成客户机-服务器交互。
注意 |
---|
如果不需要从报表服务(Report Service) 继承,那么类应该有下列 attribute。 [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] |
报表服务寄宿
报表服务(Report Service) 是一项 WCF 服务,部署它的典型方式是寄宿在 Web 应用程序中。
要这样做,则可以在 Visual Studio 的 Add New Item(添加新项) 对话框中使用向导。
在创建 Silverlight-enabled XtraReports Service v10.2 向导之后,此向导把一个 .svc 文件添加到项目中,并在 web.config 文件中注册所有必需的配置。
注意 |
---|
如果 Silverlight 应用程序被寄宿在网站上并使用报表,那么我们建议您把报表移入单独的程序集中。 |
报表服务配置
为了存储临时数据 (生成的文档、为导出而备用的文件等等),报表服务(Report Service) 使用数据库存储机制。 在默认情况下使用 MS Access 数据库,但也可以使用任何可由 XPO 连接的数据库 (例如 MS SQL Server)。
在默认情况下,服务器使用名称为 xpf.printing 的连接字符串。 通过 documentStore.connectionStringName 参数来指定连接字符串的名称。
Xml | 复制代码 |
---|---|
<connectionStrings> <add name="xpf.printing" connectionString="XpoProvider=MSAccess; Provider=Microsoft.Jet.OLEDB.4.0; Mode=Share Deny None; data source=|DataDirectory|/ReportService.mdb; user id=Admin; password=;"/> </connectionStrings> |
要学习如何连接其他类型的数据源,请参阅下列在线文章: 如何为 XPO 提供程序创建恰当的连接字符串 。
在 xpf.printing 段配置其他参数 (例如,由 keepInterval 参数定义的以毫秒计算的数据库实体的生命周期)。
Xml | 复制代码 |
---|---|
<devExpress> <xpf.printing> <documentStore keepInterval="1200000" connectionStringName="xpf.printing" /> </xpf.printing> </devExpress> |
当建立首个连接时,服务器自动创建数据库架构。
注意 |
---|
通常,使用 Web 项目,在 Silverlight 中,当把报表绑定到数据源时,Add Project Data Source(添加项目数据源) 选项不可用。 在下列指南中指导此问题: 如何: 把 Web 报表绑定到 MDB 数据库 。 同时,下列指南说明了完全在运行时刻创建数据绑定 Web 报表: 如何: 把 Web 报表绑定到 ArrayList。 |
传递参数
如果报表使用了 参数,那么当参数为 String、DateTime、Int32、Float、Double 或 Decimal 类型之一时,在服务器和客户机之间自动传递参数。
如果使用了其他类型的参数,那么在服务器和客户机上都应该使用 PrintingServiceKnownTypeContainer.RegisterKnownType 方法注册这种类型。
关于注册参数类型的示例,请参阅与 XtraReports 安装一起提供的 Fall Catalog 演示。