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

解决方案 »

  1.   

    rdlc中表格要列自动生成,应该是实不现的,没有研究过,具体不知道,
    你可以在 datagridview控件里显示数据,
    最后导出到xls中,进行打印,就可以了,
      

  2.   

    如果有时间限制的话应该能够实现(比如限制只能查询一年的数据,那么一年有多少个周就是固定的了)。然后你参照 http://blog.csdn.net/5653325/article/details/8027921 先给RDLC报表的SQL语句绑定一年的周,然后你后台获取后对应的周的列名对应上 绑定的周名,前台就可以显示出来了。 算是伪动态实现吧。
      

  3.   

    总之这个很麻烦的,数据源不是写sql语句的,是从别的表里面获取的,是用的Ilist获取数据集!
    还有一个问题就是,两个周数可以这样比较吗?
    int week=call.weekno;(数据集里面的)
    int week2=cb.weekno;(这个是开始周数))
    if (week == week2)
    {
       获取数据
    }
    else if(week == week2+1)
    {
    }
    else if(week == week3+1)
    {
    }
    else
    {
    }
    不知道两个周数怎么判断?在后面直接加一个数字有错吗?
     
      

  4.   


    如果你的week 和week2代表的是周数,那么你直接加时对的(你取数据的接口如果接受这样的周数据)。如果不是你需要把周数转化成具体的日期提交给取数据的接口。
      

  5.   

    if (date.Date == StartDate.Date)
    {
    }
    else if (date.Date == StartDate.AddDays(1).Date)
    {
    }
    像如果是时间类型的就可以判断,周数是int类型的,像上面的那样判断好像不行,没有报错,就是不执行,不知道是什么问题,int类型的可以这样判断啊
      

  6.   

    一般日期判断都是用TimeSpan来实现。
    DateTime D1;
    DateTime D2;
    TimeSpan D3;
    D1 = 一个日期;
    D2 = 另外一个日期;
    D3 = D1 - D2;
    然后判断D3.Days是大于、小于或者等于0来判断大小什么的。
      

  7.   

    周数是int类型的,不是Datetime类型的,不能用时间类型的来判断!