以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 一级窗体中的table1 table2都是sqltable表,怎么实现二级窗口中新增数据后,在一级窗口的表数据即时刷新呢? (http://foxtable.net/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 窗体关闭事件代码如下:【代码运行后刷新数据不是很完美,会导致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 Dim zs1 As Integer = Tables(e.form.name & "_table1").Count
[此贴子已经被作者于2022/5/25 1:05:28编辑过]
|