endison1111 发表于 2012-2-10 21:11:31

遇到个麻烦的问题,求帮助!

遇到个问题,客户要求一张表格不管有没有数据都至少有6行,也就是说即便是没数据都有6行,空着也可以,如果超过没关系,该怎么解决?其实具体问题还要复杂点,不过大概就这么个情况,当然表格是有边框的,不然也看不出有没有6行。如果只有3行数据,那就必须剩下3行空着的

zong2003 发表于 2012-2-10 22:54:25

DECLARE @count int
WITH ss AS (SELECT
   '1' AS a
UNION ALLSELECT
   '2'
   UNION ALLSELECT
   '3'
   UNION ALLSELECT
   '4'
   UNION ALLSELECT
   '5'
   UNION ALLSELECT
   '6' )
select @count=count(*) fromss

IF @count <6
   BEGIN
      
       WITH ss AS (SELECT
   '1' AS a
UNION ALLSELECT
   '2' AS b)
      SELECT * FROM ss
      UNION ALL
      SELECT''
      UNION ALL
      SELECT''
      UNION ALL
      SELECT''
      UNION ALL
      SELECT''
      
   END ELSE
    WITH ss AS (SELECT
   '1' AS a
UNION ALLSELECT
   '2'
   UNION ALLSELECT
   '3'
   UNION ALLSELECT
   '4'
   UNION ALLSELECT
   '5'
   UNION ALLSELECT
   '6' )
select * fromss




其实你完全可以通过去写SQL逻辑完成这个需求

endison1111 发表于 2012-2-11 10:51:57

谢谢 zong2003,想法很好。
还有其他的思路么? 有不通过sql解决的思路么?思路越多越好的说

endison1111 发表于 2012-2-13 10:22:18

问题已经解决,现在拿出来分享一下, 不用sql,用了一个比较巧妙的方法解决了这个问题。

首先新建一个Data Set,然后写一个简单的sql,在计算列中计算count。

然后将Data Set拖到编辑区域,这时候就有一张table了,当然count这列就不用了,去掉。

然后插入footer row,根据实际情况,需要多少行就查多少行,比如我这里至少有8行,就插入7个footer row,加上原来的就有8个footer row了。

这里漏了一步,必须给每行的第一个单元格插入一个空的文本框,不用写内容,目的是使得结果有行高,当然你在行的属性里设置他的行高也是可以的。

然后就是关键的地方了,设置每一条footer row的Visibility,设置表达式为:row["count"]>0,row["count"]>1 以此类推即可。

PS:适用与设置行的最小数,即至少有几行这样的情况,至于最大有几行这就另当别论了。

呼唤 发表于 2012-2-13 10:41:38

回 3楼(endison1111) 的帖子

endison1111:问题已经解决,现在拿出来分享一下, 不用sql,用了一个比较巧妙的方法解决了这个问题。

首先新建一个Data Set,然后写一个简单的sql,在计算列中计算count。

然后将Data Set拖到编辑区域,这时候就有一张table了,当然count这列就不用了,去掉。
....... (2012-02-13 10:22) images/back.gif

呵呵,学习了。一直没找到解决方案。

lycwf 发表于 2012-2-13 10:49:23

endison1111 发表于 2012-2-13 10:57:11

回 4楼(呼唤) 的帖子

呼唤:呵呵,学习了。一直没找到解决方案。 (2012-02-13 10:41) images/back.gif

呵呵 想了很久 开始想找有没有script可以解决的方法,找了半天没找到,也是无意中发现Visibility的,试了下居然成功了。也是客户逼出来的 呵呵。

不过也就适合行数少点的,要是多的话设置起来也很麻烦,而且还有个麻烦的地方就是行数一多,报表源文件也就变大了,多一行就多了很多xml标签。

呼唤 发表于 2012-2-13 12:55:19

回 6楼(endison1111) 的帖子

endison1111:呵呵 想了很久 开始想找有没有script可以解决的方法,找了半天没找到,也是无意中发现Visibility的,试了下居然成功了。也是客户逼出来的 呵呵。

不过也就适合行数少点的,要是多的话设置起来也很麻烦,而且还有个麻烦的地方就是行数一多,报表源文件也就变大了,多一行就多了很 .. (2012-02-13 10:57) images/back.gif

嘿嘿,咱们一直没想到一个好的解决办法。

漫步匆匆 发表于 2012-2-25 19:29:01

新手学习了,UPUP

漫步匆匆 发表于 2012-2-29 23:47:16

这个真的可以么??我的为什么不行呢?我设置的是20行,,几位有没有现成的报表,能改我一个,就是最后不满20行就空白行补齐的,,我试了貌似没用啊。count出来是72,打印了4页,最后一页啥都没有,是我写错了吗?,,,,求模板啊,,,,

呼唤 发表于 2012-3-1 09:04:18

回 9楼(漫步匆匆) 的帖子

漫步匆匆:这个真的可以么??我的为什么不行呢?我设置的是20行,,几位有没有现成的报表,能改我一个,就是最后不满20行就空白行补齐的,,我试了貌似没用啊。count出来是72,打印了4页,最后一页啥都没有,是我写错了吗?,,,,求模板啊,,,, (2012-02-29 23:47) images/back.gif

嘿嘿,没测试他的方法,

书山采玉 发表于 2012-3-8 14:56:51

页: [1]
查看完整版本: 遇到个麻烦的问题,求帮助!