Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共32 条记录, 每页显示 10 条, 页签: [1] [2][3][4]
[浏览完整版]

标题:[求助]代码出错

1楼
iyplx2425 发表于:2024/1/8 18:38:00
一、狐表的帮助中搜索“日期”,选“年龄和工龄的精确计算”,方法一DataColChanged事件代码,复制到表中,代码不存在了,变成了一长串日期;复制到帖子里,复制不了,而且引起帖子界面出错退出(无法在此粘贴)。不知为什么?

二 、将该代码改成如下:
If e.DataCol.Name = "入职日期" Then
    If e.DataRow.IsNull("入职日期") Then '如果没有输入出生日期
        e.DataRow("工龄") = Nothing '则清空年龄
    Else
        '否则计算年龄
        e.DataRow("工龄") =Math.Round( Date.Today.Year - e.DataRow("入职日期").Year,2)
    End If
End If
意在采用小数点计算工龄,但计算不出来。请教为什么?
[此贴子已经被作者于2024/1/8 18:47:06编辑过]
2楼
有点蓝 发表于:2024/1/8 20:18:00
1、我测试没有问题,请上传实例说明

2、Year 本来就是整数,整数和整数加减怎么可能出来小数?
3楼
iyplx2425 发表于:2024/1/9 10:59:00

Select Case e.DataCol.name
    Case "入职日期"
        If e.DataRow.IsNull("入职日期") Then
            e.DataRow("工龄") = Nothing
        Else
            Dim tp As TimeSpan = Date.today - CDate(e.DataRow("入职日期"))
            e.DataRow("工龄") = Math.Round(tp.TotalDays / 365.2422,2)
        End
If

End
Select

今天这个代码又可以用了,但用在表事件中,不出计算结果。列属性用双精度与单精度都一样。

[此贴子已经被作者于2024/1/9 10:59:56编辑过]
4楼
有点蓝 发表于:2024/1/9 11:04:00
已有的数据,编辑代码后,必须重置列一次
5楼
iyplx2425 发表于:2024/1/9 12:31:00
重置也不出计算结果。
另外,有起始日期,求N个月后的截止日期,代码怎么写?谢谢。
代码一时半会记不了,多用才能逐步记住。
[此贴子已经被作者于2024/1/9 13:45:14编辑过]
6楼
有点蓝 发表于:2024/1/9 13:33:00
选中"入职日期"列在重置
7楼
iyplx2425 发表于:2024/1/9 13:43:00
工龄问题解决了。
有起始日期,求N个月后的截止日期,代码怎么写?谢谢。
[此贴子已经被作者于2024/1/9 13:44:00编辑过]
8楼
有点蓝 发表于:2024/1/9 13:46:00
参考:http://www.foxtable.com/webhelp/topics/1452.htm
9楼
iyplx2425 发表于:2024/1/9 13:47:00
另外,狐表中的表达式是不是只能进行数学运算,而不是像易表那样可以使用函数?
[此贴子已经被作者于2024/1/9 13:48:32编辑过]
10楼
有点蓝 发表于:2024/1/9 13:49:00
就这些:http://www.foxtable.com/webhelp/topics/0102.htmhttp://www.foxtable.com/webhelp/topics/0100.htmhttp://www.foxtable.com/webhelp/topics/0106.htm
共32 条记录, 每页显示 10 条, 页签: [1] [2][3][4]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02734 s, 2 queries.