以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  逻辑问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=173008)

--  作者:鲁吉
--  发布时间:2021/11/10 16:02:00
--  逻辑问题
当开工时间早于本年第一天,则“开工性质”列自动显示为  “续建” ,晚于本年第一天则“开工性质”列自动显示为  “新建” 
如何设计代码?
[此贴子已经被作者于2021/11/10 16:02:54编辑过]

--  作者:鲁吉
--  发布时间:2021/11/10 16:13:00
--  
Dim y As Integer = Date.today.year \'指定年份
Dim dt1 As New Date(y, 1, 1)
Dim k As String = Tables("项目列表").Current("开工情况")
If Tables("项目列表").Current("开工时间") > = dt1 Then
    k = "新开"
Else
    k = "续建"
End If

以上代码没起作用

--  作者:minxizai
--  发布时间:2021/11/10 16:16:00
--  

Dim FirstDay As Date = New Date(2021,1,1)

if e.datarow.isnull("开工时间") then
else
if e.datarow("开工时间") < FirstDay then
e.datarow("开工性质") = "续建"
else
e.datarow("开工性质") = "新建"
end if
end if
[此贴子已经被作者于2021/11/10 16:17:43编辑过]

--  作者:有点蓝
--  发布时间:2021/11/10 16:16:00
--  
Dim y As Integer = Date.today.year \'指定年份
Dim dt1 As New Date(y, 1, 1)
If Tables("项目列表").Current("开工时间") > = dt1 Then
    Tables("项目列表").Current("开工情况") = "新开"
Else
    Tables("项目列表").Current("开工情况") = "续建"
End If

--  作者:有点蓝
--  发布时间:2021/11/10 16:17:00
--  
或者

Dim y As Integer = Date.today.year \'指定年份
Dim dt1 As New Date(y, 1, 1)
Dim k As String 
If Tables("项目列表").Current("开工时间") > = dt1 Then
    k = "新开"
Else
    k = "续建"
End If
Tables("项目列表").Current("开工情况") = k

--  作者:鲁吉
--  发布时间:2021/11/10 16:45:00
--  
把这些代码放在了表事件 加载后执行afterload 没有任何效果
--  作者:有点蓝
--  发布时间:2021/11/10 16:46:00
--  
代码放在哪个表事件?
--  作者:鲁吉
--  发布时间:2021/11/10 16:47:00
--  
afterload 
--  作者:有点蓝
--  发布时间:2021/11/10 16:57:00
--  
Tables("项目列表").Current指的是当前行,只有一行数据起作用。如果要所有行有效,到datacolchanged事件处理,加载后重置一次列
--  作者:鲁吉
--  发布时间:2021/11/10 17:12:00
--  
datacolchanged事件是数据发生变化后,可是比较的是本年第一天,并不在表的数据列。目前任何行都没有出现变化(没有给“开工情况”列的当前格赋值)
[此贴子已经被作者于2021/11/10 17:14:20编辑过]