← 返回文章列表

OA系统实现复制建模布局

做一个复杂的需求,要求对于同一份建模数据,不同的用户在新建、编辑、查看时使用不同的布局。实现时,先做一个完整的母版布局,然后复制出用户布局并修改。Ecology 9没有提供复制建模布局的功能,因此我们自己实现。

为了避免使OA系统出现未知的问题,我们限定,只允许在同一个模块内,复制一个已存在的布局到另一个已存在的布局。

从接口/formmode/exceldesign/excelLayoutSave.jsp?operation=saveExcel出发,逆向分析OA系统保存建模布局的机制,得出结论,只需复制以下表的数据即可实现复制建模布局:

数据内容复制方式
modehtmllayout布局自身的信息,例如布局设计、代码块等update,注意保留布局名称
modeformfield布局的字段信息,例如是否必填等deleteinsert,注意复制到显示布局时字段全部变为只读
modefieldattr布局的字段属性信息,例如计算日期差等deleteinsert
modeformgroup布局的明细表信息,例如是否允许增行等deleteinsert,注意复制到显示布局时关闭修改的相关配置
mode_layout_querysql布局的明细表的固定查询条件deleteinsert
mode_layout_sortfield布局的明细表的字段排序信息deleteinsert