NC63二次开发的单据如何传会计平台应收应付单据生成凭证证

后使用快捷导航没有帐号?
社区账号/云之家账号
记住登录状态
使用合作账号登录
快速安全登录
请使用云之家APP扫描二维码
扫码关注即可获取服务
本帖最后由 yi_ma@K3Cloud 于
16:55 编辑
& && && && && && && &目& &&&录1 智能会计平台客户应用案例分享–1.1 案例一:如何配置转销应付单的凭证模版–1.2 案例二:5.0异币别付款核销凭证生成及对账方案–1.3 案例三:销售出库单生成结转销售收入的凭证–1.4 案例四:存货类别变更引起的对账问题 2 智能会计平台常见问题分享–2.1 应用操作类常见问题分享–2.2 存货对账不平常见问题案例分享
------------------------------------------------------------------------------------------------
1.1 案例一:如何配置转销应付单的凭证模版(1)客户业务需求场景
o供应商之间若存在应付款转销业务,业务流程方面是支持的,但凭证模版不知道如何设置?
(2)标准产品可否满足 ?
o可满足,因为要使用到过渡科目进行模版分录设置,系统没有预设凭证模版,可自行配置。
(3)详细解决方案如下:
①使用应付转销功能,选择需要转销的单据、币别、结算组织、转出供应商、转入供应商,如图:
②转销数据设置---录入本次转销金额及转入业务日期:
③转销完成后系统将产生一正一负的转销应付单;
④凭证模版设置:应付单凭证模版新增一行业务分类“转销应付单”,凭证模版设置如图:因为被转销的供应商会产生一笔负数的转销应付单,故金额设置为 0 – 相应金额字段,分录行生成条件可设置为如图中所示 价税合计 & 0 ;转销后新的供应商会产生一般正数的转销应付单,其分录行生成条件可设置为 价税合计 & 0.
⑤生成凭证时选择对应的转销应付单,然后选择全部汇总生成方式,生成后的总账凭证样式如下:
说明下:过渡分录科目凭证分录产生与否受摘要取值影响。同时也须考虑智能会计平台参数“总账凭证分录合并”与否的影响。
修改摘要取值后,凭证生成效果如下:
⑥同理,应收款转销亦可配置应收单的凭证模版---增加业务分类“转销应收单”并设置其对应的模版分录即可。
--------------------------
1.2 案例二:5.0异币别付款核销凭证生成及对账方案
(1)客户业务需求场景
o5.0版本下,应付账款币别是美金,付款时付的人民币,因应付单和付款单币别不一致导致对帐不平,客户希望系统可以提供解决方案?
(2)标准产品可否满足 ?
o5.0不支持应付款异币别直接核销,但可以变通处理。
(3)详细解决方案如下:
①按照客户反馈的应用场景,应付账款科目需启用外币核算,此处假设供应商为A,结算币别为USD,付款币别为RMB;有一笔1000USD的应付款用6000RMB进行了结算核销。
② 步骤1:应付单挂账时凭证账务处理如下:
借: 应付暂估
& && & 增值税--进项税
& &贷:应付账款(供应商A)1000 USD
③步骤2:手工新增一笔付款单,币别为RMB,金额为6000RMB,凭证账务如下:
借:应付账款(供应商A)6000 RMB
& &&&贷:现金/银行存款 6000 RMB
④步骤3:使用应付款管理模块下的“应付付款特殊核销”功能将步骤1和步骤2 的应付单和付款单进行特殊核销,且核销前应勾选“应付付款特殊核销合并产生核销记录”选项,系统将自动产生一笔“应付核销单”,需要配置下凭证模版(将应付账款分录且分录行生成条件是“明细.单据 = '付款单' AND 明细.收付款用途.名称 = '采购付款' ”对应的方向修改为借方 且金额取负数),凭证模版详细如下图所示:
⑤应付核销单生成凭证效果如下:
借:应付账款(供应商A)1000 USD
借:应付账款(供应商A)- 6000 RMB
⑥以上3步处理完毕后应付款明细表RMB 和USD两个币别期末余额均为0,对账单独看USD 显示对账平衡,因RMB账务抵消 对账可不用查看(总账和业务报表期末余额均为0)。客户的问题可通过以上方法变通处理解决,可满足客户在现有5.0版本下异币别应付款核销 及对账(含凭证生成)业务需求。
⑦如果是6.0版本则无须产生“应付核销单”,账务处理流程也相对简单(付款单支持异币别结算核销)。
⑧附5.0解决方案论坛分享链接如下:
------------------------------
1.3 案例三:销售出库单生成结转销售收入的凭证
(1)客户业务需求场景
o个别存在零售业务的客户,其门店组织不使用应收模块,客户希望凭证生成时---销售出库单结转销售成本凭证的同时可以产生结转销售收入的凭证,系统是否可以提供解决方案?
(2)标准产品可否满足 ?
o可满足。未预设此类业务的凭证模版,但可以变通处理。
(3)详细解决方案如下:
①打开销售出库单凭证模版,发现金额来源取值有含税单价、单价、税率、实发数量、勾稽数量、金额、金额(本位币)、总成本、总成本(本位币)、总成本(本位币)(费用明细)等字段,但并未有价税合计、税额等字段,如何生成含销售收入及税额的凭证?
②通过金额字段之间的关系分析得知,应收账款的金额取值价税合计可由 含税单价*实发数量 得到,主营业务收入金额取值可由 金额或金额本位币 得到,而 总成本、总成本(本位币)、总成本(本位币)(费用明细)这几个字段代表的都是和成本相关的金额字段,通过销售收入和销售成本中间的差刚好可以得到我们想要的税额金额值,故可以变通的设置凭证模版,得到客户想要的凭证信息。
③凭证模版可做如下设置:
④生成凭证效果举例如下:
-----------------------------------
1.4 案例四:存货类别变更引起的对账问题
(1)客户业务需求场景
o个别企业存在管理上的需要,物料使用了一段时间后,希望将之前的存货类别变更为其他类别,可否直接变更存货类别,系统提供的解决方案是什么样的?
(2)标准产品可否满足 ?
o可满足。不可直接更改物料存货类别,但可以变通处理。
(3)详细解决方案如下:
①如果直接变更物料的存货类别,对导致存货收发存汇总表数据全部按物料的最新存货类别进行汇总计算统计,这样再用智能会计平台的存货对账功能的话,会发现以往结账期间之前可以对的上的存货余额和总账科目余额,现在全部都有差异且每一期都对账不平衡。原因是总账存货科目余额是由原有存货类别通过凭证模版设置生成凭证到总账的,且总账科目余额已经是历史记录数据了,不会像存货收发存汇总表一样按物料最新存货类别进行汇总计算。
②正确的做法是怎么样的? 答:应保留原有物料及其对应的存货类别不动,新增一个物料并将设置好其最新需要的存货类别;通过 成本调整单调减原有物料存货余额至0,全部将其存货余额调整新物料即可。这样可保留企业物料存货类别变更的历史记录,同时保证以往历史期间以及未来期间的存货对账都是平衡的。
-----------------------------------------------------------------------------------
2.1 应用操作类常见问题分享
2.1.1 频率最高的凭证生成提示:凭证分录借贷方金额相差*****,超出系统参数中设置的允许尾差范围-1 ~ 1,不生成凭证.
答:(1) 碰到此类问题很多客户或顾问的第一反应就是修改智能会计平台参数尾差范围,而尾差参数的真正用途是控制业务单据生成凭证时尾差的允许范围;对于范围内的尾差,系统将自动进行调整。
(2) 出现此提示的真正原因在于凭证模版借贷方金额不平导致,应检查单据对应适用账簿下的凭证模版,如果模版分录较多可逐一进行排查。也有顾问直接将尾差修改为大于凭证生成报告的提示,这样可以生凭证后快速检查具体哪个科目对应金额设置有问题;但注意需要及时将尾差参数修改回来,以免其它单据生成凭证数据错误。
2.1.2 当前查询串/字符串 无法解析 ******
答:出现此类的提示一般和凭证模版上 摘要、科目影响因素、分录行生成条件、金额等设置有关,按照相应的提示检查凭证模版再次运行凭证生成即可。如果不能确定具体的字段,可打开BOSIDE查看下对应的是哪个字段,然后再看凭证模版哪里使用到了该字段,进行排查即可。
2.1.3 如何生成借贷借贷模式的总账凭证? 答:(1) 智能会计平台参数---“总账凭证分录合并”---不勾选;(2) 凭证生成时总账凭证生成方式为“匹配汇总”或“全部汇总”;(3)总账凭证生成时系统的逻辑的逻辑为:将业务凭证按照总账凭证生成选择的总账凭证生成方式直接进行简单叠加。举例如下:
2.1.4 凭证模版上模版分录“业务凭证分录合并”的作用:
答:(1) 如果凭证模版上模版分录处“业务凭证分录合并”不勾选,则生成业务凭证时按照凭证模版的设置直接生成对应的业务凭证,而业务凭证分录行数的多少取决与科目、摘要等设置;
(2) 业务凭证分录合并与否不会直接影响总账凭证的生成效果,总账凭证分录合并与否受“智能会计平台参数—总账凭证分录合并”直接影响,受凭证模版“业务凭证分录合并”与否间接影响(智能会计平台参数“总账凭证分录合并”不勾选时,业务凭证分录合并与否将直接影响总账凭证分录行数)。
2.1.5 不同来源单据可否汇总生成凭证?
答:不支持。因为现有Cloud技术平台下,凭证模版设置支持取系统所有来源单据(含客户二次开发单据),凭证生成时获取的单据范围也是按模版进行过滤筛选的,不同来源单据对应的是不同的凭证模版,无法汇总生成凭证。客户反馈较多的就是将采购入库单、采购入库成本调整单、费用应付单3种单据合并生成一张凭证,目前系统不支持,如果客户有能力建议二开处理(具体操作为可写视图将需要的数据抓取到,然后配置相应的凭证模版生成凭证)。
2.1.6 同一来源单据凭证模版上不同业务分类设置的凭证分录,生成总账凭证时可否合并?
答:同一模版不同业务分类的模版分录,即时存在相同科目,在生成总账凭证时也不合并。因为为了确保总账凭证的分录顺序与凭证模板分录顺序的一致性,目前总账凭证分录行合并的控制逻辑要求必须是同一业务分类同一分录行下且满足科目、维度等要素相同的总账凭证分录才会进行合并。
2.1.7 客户自行添加了基础资料或者辅助资料,且在单据上也设置了相同字段,但凭证模版上使用其作为科目影响因素时科目影响因素来源无法设置:
答:单据上添加的字段属性不正确,应该同样为基础资料或者辅助资料;如果设置正确但仍旧选不到,可尝试清除系统缓存、本地缓存后再试。
2.1.8 服务/费用类物料不需要生成凭证,但凭证生成提示部分分录没有核算:
答:(1)系统对于物料属性或存货类别为“服务”、“费用”、“资产”的物料是不进行成本核算的,那么出入库单据包含有此类物料时也不会有成本;
(2)可通过单据对应的凭证模版---业务分类---模版分录---分录行生成条件进行设置,分录行生成条件设置样式为 存货类别 & & 服务,需要注意的是因为6.0及以上版本,部分业务单据列表为了提升查询性能,对单据部分字段进行了隐藏,如果分录行生成条件需要使用到的字段在单据上确实存在,可通过BOSIDE将该字段“过滤条件列表可见”勾选即可。解释一下分录行生成条件支持单据头、单据体的所有字段。
(3)服务、费用类物料凭证生成目前5.0及以上版本均支持。
(4)需要注意的是如果整张单据都为服务或者费用类物料,即时设置了分录行生成条件也会在生成凭证时提示部分分录没有进行存货核算,程序目前尚无法处理此业务场景,建议此类业务应在业务流程梳理的时候进行规避。
(5)提一下资产类物料在进行其他出库领用生成凭证的问题,系统的成本核算逻辑和服务、费用类物料相同,不进行成本核算。此类单据可通过其他出库单凭证模版的业务分类进行屏蔽剔除,如果没有系统预置可识别的字段,客户可自行添加字段作为业务分类的区分标识。
2.1.9 凭证模版业务分类是否支持单据体字段?
答:凭证模版业务分类取值字段只支持单据头的所有字段,不支持取单据体上的字段,如果需要设置单据体字段 可通过分录行生成条件进行实现。分录行生成条件取值支持单据头、单据体所有字段。
2.1.10 单据部分物料为赠品,凭证生成提示没有进行存货核算,此种情况下如何生成凭证?
答:检查成本管理参数:
(1)如果勾选“期末存在零成本单据允许结账”,则凭证生成无特殊控制,单据存在赠品类且成本为0 的单据也可以生成凭证;
(2)如果未勾选“期末存在零成本单据允许结账”则请检查是否勾选“赠品、不良品、废品单据为零时允许结账”,如果未勾选则赠品类必须要求有成本才可以生凭证,如果勾选则 单据存在部分行为赠品且成本为0的情况下可顺利生成凭证;
(3)参数“期末存在零成本单据允许结账”的控制范围小于参数“赠品、不良品、废品单据为零时允许结账”;
(4)如果整单都为赠品,目前程序尚未处理建议视情况手动剔除即可,同时如有可能在业务流程梳理时应该予以规避;
(5)因赠品在成本核算账务处理过程中系统并没有严格控制必须0成本,所以不适用分录行生成条件设置不等于赠品的处理方法,应结合成本参数一起使用。
(6)目前凭证生成对应赠品的处理逻辑控制为单据上有“赠品”标识字段,部分企业可能会使用到跨组织采购业务(部分物料为赠品),其产生的分步式调入单和分步式调出单上均无赠品标识,此类在不勾选成本参数“期末存在零成本单据允许结账”时,单据无法生成凭证。
2.1.11 非业务应付模式下,应付暂估初始数据如何录入?
答:(1)非业务应付模式下目前V6.1版本已支持对账功能,取值业务报表来源为存货核算“入库勾稽汇总表”;
(2)入库勾稽汇总表包含期初采购入库单数据,客户可将期初暂估物料数据明细通过期初采购入库单录入系统;
(3)期初采购入库单可下推应付单(应付单可作为采购发票使用),期初存货余额通过存货核算初始数据录入系统并通过存货初始模版引入至总账,应付暂估建议总账科目初始数据手工录入或者通过excel模版工具引入。
2.1.12 业务应付模式下,应付暂估初始数据如何录入?
答:(1)业务应付模式下目前V5.1及以上版本已支持对账功能,取值数据来源为期初应付单、应付单、采购发票;
(2)期初应付单录入或者导入时需注意单据体明细行“采购发票数量”、“采购发票价税合计”,如果这两个字段未录入则系统允许期初应付单下推采购发票,如果已录入则不允许下推采购发票;
(3)期初应付单体现的期初应付暂估余额计算逻辑为 : a. 单据头.税额不计入成本: 明细不含税金额 – {采购发票价税合计 / (1 + 税率)},b. 单据头.税额计入成本:明细价税合计 – 采购发票价税合计。
2.1.13 摘要设置相关问题 :
答:(1)常见问题一:智能会计参数“总账凭证分录合并”已勾选,为什么生成的总账凭证分录未合并?需要检查单据凭证模版分录摘要设置,如果摘要取值是变量(比如包含单据编号)那么在智能会计平台参数未勾选“摘要不一致合并”前提下,总账凭证分录不会合并。
(2)常见问题二:总账凭证分录合并勾选的同时想要生成的总账凭证分录不合并如何实现? 与问题一 一样,凭证模版摘要设置为取值变量,且智能会计平台参数摘要不一致合并 不勾选。
2.1.14 凭证生成报告提示分录行******取不到单位或数量(可能原因:1、模板还未配置单位或数量 2、已配置但未能取到对应的值) :
答:检查科目启用了数量金额核算,按照对应的提示检查凭证模版,原因排查如下 :(1)凭证模版数量、单位取值是否设置;(2)如果科目启用了数量金额核算但生凭证时候不想生成的话,检查总账管理参数---凭证参数---凭证中的单价数量字段允许为0 是否勾选。
----------------------------------------------------------------------------------------
2.2 存货对账不平常见问题案例分享
2.2.1 案例一:客户反馈存货对账(存货收发存报表)勾上“不统计核算组织内调拨单据”第四期期末数据不等于第五期期初数据。
答:通过客户账套分析,是有分步式调入单和分步式调出单跨期导致,以其中一个物料为例,勾上“不统计核算组织内调拨单据”的期末结存是不相等的。
(1)第四期未勾上“不统计核算组织内调拨单据”的存货收发存报表数据:
(2) 第四期勾上“不统计核算组织内调拨单据”的存货收发存报表数据:
(3)原因是分步式调入单FBDR对应的原单FBDC在第三期,这个如果勾上“不统计核算组织内调拨单据”去看报表的业务场景就是不合理的。
-----------------
2.2.2 案例二:客户反馈存货对账不平,账套分析得知:采购入库单“赠品”物料核算到了成本但未生成凭证。
答:客户账套数据分析过程如下:
(1)某一期存货对账本期增加金额有差异,经分析数据,发现是勾选了“赠品”的采购入库单核算到了成本,数据引出至excel表格后截图如下:
(2)客户的应用方法是采购入库单凭证模版分录行生成条件设置了 不包含赠品,这样单据就不会生成凭证,对账时候存货收发存本期增加和总账科目余额会存在差异;这属于客户的错误应用,系统目前对于单据存在赠品物料时凭证生成的控制是---成本参数勾选“赠品、不良品、废品单据成本为0允许结账”即可,这样单据存在部分物料为赠品且成本为0的情况下,凭证可以顺利生成。
(3) 采购入库勾选赠品与否并不影响成本核算,成本参数有个选项“赠品、不良品、废品单据成本为0允许结账”,此参数只会影响存货核算结账,因此赠品的单据也可以有成本的。
------------------------
2.2.3 案例三:客户反馈存货对账不平,账套分析得知:存在凭证模版设置、单据未生成凭证、凭证科目借贷方向与出入库序列不一致、凭证金额翻倍、凭证生成重复等多种原因。
答:客户账套数据分析过程如下:
(1)个别凭证模版没有按存货类别全面的设置科目影响因素,比如采购入库、其他出库、生产领料等等,库存商品科目影响因素缺少一个,低值易耗品科目没有包含“办公用品” :
(2)模版科目影响因素来源取值错误,比如组装拆卸单---拆卸类业务分类对应的 分录模版处子件科目影响因素来源为成品件物料存货类别;
(3)组织内调拨类单据(分步式调出单/分步式调入单/直接调拨单)生凭证的问题,部分单据生了凭证,这样导致对账的时即无法统计组织内调拨单据 也无法不统计组织内调拨单据;
(4)成本调整相关凭证重复生成---费用应付单和采购入库单正常勾稽产生了成本调整单,成本调整单生了凭证同时费用应付单也生了凭证;在产生成本调整单的情况下正确的做法是用成本调整单生凭证 而不是用费用应付单(费用应付单没有物料信息,不能按存货类别作为科目影响因素,全部设为原材料也不全对);
(5)盘亏损毁单在存货收发存汇总报表中属于出库队列 归属于本期发出,而配置的凭证模版却为借方负数,应生成为贷方的凭证,这样对账的时候总账贷方本期发生额才能和存货本期发出对得上;
(6)客户账套中存在没有生凭证的单据;
(7)存在手工录入凭证的情况,其中结转主营业务成本竟然是一张手工凭证,存货总账科目余额与业务系统对账需保证两边数据来源一致,手工凭证会直接导致对账不平。
(8)单据体明细币别为外币的成本调整单生成凭证金额翻倍,其中个别单据价格差异、汇率差异同时存在从而使生成凭证后库存商品科目金额翻倍,需修改下凭证模版,分录行生成条件不区分价差汇差即可。
------------------------
2.2.4 存货对账不平常见排查方法总结如下:
1、检查设置的对账方案是否符合项目实际情况、且须确保相应单据全部生成了凭证;
2、如对账结果存在差异,本期增加/本期减少差异 可以通过联查差异分析得知详细原因:
(1)单据未生成指定账簿和期间内的凭证:若过滤出来的单据中在指定的账簿和期间内有部分未生成凭证,则检查结果为不通过;
(2)单据生成的凭证不包含指定科目:若过滤出来的单据生成的凭证不包含对账方案中的科目,则检查结果为不通过;
(3)凭证手工录入:若过滤出来的凭证的来源系统为总账,则检查结果为不通过;
(4)凭证的来源单据不是指定单据:若过滤出来的凭证的来源单据不包含对账方案中的业务单据,则检查结果为不通过。
3、如无法通过差异 分析得出差异数据在哪里,可通过以下方法进一步进行差异排除:
(1)将要核对的当月的核算单据查询数据导出(显示隐藏列勾选 凭证字号),到excel中后 按单据编号、凭证字号 、存货类别、金额 整理统计到数据透视表中,并进行统计;
(2)导出和要对账的科目相关的业务凭证或者总账凭证,建议使用业务凭证(记录有单据编号),并使用数据透视表 功能对 单据编号、科目、金额进行统计;
(3)使用excel 的vlookup公式在两个表之间快速进行数据比较,可得知单据按存货类别生成的凭证科目是否存在差异,如有找出原因后再核对其相应的总账凭证即可;
(4)核算单据查询中凭证字号为空的单据,还应分析没有生凭证的原因,是否会对本次对账有所影响。
4、现场顾问设置对账方案的时候应按项目实际情况进行灵活设置,对账存在差异时要有自己的判断 并认真分析查找原因。
--------------------------------------------------------- 完 -----------------------------------------------------
附分享文档附件,需要的小伙伴可下载下来看下!
16:55 上传
下载次数: 511
1.68 MB, 下载次数: 511
社区建设王者
社区建设王者
社区贡献王者
社区贡献王者
-9(投诉)
金蝶社区移动端
金蝶社区是金蝶产品官方服务互动门户,我们服务于金蝶产品用户,聚焦解决产品使用问题、提供产品操作教程、文档与工具,鼓励交流财务及管理信息,推动建立开放共赢企业生态圈。
金蝶版权所有 (C)
Kingdee Software (China) Inc. All Rights Reserved 粤ICP备号-18欢迎使用KIS专业版服务支持!
以上信息是否已解决您的问题?
请选择原因
非常感谢您的评价,我们将会在今后的工作中不断完善!
客服电话:UDN-企业互联网技术人气社区
后使用快捷导航没有帐号?
浏览&&:&5383
回复&&:&28
回复的帖子
NC63二次开发的单据如何传会计平台生成凭证
回复的帖子
帮顶一下,同求!
回复的帖子
这个就大了
回复的帖子
参考这个文档!
11:27 上传
点击文件名下载附件
1007.5 KB, 下载次数: 433
回复的帖子
参考这个文档!
多谢!!!!!!!!!!!!!
回复的帖子
方竹你知道会计平台-&单据生成里的数据存储在哪个数据库表里
(193.16 KB, 下载次数: 0)
15:14 上传
回复的帖子
fip_operatinglog
回复的帖子
fip_operatinglog
回复的帖子
参考这个文档!
请问一下你还有&&关于NC63二次开发的单据如何传会计平台生成凭证&&的资料没? 你原来那个打开是乱码!
回复的帖子
请问一下你还有&&关于NC63二次开发的单据如何传会计平台生成凭证&&的资料没? 你原来那个打开是乱码! ...
我下载了,没有乱码啊!
电话:010-
地址:北京市海淀区北清路68号
移动客户端下载
微信公众号:yonyouudn
扫描右侧二维码关注我们
专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041
京公网网备安4
Powered by Discuz!【图文】用友NC会计平台_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
用友NC会计平台
阅读已结束,下载本文到电脑
登录百度文库,专享文档复制特权,积分每天免费拿!
你可能喜欢开发环境:K/3 Wise 13.0、K/3 Bos开发平台、Visual Basic 6.0
===============================================
一、二次开发插件编程二、代码演示三、配置插件四、测试插件
五、插件配置后未生效六、附SQLHelper
七、K3自带连接数据库的写法
八、源码下载
===============================================
一、二次开发插件编程
  打开Visual Basic 6.0,新建工程ActiveX DLL:
  命名为FirstPlugin.class:
  引用类库如下:
  已安装K/3 Wise,在VB 6.0菜单栏上会多出一个金蝶开发插件:
  打开金蝶开发向导,创建工业单据客户端插件(工业单据俗称&老单&):
  点击&确定&,选择类&FirstPlugin&:
  点击&下一步&,这里我们自定义一个菜单项&插件工具&:
  点击&下一步&,选择事件&UserMenuClick&:
  完成向导。
