2

我正在一个支持英语和阿拉伯语的程序中工作,目前我们正在开发程序报告。

我们选择在 WindowsFormsApplication(C#) 中使用带有 ReportViewer 控件的 SSRS 我搜索了一种根据语言(LTR 英语、RTL 阿拉伯语)更改 tablix 的 DirectionLayout 属性的方法,我尝试了很多解决方案但没有成功。

我不想创建两个报告或创建一个包含两个 tablixes 的报告,每个表对应一种语言。

现在我正在尝试执行以下操作:

  1. 使用 SSRS Web 服务获取报表定义
  2. 编辑报表定义(将 Tablex DirectionLayout 转换为 RTL)
  3. 使用 SSRS 执行服务加载定义并呈现报表
  4. 将呈现的报表分配给 ReportViewr 控件

我想知道这可能吗?我在哪里可以搜索来完成这项任务?

4

1 回答 1

1

1)根据您使用的 SSRS 版本,您可以使用 GetReportDefinition 方法(http://msdn.microsoft.com/en-us/library/reportservice2005.reportingservice2005.getreportdefinition(v=sql.100).aspx)或GetItemDefinition ( http://msdn.microsoft.com/en-us/library/reportservice2010.reportingservice2010.getitemdefinition.aspx )

2) 您可以使用 RDL 对象模型来编辑 RDL,尽管这并不简单,并且 Microsoft.ReportingServices.RdlObjectModel 命名空间的类被标记为内部(SSRS 2008 R2 及更高版本)。您可以在http://prologika.com/CS/blogs/blog/archive/2010/03/08/where-is-rdlom-in-r2.aspx和 Lionel Ringenbach 在https:// /github.com/Ucodia/Blog-CustomReportingServices

有关 RDL 对象模型的类和方法的参考信息,请从http://msdn.microsoft.com/en-us/library/ff493708开始。

3-4)我认为将您编辑的报告部署回服务器然后使用 ReportViewer 控件调用它会更容易。然后,您可以直接利用可用的方法。ReportViewer 控件可以直接处理呈现。以下是通过 Web 服务进行部署的信息:http: //tomyrhymond.wordpress.com/2011/08/07/sql-server-reporting-services-deploying-rdl-files/

于 2012-08-30T13:17:21.860 回答