一般情况下我们在构建增删改查窗体的时候,如果修改了某条数据会调用刷新功能来刷新网格中的数据,修改代码如下:
dim form1 = 创建窗体("a4011f01-6826-4868-b8c8-633251a188eb")
form1.Input1="EDIT"
form1.Input2=网格部件1.GetFocusedRowValue("ID")
form1.ShowDialog()
call("刷新")
但是这样如果数据多的话会很慢,所以用一下方法解决:
dim form1 = 创建窗体("a4011f01-6826-4868-b8c8-633251a188eb")
form1.Input1="EDIT"
form1.Input2=网格部件1.GetFocusedRowValue("ID")
form1.ShowDialog()
'判断如果打开的编辑窗体的Output1有值,说明是已经修改成功,那么就更新修改的这一条数据
if isnull(form1.Output1)=false then
'查询出被修改的数据
dim dt=ExecuteSelect("select * from meis_设备基本信息 where ID='"&网格部件1.GetFocusedRowValue("ID")&"'")
'获取修改的这一行数据的赋值到newdr
dim newdr=dt.Rows[0]
'循环网格部件1并判断查询出来的数据中是否有网格部件的字段
for each c in 网格部件1.DataTable.Columns
if dt.Columns.Contains(c.ColumnName) then
'如果查询出来的数据中的字段有网格部件中的字段就更新这个字段的值
网格部件1.SetFocusedRowValue(c.ColumnName,newdr[c.ColumnName])
end if
next
end if