Foxtable(狐表)用户栏目专家坐堂 → 当前数据频繁刷新?怎么设定开关控制他只刷新一次,然后等待下次刷新启动再开始刷新……


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

主题:当前数据频繁刷新?怎么设定开关控制他只刷新一次,然后等待下次刷新启动再开始刷新……

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
当前数据频繁刷新?怎么设定开关控制他只刷新一次,然后等待下次刷新启动再开始刷新……  发帖心情 Post By:2022/5/11 20:20:00 [显示全部帖子]

当前数据频繁刷新?怎么设定开关控制他只刷新一次,然后等待下次刷新启动再开始刷新……


图片点击可在新窗口打开查看此主题相关图片如下:1212.gif
图片点击可在新窗口打开查看

 


以下内容是专门发给有点蓝浏览

计划任务1代码  【默认为运行状态】
Dim i As Integer
Dim cmd As New SQ LCommand
cmd.Connect ionN ame = "无纸化会议"
cmd.Comma ndText = "SEL ECT Count(*) Fr om 系统设置 where 设置名='同步会议议题开关' and 设置内容='true'"  '判断多少符合行'
i =cmd.ExecuteScalar
Dim up11  As Boolean
If cmd.ExecuteScalar > 0 Then
    
    vars("up11")=True

MyTimers("同步会议议题").Enabled = True
Else
    
    vars("up11")=False

MyTimers("同步会议议题").Enabled = False


End If

 

同步会议议题任务代码  【默认为暂停状态】

If Forms("会议主体").opened Then
    If vars("up11")=True  Then
        If  vars("会议主题uuid") <>"" Then
            Dim cmd As New SQLCo mmand
            cmd.Con nectio nName = "无纸化会议"
            Dim dt,dt1 As DataTable
            cmd.Comm andText = "sel ect * Fro m 会议议题 where 主题uuid='" & vars("会议主题uuid") &"'"
            dt = cmd.Exe cuteReader()
            Tables("会议主体_table1").DataSource =dt
            Tables("会议主体_table1").SetColVisibleWidth("议题标题|500")
            With Tables("会议主体_table1")
                Dim r As Integer
                r = .FindRow("开始状态= true and 结束状态=false ") '从第一行开始查找
                If r >= 0 Then '如果找到的话
                    .Position = r '定位到找到的行.
                    'Tables("会议主体_table2").Filter="uuid='"& Tables("会议主体_table1").Current("uuid")  &"'"
                End If
            End With
        End If
    End If
    vars("up11")=False
End If

 

 

 

 

[此贴子已经被作者于2022/5/11 20:48:39编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)个人的建议是不要使用计划管理来刷新...  发帖心情 Post By:2022/5/12 9:34:00 [显示全部帖子]

只要是项目安装在多个终端电脑上,其中一个电脑操作,其他的终端项目自动加载数据,准确地说,也是刷新数据,显示当前表中开始状态为true 结束状态为false的数据行。

按钮刷新的话,需要用户去手动点,不大即时!

 

老师楼上的代码  老师有没有办法帮忙指导下呢?


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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)自动刷新就是这种效果了,没有办法的...  发帖心情 Post By:2022/5/12 10:25:00 [显示全部帖子]

1、当点击开始议题按钮后  会将系统设置表中同步会议议题开关=true 

 

2、任务1 计划代码  (5000ms定时自动运行)
判断系统设置表中同步会议议题开关=true 
设置变量up11=true
启动同步会议议题计划任务


3、启动同步会议议题任务计划代码  (默认暂停)
开始判断up11=true时   (false时不做任何操作)
刷新数据   
然后更新变量up11=false

 

老师  我当前的设计思路及内容如上   当前问题就在第3,不能实现第2设置变量up11=false时  暂停第3这个计划任务

有没有办法实现呢?

 


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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)这个意思?3、启动同步会议议题任务计...  发帖心情 Post By:2022/5/12 11:06:00 [显示全部帖子]

还是没有实现  数据一样的是按照计划任务的时间在刷新!

同步会议议题这个计划任务我设置了允许暂停的!

楼上的代码运行后貌似没有暂停


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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)是不是还有其它代码有启动了计划?  发帖心情 Post By:2022/5/12 15:43:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
同步会议议题如果找到开始状态=true 结束状态=false的数据后  会定位到符合条件的行

同时该定位操作,会触发会议议题卡片表currentchanged代码:

有没有办法实现:

如何当前定位到的行,状态没有改变,那就视为默认打开资料按钮不要再次模拟点击,

 

