本文介绍了在数据操作中如何使用系统的引入与引出功能,并分享了相关错误和提高效率的技巧。引入与引出功能涉及Excel文件的格式校验、数据校验及常见问题处理,如实体序号、必填字段、Excel类型转换等。同时,提出了通过数据库操作、Excel函数、生成序列等方法来提高数据处理效率的建议。
最近我在工地搬砖(数据),然后多次使用引入与引出功能,所以在这里做个分享,不对之处,还请留言指正。
引入与引出功能, 是系统自带的,如果用户在前端没看到,可以在后台增加按钮把它放出来(调用对应的操作),如下图
这些操作一般出厂就会有的。
题外话,引入与引出,其实跟WebAPI很类似,只是载体不一样,引入与引出是面向Excel的用户,WebAPI是面向编程人员(另外WebAPI可以提供提交、审核等操作)。从导入的角度上看,两者都会先检验格式,然后进行输入值校验,然后检验值更新与实体规则, 还有保存校验等。
引出分两种,一个是单页签,一种是多页签。众所周知,金蝶业务,有单据头、单据体、子单据体。如果所有单据体(含下属子单据体)一起显示,那就是单页签,如果是一个单据体(含下属子单据体)就是一个页签,那就是多页签显示了。
先说一下常见的引入错误。
1,引入分为追加与覆盖,追加的话要选择以什么为匹配字段。匹配字段要在引入文件的数据中具有唯一性,不然就会报错提示。
2,第一,系统会首先检查FBillHead(BD_MATERIAL)/物料(实体序号),要求不同的单据体每一列都有不同的数字值,这是区别不同单据体的依据。常见错误,1)实体序号不要有重复值,2)不要漏写实体序号,除非与上行记录共用一个单据体头时候实体序号应为空,此时该行记录整个单据头都为空。
3,注意Excel自带的类型转换,如组织代码为0481,如果没设置好改单元格为文本,而是数值或者常规的,Excel会转换为481,然后引入时候就会出现错误。
4,引出文件列前两个单元格为蓝色,且在中文列有*号字符,需注意为此时必填字段,如下图.
我个人认为,Excel文件引入系统,会进行两个阶段的校验,第一个阶段是Excel的格式校验,如实体序号是否为空有重复,如必填字段没有填写。这时候有错误,只会提出错误提示,不会给出失败数据,常见错误如上。第二个阶段就是数据的校验,这是会就会区别成功与失败的数据,失败的数据如可以下载下来,常见错误如下。
5,对于有弹出选择框的字段,在该单元格内,一定要赋予选择框内的值,系统会检验Excel所赋的值是否在选择框内,如不是,就会把这条数据归类在失败数据里。
6,对于有编码有名称的数据,系统只能编码不认名称的,如下图
。如果编码错误了而名称正确,也会进入失败的数据。
7,小心值更新的坑,例如应付单,需要填写币别与汇率。大家都知道,币别一改,就会触发汇率为空的。如果你在Excel引入文件中,汇率排在币别前面,然后数据进行了币别的值更新后汇率会为空,而汇率是必录项,此时会归到了失败数据并且提示你汇率不能为空,一般的新手如我就会比较困惑,明明汇率都有值了还这样提示,原因就在值更新里。此时要做值更新的列放在前面,被影响的列放在后面或者最好(感谢在现场教导过我的研发老师)。
另外,说下提高效率的小技巧。
1,可以把整个Excel表导入数据库进行数据库操作,此时需注意的是,Excel97-03 会限制Excel表的列数,最多会有256,而金蝶系统单页签经常会超过256个列的,从另一个方面说明金蝶系统功能的大而全了。在数据库里,你想怎么玩就怎么玩啦。然后你select 该表的*列,会与你的引入文件一样的,直接可以复制到Excel表,请先把Excel的所有格式设置为文本。
2,如果坚持在Excel里整理数据,对于来源文件有正确的名称,而没有对应的编码,可以使用Excel的Vlookup,不过这要对照区间有唯一性,而我在这里中被坑了不少次。
3,生成实体序号,可以以前三列分别以100001\100002\100003,然后框定这三个单元格,在右下方出现的加油一拉拉到底,下列就是以等差数列值赋值了。所以双击一下右下方的加号,会自动生成到与隔壁的最下方行值或者......(不知道如何描述,可以试试)。 又如业务组织编码,一直都不变的话,可以前三个单元格都赋值一样,然后如前操作。 题外话,引出文件的实体序号,其实是内码来的。关于内码,可以参考看看帖子 https://vip.kingdee.com/article/170997 ..
4,如果还是不怎么熟悉Excel,可以在前面添加个排序列,由1逐步加1到N,然后倒入数据库进行操作,输出数据库语句order by 排序列 Asc ,这样就可以插回去Excel了,可以保证每个Fnumber或者实体序列一一对应了。
5,例如在物料中,一般库存单位、销售单位会跟基础单位完全相同,之前我会从第三列一拉拉到底,然后粘贴到库存单位的第三列,此时我还要验证下是不是最低一行一样。这样比较劳心劳力。其实可以把库存单位隔壁插入基本单位,然后把库存单位的前两列列名复制贷插入的隔壁列,然后再删除原来的库存单位 这一列, 这样的话又快又准了。
词不达意,引入是个操作性很强的过程,感谢你们阅读本帖子,希望你们能动手做,在动手中来分析本帖子,热烈欢迎留言指正,共同进步。
推荐阅读