以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  使用sqlserver数据库插入后的数据,怎么样参与狐表计算  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=123984)

--  作者:weibu
--  发布时间:2018/8/28 13:21:00
--  使用sqlserver数据库插入后的数据,怎么样参与狐表计算
表A中有生产日期、保质期、过保日期;   过保日期=生成日期+保质期;          其中生成日期和保质期都是直接插入SQL数据库的,但我想让前台自动计算过保日期字段的值,改如何操作?
--  作者:有点甜
--  发布时间:2018/8/28 14:38:00
--  

直接给数据库插入数据的时候foxtable无法获知和触发事件处理的。

 

方法一:你可以在数据库那里设置触发器,然后计算结果

 

https://www.baidu.com/baidu?wd=sqlserver+%E8%A7%A6%E5%8F%91%E5%99%A8

 

方法二:在foxtable里面,加载数据进来,对于【过保日期】没有值的行,重新计算

 

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

 


--  作者:weibu
--  发布时间:2018/9/4 14:59:00
--  
甜老师,对于方法二,我是在哪个事件中,写什么样的语句?
我在相应表的AFTERLOAD事件中写如下代码报错:
Select Case e.DataCol.Name
    Case "生产日期","保质期"
        If e.DataRow.IsNull("生产日期") Or e.DataRow.IsNull("保质期") Then
            e.DataRow("过保日期") = Nothing
        Else
            e.DataRow("过保日期") = e.DataRow("生产日期").AddDays(e.DataRow("保质期"))
        End If
End Select

--  作者:有点甜
--  发布时间:2018/9/4 15:06:00
--  

afterLoad事件,写代码

 

For Each dr As DataRow In e.DataTable.Select("过保日期 is null and 生产日期 is not null and 保质期 is not null")
    dr("过保日期") = dr("生产日期").AddDays(dr("保质期"))
Next