none
[RDL基本原理]RDL报表生成原理 RRS feed

  • 问题

  • 问一个基本问题,我们通常用reportviewer在客户端软件上/brower上查看RDL+Datasource已经生成好的报表。

    我想请问,Reporting Service上的一个RDL文件,在何时会去load 数据查询,填充数据到报表里呢?是在一个报表URIrequest过去后,在reporting service上先执行SQL数据查询,并且生成HTML,再直接传到report viewer上或者browser上展示,还是到客户端的report viewer上再去query 得到dataset数据binding?

    2. 第二个问题,我们可不可以在运行时由我们的程序动态控制某一个RDL报表上的数据源设定? 原理是不是在应用程序端通信report service folder,把之前RDL文件修改后,再上传到RS,之后给report viewer客户端指令或者url,使客户端去查看报表?
    pluto_sun
    2010年2月25日 5:17

答案

  • Just read the latest document with following diagram which shows the three-tier architecture of a Reporting Services deployment at http://msdn.microsoft.com/en-us/library/bb522673(SQL.105).aspx.

    So about your 1st question, the key processing flow is:

    It shows the report server database and data sources in the data tier, the report server components in the middle tier, and the client applications and built-in or custom tools in the presentation tier. It shows the flow of requests and data among the server components and which components send and retrieve content from a data store.

    The report server supports custom authentication extensions, data processing extensions, report processing extensions, rendering extensions, and delivery extensions. A report server requires at least one authentication extension, data processing extension, and rendering extension. Delivery and custom report processing extensions are optional, but necessary if you want to support report distribution or custom controls.

    Data Processing extensions are used to query a data source and return a flattened row set. Reporting Services uses different extensions to interact with different types of data sources. You can use the extensions that are included in Reporting Services, or you can develop your own extensions. Data processing extensions for SQL Server, Analysis Services, Oracle, SAP NetWeaver Business Intelligence, Hyperion Essbase, Teradata, OLE DB, and ODBC data sources are provided.

    Rendering extensions transform data and layout information from the Report Processor into a device-specific format. Reporting Services includes seven rendering extensions: HTML, Excel, CSV, XML, Image, PDF, and Microsoft Word.

    Reporting Services architecture
    Mark as Answer if it helps. This posting is provided "AS IS" with no warranties, confers no rights.
    2010年3月2日 3:44
  • About your 2nd question, you could use expression-based connection strings which are evaluated at run time. For example, you can specify the data source as a parameter, include the parameter reference in the connection string, and allow the user to choose a data source for the report. For example, suppose a multinational firm has data servers in several countries. With an expression-based connection string, a user who is running a sales report can select a data source for a particular country before running the report.

    The following example illustrates the use of a data source expression in a SQL Server connection string. The example assumes you have created a report parameter named ServerName:

    ="data source=" & Parameters!ServerName.Value & ";initial catalog=AdventureWorks

    Data source expressions are processed at run time or when a report is previewed, so you could 在运行时由我们的程序动态控制某一个RDL报表上的数据源设定.


    Mark as Answer if it helps. This posting is provided "AS IS" with no warranties, confers no rights.
    2010年3月2日 8:21

全部回复

  • Just read the latest document with following diagram which shows the three-tier architecture of a Reporting Services deployment at http://msdn.microsoft.com/en-us/library/bb522673(SQL.105).aspx.

    So about your 1st question, the key processing flow is:

    It shows the report server database and data sources in the data tier, the report server components in the middle tier, and the client applications and built-in or custom tools in the presentation tier. It shows the flow of requests and data among the server components and which components send and retrieve content from a data store.

    The report server supports custom authentication extensions, data processing extensions, report processing extensions, rendering extensions, and delivery extensions. A report server requires at least one authentication extension, data processing extension, and rendering extension. Delivery and custom report processing extensions are optional, but necessary if you want to support report distribution or custom controls.

    Data Processing extensions are used to query a data source and return a flattened row set. Reporting Services uses different extensions to interact with different types of data sources. You can use the extensions that are included in Reporting Services, or you can develop your own extensions. Data processing extensions for SQL Server, Analysis Services, Oracle, SAP NetWeaver Business Intelligence, Hyperion Essbase, Teradata, OLE DB, and ODBC data sources are provided.

    Rendering extensions transform data and layout information from the Report Processor into a device-specific format. Reporting Services includes seven rendering extensions: HTML, Excel, CSV, XML, Image, PDF, and Microsoft Word.

    Reporting Services architecture
    Mark as Answer if it helps. This posting is provided "AS IS" with no warranties, confers no rights.
    2010年3月2日 3:44
  • About your 2nd question, you could use expression-based connection strings which are evaluated at run time. For example, you can specify the data source as a parameter, include the parameter reference in the connection string, and allow the user to choose a data source for the report. For example, suppose a multinational firm has data servers in several countries. With an expression-based connection string, a user who is running a sales report can select a data source for a particular country before running the report.

    The following example illustrates the use of a data source expression in a SQL Server connection string. The example assumes you have created a report parameter named ServerName:

    ="data source=" & Parameters!ServerName.Value & ";initial catalog=AdventureWorks

    Data source expressions are processed at run time or when a report is previewed, so you could 在运行时由我们的程序动态控制某一个RDL报表上的数据源设定.


    Mark as Answer if it helps. This posting is provided "AS IS" with no warranties, confers no rights.
    2010年3月2日 8:21