Foxtable(狐表)用户栏目专家坐堂 → 当前数据永远在第一行,怎么变通为遍历所有行,当信息类别和信息内容等不为空的时候,新增告知内容列表,且与当前新增记录行匹配对应数据


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

主题:当前数据永远在第一行,怎么变通为遍历所有行,当信息类别和信息内容等不为空的时候,新增告知内容列表,且与当前新增记录行匹配对应数据

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
当前数据永远在第一行,怎么变通为遍历所有行,当信息类别和信息内容等不为空的时候,新增告知内容列表,且与当前新增记录行匹配对应数据  发帖心情 Post By:2019/5/30 12:37:00 [只看该作者]

当前数据永远在第一行,怎么变通为遍历所有行,当信息类别和信息内容等不为空的时候,新增告知内容列表,且与当前新增记录行匹配对应数据
下列代码能够实现除了信息内容字段之外的所有值的正确显示,信息内容永远是数据后台默认选择的第一条数据内容,无法根据新增内容进行对应变更。
下面代码写在内部函数中,并在移动开发中直接调用内部函数进行对应数据的读写!
麻烦各位老师指导一下  谢谢!【经过判断  红色部分代码定位及写法有点问题】

代码如下:
Dim br As Row=Tables("信息列表").Current
If br("信息类别") <>"" Then  
    If br("信息内容") <>"" Then
        Dim Vals As List(of String)
        If br("发送人员") <>"" Then
            Dim filter As String = "1=2"
            For Each s As String In br("发送人员").split(",")
                filter = filter & " or [姓名] like '%" & s & "%' "
            Next
            Vals = DataTables("干警信息").sqlGetValues("姓名",filter  )
            'MessageBox.Show("发送人员 & Vals")
        Else If br("发送对象") <>"" Then
            Dim filter As String = "1=2"
            For Each s As String In br("发送对象").split(",")
                filter = filter & " or [身份属性] like '%" & s & "%' "
            Next
            Vals = DataTables("干警信息").sqlGetValues("姓名",filter  )
        Else If br("关注领域") <>"" Then
            Dim filter As String = "1=2"
            For Each s As String In br("关注领域").split(",")
                filter = filter & " or [关注领域] like '%" & s & "%' "
            Next
            Vals = DataTables("干警信息").sqlGetValues("姓名",filter  )
        End If
        For i As Integer = 0 To Vals.Count - 1
            Dim dr As DataRow = DataTables("告知内容").AddNew()
            dr("信息时间") = Date.Now
            dr("姓名") = Vals(i)
            dr("信息内容")=br("信息内容")
            dr("是否告知")= "否"
            dr("发送对象")= br("发送对象")
            dr("发送人员")= br("发送人员")
            dr("发送平台")= br("发送平台")
            dr("信息类别")= br("信息类别")
            dr("拟发送时间")= br("拟发送时间")
            dr("序号")=br("_identify")
            dr("操作单位")=_usergroup
            dr.save
        Next      
    Else
        
        If br("发送对象")="" Then
            MessageBox.Show("发送对象\发送人员\关注领域必须选择一个")
        Else If br("发送人员")="" Then
            MessageBox.Show("发送对象\发送人员\关注领域必须选择一个")
        Else If br("关注领域")="" Then
            MessageBox.Show("发送对象\发送人员\关注领域必须选择一个")
        End If
        MessageBox.Show("信息内容不能为空!")       
    End If
Else
    MessageBox.Show("信息类别必须选择一个")
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/30 15:06:00 [只看该作者]

是不是你表名写错了

 

Dim br As Row=Tables("信息列表").Current

 

改成

 

Dim br As Row=Tables("窗口表名").Current


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)是不是你表名写错了 Dim br...  发帖心情 Post By:2019/5/30 15:11:00 [只看该作者]

在移动端开发时候 没有窗体表哦  也没有窗体  麻烦老师指导一下 谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/30 16:01:00 [只看该作者]

以下是引用李孝春在2019/5/30 15:11:00的发言:
在移动端开发时候 没有窗体表哦  也没有窗体  麻烦老师指导一下 谢谢

 

这个意思?

 

for each br As Row in Tables("信息列表").Rows

    '......

