以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  当前数据频繁刷新?怎么设定开关控制他只刷新一次,然后等待下次刷新启动再开始刷新……  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177177)

--  作者:cnsjroom
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2022/5/12 8:50:00
--  
个人的建议是不要使用计划管理来刷新,又不是几十万条数据,那么几行数据直接在按钮里刷新即可。

另外计划管理是重新绑定了整个表。如果不想整表刷新,可以考虑使用appendload:http://www.foxtable.com/webhelp/topics/2276.htm,或者load:http://www.foxtable.com/webhelp/topics/0430.htm

--  作者:cnsjroom
--  发布时间:2022/5/12 9:34:00
--  回复:(有点蓝)个人的建议是不要使用计划管理来刷新...

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

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

 

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


--  作者:有点蓝
--  发布时间:2022/5/12 9:51:00
--  
自动刷新就是这种效果了,没有办法的
--  作者:cnsjroom
--  发布时间: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这个计划任务

有没有办法实现呢?

 


--  作者:有点蓝
--  发布时间:2022/5/12 10:32:00
--  
这个意思?

3、启动同步会议议题任务计划代码  (默认暂停)
开始判断up11=true时   (false时不做任何操作)

MyTimers("同步会议议题任务计划").Enabled = false
刷新数据   
然后更新变量up11=false


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

If Forms("会议主体").opened Then
    If vars("up11")=True  Then

MyTimers("同步会议议题").Enabled = False
        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/12 10:34:31编辑过]

--  作者:cnsjroom
--  发布时间:2022/5/12 11:06:00
--  回复:(有点蓝)这个意思?3、启动同步会议议题任务计...

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

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

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


--  作者:有点蓝
--  发布时间:2022/5/12 11:27:00
--  
是不是还有其它代码有启动了计划?
--  作者:cnsjroom
--  发布时间: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

 

 


--  作者:有点蓝
--  发布时间:2022/5/12 15:51:00
--  


[此贴子已经被作者于2022/5/12 15:53:12编辑过]