Foxtable(狐表)用户栏目专家坐堂 → 遍历只能执行一行数据,不能将当前所有符合条件的数据全部执行告知内容的替换,麻烦老师指导下!谢谢!


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

主题:遍历只能执行一行数据,不能将当前所有符合条件的数据全部执行告知内容的替换,麻烦老师指导下!谢谢!

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
遍历只能执行一行数据,不能将当前所有符合条件的数据全部执行告知内容的替换,麻烦老师指导下!谢谢!  发帖心情 Post By:2019/5/21 20:48:00 [显示全部帖子]

遍历只能执行一行数据,不能将当前所有符合条件的数据全部执行告知内容的替换,麻烦老师指导下!谢谢!
如当前有姓名为张三记录的值五条,下面代码执行时,值对应生成一条记录,不能一次性将五条记录全部进行执行。

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20190521204953.png
图片点击可在新窗口打开查看


'获取告知内容表里面告知内容列值是空值 操作单位等于当前系统登录用户所在单位的  所有姓名值集合
Dim lsts As New List(Of String)
lsts=DataTables("告知内容").SQLGetValues("姓名" ,"操作单位='" & _usergroup & "'and 告知内容 is null")
'遍历姓名值结合
For Each lst As String In lsts
    '查找告知内容表中操作单位等于当前系统登录用户所在单位  姓名等于姓名值结合的  且告知内容列值为空的数据
    Dim dr2 As DataRow = DataTables("告知内容").SQLfind("操作单位='" & _usergroup & "' And  姓名 = '" & lst &"' And 告知内容 Is null ")
     '如果找到
    If  dr2 IsNot Nothing Then
         '如果告知内容列不是空值
        If dr2("告知内容") IsNot Nothing  Then
            '查找信息模板中操作单位符合当前系统登录用户所在单位 案件类别等于告知内容表中的案件类别  案件状态等于告知内容表中的案件状态 适用人员等于告知内容表中的人员类型的数据
            Dim dr As DataRow =  DataTables("信息模板").sqlfind("操作单位='" & _usergroup & "' And  案件类别 = '" & dr2("案件类别") & "'And 案件状态 =  '" & dr2("案件状态") & "'  and 适用人员='" & dr2("人员类型") & "'"  )
            '如果找到记录
            If dr IsNot Nothing Then
                '定义字符串
                Dim str1 As String = dr("模板内容")
                '定义遍历内容替换表查找内容
                Dim drs1 As List(of DataRow)  =   DataTables("内容替换表").SQLSelect("")
                For Each dr1 As DataRow In drs1
                    '如果替换内容与列名不等于空时
                    If dr1("替换内容") > "" And dr1("列名") > "" Then
                        '如果告知内容表列值中包含内容替换表中的列值时,进行对应替换
                        If DataTables("告知内容").DataCols.Contains(dr1("列名")) Then
                            str1 = str1.replace(dr1("替换内容"),dr2(dr1("列名")))
                        End If
                    End If
                Next
                '输入替换后的值,并且写入告知内容表中的告知内容列,然后保存告知内容表
                output.show(str1)
                dr2("告知内容")=str1
                dr2.save
            End If
        End If
    End If
Next
[此贴子已经被作者于2019/5/21 20:50:37编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)没看懂代码的意思。上传具体实例说明...  发帖心情 Post By:2019/5/21 21:35:00 [显示全部帖子]

第一查找出告知内容表中 符合条件的姓名集合

图片点击可在新窗口打开查看此主题相关图片如下:告知内容表.png
图片点击可在新窗口打开查看
当前表中有两个不同姓名  蒙正欢和刘远华
第二 根据所得到的姓名集合值 再去查找对应符合姓名的记录
如果找到 且告知内容列不为空
第三 去查找信息模板中符合条件的 模板内容列值

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
第四 去查找内容替换表中的对应值 并进行切换

图片点击可在新窗口打开查看此主题相关图片如下:替换内容.png
图片点击可在新窗口打开查看

第五 生成新的告知内容列值  str1

图片点击可在新窗口打开查看此主题相关图片如下:告知内容表.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/5/21 21:36:08编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)这个意思?For Each dr2 As DataRow ...  发帖心情 Post By:2019/5/22 11:33:00 [显示全部帖子]

谢谢 有点蓝 老师  就是这个意思  

 回到顶部