起因
做流程的时候,一般我会把发起节点的显示模板单独命名叫“发起人填报模板”;后续节点,如果不需要给字段的编辑权限的节点的显示模板都做统一命名叫“审批模板”;需要给字段的编辑权限的节点的显示模板单独命名叫“XX完善模板”,目前打印模板都做统一格式,统一命名。
引起这次修改的起因是,当我每次修改了“审批模板”,想要统一给其它节点的时候,需要先在前一界面记下来哪些节点用的不是“审批模板”,节点少的流程还好办,节点多的流程就非常麻烦。于是就想,“同步节点”界面里,要是能把当前节点的模板名称显示出来就好了。
经过
第一步,用浏览器的开发者工具,很容易就确定了要改的文件:
WEAVER\ecology\workflow\exceldesign\syncNodesBrowser.jsp。
第二步:找到要改的内容:
代码还是很好理解的,<TH>是表头部份,图1里第50行是后加的,代表加出来的这列的表头,显示“模板名称”。
<TH width=20%><%=SystemEnv.getHtmlLabelName(18151,user.getLanguage())%></TH>为什么会显示出对应的文本“模板名称”呢,来自以下SQL语句,用SQL Server Profiler跟踪出来的结果。照着现有的语句写,传对参数就可以了。要注意调整各<TH>标签的WIDTH属性。
select * from HtmlLabelIndex where id = '18151' |
图2里第55行到第59行里,在原有联合查询语句的基础上,把workflow_nodehtmllayout表的内容关联进去。值得一提的有两点:1、isactive=1,只取当前节点的活动模板;2、layouttype是当前模板的类型,0:编辑模板、1:打印模板。循环里的取值,以及往TD里赋值操作的方法照抄现有的列即可,还是比较简单的。
至此,此次完善过整完毕。
结果
工作量不大,过程中还是有点儿意思的。涉及到了浏览器的开发者工具、早期前后台混写的JSP、SQL Server Profiler、泛微自封装的类和方法、表与表之间的关联关系、最终效果如图3。
好了,今天就写到这儿了。虽然代码量很少,但也希望对小伙伴们有所帮助。还是那句话,喜欢的小伙伴们请关注、点赞、评论。大家的鼓励是我持续创作的动力。感谢!