Foxtable(狐表)用户栏目专家坐堂 → 关于系统同步刷新机制问题


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

主题:关于系统同步刷新机制问题

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


加好友 发短信
等级:一尾狐 帖子:485 积分:4075 威望:0 精华:0 注册:2015/12/16 8:22:00
关于系统同步刷新机制问题  发帖心情 Post By:2016/7/7 8:40:00 [只看该作者]

系统是我通过SQL来作为数据服务器的,但因为首次处理,系统是通过菜单点击来启动窗体的,但昨晚发现我都没有加入任何数据或同步的机制,造成现在局域网电脑数据保存之后不能更新的问题,昨天也看了关于窗体load加载数据及用openQQ即时高效的同步数据,所以请问如下问题:

1.OpenQQ若只是用于数据同步,用永久开发版有没有对于在线用户控制?
2.若用openQQ代码,我原增加代码应该如何组合:
Dim r As Row = Tables("A").Current
Dim
p As String = IIF(r.DataRow.RowState = DataRowState.Added, "A#", "U#")
r
.Save()
'
一定要在保存后合成信息,因为新增行的主键在保存后才生成
Dim
msg As String = p & "A" & "#" & r("_Identify")
For
Each bd As QQBuddy In QQClient.Buddies
If bd.Online Then
QQClient.Send(bd.name, msg)
End If
Next

下面这个是我新增保存客户代码:
Dim kjmc() As String '控件名称
Dim kjmcjh As String = "客户名称,联系人,业务负责人,报告抬头,报告地址" '控件名称集合
kjmc = kjmcjh.Split(",")
For i As Integer=0 To kjmc.Length-1
    If e.Form.Controls(kjmc(i)).value Is Nothing Then
        MessageBox.Show(kjmc(i) & "不能为空,请检查")
        e.Form.Controls(kjmc(i)).Select
        Return
    End If
Next
Tables("B_Client").Current.save
MessageBox.Show("保存成功")

3.是否load用于窗体table的加载,那么在保存和删除数据的时候都是需要openQQ来获得即时同步;
4.有没有其它的案例或资料详细介绍这块;

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/7/7 9:23:00 [只看该作者]

1、在线用户OpenQQ用户500个
2、
Dim kjmc() As String '控件名称
Dim kjmcjh As String = "客户名称,联系人,业务负责人,报告抬头,报告地址" '控件名称集合
kjmc = kjmcjh.Split(",")
For i As Integer=0 To kjmc.Length-1
    If e.Form.Controls(kjmc(i)).value Is Nothing Then
        MessageBox.Show(kjmc(i) & "不能为空,请检查")
        e.Form.Controls(kjmc(i)).Select
        Return
    End If
Next
Tables("B_Client").Current.save
Dim msg As String = p & "A" & "#" & Tables("B_Client").Current("_Identify")
For Each bd As QQBuddy In QQClient.Buddies
If bd.Online Then
QQClient.Send(bd.name, msg)
End If
Next
MessageBox.Show("保存成功")
3、哪个Load?Datatable(XX).Load!只要是数据表都可以用Load

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/7 9:27:00 [只看该作者]

1、在线用户没有限制,但是一个人最多是添加500个好友。如果要突破限制,要改代码,通过服务器发信息过度。

 

2、写到你代码后面

 

3、是

 

4、代码你看懂了么?思路都一样的啊。


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


加好友 发短信
等级:一尾狐 帖子:485 积分:4075 威望:0 精华:0 注册:2015/12/16 8:22:00
  发帖心情 Post By:2016/7/7 9:57:00 [只看该作者]

若是删除代码是否是这样组合(红色字体是帮助中的),另外在QQClient的ReceivedMessage事件中修改代码,是否在服务端及客户端都要增加?

If User.IsRole("客户管理员") Then
    '原来的代码
    '判断一个表内多行数据是否被选中一次性将其删除
    Dim dt As  Table=Tables("客户信息管理表_table1") '注意这里一定是绑定的副表,如果是tables("业务")那么如果不保存数据将不能删除
    Dim cont As Integer=0