next

 


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)以下是引用李孝春在2019/5/30 15:11:...  发帖心情 Post By:2019/5/30 16:33:00 [只看该作者]

现在效果可以实现便利了 
但是却总是把数据库有的数据全部再次重复导入了

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
第一次只有一条记录 党建课程测试
第二次新增一条记录  就会把第一次记录和第二次新的记录  又再次写入告知内容表
第三次新增一条记录  就会吧第一次 第二次 及新增记录   再次写入告知内容表
要求实现  重复记录不再新增

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/30 16:40:00 [只看该作者]

Dim dr As DataRow = DataTables("告知内容").AddNew()

 

改成

 

Dim dr As DataRow = DataTables("告知内容").find("信息内容 = '" & br("信息内容") & "'")

If dr is Nothing Then

    dr = DataTables("告知内容").AddNew()

End If


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)Dim dr As DataRow = DataTables("告...  发帖心情 Post By:2019/5/30 16:59:00 [只看该作者]

有点甜老师  现在姓名却又查不出多个了?永远只有一个姓名?

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
党员有李孝春  张德峰 两名同志  结果只有一条李孝春的记录
代码全部如下:
For Each br As Row In Tables("信息列表").Rows
    If br("信息类别") <>"" Then
        If br("信息内容") <>"" Then
            Dim Vals As List(of String)
            If br("发送人员") <>"" Then
                Dim filter As String = "1=2"
                For Each s As String In br("发送人员").split(",")
                    filter = filter & " or [姓名] like '%" & s & "%' "
                Next
                Vals = DataTables("干警信息").sqlGetValues("姓名",filter  )
                'MessageBox.Show("发送人员 & Vals")
            Else If br("发送对象") <>"" Then
                Dim filter As String = "1=2"
                For Each s As String In br("发送对象").split(",")
                    filter = filter & " or [身份属性] like '%" & s & "%' "
                Next
                Vals = DataTables("干警信息").sqlGetValues("姓名",filter  )
            Else If br("关注领域") <>"" Then
                Dim filter As String = "1=2"
                For Each s As String In br("关注领域").split(",")
                    filter = filter & " or [关注领域] like '%" & s & "%' "
                Next
                Vals = DataTables("干警信息").sqlGetValues("姓名",filter  )
            End If
            
            For i As Integer = 0 To Vals.Count - 1
                Dim dr As DataRow = DataTables("告知内容").find("信息内容 = '" & br("信息内容") & "'and 操作单位 = '" & _usergroup & "'")
                If dr Is Nothing Then  
                    dr = DataTables("告知内容").AddNew()
                    dr("信息时间") = Date.Now
                    dr("姓名") = Vals(i)
                    dr("信息内容")=br("信息内容")
                    dr("是否告知")= "否"
                    dr("发送对象")= br("发送对象")
                    dr("发送人员")= br("发送人员")
                    dr("发送平台")= br("发送平台")
                    dr("信息类别")= br("信息类别")
                    dr("拟发送时间")= br("拟发送时间")
                    dr("序号")=br("_identify")
                    dr("操作单位")=_usergroup
                    dr.save
                End If    
            Next
            
        Else
            
            If br("发送对象")="" Then
                MessageBox.Show("发送对象\发送人员\关注领域必须选择一个")
            Else If br("发送人员")="" Then
                MessageBox.Show("发送对象\发送人员\关注领域必须选择一个")
            Else If br("关注领域")="" Then
                MessageBox.Show("发送对象\发送人员\关注领域必须选择一个")
            End If
            MessageBox.Show("信息内容不能为空!")
            
        End If
    Else
        MessageBox.Show("信息类别必须选择一个")
    End If
Next


第二 有没有办法处理这个记录不重复呢?有时候网页可能不小心多次点提交  或者网速不理想时候  导致如下图  两条记录重复

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

[此贴子已经被作者于2019/5/30 16:59:12编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/30 19:45:00 [只看该作者]

 

Dim dr As DataRow = DataTables("告知内容").find("信息内容 = '" & br("信息内容") & "'and 操作单位 = '" & _usergroup & "' and 姓名 = '" & vals(i) & "'")

 

 


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜) Dim dr As DataRow = DataTa...  发帖心情 Post By:2019/5/31 11:28:00 [只看该作者]

谢谢!

 回到顶部