首页 新闻 会员 周边

关于报表ReportView动态列展示,求解~~

0
悬赏园豆:20 [已解决问题] 解决于 2011-04-06 10:47

1.数据集DataSet1中添加了一个DataTable 34个字段

2.查询中有14个字段,并且已做相应转换(数据集中的DataTable也只有14个字段)

3.rdlc 中34个字段都已近排列好

4.请问下,下面我该如何做呢?为什么我运行后还是34个字段呢?

以下仅是CS 代码:

View Code
SqlConnection myConn= new SqlHelper().SqlConnection_;
StringBuilder strSql
= new StringBuilder();
strSql.Append(
"select [sup_id],[sup_name],[SUP_ASSESS_POINT]");
for (int i = 1; i <= 9; i++)
{
strSql.AppendFormat(
",[FAC_0{0}]",i);
}
strSql.Append(
",[SUP_ASSESS_ORDER_NO] FROM [RPT_YFJC_MONTHLY_RATING]");
strSql.AppendFormat(
" where [RPT_YEAR_MONTH]='{0}'", year_month);
SqlDataAdapter myda
= new SqlDataAdapter(strSql.ToString(), myConn);
DataSet myds
= new DataSet();
RDLC_DataSet.RDLC_YFJC_MONTHLY_RATINGDataTable dt
= new RDLC_DataSet.RDLC_YFJC_MONTHLY_RATINGDataTable();

myConn.Open();
myda.Fill(myds);
myConn.Close();
rpt_view1.Visible
= true;
DataTable dts
= Data_Fill(myds.Tables[0], dt);
ReportDataSource rds
= new ReportDataSource("RDLC_DataSet_RDLC_YFJC_MONTHLY_RATING",dts);
rpt_view1.LocalReport.DataSources.Clear();
rpt_view1.LocalReport.DataSources.Add(rds);
     rpt_view1.LocalReport.Refresh();

Data.Fill  的方法就是删除数据集中的多余的列,并接复制数据

求解~~~~~

问题补充: 比如说我设定了3列的话,我就用select a, b from table,他的第三列显示的是空白,但是还是能看见 我想做的是第三列就让他消失,只能看见前边两列 请问有办法吗
like%'远远'%的主页 like%'远远'% | 小虾三级 | 园豆:635
提问于:2011-03-24 10:07
< >
分享
最佳答案
0

前不久我也遇到过这个问题,是这样解决的.

select id,name,a,b,c...,z from tb

其中id,name为必须显示列;a,b,c...,z为动态显示列.

rdlc中将所有的列都设定好,然后右键a列,选择"列可见性",选择"基于表达式显示或隐藏",在表达式处写出 显示或隐藏的条件即可.

对于其他列也相应的配置好 显示或隐藏条件 即可.

虽然麻烦点,但可以解决问题.~


select id,name,a,b,c...,z from tb 就是数据集中的选择语句.

a列是指内容列中的数据列, 隐藏a列表达式的语句就是一个返回true或false的语句.很简单.只需使用比较运算符即可.

我使用的是reportviewer10.0

收获园豆:20
Localhost | 菜鸟二级 |园豆:443 | 2011-03-24 11:12
我想问下,不能根据数据集(数据集我已近返回我想绑定的数据了)来设定吗?如果不能的话,那我“基于表达式显示或隐藏”怎么样设置?al列所指的是页眉 还是 详细内容?还有比如 a列的字段为空,那隐藏a列,代码该如何写?vb 语法不熟...
like%'远远'% | 园豆:635 (小虾三级) | 2011-03-24 11:45
看看我上面的回复:)
Localhost | 园豆:443 (菜鸟二级) | 2011-03-24 11:51
发现一个问题,隐藏之后后面的列不能自动跟上,我就是设置其中的页眉和详细内容,这样也不能彻底解决问题啊
like%'远远'% | 园豆:635 (小虾三级) | 2011-03-24 11:52
不能吗?我的是可以的啊.~`
Localhost | 园豆:443 (菜鸟二级) | 2011-03-24 12:08
我刚看了下,我用的表,你可能用的是矩形,我再试试
like%'远远'% | 园豆:635 (小虾三级) | 2011-03-24 12:30
不能用矩形,只能用表,但是表的话,我确实是不能隐藏啊
like%'远远'% | 园豆:635 (小虾三级) | 2011-03-24 12:37
刚认真的分析了数据,其实我的数据集已经只有14列了,也就是说我无需隐藏内容项,只需隐藏列的表头文本框了,再试试。。。
like%'远远'% | 园豆:635 (小虾三级) | 2011-03-24 13:02
矩形没有测试过.只试过表,表是没有问题的.
Localhost | 园豆:443 (菜鸟二级) | 2011-03-24 14:00
问下哈,如何获取文本框的集合??
like%'远远'% | 园豆:635 (小虾三级) | 2011-03-24 17:36
获取文本框集合做什么用?~`
Localhost | 园豆:443 (菜鸟二级) | 2011-03-25 08:31
循环赋值,另外我那隐藏的表头确实是分隔开的比如: abcd 隐藏b 变成了a cd 后面的确实没有跟上去 期望是acd
like%'远远'% | 园豆:635 (小虾三级) | 2011-03-25 09:16
恩,我是用表做的,所以列会自动跟上去.
表只能做行上的分组,而矩形可以做行和列的分组.这样的话,可以换个思路,行上的分组使用表,而列上的分组呢?如果不是很复杂的话,看可否通过sql语句的形式进行改进,避免在rdlc中使用列分组,以避免隐藏列后,后序列无法跟进的问题.
其实,在rldc中使用的行分组和列分组,在使用sql语句时一般可以处理的掉.
循环赋值,这个确实没在rdlc中使用过.
Localhost | 园豆:443 (菜鸟二级) | 2011-03-25 09:24
数据只来源一张表,不可能用矩形的,rdlc是一种标准的xml 格式,我想通过操作xml 来达到动态列的展现,不知道行不行~~~
like%'远远'% | 园豆:635 (小虾三级) | 2011-03-25 13:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册