Dim msg As String = "D#" & "A" & "#" & r("_Identify")
    For Each rw As Row In dt.Rows
        If rw.Checked =False  Then '判断选中的行是不是等于总行数
            cont=cont+1
        End If
    Next
    If cont<>dt.Rows.count Then '如果不等于总行数,肯定有被选中的行,直接删除即可,如果相等说明没有选中,则提示
        Dim Result As DialogResult '加一个提示窗口,如果点确认就删除,点否就返回
        result=  MessageBox.show("您确认要删除吗?","~温馨提示~",MessageBoxButtons.YesNo,MessageBoxIcon.Question)
        If result=DialogResult.Yes Then
            For Each r As Row In Tables("客户信息管理表_table1").GetCheckedRows
                r.Delete
                Tables("客户信息管理表_table1").Current.Save
            Next
For Each bd As QQBuddy In QQClient.Buddies
    If bd.Online Then
        QQClient.Send(bd.name, msg)
    
End If
Next
        Else
            Return '返回
        End If
    Else
        MessageBox.show("您未选择行,请选择后再点击删除按钮","~温馨提示~",MessageBoxButtons.OK,MessageBoxIcon.Error)
    End If
Else
    MessageBox.show("你无权执行此项操作!")
End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/7 10:04:00 [只看该作者]

你的r在哪里,delete在哪里,就写在哪里。


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


加好友 发短信
等级:一尾狐 帖子:485 积分:4075 威望:0 精华:0 注册:2015/12/16 8:22:00
  发帖心情 Post By:2016/7/7 10:11:00 [只看该作者]

明白了,代码理解错了,谢谢!

另外在QQClient的ReceivedMessage事件中修改代码,是否在服务端及客户端都要增加?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/7 10:28:00 [只看该作者]

以下是引用benwong2013在2016/7/7 10:11:00的发言:

另外在QQClient的ReceivedMessage事件中修改代码,是否在服务端及客户端都要增加?

 

帮助文档里面的,服务器端不需要额外添加任何代码。只有在你想突破500好友限制,才需要用服务器转发信息。


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


加好友 发短信
等级:一尾狐 帖子:485 积分:4075 威望:0 精华:0 注册:2015/12/16 8:22:00
  发帖心情 Post By:2016/7/7 19:47:00 [只看该作者]

这个是修改保存的代码:

Dim kjmc() As String '控件名称
Dim kjmcjh As String = "客户名称,联系人,业务负责人,报告抬头,报告地址" '控件名称集合
kjmc = kjmcjh.Split(",")
For i As Integer=0 To kjmc.Length-1
    If e.Form.Controls(kjmc(i)).value Is Nothing Then
        MessageBox.Show(kjmc(i) & "不能为空,请检查")
        e.Form.Controls(kjmc(i)).Select
        Return
    End If
Next
Dim r As Row = Tables("B_Client").Current
Dim p As String = IIF(r.DataRow.RowState = DataRowState.Added, "A#", "U#")
r.save
Dim msg As String = p & "B_Client" & "#" & r("_Identify")
MessageBox.Show(msg)
For Each bd As QQBuddy In QQClient.Buddies
    If bd.Online Then
        QQClient.Send(bd.name, msg)
    End If
Next
MessageBox.Show("保存成功")
e.Form.close

点击保存能显示 U#B_Client#3063

另外在QQOPEN设置了通知触发代码;

若客户端修改了之后,另外一个客户端不点击load的话,是不会进行即时更新的,请问是哪里设置的问题;
[此贴子已经被作者于2016/7/7 19:47:43编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/7 20:05:00 [只看该作者]

 你要运行服务器端项目才能使用OpenQQ功能的啊。好好把帮助文档看完。

 

 加入msgbox代码,看各个事件是否触发了,是否进入执行了代码。

[此贴子已经被作者于2016/7/7 20:05:28编辑过]

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


加好友 发短信
等级:一尾狐 帖子:485 积分:4075 威望:0 精华:0 注册:2015/12/16 8:22:00
  发帖心情 Post By:2016/7/8 13:54:00 [只看该作者]

版主,看了N遍了还是搞不明白,如下:

是否依照帮助http://www.foxtable.com/webhelp/scr/3006.htm设置了按键的功能,在QQOpen的服务端及客户端也是设置了,但有如下:

是否需要进行客户端及服务端进行架设之后,更新之后客户端之后才可以收到同步?


 回到顶部
总数 11 1 2 下一页