以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [讨论]时间差计算不能自动更新  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=35639)

--  作者:benhu
--  发布时间:2013/6/29 9:42:00
--  [讨论]时间差计算不能自动更新
时间差计算:加入代码在系统打开后不能自更新天数,只维持第一次填日期时计算出的天数,

是不是Afterload这句有问题,还是放错地方了

在表属性DataColchanged中
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)
        End If
End Select

在Afterload中加
DataTables("表A").DataCols("日期").RaiseDataColChanged()

--  作者:Bin
--  发布时间:2013/6/29 9:46:00
--  
上例子看看,代码是正确的.应该会重新计算的.
--  作者:benhu
--  发布时间:2013/6/29 10:28:00
--  
传个例子,麻烦帮忙看看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:系统-v1.0.rar

[此贴子已经被作者于2013-6-29 10:28:40编辑过]

--  作者:Bin
--  发布时间:2013/6/29 10:44:00
--  
没有问题的啊,我测试都正常的啊.使用以下语句

DataTables("员工信息管理").DataCols("合同开始日期").RaiseDataColChanged()

--  作者:benhu
--  发布时间:2013/6/29 10:54:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:a.bmp
图片点击可在新窗口打开查看

可是我这里打开却是不能自动更新,会不会与锁定行有关,还是跟试用版有关

--  作者:Bin
--  发布时间:2013/6/29 11:01:00
--  
你的窗口打开事件并未发现有这段代码.  锁定行,是否试用版都没关系的(试用期过的了的话就不好说了)

我帮你把代码加载打开项目中了.


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:sample-v1.0.table



--  作者:benhu
--  发布时间:2013/6/29 11:16:00
--  
谢谢。

但还是有一点小疑问:这句不是只要加在表属性的Afterload.事件中就可以了吗。为什么还要加在窗体事件中

DataTables("员工信息管理").DataCols("合同开始日期").RaiseDataColChanged()

--  作者:Bin
--  发布时间:2013/6/29 11:21:00
--  

AfterLoad

如果还没有接触动态数据加载,可以暂时忽略本事件。

在重新加载数据后执行。
不管是通过加载树加载数据,还是自己编写代码执行Load方法加载数据,都会执行此事件。


看清楚表AfterLoad事件的描述哦.




--  作者:benhu
--  发布时间:2013/6/29 11:26:00
--  
好的,谢谢您的解答,改天我看再细看一遍