日期:2014-05-17  浏览次数:20927 次

关于rdlc报表的问题



我现在在做一份报表,是通过一个开始周数和结束周数生成数据的,由于不知道选择的具体有多少周,报表的列就必须自动生成,不知道这个怎么实现,查了好多资料也没找到方法!

这里面上面的列要自动生成,求解决方法!
------最佳解决方案--------------------
引用:
总之这个很麻烦的,数据源不是写sql语句的,是从别的表里面获取的,是用的Ilist获取数据集!
还有一个问题就是,两个周数可以这样比较吗?
int week=call.weekno;(数据集里面的)
int week2=cb.weekno;(这个是开始周数))
if (week == week2)
{
   获取数据
}
else if(week == w……


如果你的week 和week2代表的是周数,那么你直接加时对的(你取数据的接口如果接受这样的周数据)。如果不是你需要把周数转化成具体的日期提交给取数据的接口。
------其他解决方案--------------------
rdlc中表格要列自动生成,应该是实不现的,没有研究过,具体不知道,
你可以在 datagridview控件里显示数据,
最后导出到xls中,进行打印,就可以了,
------其他解决方案--------------------
这个有没有办法解决啊!
------其他解决方案--------------------
如果有时间限制的话应该能够实现(比如限制只能查询一年的数据,那么一年有多少个周就是固定的了)。

然后你参照 http://blog.csdn.net/5653325/article/details/8027921 先给RDLC报表的SQL语句绑定一年的周,然后你后台获取后对应的周的列名对应上 绑定的周名,前台就可以显示出来了。 算是伪动态实现吧。
------其他解决方案--------------------
总之这个很麻烦的,数据源不是写sql语句的,是从别的表里面获取的,是用的Ilist获取数据集!
还有一个问题就是,两个周数可以这样比较吗?
int week=call.weekno;(数据集里面的)
int week2=cb.weekno;(这个是开始周数))
if (week == week2)
{
   获取数据
}
else if(week == week2+1)
{
}
else if(week == week3+1)
{
}
else
{
}
不知道两个周数怎么判断?在后面直接加一个数字有错吗?
 
------其他解决方案--------------------
if (date.Date == StartDate.Date)
{
}
else if (date.Date == StartDate.AddDays(1).Date)
{
}
像如果是时间类型的就可以判断,周数是int类型的,像上面的那样判断好像不行,没有报错,就是不执行,不知道是什么问题,int类型的可以这样判断啊
------其他解决方案--------------------
一般日期判断都是用TimeSpan来实现。
DateTime D1;
DateTime D2;
TimeSpan D3;
D1 = 一个日期;
D2 = 另外一个日期;
D3 = D1 - D2;
然后判断D3.Days是大于、小于或者等于0来判断大小什么的。
------其他解决方案--------------------
周数是int类型的,不是Datetime类型的,不能用时间类型的来判断!