效果
实现
总体思路:
-
辅助账实体中增加自定义属性名字段
-
辅助账自定义属性类型表中维护一条新增的自定义属性信息数据,字段名以及列名与第一部增加的字段保持一致,可参考表中已有数据。
T_GL_AssistCustomizedType
-
凭证编辑界面需要重写
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; } }
上述操作完成后,就可以正常使用科目的自定义属性了。另外,科目的自定义属性与给科目添加的辅助核算项目不同,自定义属性只是提供了多一种的科目查询未读而已,并不会影响核算体系。