以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  当前数据永远在第一行,怎么变通为遍历所有行,当信息类别和信息内容等不为空的时候,新增告知内容列表,且与当前新增记录行匹配对应数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=135619)

--  作者:李孝春
--  发布时间: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

--  作者:有点甜
--  发布时间:2019/5/30 15:06:00
--  

是不是你表名写错了

 

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

 

改成

 

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


--  作者:李孝春
--  发布时间:2019/5/30 15:11:00
--  回复:(有点甜)是不是你表名写错了 Dim br...
在移动端开发时候 没有窗体表哦  也没有窗体  麻烦老师指导一下 谢谢
--  作者:有点甜
--  发布时间:2019/5/30 16:01:00
--  
以下是引用李孝春在2019/5/30 15:11:00的发言:
在移动端开发时候 没有窗体表哦  也没有窗体  麻烦老师指导一下 谢谢

 

这个意思?

 

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

    \'......

next

 


--  作者:李孝春
--  发布时间:2019/5/30 16:33:00
--  回复:(有点甜)以下是引用李孝春在2019/5/30 15:11:...
现在效果可以实现便利了 
但是却总是把数据库有的数据全部再次重复导入了

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

--  作者:有点甜
--  发布时间: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


--  作者:李孝春
--  发布时间:2019/5/30 16:59:00
--  回复:(有点甜)Dim dr As DataRow = DataTables("告...
有点甜老师  现在姓名却又查不出多个了?永远只有一个姓名?

图片点击可在新窗口打开查看此主题相关图片如下: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编辑过]

--  作者:有点甜
--  发布时间:2019/5/30 19:45:00
--  

 

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

 

 


--  作者:李孝春
--  发布时间:2019/5/31 11:28:00
--  回复:(有点甜) Dim dr As DataRow = DataTa...
谢谢!