以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于系统同步刷新机制问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87264) |
-- 作者:benwong2013 -- 发布时间: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 -- 发布时间: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
|
-- 作者:大红袍 -- 发布时间:2016/7/7 9:27:00 -- 1、在线用户没有限制,但是一个人最多是添加500个好友。如果要突破限制,要改代码,通过服务器发信息过度。
2、写到你代码后面
3、是
4、代码你看懂了么?思路都一样的啊。 |
-- 作者:benwong2013 -- 发布时间: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 |
-- 作者:大红袍 -- 发布时间:2016/7/7 10:04:00 -- 你的r在哪里,delete在哪里,就写在哪里。 |
-- 作者:benwong2013 -- 发布时间:2016/7/7 10:11:00 -- 明白了,代码理解错了,谢谢! 另外在QQClient的ReceivedMessage事件中修改代码,是否在服务端及客户端都要增加?
|
-- 作者:大红袍 -- 发布时间:2016/7/7 10:28:00 -- 以下是引用benwong2013在2016/7/7 10:11:00的发言:
另外在QQClient的ReceivedMessage事件中修改代码,是否在服务端及客户端都要增加?
帮助文档里面的,服务器端不需要额外添加任何代码。只有在你想突破500好友限制,才需要用服务器转发信息。 |
-- 作者:benwong2013 -- 发布时间: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编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/7/7 20:05:00 -- 你要运行服务器端项目才能使用OpenQQ功能的啊。好好把帮助文档看完。
加入msgbox代码,看各个事件是否触发了,是否进入执行了代码。 [此贴子已经被作者于2016/7/7 20:05:28编辑过]
|
-- 作者:benwong2013 -- 发布时间:2016/7/8 13:54:00 -- 版主,看了N遍了还是搞不明白,如下: 是否依照帮助http://www.foxtable.com/webhelp/scr/3006.htm设置了按键的功能,在QQOpen的服务端及客户端也是设置了,但有如下: 是否需要进行客户端及服务端进行架设之后,更新之后客户端之后才可以收到同步? |