约有十几个TEXT控件的窗口打开,AFTERLOAD事件,加载默认10几个数值,有三个ADDNEW,耗时6秒,怎么优化?
dim dr as row= Tables("表1").AddNew()
Dim c1md As New SQL1Command
1cmd1.C
1cm1d.CommandText = "Se1lect 单据前缀 From [JC_默认值设置] WHERE 名称 = '默认值' And 方向 = '单位'"
dr("单位") = 1cmd.ExecuteScalar()
~~~~~~~
有十几个1cm1d.CommandText
dim dr1 as row= Tables("表2").AddNew()
dim dr2 as row= Tables("表3").AddNew()
能不能设一个函数,加载数据。代码如下:
Dim cmd As new SQLCommand()
cmd.C '指定数据源
Dim dr As Row = Args(0) '
cmd.CommandText = "S1elect 单据前缀 From [JC_默认值设置] WHERE 名称 = '默认值' And 方向 = '经营单位'"
dr("经营单位") = cmd.ExecuteScalar()
cmd.commandtext = "sel1ect 统一社会信用代码 From [JC_公司信息] where 中文全称 = '" & dr("经营单位") & "'"
dr("统一社会信用代码") = cmd.ExecuteScalar()
dr("境内发货人") = cmd.ExecuteScalar()
dr("生产销售单位") =cmd.ExecuteScalar()
cmd.CommandText = "Se1lect 单据前缀 From [JC_默认值设置] WHERE 名称 = '默认值' And 方向 = '币种'"
dr("币种") = cmd.ExecuteScalar()
cmd.CommandText = "Se1lect 单据前缀 From [JC_默认值设置] WHERE 名称 = '默认值' And 方向 = '收汇方式'"
dr("收汇方式") = cmd.ExecuteScalar()
cmd.CommandText = "Sel1ect 单据前缀 From [JC_默认值设置] WHERE 名称 = '默认值' And 方向 = '唛头'"
dr("唛头") = cmd.ExecuteScalar()
cmd.CommandText = "Sel1ect 单据前缀 From [JC_默认值设置] WHERE 名称 = '默认值' And 方向 = '包装种类'"
dr("包装种类") = cmd.ExecuteScalar()
cmd.CommandText = "Sel1ect 单据前缀 From [JC_默认值设置] WHERE 名称 = '默认值' And 方向 = '成交方式'"
dr("成交方式") = cmd.ExecuteScalar()
cmd.CommandText = "Sel1ect 单据前缀 From [JC_默认值设置] WHERE 名称 = '默认值' And 方向 = '运输方式'"
dr("运输方式") = cmd.ExecuteScalar()
cmd.CommandText = "Sel1ect 单据前缀 From [JC_默认值设置] WHERE 名称 = '默认值' And 方向 = '监管方式'"
dr("监管方式") = cmd.ExecuteScalar()
cmd.CommandText = "Se1lect 单据前缀 From [JC_默认值设置] WHERE 名称 = '默认值' And 方向 = '征免性质'"
dr("征免性质") = cmd.ExecuteScalar()
然后在窗口的AFTERLOAD事件代码
dim dr as row = Tables("AAA").AddNew()
Functions.AsyncExecute("加载数据",dr) '异步调用
[此贴子已经被作者于2024/1/27 10:17:49编辑过]
无非是打开一个窗口,先新增一行,然后要加载的默认值有点多。可能有几十个。怎么让他慢慢加载进来并赋值给新建行,同时展示在窗口的控件上
[此贴子已经被作者于2024/1/27 10:23:46编辑过]
和这个默认值表的结构应该没什么关系吧,就是三列,都是字符型,使用MSSQL数据库

此主题相关图片如下:qq图片20240127111839.png

.
[此贴子已经被作者于2024/1/27 12:07:08编辑过]
这种一个表查一次就行了
Dim cmd As new SQLCommand()
cmd.C '指定数据源
Dim dr As Row = Args(0) '
cmd.CommandText = "S1elect 方向,单据前缀 From [JC_默认值设置] WHERE 名称 = '默认值'"
dim dt as datatable = cmd.ExecuteReader()
for each dr1 as datarow in dt.datarows
if dr.Table.Cols.Contains(dr1("方向"))
dr(dr1("方向")) = dr1("单据前缀 ")
end if
next
cmd.commandtext = "sel1ect 统一社会信用代码 From [JC_公司信息] where 中文全称 = '" & dr("经营单位") & "'"
dim s as string = cmd.ExecuteScalar()
dr("统一社会信用代码") = s
dr("境内发货人") = s
dr("生产销售单位") =s