Foxtable(狐表)用户栏目专家坐堂 → [求助]灵活加载数据配置


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

主题:[求助]灵活加载数据配置

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110582 积分:562806 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/12/29 11:38:00 [显示全部帖子]

For Each dt As Row In Tables("岗位执行操作维护表").Rows

Dim nstr As String = " 工单号 Is Null Or ( ( " '调换一下代码位置

Dim nstr1 As String = ") And (" '调换一下代码位置

If  dt("表名") = "装机工单清单表" And dt("执行类型") = "维护区域" And dt("工作岗位") = "内线归档组1"  Then
Dim str = " "& dt("列表项目1") &" "

没看懂全部代码的用法,虽然遍历了所有行,这个代码最终也只能显示最后一行的加载条件


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


加好友 发短信
等级:超级版主 帖子:110582 积分:562806 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/30 17:42:00 [显示全部帖子]

这段代码要做什么功能?没看懂

代码放在哪个表事件?贴出完整代码

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


加好友 发短信
等级:超级版主 帖子:110582 积分:562806 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/30 20:15:00 [显示全部帖子]

不是这里的原因。上传实例看看

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


加好友 发短信
等级:超级版主 帖子:110582 积分:562806 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/31 9:14:00 [显示全部帖子]

实在看不懂这个代码的逻辑。到底要做什么功能?

        For Each dt1 As DataRow In DataTables("岗位执行操作维护表").SQLSelect("") ‘这里实际是返回并遍历这个表的所有行进行处理,有这个必要么?!
            If   dt1("表名") = "弱光整治清单表"  And dt1("工作岗位") = "投诉受理组"  And dt1("执行类型") = "弱光工单匹配"   Then
                Dim str1 = dt1("列表项目1")
                Dim nstr1 As String = "宽带帐号 = '"& r5("宽带帐号") &"' And ( "
                For Each s1 As String In str1.split("/")
                    nstr1 &= " 工单当前环节 = '" & s1 & "' Or "
                Next
                nstr1 = nstr1.substring(0, nstr1.length-4) & " )"
                msgbox(nstr1)
                Dim dr1 As DataRow = DataTables("弱光整治清单表").sqlFind("nstr1")
                '  Dim dr1 As DataRow = DataTables("弱光整治清单表").sqlFind("宽带帐号 = '" & r5("宽带帐号") & "' and ( 工单当前环节 = 'OLT或红外问题工单' or 工单当前环节 = '光端口被关停工单' or 工单当前环节 = '光功率不达标工单' or 工单当前环节 = '核查不达标工单' or 工单当前环节 = '红线内问题工单' or 工单当前环节 = '客户不配合整治工单' or 工单当前环节 = '请求打开光端口工单' or 工单当前环节 = '派错装维人员工单' or 工单当前环节 = '三网合一或入户线问题工单' or 工单当前环节 = '外线跟进处理工单' or 工单当前环节 = '需关停端口工单' )")
                If dr1 IsNot Nothing  Then ‘假设某一行查询有结果,e.DataRow("当前工作内容")就会保存一下数据,里面肯定有存量弱光工单几个文字
                    e.DataRow("当前工作内容") &= vbcrlf &  "该用户为【存量弱光工单】,请处理故障的同时进行【弱光】处理;【弱光整治清单表】系统编号:【"  & dr1("编号") &"】"
                    Vars("当前工作内容") = "该用户为【存量弱光工单】,请处理故障的同时进行【弱光】处理;【弱光整治清单表】系统编号:【"  & dr1("编号") &"】"
                Else ‘假设之后遍历其它行,查询没有结果,因为之前查询有结果,所以Like "*存量弱光工单*"肯定是成立的,那么下面代码又会把之前写入的数据清空
                    If  e.DataRow("当前工作内容")  Like "*存量弱光工单*" Then
                        e.DataRow("当前工作内容")  = e.DataRow("当前工作内容").Replace(Vars("当前工作内容"),"")
                    Else
                    End If
                End If
            End If
        Next

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


