以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  实现类似QQ即时消息的功能 问题一直没解决好  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=49196)

--  作者:kmzb56
--  发布时间:2014/4/14 9:26:00
--  实现类似QQ即时消息的功能 问题一直没解决好
    想实现类似于QQ的一个即时消息功能,查到任务时,针对每一个任务可以发布情况,任务登记表与情况发布关联,在窗口的输入窗口输入字回车后能发布出去,其它客户端能看到,这个功能我试了多次,一直没解决好,

  注要问题是,
第一:有时追载时消息并不按时间顺序排列,第二:有时串到其它任务上去了,第三:有时显示不出来,是空的,但发布人这些有。
注明:以前我用增加消息的方式,不用输入框的方式不会这样,但也不稳定。

追载代码 
Dim qkid As Integer = DataTables("情况发布").Compute("Max(_Identify)")
Dim Filter As String = "[_Identify] > " & qkid
If Forms("任务查询").Opened() Then
    Dim cnt As Integer = Tables("任务查询_table3").Rows.Count
    Dim drs As List(Of DataRow)=DataTables("情况发布").AppendLoad(Filter, False)
   If Tables("任务查询_table3").Rows.Count > cnt Then
        Tables("任务查询_table3").Position = cnt
   End If
  
     If drs.Count > 0 Then 
     Audio.Play("D:\\zbddt\\Project\\sound\\msg.wav") 
   End If 
  Else
    Dim drs As List(Of DataRow)=DataTables("情况发布").AppendLoad(Filter, False)
  If drs.Count > 0 Then 
     Audio.Play("D:\\zbddt\\Project\\sound\\msg.wav") 
 End If 
 End If


输入框的 keyup事件:
If e.Control = True AndAlso e.KeyCode = Keys.Enter Then
Tables("任务查询_table3").addnew()
\'Dim hh As Integer= Tables("业务登记.情况发布").Rows.Count()-1
\'Dim cnt As Integer = Tables("任务查询_table3").Rows.Count
\'Tables("任务查询_table3").Position = cnt
Dim r As Row=Tables("任务查询_table3").Current()
\'Dim r As Row=Tables("业务登记.情况发布").Current()
Dim zifu As String=e.Form.Controls("TextBox12").text
r("情况反映")=zifu
\'Tables("业务登记.情况发布").Select ( hh ,0)
Tables("任务查询_table3").Current.Save()
e.Form.Controls("TextBox12").value=""
End If


请朋家帮忙分析一下。





--  作者:狐狸爸爸
--  发布时间:2014/4/14 9:40:00
--  
http://www.foxtable.com/help/topics/2265.htm
--  作者:有点甜
--  发布时间:2014/4/14 10:13:00
--  

 第一第二个问题,你对表进行一下排序就好,比如按照 时间

 

 第三个问题,没有理解。不加载的话,看看加载条件,看qkid的值,可能是新增行导致的。