设计SQL 2005 Report报表

    技术2022-05-11  65

    在VS2005中,选择 Report Server project模板新建工程BARreports

    1 设置工程属性:

    Target Server URL =  http://ctc-bar:81/ReportServer (开始以为是report manager的地址,设为http://ctc-bar:81/reports,结果总是提示连不上报表服务器,这里要用report server的地址)

    设置完成后,从右键菜单选择部署,如果不属成功,说明设置正确。

    工程创建后,会先创建两个目录:Shared Data Sources和Reports

    2 定义数据源

     先在Shared Data Sources中增加一个数据源BARtestDB

    connect string中要指定数据库连接,身份认证最好用数据库用户。

    定义完成后,把BARtestDB发布到服务器上。打开报表服务器http://ctc-bar:81/reports你会发现新增加的目录Shared Data Sources,里面有一个数据源定义文件BARtestDB.rds。

    3 设计报表

    新建报表是通过Wizard方式完成的。

    第一步选择数据源,就选择刚刚建立的BARtestDB

    第二步数据获取,在query string中输入SQL 命令。

    第三步选择报表的类型

    选择Matrix类型

    Table型就是标准形式,直接将SQL结果按照数据表方式显示出来。还不如用GridView绑定DATASET方便呢。

    matrix型比较有用,列是根据数据动态产生的,这也是我使用SQL reporting的原因。

    例如:数据

    StudentID    Name   Subject   Grade     

    1                    张三         语文         80

    1                    张三         数学         86

    2                   李四         英语         90

    2                   李四         数学         92

    报表结果

    StudentID    Name      语文      数学     英语

    1                    张三         80           86       null

    2                   李四          null        92         90 

     虽然我们自己用SQL语句也可以做成这样的DATASET,但会非常麻烦,也很难维护。

    第四步,定义报表

    查询结果列可以有四类不同的映射

    Page:每页的标题

    Rows:是每行都出现的数据列如StudentID和Name ,相当于table类型报表的列。

    Columns:是最重要的要按照数据动态分列的,在这里就是Subject  

    Details: 是和Columns对应的数据,在这里是Grade

     问题:

    matrix报表无法得到表头。 也无法作total的计算。

    我的办法是在数据查询时计算total。但是表头还是没有办法。

     

     


    最新回复(0)