加好友 发短信
等级:超级版主 帖子:110582 积分:562806 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/31 10:09:00 [显示全部帖子]

15楼的实例没有循环肯定不会有问题啊!直接使用文字说明一下到底需要做什么功能!

For Each dt1 As DataRow In DataTables("岗位执行操作维护表").SQLSelect("")

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


加好友 发短信
等级:超级版主 帖子:110582 积分:562806 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/31 11:41:00 [显示全部帖子]

【岗位执行操作维护表】和"弱光整治清单表"这2个表的关系是怎么样的,【岗位执行操作维护表】有多行数据的时候是怎么样的,为什么需要遍历所有行去判断?

举例具体说明一下:

比如【列表项目1】只有一个项目的时候,当前工作内容应该是怎么样的数据?
比如【列表项目1】添加了一个项目的,变为2个项目的时候,当前工作内容应该又是怎么样的数据?
比如【列表项目1】删除了一个项目的,变为1个项目的时候,当前工作内容应该又是怎么样的数据?

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


加好友 发短信
等级:超级版主 帖子:110582 积分:562806 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/31 14:16:00 [显示全部帖子]

Select Case e.DataCol.name
    Case "宽带帐号"
        If e.NewValue > ""
            Dim dt1 As DataRow = DataTables("岗位执行操作维护表").SQLFind("表名='弱光整治清单表' and 工作岗位='投诉受理组' and 执行类型='弱光工单匹配'")
            
            If   dt1 IsNot Nothing  Then
                Dim str1 = dt1("列表项目1")
                Dim nstr1 As String = "宽带帐号 = '" & e.NewValue  & "' And ( "
                For Each s1 As String In str1.split("/")
                    nstr1 &= " 工单当前环节 = '" & s1 & "' Or "
                Next
                nstr1 = nstr1.substring(0, nstr1.length-4) & " )"
                msgbox(nstr1)
                Dim dr1 As DataRow = DataTables("弱光整治清单表").sqlFind(nstr1)
                '  Dim dr1 As DataRow = DataTables("弱光整治清单表").sqlFind("宽带帐号 = '" & r5("宽带帐号") & "' and ( 工单当前环节 = 'OLT或红外问题工单' or 工单当前环节 = '光端口被关停工单' or 工单当前环节 = '光功率不达标工单' or 工单当前环节 = '核查不达标工单' or 工单当前环节 = '红线内问题工单' or 工单当前环节 = '客户不配合整治工单' or 工单当前环节 = '请求打开光端口工单' or 工单当前环节 = '派错装维人员工单' or 工单当前环节 = '三网合一或入户线问题工单' or 工单当前环节 = '外线跟进处理工单' or 工单当前环节 = '需关停端口工单' )")
                If dr1 IsNot Nothing  Then
                    e.DataRow("当前工作内容") &= vbcrlf &  "该用户为【存量弱光工单】,请处理故障的同时进行【弱光】处理;【弱光整治清单表】系统编号:【"  & dr1("编号") & "】"
                    Vars("当前工作内容") = "该用户为【存量弱光工单】,请处理故障的同时进行【弱光】处理;【弱光整治清单表】系统编号:【"  & dr1("编号") & "】"
                Else
                    If  e.DataRow("当前工作内容")  Like "*存量弱光工单*" Then
                        e.DataRow("当前工作内容")  = e.DataRow("当前工作内容").Replace(Vars("当前工作内容"),"")
                    Else
                    End If
                End If
            End If
        End If
    End  Select

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


加好友 发短信
等级:超级版主 帖子:110582 积分:562806 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/26 8:33:00 [显示全部帖子]

If e.Form.Controls("数据表").Value  = Nothing Then
    MessageBox.show("请选择要获取字段的【数据表】名称!!!", "非常关键提醒")
Else
    e.Form.Controls("获取字段").Value  = Nothing

    dim str as string
    For  Each dc  As  DataCol  In  DataTables(e.Form.Controls("数据表").Value).DataCols
  str = str  & "," & dc.Name
    Next

        e.Form.Controls("获取字段").Value = str.trim(",") 

End If


 回到顶部