我感觉我用SQLServer 的ReportService做报表的方法有点笨..请大家指导一下.

sunlovesea 2009-11-25 03:59:32
我说一下我做报表的办法.
我使用报表服务器项目开发报表。要显示的项都是通过SQL语句实现的。例如最常见的日产量,日累计产量,月产量。
我要写一一系列的的SQL来实现。日产量我可以直接在表中获取。日累计产量需要用SUM,月累计产量需先分组再SUM。
这样做出来的报表现在的问题是
1>SQL语句比较多,难于维护
2>生成速度比较慢
也不知道我说清楚没有。
我想问问大家是如何开发报表的?
...全文
385 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangdingyu8686 2009-11-28
  • 打赏
  • 举报
回复
可以使用 在数据库中写存过,然后在SSRS中调用存过。
也可以
建立CUBE,使用SSAS,然后使用MDX做报表。
sunlovesea 2009-11-27
  • 打赏
  • 举报
回复
自己Up
s3730118 2009-11-27
  • 打赏
  • 举报
回复
最近也在做报表,写一些自己的经验。

1. 最重要的是定义一个数据源,这里不推荐在一个DataAdapter里面定义不同的DataSet,所以要先明确所需的所有数据,然后用一个SQL语句(推荐使用存储过程+报表参数)得到数据源。
2. 根据不同的业务需求定义报表。
a.利用表格,矩阵控件的筛选,筛选不同的数据。同SQL中的WHERE
b.一定要充分利用分组的概念,这样会省很多的SQL语句。如sum(iif(lcase(Fields!Approved__Yes_No_.Value)="no",1,0),"RejectionHub"),计算组RejectionHub中字段Approved__Yes_No_=“no”的个数。
3. 最后可以用.net进行控制输出,发送等。
sunlovesea 2009-11-25
  • 打赏
  • 举报
回复
谢谢。
hery2002 2009-11-25
  • 打赏
  • 举报
回复
后面的可以通过报表本身提供的聚合功能实现自动分组相加.
--小F-- 2009-11-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zlp321002 的回复:]
利用MDX.

YTD(), YTW() 等相关函数,可以实现任何层级的汇总. 性能高.速度快. 报表灵活.
[/Quote]

学习
zlp321002 2009-11-25
  • 打赏
  • 举报
回复
利用MDX.

YTD(), YTW() 等相关函数,可以实现任何层级的汇总. 性能高.速度快. 报表灵活.

682

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