Foxtable(狐表)用户栏目专家坐堂 → 如何写入工龄_年,工龄_月,工龄_日?


  共有4290人关注过本帖树形打印复制链接

主题:如何写入工龄_年,工龄_月,工龄_日?

帅哥哟,离线,有人找我吗?
wren
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:162 积分:1160 威望:0 精华:0 注册:2014/1/27 13:28:00
如何写入工龄_年,工龄_月,工龄_日?  发帖心情 Post By:2014/2/21 15:47:00 [只看该作者]

 请问我在项目事件里在AfterOpenProject事件中添加代码:
DataTables("员工明细表").DataCols("入职日期").RaiseDataColChanged() 

提示:
错误所在事件:表,员工明细表, DataColChanged
详细错误信息:
调用的目标发生了异常。
列“工龄”不属于表 员工明细表。


我应该如何在AfterOpenProject事件中写入工龄_年,工龄_月,工龄_日!!才能正常显示每个员工的工龄!
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/2/21 15:48:00 [只看该作者]

建议您用这个方法:
http://www.foxtable.com/help/topics/1485.htm

先找出是哪一行出错,然后分析原因,搞不定,可以在论坛发帖,贴出代码,并告诉我们运行到哪一行出错,以及错误提示。

 回到顶部
帅哥哟,离线,有人找我吗?
wren
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:162 积分:1160 威望:0 精华:0 注册:2014/1/27 13:28:00
  发帖心情 Post By:2014/2/21 16:24:00 [只看该作者]

.NET Framework 版本:2.0.50727.4971
Foxtable 版本:2013.10.14.1
错误所在事件:表,员工明细表, DataColChanged
详细错误信息:
调用的目标发生了异常。
(从类型“Integer”到类型“Date”的转换无效。)
请问这是什么意思


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/2/21 16:25:00 [只看该作者]

你把数值 当作日期来使用了.

你把代码发出来看看

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/2/21 16:28:00 [只看该作者]

错误提示其实很清楚了,员工明细表的DataColChanged事件有问题,员工名字表没有工龄这一列,看图片应该是“工龄_年”

你可以贴出员工明细表的DataColChanged事件给大家看看。


 回到顶部
帅哥哟,离线,有人找我吗?
wren
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:162 积分:1160 威望:0 精华:0 注册:2014/1/27 13:28:00
  发帖心情 Post By:2014/2/21 16:31:00 [只看该作者]

Select Case e.DataCol.name
    Case "入职日期"
        If e.DataRow.IsNull("入职日期") Then
            e.DataRow("工龄_年") = Nothing
            e.DataRow("工龄_月") = Nothing
            e.DataRow("工龄_日") = Nothing
        Else
            Dim y,m,d As Integer
            DateYMD(e.DataRow("入职日期"),Date.Today,y,m,d)
            e.DataRow("工龄_年") = y
            e.DataRow("工龄_月") = m
            e.DataRow("工龄_日") = d
        End If
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/2/21 16:39:00 [只看该作者]

e.DataRow("工龄_年") = y
            e.DataRow("工龄_月") = m
            e.DataRow("工龄_日") = d

错误原因应该是你这3个列的类型是日期类型, 应该改为数值类型

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/2/21 16:42:00 [只看该作者]

直接做个例子文件发上来,一分钟就知道结果
[此贴子已经被作者于2014-2-21 16:42:37编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
wren
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:162 积分:1160 威望:0 精华:0 注册:2014/1/27 13:28:00
  发帖心情 Post By:2014/2/21 16:42:00 [只看该作者]

真的是这样~~谢谢~~


 回到顶部