Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
一段跨表条件引用的代码,要求将设备折旧表中符合条件的产权单位的值填写到设备借用表产权单位的对应单元格中,此段代码是按照帮助中的代码改写的,帮助中的条件都是字符串数据,而本例的条件中有日期数据,所以代码运行后没有结果,请各位老师帮助看看,代码应该如何修改,谢谢!!
设备借用_DataColChanged
Case "设备编号","借用日期","归还日期"
Dim dr As DataRow = e.DataRow
Dim pr As DataRow
If dr.IsNull("设备编号") OrElse dr.IsNull("借用日期") OrElse dr.IsNull("归还日期") Then
dr("产权单位") = Nothing
Else
Dim filter As String
filter = "设备编号 = '" & dr("设备编号") & "' And 启用日期 <= '" & dr("借用日期") & "' And 停用日期 >= '" & dr("归还日期") & "'"
pr = DataTables("设备折旧").Find(filter)
If pr IsNot Nothing Then
dr("产权单位") = pr("产权单位")
End If
End If
附上项目文件:
下载信息 [文件大小: 下载次数: ] | |
![]() |
谢谢狐爸老师的回复。根据狐爸老师的指点,我在代码中加了两组#号和三组方括号(如下),但是还是不能显示结果,不知代码错在哪里,还请各位老师指教,谢谢!!
Case "设备编号","借用日期","归还日期"
Dim dr As DataRow = e.DataRow
Dim pr As DataRow
If dr.IsNull("设备编号") OrElse dr.IsNull("借用日期") OrElse dr.IsNull("归还日期") Then
dr("产权单位") = Nothing
Else
Dim filter As String
filter = "[设备编号] = '" & dr("设备编号") & "' And [启用日期] <= # " & dr("借用日期") & "# And [停用日期] >= # " & dr("归还日期") & "# "
pr = DataTables("设备折旧").Find(filter)
If pr IsNot Nothing Then
dr("产权单位") = pr("产权单位")
End If
End If
呵呵,代码应该没有错,不能运行的原因在于这个:
http://www.foxtable.com/help/topics/2242.htm
你的代码结构是:
Select Case e.DataCol.Name
Case = "设备编号"
Case "去向"
Case "借用日期","归还日期"
Case "设备编号","借用日期","归还日期"
Dim dr As DataRow = e.DataRow
Dim pr As DataRow
If dr.IsNull("设备编号") OrElse dr.IsNull("借用日期") OrElse dr.IsNull("归还日期") Then
dr("产权单位") = Nothing
Else
Dim filter As String
filter = "设备编号 = '" & dr("设备编号") & "' And 启用日期 <= '" & dr("借用日期") & "' And 停用日期 >= '" & dr("归还日期") & "'"
pr = DataTables("设备折旧").Find(filter)
If pr IsNot Nothing Then
dr("产权单位") = pr("产权单位")
End If
End If
End Select
所以你修改设备编号、借用日期、归还日期中的任何一列,最后面的一段代码都不会执行的,被前面的Case语句拦截了。