以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请问 这个代码有什么问题? 新增行的时候 就显示错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=103408)

--  作者:约翰舒
--  发布时间:2017/7/7 11:13:00
--  请问 这个代码有什么问题? 新增行的时候 就显示错误

新增行的时候 就会出现,代码如下:

If e.DataCol.name="r301"
    If e.DataRow("r319") = "一次性支付" Then
        e.DataRow("r306") = e.DataRow("r318")
    Else
        e.DataRow("r306") = e.DataRow("r315").AddMonths(e.DataRow("r303")).AddDays(-1)
    End If
End If

{r301(合同编号):字符型 是表r2的字表;r319(付款方式):字符型 直接从父表中用表达式提取parent(r2_r3).r202;r306(应付时间) 日期时间型 ;r318 (到期日期) 日期时间型 直接从父表中用表达式提取;r315 (开始日期) 日期时间型 直接从父表中用表达式提取;


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20170707110510.png
图片点击可在新窗口打开查看

--  作者:约翰舒
--  发布时间:2017/7/7 11:15:00
--  
这个逻辑是 根据付款方式 和期数(r303) 来计算应付时间;如果付款方式为一次性支付是 应付时间 为到期日期  否则为 开始日期+期数-1天
--  作者:有点甜
--  发布时间:2017/7/7 11:20:00
--  

Select Case e.DataCol.Name
    Case "r319", "r318", "r315", "r303", "r301"
        If e.DataRow("r319") = "一次性支付" Then
            e.DataRow("r306") = e.DataRow("r318")
        Else           
            If e.DataRow("r315") = Nothing Then              
                e.DataRow("r306") = Nothing
            Else
                e.DataRow("r306") = e.DataRow("r315").AddMonths(e.DataRow("r303")).AddDays(-1)
            End If
        End If
End Select


--  作者:约翰舒
--  发布时间:2017/7/7 11:30:00
--  回复:(有点甜)Select Case e.DataCol.Name &n...
太棒了!!!非常感谢