SSRS如何制作复合报表?嵌套报表是唯一选择吗?

0
我说的复合报表就是那种,一张表格里面,第一列是公共字段,比如客户,接下来两列分别是,分产品类别的发货量一列,分包装费用项目的费用一列。如下图:

QQ_Photo20131104230409.jpg


就是说按客户汇总的时候,产品类别、费用项目是每个客户不太一样的。由于产品类别和费用项目种类比较多,所以不能把他们横向展开成列,只能如上图一样把他放到发货量和费用的单元格内纵向列示。。。

就是这样的复合报表。我们目前是采用嵌套报表的方式实现的。但是采用嵌套报表的话,一个是格式不好调,第二个就是如果数据量大,报表很慢。观察了一下,负载不在数据库服务器上,在报表服务器上,所以应该就是嵌套报表导致的,因为这报表对于report server相当于要创建很N多个报表实例。
不知道在SSRS上是否有更好的解决办法。。。。
已邀请:
1

heaven - 微软BI架构、SSRS高级开发 2013-11-05 回答

可以这样做,一张报表实现,然后在报表上建一个变量,如type,给type付两个值1和0(界面显示名称可以显示费用/发货量),报表两列,客户是第一列,第二列写个表达式如type=1显示产品,type=0显示费用类别,量值那一列也用这个表达式控制如type=1显示产品发货量,type=0显示包装费用,这样可以通过变量type来控制报表查看的费用,以及显示的维度
1

BIWORK - 热衷于微软BI技术,技术架构和解决方案! 2013-11-08 回答

可以考虑使用 Tablix ,并且 SQL 查询需要更改,让发货量和费用作为一个 Feature 同属一列下面的值。产品-1,2 和汽运等也是同属一列的值,只不过在查询结果中它们逻辑上是关联的。
0

halcyon_ch 2013-11-05 回答

@heaven 多谢指教!我去具体试一下。

不过根据您的启发。。。我在想能不能类似采用矩阵的方式呢?比如将客户作为行组,type作为一级列组,项目名称和数值作为二级列组。不过这样的估计需要采用临时表来重新组织SQL查询返回的结果。
0

慢羊羊 - 天善智能微软BI达人 2013-11-13 回答

俺的处理办法,把表的展现方式变变,一样看的明白,更好处理,干嘛拘泥于形式呢,形式主义害死人啊。

要回复问题请先登录注册