1.数据集DataSet1中添加了一个DataTable 34个字段
2.查询中有14个字段,并且已做相应转换(数据集中的DataTable也只有14个字段)
3.rdlc 中34个字段都已近排列好
4.请问下,下面我该如何做呢?为什么我运行后还是34个字段呢?
以下仅是CS 代码:
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 的方法就是删除数据集中的多余的列,并接复制数据
求解~~~~~
前不久我也遇到过这个问题,是这样解决的.
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