客户在金蝶软件中需为采购入库单增加自定义表头项作为必录项和会计凭证的辅助核算项。系统生成的红蓝字单据上,这些自定义项内容为空,人工处理繁琐且易出错。作者通过编写触发器,实现了在采购入库核算时自动反写这些自定义项到系统生成的红蓝单上,适用于金蝶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
--***本文档到此结束***
推荐阅读