以文本方式查看主题

-  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=121558)

--  作者:快乐的小妖
--  发布时间:2018/7/9 14:35:00
--  关于一个多列的排除的问题
我司有设备出租给用户使用,因此希望根据协议的存续情况来计算租期月数,我的问题是,如何根据“交付日期”、“退回日期”、“移机日期”、“改期日期”来计算“应结算月数”?逻辑关系是:如果“退回日期”、“移机日期”、“改期日期”都是空值,那么“应结算月数”是计算到“today",如果“退回日期”、“移机日期”、“改期日期”任何一列有日期,则"应结算月数”则使用对应列的日期来计算。
目前为止,我只能做到判断“退回日期”、“移机日期”、“改期日期”都为空则“应结算月数”是计算到“today"。后面的试了几次,计算结果都不对,因此 只能求助高手啦~~~~~~~
具体请高手们见附件~~~~~
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:设备租期.table


--  作者:有点甜
--  发布时间:2018/7/9 16:43:00
--  

DataColChanged事件

 

Select Case e.DataCol.Name
    Case "交付日期","退回日期","移机日期","改期日期"
        Dim ary() As String = {"退回日期","移机日期","改期日期"}
        Dim d As Date = Date.Today
        For Each s As String In ary
            If e.DataRow(s) <> Nothing Then
                d = e.DataRow(s)
                Exit For
            End If
        Next
        Dim y,m,d1 As Integer
        DateYMD(e.DataRow("交付日期"),d,y,m,d1)
        e.DataRow("应结算月") = y*12+m
End Select


--  作者:快乐的小妖
--  发布时间:2018/7/9 17:27:00
--  多谢老师,问题已经解决啦
多谢老师指点,果然 比我自己写的代码简洁了不知道多少~~~所以我的代码一直不起作用图片点击可在新窗口打开查看