会计平台中凭证类别的设置NC产品支持部崔树成csc@ufida.com.cn客户需求:对角色设置了凭证类别的资源权限和权限分配,在报销单据的凭证模板定义中设置了按录入人员条件的判断条件取不同的凭证类别.问题分析:在会计平台模板设置中我们只能选取到录入人,要根据录入人的主键去定位该用户的角色,然后通过iif公式对角色的编码进行判断来取对应凭证类别的值。首先我们要通过人员主键找到对应角色的主键AA->getColValue(sm_user_role,pk_role,cuserid,@录入人0@);然后通过角色主键取到角色编码BB->getColValue(sm_role,role_code,pk_role,A);然后通过iff函数做判断取相应的凭证类别iif(B="nc",getBDPk("凭证类别","进贤记账凭证","10051110000000000Y0E"),getBDPk("凭证类别","记账凭证","0001DEFAULT000000001"))将以上公式结合起来:A->getColValue(sm_user_role,pk_role,cuserid,@录入人0@);B->getColValue(sm_role,role_code,pk_role,A);iif(B="nc",getBDPk("凭证类别","进贤记账凭证","10051110000000000Y0E"),getBDPk("凭证类别","记账凭证","0001DEFAULT000000001"))注意:此时一般这样设置完之后,然后生成凭证时会报错:凭证类别不存在或该类别未分配权限这是因为我们在权限管理的给用户分配角色时,系统会默认将公司管理员的角色给分配上了,导致在B->getColValue(sm_role,role_code,pk_role,A);返回的值是公司管理员我们可以在权限分配中将公司管理员的就角色去掉就可以了。