Foxtable(狐表)用户栏目专家坐堂 → [求助] 急求代码 搞定(郁闷-这么简单的问题也要想这么久)


  共有16153人关注过本帖树形打印复制链接

主题:[求助] 急求代码 搞定(郁闷-这么简单的问题也要想这么久)

帅哥哟,离线,有人找我吗?
舜风
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 小学文化
等级:小狐 帖子:374 积分:2318 威望:0 精华:0 注册:2008/12/6 20:34:00
[求助] 急求代码 搞定(郁闷-这么简单的问题也要想这么久)  发帖心情 Post By: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
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By: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那部分少一个单引号.

 回到顶部
帅哥哟,离线,有人找我吗?
舜风
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 小学文化
等级:小狐 帖子:374 积分:2318 威望:0 精华:0 注册:2008/12/6 20:34:00
  发帖心情 Post By: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("半年奖")
因为奖金发放表会一直存在,如果没有这个条件,至下个月造表时,又会再一次导入半年奖图片点击可在新窗口打开查看


 回到顶部