以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  刷新按钮的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=50584)

--  作者:yangcin
--  发布时间:2014/5/9 11:18:00
--  刷新按钮的问题
A用户输入数据,B用户刷新后,能够看到该条数据,但是B用户无法使用该数据。B用户推出系统后,重新登录,该条新增加数据可以使用。
数据表用的是SQLQuery表,刷新用的filter,load


--  作者:Bin
--  发布时间:2014/5/9 11:21:00
--  
SQLQuery 是无法保存修改的.

要用SQLTABLE

--  作者:yangcin
--  发布时间:2014/5/9 11:33:00
--  
我没表述明白:

1、表格用的是窗口+SQLquery方式
2、A编辑的数据保存后(B用户同时登录在线),B用户在另外一台电脑上,可以刷新得到这条数据
3、本来在SQLquery表上,写了双击代码,但这种情况下,双击代码不管用
4、除非B退出后重登陆,才能让双击代码正常使用,进行B的编辑

5、这个有点类似于工作流的概念。

--  作者:有点甜
--  发布时间:2014/5/9 12:53:00
--  

 问题是:双击代码不能使用?

 

 这个得看你代码是怎么写的了,看看逻辑上有没有错误。

 

 或者上传一个例子,贴出你的代码。


--  作者:yangcin
--  发布时间:2014/5/9 15:00:00
--  
If e.Table.Current Is Nothing Then \'如果Current为Nothing
    Return \'则返回
End If
Dim wz As Integer
Dim dr As DataRow
dr = DataTables("快件列表").Find("[序号] = \'" & e.Table.Current("序号") & "\'")
If dr IsNot Nothing Then
    wz = Tables("快件列表").FindRow(dr)
    If wz >= 0 Then
        Tables("快件列表").Position = wz
    End If
End If


--  作者:Bin
--  发布时间:2014/5/9 15:01:00
--  
你这个代码,和刷新数据有何关系?

刷新数据直接在双击事件 e.row.datarow.laod 就行了
[此贴子已经被作者于2014-5-9 15:04:15编辑过]

--  作者:有点甜
--  发布时间:2014/5/9 15:14:00
--  

 楼主,你直接这样找和定位是不行的。修改以后,快件列表并没有更新到最新数据的,你的快件列表需要重新加载新数据。

 

If e.Table.Current Is Nothing Then \'如果Current为Nothing
    Return \'则返回
End If
Dim wz As Integer
Dim dr As DataRow
dr = DataTables("快件列表").Find("[序号] = \'" & e.Table.Current("序号") & "\'")
If dr Is Nothing Then
    DataTables("快件列表").LoadFilter = "[序号] = \'" & e.Table.Current("序号") & "\'"
    DataTables("快件列表").AppendLoad
End If

dr = DataTables("快件列表").Find("[序号] = \'" & e.Table.Current("序号") & "\'")
If dr IsNot Nothing Then
    wz = Tables("快件列表").FindRow(dr)
    If wz >= 0 Then
        Tables("快件列表").Position = wz
    End If
End If


--  作者:yangcin
--  发布时间:2014/5/9 15:59:00
--  
以下是引用有点甜在2014-5-9 15:14:00的发言:

 楼主,你直接这样找和定位是不行的。修改以后,快件列表并没有更新到最新数据的,你的快件列表需要重新加载新数据。

 

If e.Table.Current Is Nothing Then \'如果Current为Nothing
    Return \'则返回
End If
Dim wz As Integer
Dim dr As DataRow
dr = DataTables("快件列表").Find("[序号] = \'" & e.Table.Current("序号") & "\'")
If dr Is Nothing Then
    DataTables("快件列表").LoadFilter = "[序号] = \'" & e.Table.Current("序号") & "\'"
    DataTables("快件列表").AppendLoad
End If

dr = DataTables("快件列表").Find("[序号] = \'" & e.Table.Current("序号") & "\'")
If dr IsNot Nothing Then
    wz = Tables("快件列表").FindRow(dr)
    If wz >= 0 Then
        Tables("快件列表").Position = wz
    End If
End If



这个也不行呢


--  作者:有点甜
--  发布时间:2014/5/9 16:04:00
--  

不应该,你加入代码测试,截图发上来。

 

If e.Table.Current Is Nothing Then \'如果Current为Nothing
    Return \'则返回
End If
Dim wz As Integer
Dim dr As DataRow
dr = DataTables("快件列表").Find("[序号] = \'" & e.Table.Current("序号") & "\'")
If dr Is Nothing Then

    msgbox(DataTables("快件列表").datarows.count & "   " & Tables("快件列表").Rows.count)
    DataTables("快件列表").LoadFilter = "[序号] = \'" & e.Table.Current("序号") & "\'"
    DataTables("快件列表").AppendLoad

    msgbox(DataTables("快件列表").datarows.count & "   " & Tables("快件列表").rows.count)
End If

dr = DataTables("快件列表").Find("[序号] = \'" & e.Table.Current("序号") & "\'")

 

msgbox(dr is nothing)


If dr IsNot Nothing Then
    wz = Tables("快件列表").FindRow(dr)
    If wz >= 0 Then
        Tables("快件列表").Position = wz
    End If
End If

[此贴子已经被作者于2014-5-9 16:04:38编辑过]

--  作者:yangcin
--  发布时间:2014/5/10 10:11:00
--  
这个连appendload都不能写
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20140510101543.jpg
图片点击可在新窗口打开查看