以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  通过表达式列,是否能够计算两列日期之间的天数?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=121228)

--  作者:guosheng
--  发布时间:2018/7/2 11:08:00
--  通过表达式列,是否能够计算两列日期之间的天数?
通过表达式列,是否能够计算两列日期之间的天数?
如果表达式列不能实现,通过代码计算天数的话,应该将相应的代码放到哪个位置啊?

例如:
If e.DataRow.IsNull("计划完成时间")=False
 Dim jjdq As timespan= Cdate(e.DataRow("计划完成时间"))-rq
       If e.DataRow.IsNull("实际完成时间")
             e.DataRow("即将到期天数")=jjdq.totaldays
       End If
      If jjdq.totaldays<0
           e.DataRow("即将到期天数")=Nothing
       End If
End If
[此贴子已经被作者于2018/7/2 11:17:22编辑过]

--  作者:有点甜
--  发布时间:2018/7/2 11:26:00
--  

代码写到datacolchanged事件

 

http://www.foxtable.com/webhelp/scr/1452.htm

 


--  作者:guosheng
--  发布时间:2018/7/2 11:30:00
--  
rq 为全局变量,记录系统当前日期。
如果代码写到表的datacolchanged事件,除非“计划完成时间”变化了才会触发事件吧。该写到哪里啊?(rq的变化引起事件间隔的变化)或怎么实现比较好啊。
[此贴子已经被作者于2018/7/2 11:38:25编辑过]

--  作者:有点甜
--  发布时间:2018/7/2 11:40:00
--  

参考

 

http://www.foxtable.com/webhelp/scr/1497.htm

 


--  作者:guosheng
--  发布时间:2018/7/2 12:59:00
--  
通过GlobalVariableChanged事件,以下代码,怎么没有触发重置列啊。老师帮看看吧。

If e.name="rq"
Dim drs As List(Of DataRow)
    drs = DataTables("计划执行情况表").Select("实际完成时间 is null")
    If drs.count>0
    For Each dr As DataRow In drs
        DataTables("计划执行情况表").DataCols("计划完成时间").RaiseDataColChanged(dr)
    Next
    End If
End If

--  作者:有点甜
--  发布时间:2018/7/2 14:38:00
--  

1、要用vars变量

 

http://www.foxtable.com/webhelp/scr/0325.htm

 

2、代码改成

 

If e.name="rq"
    DataTables("计划执行情况表").DataCols("计划完成时间").RaiseDataColChanged("实际完成时间 is null")
End If