以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- [求助] 急求代码 搞定(郁闷-这么简单的问题也要想这么久) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=5730)
|
-- 作者:舜风
-- 发布时间:2010/1/7 0:09:00
-- [求助] 急求代码 搞定(郁闷-这么简单的问题也要想这么久)
问题一:
If e.DataCol.Name = "姓名" Then If e.NewValue Is Nothing Then e.DataRow("应发金额") = Nothing Else Dim dr As DataRow dr = DataTables("奖金发放表").Find("[姓名] = \'" & e.DataRow("姓名") & "\'") If dr IsNot Nothing and e.DataRow("发放日期") = "\'" & dr("发放日期") & "\'" Then e.DataRow("应发金额") = dr("半年奖") End If End If End If 答案: If e.DataCol.Name = "姓名" Then If e.NewValue Is Nothing Then e.DataRow("应发金额") = Nothing Else Dim dr As DataRow dr = DataTables("奖金发放表").Find("[姓名] = \'" & e.DataRow("姓名") & "\'") If dr IsNot Nothing Then If dr IsNot Nothing and e.DataRow("发放日期") = dr("发放日期") Then e.DataRow("应发金额") = dr("半年奖") End If End If End If End If
另一问题:
Dim dr3 As DataRow = DataTables("工资表").Find("[姓名] = \'" & e.DataRow("姓名") & "\'") If e.DataCol.Name = "实发金额" OrElse e.DataCol.Name = "发放日期" Then If dr3 IsNot Nothing And e.DataRow("发放日期") = dr3("发放日期") then dr3("半年奖") = e.DataRow("实发金额") Else dr3("半年奖") = Nothing End If End If End If 答案: Dim dr3 As DataRow = DataTables("工资表").Find("[姓名] = \'" & e.DataRow("姓名") & "\'") If e.DataCol.Name = "半年奖" OrElse e.DataCol.Name = "发放日期" Then If dr3 IsNot Nothing If dr3 IsNot Nothing And e.DataRow("发放日期") = dr3("发放日期") then dr3("应发金额") = e.DataRow("半年奖") Else dr3("应发金额") = Nothing End If End If End If
[此贴子已经被作者于2010-1-7 10:06:56编辑过]
|
-- 作者:blackzhu
-- 发布时间:2010/1/7 7:33:00
--
If e.DataCol.Name = "姓名" Then If e.Datarow.IsNull("姓名") Then e.Datarow("应发金额") = DBNull.Value Else Dim dr As DataRow dr = DataTables("奖金发放表").Find("[姓名] = \'" & e.datarow("姓名") & "\'") If dr IsNot Nothing Then e.DataRow("应发金额") = dr("半年奖") end if end if end if
你试试吧,估计是FIND那部分少一个单引号.
|
-- 作者:舜风
-- 发布时间:2010/1/7 9:38:00
--
以下是引用blackzhu在2010-1-7 7:33:00的发言:
If e.DataCol.Name = "姓名" Then If e.Datarow.IsNull("姓名") Then e.Datarow("应发金额") = DBNull.Value Else Dim dr As DataRow dr = DataTables("奖金发放表").Find("[姓名] = \'" & e.datarow("姓名") & "\'") If dr IsNot Nothing Then e.DataRow("应发金额") = dr("半年奖") end if end if end if
你试试吧,估计是FIND那部分少一个单引号.
哦,少个单引号是我发帖时搞错了,或也可以dr = DataTables("奖金发放表").Find("[姓名] = \'" & e.NewValue & "\'") 但这些都不是问题关键,我是想条件 e.DataRow("发放日期") = dr("发放日期") 成立后才 e.DataRow("应发金额") = dr("半年奖") 因为奖金发放表会一直存在,如果没有这个条件,至下个月造表时,又会再一次导入半年奖
|