以文本方式查看主题

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

--  作者:小帅
--  发布时间:2014/11/7 10:55:00
--  [求助]日期自动计算

问题描述:


此主题相关图片如下:0000.png
按此在新窗口浏览图片


如果【借款日期】为 星期 五,则【收款日期】【借款日期】+ 3

 

如果【借款日期】为 星期 六,则【收款日期】【借款日期】+ 2

 

如果【借款日期】为 星期日、星期一、星期二 、星期三、星期四,则【收款日期】【借款日期】+ 1

 

 

怎么体现出来?


--  作者:有点甜
--  发布时间:2014/11/7 11:00:00
--  

If e.DataCol.name = "借款日期" Then
    Dim d As Date = e.newvalue
    If d = Nothing Then
        e.DataRow("还款日期") = Nothing
    Else
        If d.DayOfWeek = 4 Then
            e.DataRow("还款日期") = d.AddDays(3)
        Else If d.DayOfWeek = 5 Then
            e.DataRow("还款日期") = d.AddDays(2)
        Else
            e.DataRow("还款日期") = d.AddDays(1)
        End If
    End If
End If


--  作者:Bin
--  发布时间:2014/11/7 11:01:00
--  
要编码实现

datacolchanged 事件
if e.datacol.name="借款金额" then
dim dw as integer = e.datarow("借款日期").DayOfWeek
if dw=5 then
   e.datarow("收款日期")=e.datarow("借款日期").AddDays(3)
else if dw = 6 then
  e.datarow("收款日期")=e.datarow("借款日期").AddDays(2)
else
  e.datarow("收款日期")=e.datarow("借款日期").AddDays(1)
end if
end if

--  作者:czy
--  发布时间:2014/11/7 13:08:00
--  

少点判断也可以这样

 

If e.DataCol.name = "借款日期"
    Dim dr As DataRow = e.DataRow
    dr("还款日期") = iif(DatePart("w", dr("借款日期")) < 6 ,dr("借款日期").AddDays(1),dr("借款日期").AddDays(9-DatePart("w", dr("借款日期"))))
End If