二、代码演示
  代码编写如下:
'配置路径:供应链-外购入库单
'函数功能:插件工具--根据&长、宽、厚&自动计算批号
'定义插件对象接口. 必须具有的声明, 以此来获得事件
Private WithEvents m_BillTransfer
As K3BillTransfer.Bill
Dim F55 As Long, F55Text As String
Dim F56 As Long, F56Text As String
Dim F57 As Long, F57Text As String
Dim FDate As Long, FDateText As String
Dim FBatchNo As String
Dim FItemID As Long, FNumber As String
Dim FBatchManager As Boolean
'是否采用业务批号管理
Dim str As StringDim RowCount As Integer
Public Sub Show(ByVal oBillTransfer As Object)
'注意: 此方法必须存在, 请勿修改
Set m_BillTransfer = oBillTransfer
Private Sub Class_Terminate()
'释放接口对象
'注意: 此方法必须存在, 请勿修改
Set m_BillTransfer = Nothing
Private Sub m_BillTransfer_BillInitialize()
'*************** 开始设置菜单 ***************
m_BillTransfer.AddUserMenuItem "自动批号", "插件工具"
'*************** 结束设置菜单 ***************
'TODO: 请在此处添加代码响应事件 BillInitialize, 下面True是表体,False是表头
F55 = GetCtlIndexByFld("FEntrySelfA0155", True)
F56 = GetCtlIndexByFld("FEntrySelfA0156", True)
F57 = GetCtlIndexByFld("FEntrySelfA0157", True)
FBatchNo = GetCtlIndexByFld("FBatchNo", True)
FDate = GetCtlIndexByFld("FDate", False)
FItemID = GetCtlIndexByFld("FItemID", True)
Private Sub m_BillTransfer_UserMenuClick(ByVal Index As Long, ByVal Caption As String)
'TODO: 请在此处添加代码响应事件 UserMenuClick
Select Case Caption
Case "自动批号"
RowCount = m_BillTransfer.BillForm.get_MaxEntry
'此处添加处理 批号生成 菜单对象的 Click 事件
With m_BillTransfer
For i = 1 To RowCount
If .GetGridText(i, FItemID) = "" Then
'从物料表检测 是否采用业务批次管理
Dim strSQL As String '用于执行SQL
Dim rs As ADODB.Recordset
FNumber = ""
FNumber = .GetGridText(i, FItemID)
strSQL = ""
strSQL = "SELECT FBatchManager FROM t_ICItem WHERE FNumber='" & FNumber & "'"
Set rs = SQLHelper.ExecuteSQL(strSQL, "")
If rs.EOF = False Then
FBatchManager = rs.Fields("FBatchManager")
Set rs = Nothing
F55Text = .GetGridText(i, F55)
F56Text = .GetGridText(i, F56)
F57Text = .GetGridText(i, F57)
If F55Text = "" Then F55Text = "0"
If F56Text = "" Then F56Text = "0"
If F57Text = "" Then F57Text = "0"
FDateText = Replace(.GetHeadText(FDate), "-", "")
If (FBatchManager = True) Then
.SetGridText i, FBatchNo, F55Text & "-" & F56Text & "-" & F57Text & "-" & FDateText
End Select
'**********************************
'返回单据字段顺序(isEntry True是表体)
'**********************************
Public Function GetCtlIndexByFld(ByVal fldName As String, Optional ByVal isEntry As Boolean = False) As Long
Dim ctlIdx As Long
Dim i As Integer
Dim isFind As Boolean
Dim vValue As Variant
fldName = UCase(fldName)
isFind = False
With m_BillTransfer
If isEntry Then
For i = LBound(.EntryCtl) To UBound(.EntryCtl)
If UCase(.EntryCtl(i).FieldName) = fldName Then
ctlIdx = .EntryCtl(i).FCtlOrder
isFind = True
For i = LBound(.HeadCtl) To UBound(.HeadCtl)
If UCase(.HeadCtl(i).FieldName) = fldName Then
ctlIdx = .HeadCtl(i).FCtlIndex
isFind = True
If isFind = True Then
GetCtlIndexByFld = ctlIdx
GetCtlIndexByFld = 0
End Function
三、配置插件
  在Visual Basic 6.0生成DLL:
  启动K/3 Wise BOS开发平台,打开外购入库单,并进行插件配置:
  点击&插件配置管理&,配置客户端插件:
  点击&浏览&,找到插件并勾选:
  点击&确定&,并保存外购入库单。
