以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  输入日期用逗号隔开,会自动统计天数  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=25012)

--  作者:ramen
--  发布时间:2012/10/29 14:54:00
--  输入日期用逗号隔开,会自动统计天数
我想问一下,可不可以在“其它假期列”内,输入7.2(7月2日),8.9(8月9日),1.20(1月20日),每个日期之间用逗号隔开,然后“合计列”自动统计,记录为3天
请问一下这个可以实现吗?代码怎么设置?

--  作者:y2287958
--  发布时间:2012/10/29 15:00:00
--  
上个例子啥
--  作者:lin_hailun
--  发布时间:2012/10/29 15:00:00
--  
 把代码写到DataColChanged事件里

 select case e.datacol.name
     case "其它假期列"
         e.datarow("合计列") = e.newvalue.split(",").Length
 end select

--  作者:ramen
--  发布时间:2012/10/29 15:05:00
--  
ok啦,谢谢你!
--  作者:ramen
--  发布时间:2012/10/29 16:00:00
--  
我想完善一下,可不可以在“其它假期”和“文艺假期”内,两列都输入3个日期,每个日期之间用逗号隔开,然后“合计列”自动统计两列,记录为6天。如果数据清零的话“合计列”自动变为0,请问代码怎么设置呢?


--  作者:lin_hailun
--  发布时间:2012/10/29 16:16:00
--  
 当数据为空的时候,自动变为0了吧……

 select case e.datacol.name
     case "文艺假期", "其它假期列"
         e.datarow("合计列") = e.datarow("文艺假期").split(",").Length + e.datarow("其它假期列").split(",").Length
 end select
--  作者:ramen
--  发布时间:2012/10/29 18:57:00
--  
试了好几次,数据清零“合计列”还是不能自动变为0。
--  作者:狐狸爸爸
--  发布时间:2012/10/29 20:26:00
--  
做个简单的例子发上来,说明具体需求,这样几分钟就能帮你搞定了。
--  作者:lin_hailun
--  发布时间:2012/10/29 20:30:00
--  
 嗯嗯,是错了。要判断一下,没那么简单。

 select case e.datacol.name
     case "文艺假期", "其它假期列"
         dim wy as integer = 0
         dim qt as integer = 0
         if e.datarow.isnull("文艺假期") then
             wy = 0
         else
             wy = e.datarow("文艺假期").split(",").Length
         end if
         if e.datarow.isnull("其它假期列") then
             qt = 0
         else
              qt = e.datarow("其它假期列").split(",").Length
         end if
         e.datarow("合计列") = wy + qt
 end select

--  作者:ramen
--  发布时间:2012/10/30 21:42:00
--  
终于可以了,谢谢!