Foxtable(狐表)用户栏目专家坐堂 → 求助:代码显得有些臃肿 麻烦老师们帮忙简化一下


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

主题:求助:代码显得有些臃肿 麻烦老师们帮忙简化一下

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
求助:代码显得有些臃肿 麻烦老师们帮忙简化一下  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4760 积分:34608 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110788 积分:563872 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部