四、测试插件
  启动K/3 Wise,打开&供应链-仓存管理-外购入库单-新增&:
  至此,插件开发和配置完成!
五、插件配置后未生效
& & & 1.在插件配置管理提示&没有找到文件,或文件没有正确注册&
& & & & &解决方法:插件dll名称命名要和工程名称一致。
& & & & & & & & & & & &比如工程名称&aaaa&,其中有一个类&bbb&,dll命名为&aaa&,
& & & & & & & & & & & &配置插件后,显示完整名称&aaa.bbb&,提示aaaa&没有找到文件,或文件没有正确注册&。
& & & & & & & & & & & &修改dll名称&aaa&为&aaaa&,重新配置插件,即可修复问题。
&六、附SqlHelper源码:
Attribute VB_Name = "SQLHelper"
'Public Function Conn() As ADODB.Connection
Set Conn = New ADODB.Connection
Conn.Open = "Provider=SQLOLEDB.1;Persist Security Info=FUser ID=Initial Catalog=AIS31;Data Source=."
'End Function
Public Function ConnectString() As String
'ConnectString = "Provider=SQLOLEDB.1;Persist Security Info=FUser ID=Initial Catalog=AIS31;Data Source=."
ConnectString = "Provider=SQLOLEDB.1;Persist Security Info=FUser ID=password=Ab123456;Initial Catalog=AIS49;Data Source=KDSERVER"
End Function
'传递参数SQL传递查询语句,MsgString传递查询信息。自身以一个数据集对象的形式返回
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
Dim Cnn As ADODB.Connection '定义连接
Dim Rst As ADODB.Recordset
Dim sTokens() As String '定义字符串
On Error GoTo ExecuteSQL_Error '异常处理
sTokens = Split(SQL) '用Split函数产生一个包含各个子串的数组
Set Cnn = New ADODB.Connection '创建连接
Cnn.Open ConnectString
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then '判断字符串中是否含有指定内容
Cnn.Execute SQL '执行查询语句
MsgString = sTokens(0) & "query successful" '返回查询信息
Set Rst = New ADODB.Recordset '闯将数据集对象
Rst.Open Trim$(SQL), Cnn, adOpenKeyset, adLockOptimistic '返回查询结果
Set ExecuteSQL = Rst '返回记录集对象
MsgString = "查询到" & Rst.RecordCount & " 条记录"
ExecuteSQL_Exit:
Set Rst = Nothing '清空数据集对象
Set Cnn = Nothing '中断连接
Exit Function
ExecuteSQL_Error: '判断错误类型
MsgString = "查询错误:" & Err.Description
MsgBox MsgString
Resume ExecuteSQL_Exit
End Function
&七、K3自带连接数据库的写法
'定义插件对象接口. 必须具有的声明, 以此来获得事件
Private WithEvents m_BillTransfer
As k3BillTransfer.Bill
Private conn As New ADODB.Connection
Dim FEntrySelfS0170 As Long
Dim FItemID As Long '物料ID
Dim FItemIDText As String
'物料ID取值:结果取到物料代码
Public Sub Show(ByVal oBillTransfer As Object)
'注意: 此方法必须存在, 请勿修改
Set m_BillTransfer = oBillTransfer
conn.ConnectionString = m_BillTransfer.Cnnstring
Private Sub Class_Terminate()
'释放接口对象
'注意: 此方法必须存在, 请勿修改
Set m_BillTransfer = Nothing
Private Sub m_BillTransfer_BillInitialize()
'TODO: 请在此处添加代码响应事件 BillInitialize
FEntrySelfS0170 = GetCtlIndexByFld("FEntrySelfS0170", True)
FItemID = GetCtlIndexByFld("FItemID", True)
Private Sub m_BillTransfer_GridChange(ByVal Col As Long, ByVal Row As Long, ByVal Value As Variant, ByVal bNewBill As Boolean, Cancel As Boolean)
'TODO: 请在此处添加代码响应事件 GridChange
Dim strSQL As String '用于执行SQL
Dim rs As New ADODB.Recordset
rs.CursorLocation = adUseClient
Dim strXSZDL As Long '销售在订量临时赋值变量
With m_BillTransfer
If Col = FItemID Then
FItemIDText = .GetGridText(Row, FItemID) '取到物料代码FNumber
strSQL = ""
strSQL = "select
t1.fitemid,t2.FQty
"from t_ICItem t1 " & _
"left join ICInventory t2 on t1.FItemID =t2.FItemID " & _
"where t1.FNumber='" & FItemIDText & "' "
If rs.State = adStateOpen Then
rs.Open strSQL, conn, adOpenStatic, adLockBatchOptimistic
If rs.RecordCount & 0 Then
strXSZDL = rs("FQty").Value
.SetGridText Row, FEntrySelfS0170, strXSZDL
Set rs = Nothing
'**********************************
'返回单据字段顺序(isEntry True是表体)
'**********************************
Public Function GetCtlIndexByFld(ByVal fldName As String, Optional ByVal isEntry As Boolean = False) As Long
Dim ctlIdx As Long
Dim i As Integer
Dim isFind As Boolean
Dim vValue As Variant
fldName = UCase(fldName)
isFind = False
With m_BillTransfer
If isEntry Then
For i = LBound(.EntryCtl) To UBound(.EntryCtl)
If UCase(.EntryCtl(i).FieldName) = fldName Then
ctlIdx = .EntryCtl(i).FCtlOrder
isFind = True
For i = LBound(.HeadCtl) To UBound(.HeadCtl)
If UCase(.HeadCtl(i).FieldName) = fldName Then
ctlIdx = .HeadCtl(i).FCtlIndex
isFind = True
If isFind = True Then
GetCtlIndexByFld = ctlIdx
GetCtlIndexByFld = 0
End Function
八、源码下载
阅读(...) 评论()

我要回帖

更多关于 sap 生成会计凭证bapi 的文章

 

随机推荐