下面红色部分代码怎么修正呢?

 

会议议题卡片表currentchanged代码:

Dim zs1 As Integer = Tables(e.form.name & "_table1").Count
Dim zl As WinForm.Button = e.Form.Controls("默认打开资料")
If zs1 >0 Then
    If Tables(e.form.name & "_table1").Current("uuid")<>"" Then
        vars("议题uuid")=Tables(e.form.name & "_table1").Current("uuid")
        vars("主题uuid")=Tables(e.form.name & "_table1").Current("主题uuid")
        vars("议题标题")=Tables(e.form.name & "_table1").Current("议题标题")
        Tables(e.form.name & "_table2").Filter="uuid='" & Tables(e.form.name & "_table1").Current("uuid") &"'and 会议议题= '" & Tables(e.form.name & "_table1").Current("议题标题") &"'"
        zl.PerformClick
    End If
End If

 

默认打开资料按钮代码:

Dim wb As WinForm.WebBrowser = e.Form.Controls("WebBrowser1")
    Dim tb As WinForm.TabControl = e.Form.Controls("TabControl1")
    Dim pc As WinForm.PictureBox = e.Form.Controls("PictureBox1")
   
    If Tables(e.form.name & "_table2").Current Is Nothing Then
        wb.Address=Nothing
        pc.Image = GetImage(Nothing)
        Return
    End If
   
    Dim lst As List(of String)
    lst = Tables(e.form.name & "_table2").Current.DataRow.Lines("文件名")
    'msgbox("第一个文件为:" & lst(0))
    vars("文件名")=lst(0)
    Dim dr As DataRow = Tables(e.form.name & "_table2").Current.DataRow
    Dim fl As String =  ProjectPath & "下载文件\" & lst(0)
    If FileSys.FileExists(fl) AndAlso CRCCheckFile(fl) = dr.SQLGetValue("CRC值") Then '如果本地存在同名文件且CRC校验值相同
        '则直接使用本地文件
    Else '否则从数据库提取文件
        If dr.SQLLoadFile("附件",fl) = False Then '如果提取文件失败
            Messagebox.Show("附件提取失败,可能并不存在附件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Return
        End If
    End If
    Dim bbb As String =dr("文件类型")
    If bbb.Contains("bmp")  Or bbb.Contains("jpg") Or bbb.Contains("gif") Or bbb.Contains("png") Then
       
        wb.Address = Nothing
        pc.Image = GetImage(fl)
        tb.SelectedIndex=1
    Else  If bbb.Contains("xls") Or bbb.Contains("xlsx")  Or bbb.Contains("doc") Or  bbb.Contains("docx") Or bbb.Contains("txt") Or bbb.Contains("pdf") Then
       
        wb.Address = fl
        pc.Image = GetImage(Nothing)
        tb.SelectedIndex=0
    End If
    vars("文件")=fl
   
    If Forms("全屏预览").opened Then
        Dim bt As WinForm.Button = Forms("全屏预览").Controls("Button1")
        bt.PerformClick
    End If

 

 


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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)不好控制。重新绑定表数据,会触发cu...  发帖心情 Post By:2022/5/12 16:34:00 [显示全部帖子]

不重新加载数据

窗体打开的时候就默认加载了数据

 

然后运行

            With Tables("会议主体_table1")
                Dim r As Integer
                r = .FindRow("开始状态= true and 结束状态=false ") '从第一行开始查找
                If r >= 0 Then '如果找到的话
                    .Position = r '定位到找到的行.
                   
                    'Tables("会议主体_table2").Filter="uuid='"& Tables("会议主体_table1").Current("uuid")  &"'"
                End If
            End With

定位呢   这样是不是就视为是手动点击了   是不是可以判断了?

 

或者是吧Current事件改为chick点击事件?

[此贴子已经被作者于2022/5/12 16:49:11编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)Tables("会议主体_table1").DataSour...  发帖心情 Post By:2022/5/12 16:51:00 [显示全部帖子]

直接不用重新加载数据了

在窗体打开的时候 就一次加载符合条件的数据到表中

 

然后计划任务  代码如下:

With Tables("会议主体_table1")
                Dim r As Integer
                r = .FindRow("开始状态= true and 结束状态=false ") '从第一行开始查找
                If r >= 0 Then '如果找到的话
                    .Position = r '定位到找到的行.
                   
                    'Tables("会议主体_table2").Filter="uuid='"& Tables("会议主体_table1").Current("uuid")  &"'"
                End If
            End With

定位到指定的行

 

怎么来判断当前行该不该点击呢?


 回到顶部