以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  会计科目的代码以及读取金蝶数据库表的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=175670)

--  作者:hitzfeld
--  发布时间:2022/3/15 3:47:00
--  会计科目的代码以及读取金蝶数据库表的问题

图片点击可在新窗口打开查看此主题相关图片如下:三级1.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:会计科目.rar

首先是读取金蝶数据库表的一个非常奇怪的问题!金蝶的会计科目表分三级科目,对应的名称也按三级划分,但是奇怪的是,有一部分(注意,奇怪的地方就是这里,是一部分)第三级科目的字符串无法读取到狐表!后台数据库有数据,读到狐表就没了。我尝试了很多方法,比如修改字符串长度,去除ASCII字符、重新加载表,无论怎么弄都不行。因为考虑可能有存储过程的干扰(金蝶的数据库存储过程超级多),我把这个会计科目表独立出来,专门做一个数据库,在狐表读取,仍然无法读出来!下面我把数据库和狐表的例程和截图发到论坛上,请老师帮忙看下?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.rar

然后是会计科目程序设计的问题,我把问题放在上传的狐表项目里面,请蓝老师运行下窗口,里面有问题的描述。
在此先谢谢老师,辛苦您了!


--  作者:hitzfeld
--  发布时间:2022/3/15 3:48:00
--  第二张

图片点击可在新窗口打开查看此主题相关图片如下:三级2.jpg
图片点击可在新窗口打开查看

第二张图
[此贴子已经被作者于2022/3/15 3:49:42编辑过]

--  作者:有点蓝
--  发布时间:2022/3/15 8:45:00
--  
金蝶里的数据是有换行的,复制到记事本就看到了。把Foxtable的行拉高就能看到
--  作者:hitzfeld
--  发布时间:2022/3/15 15:32:00
--  
啊!原来是这样图片点击可在新窗口打开查看谢谢蓝老师,那我知道怎么处理了。另外一个关于仿造"用递归函数创建会计科目”报错的问题也想麻烦蓝老师看下,就是在上面的狐表文件里面,打开出口设计器,运行窗口就报的错误,麻烦老师指点一下。
--  作者:有点蓝
--  发布时间:2022/3/15 16:45:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:会计科目.zip


--  作者:hitzfeld
--  发布时间:2022/3/15 18:19:00
--  
蓝老师好,感谢您帮我修改的代码,现在已经能实现二级、三级筛选了。真的太感激您了!!!图片点击可在新窗口打开查看

但是就是在启动窗口的时候仍然报“指定参数已超出有效值的范围”,这个我还是没有思路?感觉代码没问题啊?怎么就超出了呢?能麻烦您再看下吗?谢谢!

图片点击可在新窗口打开查看此主题相关图片如下:fw.jpg
图片点击可在新窗口打开查看



--  作者:有点蓝
--  发布时间:2022/3/15 20:01:00
--  
这个是数据有问题。有不符合规则的会计科目代码,自己排查吧
--  作者:hitzfeld
--  发布时间:2022/3/16 17:29:00
--  
经过一个晚上的研究,终于明白问题在哪里了!现在把结果说明一下,看看能不能对初学者有所帮助:首先,使用狐表的帮助文档中的“用递归函数生成会计科目目录树”,在用户录入科目代码的时候,必须严格按照代码的长度编码,比如定义是322长度,就必须是322,定义是433,就必须是433,不足部分必须补0,否则会报错。第二、狐表的案例有点问题,这个案例把会计中基本没用的“共同”和“表外”两个科目去掉了。案例中的数组定义是按Dim rts() As String = {"全部","资产","负债","权益","成本","损益"}分5个科目,分别对应1、2、3、4、5开头的科目代码,但是如果你的科目中有使用到超过5的代码,就会导致报“指定参数已超出有效值的范围”错误。 实际上代码是没用错的,你需要吧主科目补全了就对了!比如帮助文档的 Dim rts() As String = {"全部","资产","负债","权益","成本","损益"}要改为Dim rts() As String = {"全部","资产","负债","共同","权益","成本","损益","表外"}。这样就不会报错了!在此,感谢蓝老师的一路指导,感恩有您!谢谢!