以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  一级窗体中的table1 table2都是sqltable表,怎么实现二级窗口中新增数据后,在一级窗口的表数据即时刷新呢?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=177493)

--  作者:cnsjroom
--  发布时间:2022/5/24 18:40:00
--  一级窗体中的table1 table2都是sqltable表,怎么实现二级窗口中新增数据后,在一级窗口的表数据即时刷新呢?
一级窗体中的table1 table2都是sqltable表,怎么实现二级窗口中新增数据后,在一级窗口的表数据即时刷新呢?

table1是主表  Current事件会更具当前表中的uuid  去出发table2加载主表uuid=uuid的数据

Current事件代码如下:
Dim zs1 As Integer = Tables(e.form.name & "_table1").Count
If zs1 >0 Then
    If Tables(e.form.name & "_table1").Current("uuid")<>"" Then
        vars("主表uuid")=Tables(e.form.name & "_table1").Current("uuid")
        Tables(e.form.name & "_table2").Filter="主表uuid=\'" & Tables(e.form.name & "_table1").Current("uuid") &"\'"
        Dim zs2 As Integer = Tables(e.form.name & "_table2").Count
        If zs2 >0 Then
            Tables(e.form.name & "_table3").Filter="附件uuid=\'" & Tables(e.form.name & "_table2").Current("uuid") &"\'"
        Else
            Tables(e.form.name & "_table3").Filter="uuid=\'XXXXXXX\'"
        End If
    Else
        Tables(e.form.name & "_table2").Filter="uuid=\'XXXXXXX\'"
    End If
End If


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

窗体关闭事件代码如下:【代码运行后刷新数据不是很完美,会导致table1表中的Current事件失效,一级窗体就只有最后筛选的这个表数据存在uuid关联数据了;有没有办法保持数据刷新的同时,原来table表中的Current事件代码又能够准确运行呢?
Dim cmd As new SQL Command
cmd.Connecti
cmd.Comman dText = "SE LECT * F ROM 知识库主表"
Dim dt As DataTable 
dt= cmd.ExecuteReader()
dt.LoadFilter=""
dt.Load
Dim tb As WinForm.Table = Forms("知识库").Controls("Table1")
tb.Table.DataSource =dt
tb.Table.SetColVisibleWidth("类别|120|级别|60|行业|120|单位|120|文件名|700")


cmd.Comm andText = "SE LECT * FR OM 知识库附件"
dt= cmd.Execu teReader()
dt.LoadFilter="主表uuid=\'" & tb.Table.Current("uuid") & "\'"
dt.LoadFilter=""
dt.Load
Dim tb1 As WinForm.Table = Forms("知识库").Controls("Table2")
tb1.Table.DataSource =dt
tb1.Table.SetColVisibleWidth("文件名|1120")

--  作者:有点蓝
--  发布时间:2022/5/24 20:14:00
--  
二级窗口中新增数据后保存,然后重新加载一级窗体中的table1 table2
--  作者:cnsjroom
--  发布时间:2022/5/24 21:32:00
--  回复:(有点蓝)二级窗口中新增数据后保存,然后重新...

老师有没有更好的加载方法呢?

 

当前是:

Dim cmd As new SQL Command
cmd.Connecti
cmd.Comman dText = "SE LECT * F ROM 知识库主表"
Dim dt As DataTable 
dt= cmd.ExecuteReader()
dt.LoadFilter=""
dt.Load
Dim tb As WinForm.Table = Forms("知识库").Controls("Table1")
tb.Table.DataSource =dt
tb.Table.SetColVisibleWidth("类别|120|级别|60|行业|120|单位|120|文件名|700")


cmd.Comm andText = "SE LECT * FR OM 知识库附件"
dt= cmd.Execu teReader()
dt.LoadFilter="主表uuid=\'" & tb.Table.Current("uuid") & "\'"
dt.LoadFilter=""
dt.Load
Dim tb1 As WinForm.Table = Forms("知识库").Controls("Table2")
tb1.Table.DataSource =dt
tb1.Table.SetColVisibleWidth("文件名|1120")

 

加载出现一楼的问题,会导致table1中的行变化事件不是完美运行


--  作者:有点蓝
--  发布时间:2022/5/24 22:02:00
--  
cmd.Comm andText = "SE LECT * FR OM 知识库附件 where 主表uuid=\'" & tb.Table.Current("uuid") & "\'"
dt= cmd.Execu teReader()
Dim tb1 As WinForm.Table = Forms("知识库").Controls("Table2")
tb1.Table.DataSource =dt
tb1.Table.SetColVisibleWidth("文件名|1120")

或者直接
Dim tb1 As able = Forms("知识库").Controls("Table2").Table
tb1.fill("SE LECT * FR OM 知识库附件 where 主表uuid=\'" & tb.Table.Current("uuid") & "\'","数据源名称",false)
tb1.Table.SetColVisibleWidth("文件名|1120")


--  作者:cnsjroom
--  发布时间:2022/5/25 0:14:00
--  回复:(有点蓝)cmd.Comm andText = "SE LECT * FR O...

Current事件代码修改后问题得以初步解决

老师还有没有其他更简便的操作方法呢?

 

当前Current事件代码如下:

Dim cmd As New S QLCommand
cmd.Connectio nName = "业务"
cmd.CommandT ext = "SEL ECT * FR OM 知识库附件 "
Dim tb1 As WinForm.Table = Forms("知识库").Controls("Table2")
tb1.Table.DataSource = cmd .ExecuteReader()
tb1.Table.SetColVisibleWidth("文件名|1120")

Dim zs1 As Integer = Tables(e.form.name & "_table1").Count
If zs1 > 0 Then
    If Tables(e.form.name & "_table1").Current("uuid") <> "" Then
        vars("主表uuid") = Tables(e.form.name & "_table1").Current("uuid")
        tb1.Table.Filter = "主表uuid=\'" & Tables(e.form.name & "_table1").Current("uuid") & "\'"
        Dim zs2 As Integer = tb1.Table.Count
        If zs2 > 0 Then
            Tables(e.form.name & "_table3").Filter = "附件uuid=\'" & tb1.Table.current("uuid") & "\'"
        Else
            Tables(e.form.name & "_table3").Filter = "uuid=\'XXXXXXX\'"
        End If
    Else
        Tables(e.form.name & "_table2").Filter = "uuid=\'XXXXXXX\'"
    End If
End If

 

[此贴子已经被作者于2022/5/25 1:05:28编辑过]