以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=16749)

--  作者:lsf5138
--  发布时间:2012/2/22 16:52:00
--  代码


Select Case e.DataCol.Name
    Case "日期"
        If e.DataRow.IsNull("日期") Then
            e.DataRow("年度") = Nothing
        Else
            e.DataRow("年度") = cdate(e.DataRow("日期")).year
        End If
End Select

 

能不给这个代码加个条件了(当前行的 待收ID 这列为空值才可用)

 

 

Select Case e.DataCol.Name
    Case "日期"
        If e.DataRow.IsNull("日期") Then
            e.DataRow("年度") = Nothing
        Else
            e.DataRow("年度") = cdate(e.DataRow("日期")).year
        End If
End Select

 


If e.DataCol.Name = "待收ID" Then \'发生变化的是产品编号吗?
    \'在产品表找出该产品
    Dim dr As DataRow
    dr = DataTables("待收").Find("待收ID = " & "\'" & e.DataRow("待收ID") & "\'" )
    If dr IsNot Nothing \'如果找到, 则设置各列内容
        e.DataRow("来往单位")= dr("来往单位")
        e.DataRow("年度")= dr("年度")
        e.DataRow("项目")= dr("项目")
        e.DataRow("项目明细")= dr("项目明细")

 

 

我在行变化事件同时写这2个代码,现在是可以用,但不知会不会有冲突。

 

[此贴子已经被作者于2012-2-22 17:00:47编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/2/22 17:11:00
--  

没有冲突,不过可以合并:

 

Select Case e.DataCol.Name
    Case "日期"
        If e.DataRow.IsNull("日期") Then
            e.DataRow("年度") = Nothing
        Else
            e.DataRow("年度") = cdate(e.DataRow("日期")).year
        End If
    Case "待收ID"
        Dim dr As DataRow
        dr = DataTables("待收").Find("待收ID = " & "\'" & e.DataRow("待收ID") & "\'" )
        If dr IsNot Nothing \'如果找到, 则设置各列内容
            e.DataRow("来往单位")= dr("来往单位")
            e.DataRow("年度")= dr("年度")
            e.DataRow("项目")= dr("项目")
            e.DataRow("项目明细")= dr("项目明细")
        End If
End Select