微软SQL Server 2000 Reporting Services介绍

类别:.NET开发 点击:0 评论:0 推荐:

微软SQL Server 2000 Reporting Services介绍

 

 

[摘要    ] 本文介绍了如何直接修改.rdl文件来实现报表.实际上.NET开发环境中的

               报表设计器也只是对.rdl文件进行编辑.

[关键字] Reporting Services,.NET Framework. DrillThrough,rdl文件,rds文件

 

n      如何将报表系统集成到系统中

Reporing Services的帮助中提到:“有两种集成方式,通过URL访问或者利用Web Service,URL的方式比较快捷,如果用Web Service就必须手工写一些代码.”具体步骤还需要详细阅读帮助.

n      修改.rdl快速实现报表

.NET开发环境中提供了Report Designer来开发报表,但对于初学者,建议最好要知道其根本的原理,如果用编辑器将.rdl打开就会发现该文件就是一个XML文件,如果安装了Sample,到文件目录D:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\Samples\Reports下就可以看到如下文件,AdventureWorks.rds,该文件就是设置数据源的XML文件,用编辑打开看一下,

 

*********************************************************

<Extension>SQL</Extension>//表示数据源类型为SQL

<ConnectString>data source="(local)";initial catalog=AdventureWorks2000;integrated security=SSPI;persist security info=False</ConnectString>//这里的integrated security表示认证方式,如果有用户和密码的话,应该把这一项去掉.如果要改变数据源的话,应该把data sourceinitial catalog分别修改一下

.rdl文件也可以用编辑器打开这里选取Employee Sales Summary.rdl文件的一段做说明:

       <Header>//这一段对应报表中的标题,

          <TableRows>

            <TableRow>

              <Height>0.375in</Height>

              <TableCells>

                <TableCell>

        ……

        <Value>Current Month Order Summary</Value>//图片上可以看到这就是报表的标题!

  …….

</Header>

<Details>//这一段对应报表中的标题

          <TableRows>

            <TableRow>

              <Height>0.25in</Height>

              <TableCells>

                <TableCell>

                  <ReportItems>

                    <Textbox Name="OrderNumber">//在图片中可以看到OrderNumber就是第一列的标题!如果要修改的话,只要把名称修改一下就可以了!

<Style>

………….

</Details>

      <TableGroups>//从这里开始就正式显示数据了

          <TableGroup>

        ………..

            <Value>=Sum(Fields!Sales.Value)</Value>//Sales为一个Field,在后面会定义

        ….

      </TableGroups>

     <TableColumns>//一段表示报表有三列,如果要减少列或增加列,一定要先将这里修改一下,然后修改上面的两段代码,否则就会显示列数不匹配

          <TableColumn>

            <Width>1.125in</Width>

          </TableColumn>

          <TableColumn>

            <Width>3.625in</Width>

          </TableColumn>

          <TableColumn>

            <Width>1.125in</Width>

          </TableColumn>

        </TableColumns>

 

    <Query>//这是最核心的部分,也就是SQL语句!其中还用到了几个参数

例如@ReportMonth就是图片顶部的Year查询条件

        <DataSourceName>AdventureWorks</DataSourceName>

        <CommandText>SELECT        Employee.FirstName + ' ' + Employee.LastName AS Employee, DATEPART(Year, SalesOrderHeader.OrderDate) AS OrderYear, DATEPART(Month, SalesOrderHeader.OrderDate)

                         AS OrderMonthNum, DATENAME(Month, SalesOrderHeader.OrderDate) AS OrderMonth, SUM(SalesOrderDetail.LineTotal) AS Sales

FROM            SalesOrderHeader INNER JOIN

                       

                         &lt;= @ReportMonth)

………………….

SalesOrderHeader.OrderDate)</CommandText>

        <QueryParameters>

          <QueryParameter Name="@ReportYear">

            <Value>=Parameters!ReportYear.Value</Value>

          </QueryParameter>

 

   <Fields>//前面提到的Sales是一个定义过的Field,这里就是Field的定义,如果要增加数据,这里也要进行修改,

        <Field Name="Employee">

          <DataField>Employee</DataField>//Employee对应为SQL查询语句的返回结果!

          <rd:TypeName>System.String</rd:TypeName>

        </Field>

         ….

    </Fields>

   <ReportParameter Name="ReportMonth">

      <DataType>Integer</DataType>//Month控件为Integer类型

      <DefaultValue>

        <Values>

          <Value>6</Value>

        </Values>

      </DefaultValue>

     <Prompt>Month</Prompt>//Prompt就是报表顶部的查询控件,Reporting Ser vices还提供DateTime类型

      <ValidValues>

        <ParameterValues>

          <ParameterValue>

            <Value>1</Value>

            <Label>January</Label>

         ………….

<结束>

**********************************************************

以上简单的对rdl文件做了分析,很多功能没有分析到,具体可见Reporing Services帮助中的Report Definition XML Elements页面,里面详细的列出了rdl文件支持的所有元素,例如链接功能对应为DrillThrough!如果要看链接的具体实现,可以参照Territory Sales Drilldown.rdl文件,用”Action”搜一下就可以了.

本文地址:http://com.8s8s.com/it/it45177.htm