泛微Ecology8.0二次开发指导手册

一、开发准备
Ecology系统说明
ecology8.0文件页面编码为UTF-8
ecology8.0 JDK版本 1.6
ecology8.0 应用服务器为Resin
Ecology安装目录说明
• ecology:OA主程序目录
• JDK:Java目录
• Resin:应用服务器的目录
ecology主要目录说明
ecology
classbean 存放编译后的CLASS文件
js 系统中使用的JAVASCRIPT和VBSCRIPT脚本
css 系统中JSP页面使用的样式
images
images_face
images_frame 系统中使用的图片的存放目录
log 系统中日志存放目录
sqlupgrade升级SQL脚本目录
.
.
workflow 各功能分文件夹存放每个功能的文件
WEB-INF
lib 系统依赖Jar文件目录
prop 系统配置文件存放
service 系统的接口配置文件的存放
securitylog 安全补丁日志
securityXML自定义安全补丁配置目录

二、开发环境搭建
步骤1:从服务器上拷贝WEAVER/ecology代码
从服务器拷贝ecology相关代码到本地,目录服务器上文件如下图,需拷贝ecology、Resin,如果本机已安装JDK则可以不需拷贝JDK
泛微Ecology8.0二次开发指导手册_第1张图片
步骤2:把本地代码导入到myeclipse工程中
泛微Ecology8.0二次开发指导手册_第2张图片

泛微Ecology8.0二次开发指导手册_第3张图片

点击Finish , 之后项目会build project建立索引会有很长一段时间的等待。

步骤3:配置ecology项目环境

配置Resin 3.x

泛微Ecology8.0二次开发指导手册_第4张图片

配置Ecology所需的JDK

泛微Ecology8.0二次开发指导手册_第5张图片

点击Add JAR/ZIP 加入Resin->lib目录下所有的jar包

泛微Ecology8.0二次开发指导手册_第6张图片

步骤4:修改ecology项目中数据库配置文件
请一定要记得修改数据库配置文件中的数据库配置
配置文件:D:/weaver/ecology/WEB-INF/prop/weaver.properties
SQLServer数据库:

在这里插入图片描述

步骤5:Resin配置文件
配置文件Resin/conf/resin.conf配置ecology8所在目录。root-directory为本地ecology8的路径。
泛微Ecology8.0二次开发指导手册_第7张图片
修改默认Resin服务监听端口
泛微Ecology8.0二次开发指导手册_第8张图片

步骤6:启动运行
点击应用服务Resin3–Star

泛微Ecology8.0二次开发指导手册_第9张图片
Console控制台出现以下信息,则代表启动成功!
泛微Ecology8.0二次开发指导手册_第10张图片

三、Ecology8系统里一个jsp页面通常需要包含什么内容
• 相关的操作的类、JSP标签、样式等
• 右键菜单
• 多语言标签
• 操作权限

  1. 相关的操作的类、jsp标签、样式等
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="weaver.general.Util,weaver.hrm.common.*,weaver.conn.*" %>
<%@ page import="weaver.file.*,net.sf.json.*,java.util.*,java.text.*,weaver.common.DataBook" %>
<%@ include file="/systeminfo/init_wev8.jsp" %>
<%@ taglib uri="/WEB-INF/weaver.tld" prefix="wea"%>
<%@ taglib uri="/browserTag" prefix="brow"%>

  1. 右键菜单
<%@ include file="/systeminfo/RightClickMenuConent_wev8.jsp" %>
<%
    if(HrmUserVarify.checkUserRight("HrmCountriesAdd:Add", user)){ //判断是否有对应的权限,有则显示该菜单
        RCMenu += "{"+SystemEnv.getHtmlLabelName(82,user.getLanguage())+",javascript:doAdd();,_self} " ;
            /*标签显示菜单名,如 82 为新增*/
                RCMenuHeight += RCMenuHeightStep;
    }
%>
<%@ include file="/systeminfo/RightClickMenu_wev8.jsp" %>
  1. 多语言标签
    <%=SystemEnv.getHtmlLabelName(21995,user.getLanguage())%>
    这样的形式来表示,其中的数字21995,就是表示高级搜索 ,同时可以通过“select labelname from htmllabelinfo where indexid=21995 and languageid=7”来获取到“高级搜索”这个显示名称;
    languageid=7表示中文显示名称,languageid=8表示英文显示名称,languageid=9表示繁体显示名称.

如何在数据中添加多语言版本的标签?
举个栗子:
添加的标签请使用负的ID,这样可以不与之前的标签产生冲突,方便后期维护升级,ID值通过sql获取
Select min(id)-1 from HtmlLabelIndex

delete from HtmlLabelIndex where id=-11705
GO
delete from HtmlLabelInfo where indexid=-11705
GO
INSERT INTO HtmlLabelIndex values(-11705,‘多语言标签’)
GO
INSERT INTO HtmlLabelInfo VALUES(-11705,‘多语言标签’,7)
GO
INSERT INTO HtmlLabelInfo VALUES(-11705,’ Multilingual label ',8)
GO
INSERT INTO HtmlLabelInfo VALUES(-11705,‘多語言標簽’,9)
GO

  1. 操作权限

通过sql先在数据库添加一个需要的权限
delete from SystemRightDetail where rightid =-1031
GO
delete from SystemRightsLanguage where id =-1031
GO
delete from SystemRights where id =-1031
GO
insert into SystemRights (id,rightdesc,righttype) values (-1031,‘合同管理’,‘7’)
GO
insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-1031,9,‘合同管理’,‘合同管理’)
GO
insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-1031,8,‘oaproject contractManage’,‘oaproject contractManage’)
GO
insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-1031,7,‘合同管理’,‘合同管理’)
GO
insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-1031,‘合同管理’,‘oaproject_contractManage’,-1031)
GO

在要需要控制权限的jsp页面上加上以下的代码就可以
<%@ include file="/systeminfo/init.jsp" %>
<%
if(!HrmUserVarify.checkUserRight(“oaproject_contractManage “, user) ) {
response.sendRedirect(”/notice/noright.jsp”);
return;
}
%>

四、E8控件说明
Tab组件
效果图:
在这里插入图片描述
实现方式有以下两种:
Iframe形式引用:

$(function(){
    $('.e8_box').Tabs({
        getLine:1,// 是否需要下标指示器,默认为1
        iframe:"tabcontentframe",//tab页要加载的内容iframe的ID
        mouldID:"<%= MouldIDConst.getID("formmode")%>",//指定图标id
        staticOnLoad:true,//是否使用静态onload事件,默认是false。即将onload事件写在iframe中,如: