以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 异常函数 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=191188) |
||||
-- 作者:keli0917 -- 发布时间:2024/3/29 21:16:00 -- 异常函数 用Filler填充datatables("凭证")约1000行数据 For Each dr As Row In Tables("凭证_Table1").Rows If dr IsNot Nothing Then Dim dr1 As DataRow dr1 = DataTables("GLObj").SQLFind("[FObjID] = \'" & dr("核算项目代码") & "\'") If dr1 IsNot Nothing Then dr("核算项目名称") = dr1("FObjName") End If dr.save() End If Next Functions.AsyncExecute("函数A") 当窗口1_table1首次加载数据时,总是提示调用的目标发生了异常。是什么原因?如果窗口1_table1原来有数据,就不会提示异常 [此贴子已经被作者于2024/3/29 21:31:55编辑过]
|
||||
-- 作者:keli0917 -- 发布时间:2024/3/29 21:22:00 -- 函数A改成下面: Dim c1md As new SQLCommand cm1d.C Dim dt As DataTable cm1d.CommandText = "S1elect [_Identify],日期 From {凭证}" dt = cm1d.ExecuteReader(True) \'记得将参数设置为True For Each dr As DataRow In dt.DataRows Dim dr1 As DataRow dr1 = DataTables("GLObj").SQLFind("[FObjID] = \'" & dr("核算项目代码") & "\'") If dr1 IsNot Nothing Then dr("核算项目名称") = dr1("FObjName") End If Next dt.save() Functions.AsyncExecute("函数A") 如果这样慢慢加载,没全部加载完,用DataTables("凭证").load()刷新Tables("凭证_Table1")也会出错。如何判断在全部加载完了后自动刷新副本表呀? [此贴子已经被作者于2024/3/29 21:32:47编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2024/3/30 10:09:00 -- 凭证 和 GLObj是不是同一个数据库的表?如果是一条sql就行了 update b set b.核算项目名称 = a.FObjName from {GLObj} as a,{凭证} as b where a.FObjID = b.核算项目代码"
|
||||
-- 作者:keli0917 -- 发布时间:2024/3/30 10:29:00 -- 不是一个数据库的。除了查找核算项目名称。还要查找会计科目名称。 Dim strs1() As String={"4","6","8"} Dim strs2() As String={"科目名称","科目名称","科目名称"} Dim i1 As Integer = CStr(dr("科目代码")).Length \' msgbox(dr("科目代码").SubString(0,i1)) dr("科目名称") = Nothing For i As Integer = 0 To i1/2-2 Dim rs As DataRow rs = DataTables("GLAcct").sqlfind("[FACCTID] = \'" & CStr(dr("科目代码")).SubString(0,strs1(i)) & "\'") If rs IsNot Nothing Then dr(strs2(i)) = (dr(strs2(i)) &"_"& rs("FAcctName")).TrimStart("_") \'MessageBox.Show(dr(strs2(i)) ) Else dr(strs2(i)) = Nothing End If Next |
||||
-- 作者:keli0917 -- 发布时间:2024/3/30 10:29:00 -- 100行以内挺快,超过100行就慢的要命了 |
||||
-- 作者:keli0917 -- 发布时间:2024/3/30 10:30:00 -- 本来是放在DATACOLCHANGED里的,实在太卡,所以想着换个方法。 |
||||
-- 作者:有点蓝 -- 发布时间:2024/3/30 10:32:00 -- 做个例子发上来测试一下,看看有没有优化的方法 |
||||
-- 作者:keli0917 -- 发布时间:2024/3/30 15:41:00 --
帮忙看一下代码吧。因为数据是从金碟软件用Filler填充到凭证序时簿的,没办法做示例数据。
|
||||
-- 作者:有点蓝 -- 发布时间:2024/3/30 15:53:00 -- 首先这个函数只能使用Functions.Execute,不能使用Functions.AsyncExecute,因为:http://www.foxtable.com/mobilehelp/topics/277.htm 然后: GLVch、GLAcct、GLObj都是同一个数据库的表? 凭证序时簿、FP_取得发票池、FP_开具发票池是同一个数据库的表?
|
||||
-- 作者:keli0917 -- 发布时间:2024/3/30 18:06:00 -- GLVch、GLAcct、GLObj是同一个数据库KIS 凭证序时簿、FP_取得fa piao池、FP_开具fa piao池是同一个数据库MYACC
|