以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=70316)

--  作者:zcgmxf
--  发布时间:2015/6/18 18:23:00
--  [求助]

老师好!我下面这段代码怎么执行不了,就是计算不出  第三次按程序接种日期,在命令窗口可以计算出 dd 也能计算出第三次间隔 = 第三次间隔 + dd

请指教,谢谢!

Dim d As DataRow = e.DataRow
Dim y,m,dd As Integer
Dim d1 As Date = d("第二次实际接种日期")
Dim d2 As Date = d("第二次按程序接种日期")
DateYMD(d1,d2,y,m,dd)
Select Case e.DataCol.Name
    Case "第二次接种剂量","第二次按程序接种日期","第三次接种剂量","第三次按程序接种日期","第二次实际接种日期","第三次间隔"
        If  e.DataRow("第二次接种剂量")  = Nothing Then
            d("第二次按程序接种日期") = Nothing
        Else
            d("第二次按程序接种日期") = e.DataRow("首次接种日期").AddDays(e.DataRow("第二次间隔"))
        End If
        
        If  e.DataRow("第三次接种剂量") = Nothing Then
            d("第三次按程序接种日期") = Nothing
        Else
         If d("第二次实际接种日期") > d("第二次按程序接种日期")  Then
            d("第三次按程序接种日期") = e.DataRow("首次接种日期").AddDays(e.DataRow("第三次间隔") + dd )
            Else
            d("第三次按程序接种日期") = e.DataRow("首次接种日期").AddDays(e.DataRow("第三次间隔"))

        End If
    End If


--  作者:zcgmxf
--  发布时间:2015/6/18 18:29:00
--  

就是这段代码不执行,其它都可以

 

 

d("第三次按程序接种日期") = e.DataRow("首次接种日期").AddDays(e.DataRow("第三次间隔") + dd )


--  作者:大红袍
--  发布时间:2015/6/18 19:15:00
--  

 加入msgbox弹出对应的值

 

Dim d As DataRow = e.DataRow
Dim y,m,dd As Integer
Dim d1 As Date = d("第二次实际接种日期")
Dim d2 As Date = d("第二次按程序接种日期")
DateYMD(d1,d2,y,m,dd)
Select Case e.DataCol.Name
    Case "第二次接种剂量","第二次按程序接种日期","第三次接种剂量","第三次按程序接种日期","第二次实际接种日期","第三次间隔"
        If  e.DataRow("第二次接种剂量")  = Nothing Then
            d("第二次按程序接种日期") = Nothing
        Else
            d("第二次按程序接种日期") = e.DataRow("首次接种日期").AddDays(e.DataRow("第二次间隔"))
        End If
        msgbox(2)
        If  e.DataRow("第三次接种剂量") = Nothing Then
            d("第三次按程序接种日期") = Nothing
        Else
            msgbox(3)
            If d("第二次实际接种日期") > d("第二次按程序接种日期")  Then
                msgbox(4)
                d("第三次按程序接种日期") = e.DataRow("首次接种日期").AddDays(e.DataRow("第三次间隔") + dd )
                msgbox(e.DataRow("第三次间隔") + dd )
            Else
                msgbox(5)
                d("第三次按程序接种日期") = e.DataRow("首次接种日期").AddDays(e.DataRow("第三次间隔"))
               
            End If
        End If