Foxtable(狐表)用户栏目专家坐堂 → 异常函数


  共有2131人关注过本帖树形打印复制链接

主题:异常函数

帅哥哟,离线,有人找我吗?
keli0917
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2735 威望:0 精华:0 注册:2018/5/21 16:49:00
异常函数  发帖心情 Post By:2024/3/29 21:16:00 [显示全部帖子]

Filler填充datatables("凭证")约1000行数据

函数A

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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2735 威望:0 精华:0 注册:2018/5/21 16:49:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
keli0917
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2735 威望:0 精华:0 注册:2018/5/21 16:49:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2735 威望:0 精华:0 注册:2018/5/21 16:49:00
  发帖心情 Post By:2024/3/30 10:29:00 [显示全部帖子]

100行以内挺快,超过100行就慢的要命了

 回到顶部
帅哥哟,离线,有人找我吗?
keli0917
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2735 威望:0 精华:0 注册:2018/5/21 16:49:00
  发帖心情 Post By:2024/3/30 10:30:00 [显示全部帖子]

本来是放在DATACOLCHANGED里的,实在太卡,所以想着换个方法。

 回到顶部
帅哥哟,离线,有人找我吗?
keli0917
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2735 威望:0 精华:0 注册:2018/5/21 16:49:00
  发帖心情 Post By:2024/3/30 15:41:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb

帮忙看一下代码吧。因为数据是从金碟软件Filler填充到凭证序时簿的,没办法做示例数据。

 回到顶部
帅哥哟,离线,有人找我吗?
keli0917
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2735 威望:0 精华:0 注册:2018/5/21 16:49:00
  发帖心情 Post By:2024/3/30 18:06:00 [显示全部帖子]

GLVch、GLAcct、GLObj是同一个数据库KIS
凭证序时簿、FP_取得fa piao池、FP_开具fa piao池是同一个数据库MYACC

 回到顶部
帅哥哟,离线,有人找我吗?
keli0917
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2735 威望:0 精华:0 注册:2018/5/21 16:49:00
  发帖心情 Post By:2024/4/1 21:48:00 [显示全部帖子]

嗯,谢谢。核算项目代码和文件地址可以这样生成,
FAcctName不是行的吧,因为FAcctName取到的是最后一级会计科目的名称,但是我要显示的是从第一级到最后一级会计科目的所有名称用_连接。


 回到顶部
帅哥哟,离线,有人找我吗?
keli0917
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2735 威望:0 精华:0 注册:2018/5/21 16:49:00
  发帖心情 Post By:2024/4/2 10:01:00 [显示全部帖子]

SEL1ECT FAcctID,(Case len(FacctID) 
When 4 Then FAcctName   ‘4位时,直接取FAcctName
When 6 Then  Sel1ect FacctName From {GLAcct}  where FAcctID = '" &  SubString(FacctID,0,4) &"'" & FAcctName End)   
‘6位时,取FacctID前4位时的FAcctName+6位的FAcctName
As 科目名称   From {GLAcct}"

能帮忙写一下吗?这样写不对。
[此贴子已经被作者于2024/4/2 10:01:16编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
keli0917
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2735 威望:0 精华:0 注册:2018/5/21 16:49:00
  发帖心情 Post By:2024/4/20 19:57:00 [显示全部帖子]

ACCESS数据源,提示应为标识符??直接执行SQL就不提示错误。

 cmd.CommandText = "Sel1ect {GLVch}.*,FObjName, Switch(len(a.FacctID) = 4, a.FAcctName, len(a.FacctID) = 6, (Sele1ct top 1 b.FacctName from {GLAcct} As b where b.FAcctID = left(a.FacctID,4)) & "_" & a.FacctName ,len(a.FacctID) = 8, (Sel1ect top 1 b.FacctName from {GLAcct} As b where b.FAcctID = left(a.FacctID,4)) & "_" & (Sel1ect top 1 b.FacctName from {GLAcct} As b where b.FAcctID = left(a.FacctID,6)) & "_" & a.FacctName) As 科目名称 From (({GLVch} Left JOIN {GLObj} ON {GLObj}.[FObjID] = {GLVch}.[FObjID]) Left JOIN {GLAcct} As a ON a.[FAcctID] = {GLVch}.[FAcctID])"
   


 回到顶部
总数 12 1 2 下一页