以单据中的自定义项作为查询条件一例NC产品支持部吴雅萍wuyp@ufida.com.cn问题:在录入银行借款合同时,客户要求反应该笔借款的“款项用途”,通过修改单据模板,使用自定义项,实现了客户的需求,如图:该自定义项为统计型,参照档案为自定义项档案。现在,客户要求以“款项用途”做为查询条件查询银行借款合同。于是,在【客户化】—【二次开发工具】—【模板管理】—【查询模板初始化】增加字段:自定义项1,如图:然后修改查询模板,分配查询模板,进行查询,如图:查询结果:解决思路:修改银行借款合同单据模板以后,录入合同正常,没有问题,因此银行借款合同模板没有问题。没有修改查询模板前,查询正常,修改查询模板以后,查询报错,因此问题应该是出在查询模板上,又进行测试,在查询模板上删除自定义项“款项用途”后查询正常,因此可定位问题出现在自定义项字段上。经检查发现,在【查询模板初始化】中增加自定义项有两个问题:字段编码和参照名称,分别修改如下:1.字段编码:在查询模板初始化中增加自定义项时,有时需要在字段编码前添加表名前缀的,如此处的自定义项1,应该在原字段编码fi_def3前增加表名,因该模板查询的是银行借款合同,所以增加的表名应该是“合同基本信息”表:fi_contract,因此修改字段编码为fi_contract.fi_def3注意:如果遇到需要在查询模板中增加自定义项的,请注意是否需要增加表名前缀,如果需要,请根据实际情况,增加相应表名。2.参照名称:对于统计型的自定义项,在查询模板初始化中首先要把数据类型定义为参照,然后在参照名称字段中注册其使用的参照,注册方式如下:(1)直接写参照名称,如:部门档案(此方式只适用于使用的档案为系统预置的档案)(2)<自定义的参照Model类>,如(3){档案的名称},对应bd_bdInfo中定义的bd_name,如{人员档案}(4)PK:档案的Pk,对应bd_bdInfo中定义的pk,如PK:00010000000000000001因为自定义项“款项类型”使用的是自定义项档案,因此只适用后面三种注册方式,所以应该在参照名称中录入:(1)(2){款项用途}(3)PK:0001A210000000003WGY以上三项中的任意一项。其中的Model类、档案名称、PK分别对应表bd_bdInfo中的字段selfrefclass、bdname、pk_bdinfo。