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


    背景  

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

      因此需要给基建类银行存款科目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;
        }
    
    }

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

      

     

  • 相关阅读:
    基于modelforms组件实现注册功能
    Django中间件添加白名单
    微信公众号推广工具
    Mysql数据库密码忘记的解决办法
    Redis 高可用及分片集群,说了你也不懂
    SQLAlchemyの增删改查
    metaclass 了解一下
    伊戈尔·赛索耶夫的旗帜
    一些容易搞混的问题
    林纳斯·托瓦兹的旗帜
  • 原文地址:https://www.cnblogs.com/lyc-smile/p/12981699.html
Copyright © 2020-2023  润新知