以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助:代码显得有些臃肿 麻烦老师们帮忙简化一下 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=131164) |
-- 作者:李孝春 -- 发布时间:2019/2/19 9:57:00 -- 求助:代码显得有些臃肿 麻烦老师们帮忙简化一下 "是否关联" ,"审结处理结果"属于一个表 当两个有一个发生变化时 查找告知内容表 和关联人信息表 如果是否关联=是 审结处理结果不等于空 新增告知内容 为已审结 如果是否关联=是 审结处理结果等于空 新增告知内容 为处理中 下面的代码显得有些臃肿 麻烦老师们帮忙简化一下 谢谢! Case "是否关联" ,"审结处理结果" If e.DataRow("是否关联") ="是" Then If e.DataRow("审结处理结果") Is Nothing Then Dim dr2 As DataRow = DataTables("告知内容").Find("部门受案号 = \'" & e.DataRow("部门受案号") & "\' and 流程时间 = #" & e.DataRow("审结日期") & "# ") Dim dr1 As DataRow = DataTables("人员关联表").Find("部门受案号 = \'" & e.DataRow("部门受案号") & "\' ") \'If dr2 Is Nothing Then \'如果不存在同编号的订单 dr2 = DataTables("告知内容").AddNew() dr2("部门受案号")=e.DataRow("部门受案号") dr2("嫌疑人姓名")=e.DataRow("嫌疑人姓名") dr2("是否告知")="否" dr2("注意事项")="请注意" dr2("案件状态")="已审结" dr2("涉嫌案由")=e.DataRow("涉嫌案由") dr2("案件类别")=e.DataRow("案件类别") dr2("流程时间")= e.DataRow("审结日期") dr2("姓名")=dr1("姓名") \'End If Else Dim dr22 As DataRow = DataTables("告知内容").Find("部门受案号 = \'" & e.DataRow("部门受案号") & "\' and 流程时间 = #" & e.DataRow("受理日期") & "# ") Dim dr12 As DataRow = DataTables("人员关联表").Find("部门受案号 = \'" & e.DataRow("部门受案号") & "\' ") If dr22 Is Nothing Then \'如果不存在同编号的订单 Else If dr22("姓名")=dr12("姓名") Then ’查找告知内容表中 如果姓名等于人员关联表姓名 Else dr22 = DataTables("告知内容").AddNew() dr22("部门受案号")=e.DataRow("部门受案号") dr22("嫌疑人姓名")=e.DataRow("嫌疑人姓名") dr22("是否告知")="否" dr22("注意事项")="请注意" dr22("案件状态")="办理中" dr22("涉嫌案由")=e.DataRow("涉嫌案由") dr22("案件类别")=e.DataRow("案件类别") dr22("流程时间")= e.DataRow("受理日期") dr22("姓名")=dr12("姓名") End If End If End If End If
[此贴子已经被作者于2019/2/19 10:26:46编辑过]
|
-- 作者:y2287958 -- 发布时间:2019/2/19 10:20:00 -- If e.DataRow("是否关联") ="是" Then Dim dr2 As DataRow = DataTables("告知内容").Find("部门受案号 = \'" & e.DataRow("部门受案号") & "\' and 流程时间 = #" & e.DataRow("审结日期") & "# ") Dim dr1 As DataRow = DataTables("人员关联表").Find("部门受案号 = \'" & e.DataRow("部门受案号") & "\' ") Dim dr As DataRow Dim s As String If e.DataRow("审结处理结果") Is Nothing Then dr = DataTables("告知内容").AddNew() s = "已审结" Else If dr22 IsNot Nothing Then If dr2("姓名")<>dr1("姓名") Then \'查找告知内容表中 如果姓名等于人员关联表姓名 dr = DataTables("告知内容").AddNew() s = "办理中" End If End If End If dr("部门受案号")=e.DataRow("部门受案号") dr("嫌疑人姓名")=e.DataRow("嫌疑人姓名") dr("是否告知")="否" dr("注意事项")="请注意" dr("案件状态")= s dr("涉嫌案由")=e.DataRow("涉嫌案由") dr("案件类别")=e.DataRow("案件类别") dr("流程时间")= e.DataRow("审结日期") dr("姓名")=dr1("姓名") End If 试试,具体问题具体分析,最好上实例
[此贴子已经被作者于2019/2/19 10:20:22编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/2/19 10:30:00 -- Case "是否关联" ,"审结处理结果" If e.DataRow("是否关联") ="是" Then Dim dr1 As DataRow = DataTables("人员关联表").Find("部门受案号 = \'" & e.DataRow("部门受案号") & "\' If dr1 IsNot Nothing Then Dim dr2 As DataRow If e.DataRow.Isnull("审结处理结果") Then dr2 = DataTables("告知内容").AddNew() dr2("案件状态")="已审结" Else Dim dr22 As DataRow = DataTables("告知内容").Find("部门受案号 = \'" & e.DataRow("部门受案号") & "\' and 流程时间 = #" & e.DataRow("受理日期") & "# and 姓名= \'" & dr1("姓名") & "\'") If dr22 Is Nothing Then \'如果不存在同编号的订单 dr2 = DataTables("告知内容").AddNew() dr2("案件状态")="办理中" End If End If If dr2 IsNot Nothing Then dr2("部门受案号")=e.DataRow("部门受案号") dr2("嫌疑人姓名")=e.DataRow("嫌疑人姓名") dr2("是否告知")="否" dr2("注意事项")="请注意" dr2("涉嫌案由")=e.DataRow("涉嫌案由") dr2("案件类别")=e.DataRow("案件类别") dr2("流程时间")= e.DataRow("审结日期") dr2("姓名")=dr1("姓名") End If End If End If
|