以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  新手入门,遇到一个很难解决的问题,请高手指教!  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=24998)

--  作者:ramen
--  发布时间:2012/10/29 9:39:00
--  新手入门,遇到一个很难解决的问题,请高手指教!
      我建了一个多层表头,有两层,上面一层是补休假,下面分为1,2,3,4四个格。
      比如我在第一格、第二格分别输入7.2(7月2日)、8.6(8月6日),只要单元格里面有输入,则已休假期列会自动统计,记录为2,
同样的,如果我在第三格输入日期,则已休假期自动统计,记录为3.
      不知道可不可以实现,如果可以,在哪里加入代码,代码是什么?谢谢

--  作者:lin_hailun
--  发布时间:2012/10/29 9:47:00
--  
 可以弄,直接写成表达式,还是想写代码?楼主?
--  作者:ramen
--  发布时间:2012/10/29 10:01:00
--  
可以两个都写一下吗?这样我可以都试一试,麻烦啦,谢谢!
--  作者:lin_hailun
--  发布时间:2012/10/29 10:09:00
--  
在 表属性->事件->DataColChanged 写入代码

 If e.DataCol.Name Like "补休假_*" Then
     If e.NewValue = "" then
         e.DataRow("已休假期") = e.DataRow("已休假期") - 1
     Else
         e.DataRow("已休假期") = e.DataRow("已休假期") + 1
 End If

--  作者:lin_hailun
--  发布时间:2012/10/29 10:16:00
--  
如果是表达,就写成

IFF(补休假_1 is Null,  0,  1) + IFF(补休假_2 is Null,  0,  1) + IFF(补休假_3 is Null,  0,  1) + IFF(补休假_4 is Null,  0,  1)
--  作者:ramen
--  发布时间:2012/10/29 10:33:00
--  
表达式那个我试了可以实现,但是代码那个就不行,在单元格输入就弹出窗口“调用目标发生错误”,不知道怎么回事?
--  作者:ramen
--  发布时间:2012/10/29 10:42:00
--  
 If e.DataCol.Name Like "补休假_*" Then    我要连续指定补休假_1,补休假_2,补休假_3,补休假_4。正确的语法是怎么书写的呢?
     If e.NewValue = "" then
         e.DataRow("已休假期") = e.DataRow("已休假期") - 1
     Else
         e.DataRow("已休假期") = e.DataRow("已休假期") + 1
 End If

--  作者:lin_hailun
--  发布时间:2012/10/29 10:46:00
--  
 代码应该没错,但不清楚你的表结构,截图或者给个例子看看。
--  作者:ramen
--  发布时间:2012/10/29 10:53:00
--  我上传了文件,你看看
我上传了文件,你看看
--  作者:lin_hailun
--  发布时间:2012/10/29 11:13:00
--  
 上传附件,看看。

 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=78