以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助] 多级条件判断 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=97025) |
-- 作者:积水成渊 -- 发布时间:2017/3/4 11:43:00 -- [求助] 多级条件判断 表B有执行时间,执行状态,项目,新值,单据状态等字段,如果执行时间为当天,并且单据状态为 已审核,则判断项目的内容,如果项目的内容为基本工资,则将新值的数据复制到A的基本工资字段中,并且在B表的执行状态更改为已执行。下面是我写的代码,求大神改正: Dim dt As Date = NOW() If e.DataCol.Name = "执行日期" Then If e.DataRow("执行日期") = dt.Date Then If e.DataRow("单据状态") = "已审核" Then e.DataRow("执行状态")= "已执行" If e.DataRow("项目") = "基本工资" Then If e.DataCol.Name = "新值" Then Dim Filter As String = "[工号] = \'" & e.DataRow("工号") & "\' " DataTables("HR_人事档案").ReplaceFor("基本工资", e.NewValue, Filter) End If End If End If End If End If |
-- 作者:有点蓝 -- 发布时间:2017/3/4 14:21:00 -- Select Case e.DataCol.Name Case "执行日期","单据状态","项目" If e.DataRow("执行日期") = Date.Today AndAlso e.DataRow("单据状态") = "已审核" AndAlso e.DataRow("项目") = "基本工资" Then e.DataRow("执行状态")= "已执行" Dim Filter As String = "[工号] = \'" & e.DataRow("工号") & "\' " DataTables("HR_人事档案").ReplaceFor("基本工资", e.DataRow("新值"), Filter) End If End If End Select |
-- 作者:积水成渊 -- 发布时间:2017/3/4 14:45:00 -- 非常感谢,想了很久,终于出结果了 |
-- 作者:积水成渊 -- 发布时间:2017/3/4 14:51:00 -- 这是后面想出来的,没有老师的精炼 Dim dt As Date = NOW() If e.DataCol.name = "单据状态" Then If e.DataRow("单据状态") = "已审核" Then If e.DataRow("执行日期") = dt.Date Then e.DataRow("执行状态")= "已执行" Dim Filter As String = "[工号] = \'" & e.DataRow("工号") & "\' " DataTables("HR_人事档案").ReplaceFor("基本工资", e.DataRow("新值"), Filter) End If End If End If
|