日期:2014-05-20  浏览次数:20833 次

rdlc报表 行列转换 谢谢大家先
采用 .rdlc报表
数据源为两张表,格式如下
Tb_Student

学号 姓名
01 张三
02 李四

Tb_Score

学号 科目 成绩
01 语文 78
01 数学 95
01 英语 56
02 语文 75
02 数学 94
02 英语 53

期望生成报表格式为
学号 姓名 语文 数学 英语 总分
01 张三 78 95 56 239
02 李四 75 94 53 232

要求:rdlc的数据源不使用Sql的行列转换方式,行列转换在报表内部实现,望各位大侠附上解决办法


------解决方案--------------------
declare @sql varchar(1000)
set @sql='select student_id'
select @sql= isnull(@sql,'')+ ', sum( case subjectName when '''+ subjectName+''' then number else 0 end) as '''+subjectName+''''
From source group by subjectName
select @sql=@sql+'From source group by student_id'
exec(@sql)
print @sql
------解决方案--------------------
C#方面报表,我也在学习中,
帮你顶顶先............
------解决方案--------------------
添加矩阵,我先以你的Tb_Score表为例:

将 学号字段拖到“行”处,科目字段拖到“列”处,成绩字段拖到“数据”处,然后右击“列”单元格选择“小计”,如图示:


小计后



运行后:

------解决方案--------------------
  四楼的非常正确。 顺便也讲了怎么应用。

  矩阵,自己搞两个例子出来就行了



------解决方案--------------------
探讨
添加矩阵,我先以你的Tb_Score表为例:

将 学号字段拖到“行”处,科目字段拖到“列”处,成绩字段拖到“数据”处,然后右击“列”单元格选择“小计”,如图示:


小计后



运行后: