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


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

主题:异常函数

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106672 积分:542549 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/3/30 10:09:00 [显示全部帖子]

凭证 和 GLObj是不是同一个数据库的表?如果是一条sql就行了

update b set b.核算项目名称 = a.FObjName from {GLObj} as a,{凭证} as b where a.FObjID = b.核算项目代码"

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106672 积分:542549 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/3/30 10:32:00 [显示全部帖子]

做个例子发上来测试一下,看看有没有优化的方法

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106672 积分:542549 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/3/30 15:53:00 [显示全部帖子]

首先这个函数只能使用Functions.Execute,不能使用Functions.AsyncExecute,因为:http://www.foxtable.com/mobilehelp/topics/277.htm

然后:

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

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106672 积分:542549 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/3/31 20:44:00 [显示全部帖子]

【GLVch、GLAcct、GLObj是同一个数据库】,那在使用sql取数据导入凭证序时簿的时候,直接关联取数据就行,比如

cmd.CommandText = "SELECT *,b.FAcctName From {GLVch} as a left join GLAcct as b on a.FAcctID=b.FACCTID"

同理使用sql把FP_取得fa piao池、FP_开具fa piao池对应的值更新到凭证序时簿即可

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106672 积分:542549 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/4/1 21:53:00 [显示全部帖子]

sql里也有substring等截取字符的函数:http://www.foxtable.com/webhelp/topics/1827.htm

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106672 积分:542549 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/4/2 10:10:00 [显示全部帖子]

试试

SEL1ECT FAcctID,(Case len(FacctID) 
When 4 Then FAcctName   ‘4位时,直接取FAcctName
When 6 Then  (select top 1 FacctName from {GLAcct} as b where b.FAcctID = SubString(a.FacctID,1,4)) + FAcctName End)   
‘6位时,取FacctID前4位时的FAcctName+6位的FAcctName
As 科目名称   From {GLAcct} as a"


 回到顶部