自定义水印内容小妙招 之 水印插件
用户希望能够灵活自定义设置水印内容,比如打开某单据页面时展示【用户名】+【组织名】的水印内容;且希望通过在上级节点配置,达到作用于当前节点下的所有子节点的效果。例如,在【系统服务云】→【基础服务】目录下设置水印,那【基础服务】节点下级【人员】、【组织】等所有单据打开都显示【用户名】+【组织名】的水印内容,如下图所示:
基础服务人员列表效果示例
想要实现上述效果并不难,跟着小编往下看~
1 解决方案
通过二次开发,可以实现自定义的水印插件,且绑定自定义插件后,系统将动态获取自定义插件里设定的内容,无需进行任何配置。在插件中传入自定义的水印内容(如:用户名+组织名),在水印配置页面配置相应节点后,效果将作用于该节点下面的所有节点。例如,在基础服务节点配置水印插件,基础服务上的所有的页面都应用插件定义的水印。具体可以分为以下三步:
第一步,自定义的水印插件需实现IWaterMarkPlugin接口,代码示例如下:
public interface IWaterMarkPlugin { //打开表单前修改水印内容 default void setWaterMarkInfo(LoadWaterMarkInfoEventArgs e){}; }
第二步,通过自定义水印插件实现水印为用户名+组织名。在插件中实现IWaterMarkPlugin接口,重写setWaterMarkInfo()方法设置水印,代码示例如下:
public class WaterMarkerCustomPluginTest extends AbstractFormPlugin implements IWaterMarkPlugin{ @Override public void setWaterMarkInfo(LoadWaterMarkInfoEventArgs e) { long userId = RequestContext.get().getCurrUserId(); DynamicObject user=BusinessDataServiceHelper.loadSingle(userId, "bos_user"); String orgName = getOrgName(user); WaterMark waterMark = new WaterMark(); //设置水印类型为文本,具体类型可在设计器上查看到 waterMark.setType("1"); //设置文字内容为用户名+组织 waterMark.setText(user.get("name")+"_"+orgName); //设置字号,12 waterMark.setFontSize("12"); //设置水印颜色为黑色 waterMark.setColor("#333"); //设置水印不透明度为50% waterMark.setGlobalAlpha(50); e.setWaterMark(waterMark); } //获取当前用户组织名方法 private String getOrgName(DynamicObject user) { } }
第三步,配置水印插件中自定义参数(进入水印配置后 在左树选择水印生效的节点范围),进入路径为:【配置工具】→左侧菜单【水印配置】→页面中部【水印类型】→【注册插件】,如下图所示:
基础服务配置-水印自定义插件
以上就是自定义水印插件的实现方法,快去试试吧~
2 划重点
通过IWaterMarkPlugin接口重写setWaterMarkInfo()方法实现水印插件,并在插件中传入自定义的水印内容(如:用户名+组织名),在水印配置页面相应节点配置后,效果将作用于该节点下面的所有节点。
#往期推荐#
更多精彩内容,“码”上了解!↓
自定义水印内容小妙招 之 水印插件
用户希望能够灵活自定义设置水印内容,比如打开某单据页面时展示【用户名】+【组织名】的水印内容;且希望通过在上级节点配置,达到作用于...
点击下载文档
本文2024-09-23 00:39:21发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-140876.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章