【BOS】印章支持非单据状态字段显示图片原创
金蝶云社区-_Tmp
_Tmp
18人赞赏了该文章 1,663次浏览 未经作者许可,禁止转载编辑于2020年11月16日 19:41:22

印章的前置相关知识:这个冬季写给社区的第一章:添加印章类型


现在有个这样的场景,有一个下拉列表,发货类型,包括普通和加急两个选项;加急的时候显示加急图章。

这个问题等价于印章怎么支持获取其他非单据状态字段的值。


<0>前置环境准备:按照示例帖配置加急的印章类型和服务器图片

image.png

image.png


按照以上配置,在印章对应字段的值为“urgent”时,显示加急图章。


<1>图章的元数据结构

以表单“1.2业务单据模板”(表单标识BOS_BusinessBillModel)为例,元数据结构如下:

(快速查找,印章对应的标签为WaterMarkAppearance,只有外观层没有业务逻辑层)

image.png

对应ControlKey是对应的关联字段,这里默认关联的是状态字段;

而StatusWaterMark就是对应的值印章映射表,当对应字段值等于该项时显示图片,这里就是等于审核状态时显示approved印章;


<2>调整图章元数据支持其他字段类型

<WaterMarks>
 <StatusWaterMark>
   <StatusValue>urgent</StatusValue>
   <ImageKey>urgent</ImageKey>
  </StatusWaterMark>
 </WaterMarks>
 <ControlKey>F_JAC_TEXT</ControlKey>

调整对应的目标字段和值映射列表,如下图所示:

image.png

含义:增加了一个值映射类型,当值为urgent时,绑定urgent_语言ID图片,同时调整关联字段为一个文本字段;


验证文本字段的输入值,当为urgnet时的映射效果:

image.png


如果按照上面这个配置没有生效,那么尝试下绑定值为c的映射效果(也就是单据状态的审核,因为我们没有清空项,所以效果还在保留):

image.png


尝试调整绑定的字段类型为下拉列表,数据准备如下:

image.png

调整关联的字段为发货类型,

image.png


验证效果:

image.png



<3>总结,只要对应字段的取值(普通文本类型)与印章列表的取值对应,对应印章就应该能够刷新为对应的图片,(非文本类型应该不支持);


<4>补充:删除对应值映射项的xml语句

<StatusWaterMark action="remove" oid="C" />


image.png

赞 18