总账科目如何添加自定义属性?

背景  

  城投供应商中存在供应商名称与银行户名不一致问题,因此在手工做凭证时,科目只辅助核算到供应商,并不能到供应商的银行信息,而拜特系统需要的是银行户名而不是供应商的名称(大部分情况下,供应商名字与银行户名一致)。此时,若供应商处在多条银行信息时,凭证数据传输给拜特系统就会出现多条数据无法匹配问题。因此凭证上需要能够体现出收款账号信息,后台通过收款账号与供应商的信息定位到账号对应的银行户名,进而传输给拜特系统。

  因此需要给基建类银行存款科目1002.02 下的明细科目添加自定义属性,收款账号。原厂标准提供了11个自定义属性,添加自定义属性的话需要进行开发。

金蝶社区参考链接:https://club.kingdee.com/forum.php?mod=viewthread&tid=937180

效果

  

实现

总体思路:

  1. 辅助账实体中增加自定义属性名字段

  2. 辅助账自定义属性类型表中维护一条新增的自定义属性信息数据,字段名以及列名与第一部增加的字段保持一致,可参考表中已有数据。T_GL_AssistCustomizedType

  3. 凭证编辑界面需要重写 getSelectors() 增加新增加的属性查询信息

  

  

   

--数据插入语句
insert into t_gl_assistcustomizedtype(FID, FName_L1, FName_L2, FName_L3, FNumber, FDescription_L1, FDescription_L2, FDescription_L3, FSimpleName, FMappingPropName, FMappingFieldName, FDataTableName, FDataType, FDefaultQueryName, FPrecision, FIsForCompany, FCreatorID, FCreateTime, FLastUpdateUserID, FLastUpdateTime, FDefaultF7UI, FControlUnitID, FisSystem)
 values 
('qoTODcuuKkOB6LrL6ZUQyURavrQ=', N'bankaccout', N'收款账号', N'收款账号', N'bankaccout', null, null, null, null, N'bankaccout', N'CFBankaccout', null, 2, null, 80, 0, '00000000-0000-0000-0000-00000000000013B7DE7F', {ts'2020-05-26 12:46:07'}, '00000000-0000-0000-0000-00000000000013B7DE7F', {ts'2020-05-26 12:46:07'}, null, '11111111-1111-1111-1111-111111111111CCE7AED4', 1);

  

  数据插入完成以后,就可以在【财务会计】-【总账】-【基础设置】-【科目自定义属性】中给指定的银行存款明细科目添加刚才新建的自定义属性。

   

  启用自定义属性后,在凭证中,选择对应的科目,就可以看到辅助账行自动带出了刚才新加的收款账号文本列,但是输入信息保存,数据无法保存到数据库。因此还需要对凭证编辑界面代码进行扩展开发。原因是因为,前台添加完非原厂的自定义属性后,没有进行查询新加的字段信息。

  

/**
 * 
 * @title VoucherEditUICTEx
 * @description 凭证编辑界面扩展类
 * @author yacong_liu email:yacong_liu@kingdee.com
 * @date 2020-5-28
 */
public class VoucherEditUICTEx extends VoucherEditUI {
    private KDWorkButton btnBank = new com.kingdee.bos.ctrl.swing.KDWorkButton();

    public VoucherEditUICTEx() throws Exception {
        super();
    }

    @Override
    public SelectorItemCollection getSelectors() {
        SelectorItemCollection selectors = super.getSelectors();
        selectors.add(new SelectorItemInfo("entries.assistRecords.bankaccout"));// 收款银行账号
        /*
         * selectors.add(new SelectorItemInfo("entries.assistRecords.supplierCompanyBank.id"));
         * //供应商银行账号 selectors.add(new
         * SelectorItemInfo("entries.assistRecords.supplierCompanyBank.name")); selectors.add(new
         * SelectorItemInfo("entries.assistRecords.supplierCompanyBank.number"));
         * 
         * selectors.add(new SelectorItemInfo("entries.assistRecords.bb.id")); selectors.add(new
         * SelectorItemInfo("entries.assistRecords.bb.name")); selectors.add(new
         * SelectorItemInfo("entries.assistRecords.bb.number"));
         */
        return selectors;
    }

}

  上述操作完成后,就可以正常使用科目的自定义属性了。另外,科目的自定义属性与给科目添加的辅助核算项目不同,自定义属性只是提供了多一种的科目查询未读而已,并不会影响核算体系。

  

 

原文地址:https://www.cnblogs.com/lyc-smile/p/12981699.html