金蝶KIS/K3采购入库核算自动反写系统生成的红蓝单自定义表头项之触发器语句原创
金蝶云社区-云逸天下
云逸天下
8人赞赏了该文章 724次浏览 未经作者许可,禁止转载编辑于2023年04月28日 23:04:02
summary-icon摘要由AI智能服务提供

客户在金蝶软件中需为采购入库单增加自定义表头项作为必录项和会计凭证的辅助核算项。系统生成的红蓝字单据上,这些自定义项内容为空,人工处理繁琐且易出错。作者通过编写触发器,实现了在采购入库核算时自动反写这些自定义项到系统生成的红蓝单上,适用于金蝶KIS和K3版本,并提供了自定义视图链接和SQL触发器代码。

--       客户财务与业务方面有需求,需要在采购入库单上增加自定义表头项,定义为必录项,生成凭证时也会作为会计科目的辅助核算项目,金蝶软件的采购入库核算功能,在核算后自动生成的红蓝字单据,且状态是已审核,但这些系统自动生成的红蓝单上原来定义为必录项的自定义表头项的内容却是空的,如果人工进行反审核之后再进行手工填列,不但麻烦,而且还可能因为不允许负库存的参数设置,导致不能反审核,不填列的话,在生成凭证时,又需要手工在凭证证上添加,又容易出错,所以本人根据实际需要,写了触发器,实现上述功能:在本期进行采购入库核算时,根据原单的自定义表头项自动反写当期生成冲回红蓝单对应的自定义表头项,以下的语句在KIS专业版上使用有效,同样K3也可以参照。

--FHeadSelfA0121,FHeadSelfA0122,FHeadSelfA0123均为采购入库单上的自定义表头项,需要根据各个账套中自定义表头项的实际值进行替换

--本触发器中包括一个自定义视图ZVW_ICHookRelationsplus,该视图文件在我的以下网址中实现《金蝶K3单据与发票核销关系增强视图》https://vip.kingdee.com/article/410423438142935040?productLineId=7

--以下为反写采购入库单自动生成的蓝单

CREATE TRIGGER TrgWriteBlue

ON dbo.ICHookRelations

FOR INSERT

AS

  BEGIN

      UPDATE icstockbill

      SET  FHeadSelfA0121 = e.FHeadSelfA0121,

             FHeadSelfA0122 = e.FHeadSelfA0122,

             FHeadSelfA0123 = e.FHeadSelfA0123,

             FManagerID = e.FManagerID

      FROM   ZVW_ICHookRelationsplus e

      WHERE  Year(fdate_chd) IN (SELECT FValue

                                 FROM   t_SystemProfile

                                 WHERE  ( FCategory = 'IC' )

                                        AND ( FKey = N'CURRENTYEAR' ))  --获取账套的当前供应链模块的会计年度

             AND Month(fdate_chd) IN (SELECT FValue

                                      FROM   t_SystemProfile

                                      WHERE  ( FCategory = 'IC' )

                                             AND ( FKey = N'CURRENTPERIOD' ))  --获取账套的当前供应链模块的会计期间

             AND icstockbill.fbillno = e.fibno_chd

             AND e.fhookqty_chd > 0 --蓝单,数量大于零

  END


--以下为反写采购入库单自动生成的红单

CREATE TRIGGER TrgWriteRed

ON dbo.ICHookRelations

FOR INSERT

AS

  BEGIN

      UPDATE icstockbill

      SET  FHeadSelfA0121 = e.FHeadSelfA0121,

             FHeadSelfA0122 = e.FHeadSelfA0122,

             FHeadSelfA0123 = e.FHeadSelfA0123,

             FManagerID = e.FManagerID

      FROM   ZVW_ICHookRelationsplus e

      WHERE  Year(fdate_chd) IN (SELECT FValue

                                 FROM   t_SystemProfile

                                 WHERE  ( FCategory = 'IC' )

                                        AND ( FKey = N'CURRENTYEAR' ))  --获取账套的当前供应链模块的会计年度

             AND Month(fdate_chd) IN (SELECT FValue

                                      FROM   t_SystemProfile

                                      WHERE  ( FCategory = 'IC' )

                                             AND ( FKey = N'CURRENTPERIOD' ))  --获取账套的当前供应链模块的会计期间

             AND icstockbill.fbillno = e.fibno_chd

             AND e.fhookqty_chd < 0 --红单,数量小于零

  END 

--***本文档到此结束***

赞 8