Ecology6.0二次开发-树形图
泛微二次开发所需要的知识

泛微二次开发所需要的知识
泛微二次开发是指在泛微OA系统中进行二次开发,以满足个性化的业务需求和提升工作效率。
在进行泛微二次开发之前,需要掌握以下知识:
步骤一:了解泛微OA系统
作为一个泛微二次开发者,首先需要了解泛微OA系统的概念、功能以及基本架构。
只有深入了解泛微OA系统才能对二次开发对接点有更清晰的认识,从而更好地完成二次开发任务。
步骤二:掌握JAVA编程
泛微OA系统的二次开发使用的是JAVA编程语言,所以二次开发者需要掌握JAVA编程。
特别是在泛微OA系统中,JAVA编程的应用非常广泛,包含了工作流引擎、表单控件、数据集成等方面。
只有掌握了JAVA编程知识,才能更好地进行泛微OA系统的二次开发。
步骤三:熟悉Web开发
泛微OA系统作为一款B/S架构的软件,二次开发涉及到了Web 开发知识,包括HTML、CSS、JavaScript等方面。
因此,二次开发者需要熟悉Web开发知识,才能更好地进行泛微OA系统的二次开发。
步骤四:掌握数据库知识
泛微OA系统中的业务数据存储在数据库中,因此,二次开发者需要具备数据库相关的知识,包括SQL语句、数据表设计等。
只有掌握了数据库知识,才能更好地实现系统的数据存储和管理。
步骤五:了解相关API
泛微OA系统提供了丰富的API,包含了表单API、流程API、组织人员API等方面。
二次开发者需要了解相关API,从而能够更快地实现对系统的定制化开发,满足不同用户的需求。
总之,泛微二次开发要求开发者具备一定的技术功底和相关知识背景。
需要花费时间进行学习和探索,才能在泛微OA系统中运用这些知识,做出更加优秀的产品。
Ecology二次开发-系统权限

Y
权限明细名称
RIGHTDETAIL
VARCHAR2(100)
Y
代码,此代码会具体应用到程序当中
RIGHTID
INTEGER
Y
外键,SystemRights.id
Columns ofSystemRightGroups/权限组
Name
Type
Nullable
Default
Comments
response.sendRedirect("/notice/noright.jsp");
return;
}
%>
7-中文简体
8-英文
9-中文繁体
RIGHTNAME
VARCHAR2(100)
Y
权限名称
RIGHTDESC
VARCHAR2(100)
Y
权限描述
Columns ofSystemRightDetail/权限明细
Name
Type
Nullable
Default
Comments
ID
INTEGER
RIGHTDETAILNAME
/
insertintoSystemRightDetail (id,rightdetailname,rightdetail,rightid)values(4462,'文档置顶权限','Document:Top',935)
从上面的代码可以看出,Ecology自身在添加权限的时候,是在数据里手工进行添加的,在添加权限前,会先执行三条delete语句,所以,当进行二次开发添加权限的时候,SystemRights.id和SystemRightsLanguage.id这两字段最好使用负数或者使用足够大的值,Ecology官方建议,如果使用正数,此数值最好在100000以上。
ecology用法

ecology用法Ecology 的用法详解1. 词义解释•Ecology 是指生物与环境之间的相互关系,研究生物在环境中的分布、数量和相互作用的学科。
2. 生态学的发展历程•Classical ecology:传统生态学,主要研究生物种群和群落的结构、功能和相互关系。
•Modern ecology:现代生态学,结合其他学科,研究生态系统、生态能量流动、物种多样性等综合性问题。
•Landscape ecology:景观生态学,研究地理空间范围内的生物与环境之间的相互关系。
•Urban ecology:城市生态学,研究城市环境对生物和人类的影响。
3. 生态学的相关概念和理论•Biodiversity:生物多样性,指地球上的物种、基因和生态系统的多样性。
•Food chain:食物链,描述物种之间的食物传递关系。
•Ecosystem:生态系统,由生物群落和非生物环境组成的互动体系。
•Habitat:栖息地,提供物种生存和繁殖条件的地理区域或环境。
•Sustainable development:可持续发展,平衡满足人类需求和保护自然环境的发展方式。
4. 生态学在现实生活中的应用•Ecological restoration:生态恢复,通过人工干预恢复或改善受到破坏的生态系统。
•Conservation biology:保护生物学,致力于保护物种多样性和自然生态系统的学科。
•Environmental impact assessment:环境影响评估,评估人类活动引起的环境变化及其对生态系统的影响。
•Sustainable agriculture:可持续农业,以保护农业生态环境为目标的农业发展方式。
5. 意识到生态问题的重要性•Climate change:气候变化,影响全球生态环境和人类社会的重大问题。
•Deforestation:森林砍伐,破坏了地球上重要的生态系统。
•Pollution:污染,对土壤、水域和大气产生负面影响。
泛微OA-ecology-二次开发实例-开发完整说明.doc

二次开发培训文档一、ECOLOGY系统框架结构1、主要的程序结构EcologyClassbean 存放编译后的CLASS文件js 系统中使用的JA V ASCRIPT和VBSCRIPT脚本Css 系统中JSP页面使用的样式ImagesImages_faceImages_frame 系统中使用的图片的存放目录CrmWorkflow 该功能分文件夹存放每个功能的文件WEB-INFProp 系统配置文件存放Service 系统的接口配置文件的存放二、说明一个JSP页面,一个JA V A程序的基本组成,如何阅读JSP页面1、一个jsp页面通常需要包含什么内容2、如何阅读一个JSP页面由于ECOLOGY系统支持多语言,因此在JSP页面上一般不出现中文,全部使用标签的形式来显示中文:比如:在IE上显示“姓名”那么在JSP页面中将通过<%=SystemEnv.getHtmlLabelName(413,user.getLanguage())%>这样的形式来表示,其中的数字413就是表示姓名,同时可以通过“select labelname from htmllabelinfo where indexid=413 and languageid=7”来获取到“姓名”这个显示名称,其中languageid=7表示中文显示名称,languageid=8表示英文显示名称.delete from HtmlLabelIndex where id=81249delete from HtmlLabelInfo where indexid=81249INSERT INTO HtmlLabelIndex values(81249,'选择范围')INSERT INTO HtmlLabelInfo VALUES(81249,'选择范围',7)INSERT INTO HtmlLabelInfo VALUES(81249,'Range of choice',8)INSERT INTO HtmlLabelInfo VALUES(81249,'選擇範圍',9)3、JA V A程序的基本组成在ECOLOGY中开发JA V A程序建议继承weaver.general. BaseBean,在BaseBean 中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
ecology系统安装手册

协同商务系统(e-cology)系统安装手册页脚内容0目录1. 前言 (3)2. 体系结构 (3)2.1. J2EE架构简介 (4)2.1.1. 简介J2EE (4)2.1.2. J2EE的优点 (4)2.2. ecology系统在J2EE架构下的实现 (5)2.2.1. 表示层 (6)2.2.2. 业务逻辑层 (6)2.2.3. 数据层 (7)3. 系统配置策略 (8)3.1. 基本系统配置 (8)页脚内容13.1.1. 客户端 (8)3.1.2. Web服务器 (9)3.1.3. 中间层 (10)3.1.4. 数据库 (12)3.1.5. 网络环境 (13)4. 系统安装和卸载 (15)4.1. 安装前准备 (15)4.1.1. 安装SQL-SERVER2000 (15)4.1.2. 安装ORACLE (15)4.2. 系统安装 (16)4.2.1. ecology系统安装 (16)4.2.2. 数据库初始化 (24)4.2.3. 运行系统 (25)页脚内容24.3. 系统卸载 (26)5. 问题 (26)1.前言本文档的主要内容是从技术角度对ecology系统的架构、产品安装、默认设置等进行阐述,并从系统安全、性能和配置等方面对ecology系统的应用和实施提供依据和指导。
无论是较小型的应用场合,还是高可靠、高安全要求的大型应用场合,希望本文件给你提供有价值的内容。
wEAver20052.体系结构e-cology系统是一个基于J2EE架构的大型分布式应用。
采用J2EE的三层架构体系。
可选择多种系统环境,满足不同类型、不同规模企业的需要。
企业可以根据自己的实际情况构建合适的应用环境。
结合操作系统、应用平台或第三方的产品,我们还可以构筑高安全、高性能、高可靠的应用环境。
页脚内容32.1.J2EE架构简介基于J2EE的企业应用技术已经成为许多企业电子商务环境的核心驱动引擎,泛微定位技术高端,全面采用J2EE技术规范,全面支持Enterprise JavaBeans标准。
泛微协同商务系统Ecology系统底层包开发指南

泛微协同商务系统E c o l o g y系统底层包开发指南文件编码(GHTU-UITID-GGBKT-POIU-WUUI-8968)底层包开发指南目录1.引言1.1概述本文档为泛微协同商务系统(Ecology)程序员开发指导文档,讲述了开发底层工具包的应用,常用功能的开发。
2.底层包应用及范例本章对ecology系统的底层工具包进行讲解,开发人员可以从这里学到怎样利用底层的工具包进行开发2.1最基本的继承类系统中每一个java bean 都需要继承类。
这个类实现了记录日志和获取属性文件值的方法。
继承这两个类的其它类可直接应用这些方法来记录日志,获取属性文件某一个属性的值。
方法的实现见后面的例子。
继承的例子如下:java bean 的继承public class ResourceComInfo extends BaseBean {public void doSomething() { 2003年8月12日2004-01-102004-03-10og'#don't modify the file propertyHH:mm:ss,SSS} %-5p %c - %m%n上面的日志表明将所有的信息答应到文件日志文件中,其中日志的模式为:#FATAL 0#ERROR 3#WARN 4 只有WARN,ERROR,FATAL输出#INFO 6 所有的log都输出#DEBUG 7记录日志的例子如下:public class ResourceComInfo extends BaseBean {private void setResourceInfo() throws Exception{try{业务处理过程……….String debugInfo = "This is test" ;roperties。
比如:系统的运行目录为 d:\ecology\,那么属性文件必须放在d:\ecology\WEB-INF\prop\ 目录下,取名为,其中thefilename是任意的。
ecology新表单设计器操作指南

表单设计器1.概述表单设计器是系统提供的一种基于Html语言的表单设计模块,除了可以满足用户对表单样式的需求之外,还弥补了图形化表单中无法支持多浏览器、加载速度慢等问题。
在表单设计器中可以实现以下的功能用户可以象在Excel中一样自由绘制表格,这些绘制的表格可以在各个节点甚至不同的系统之间调用,而且可以为手机版设计独有的显示样式;可以在表格中插入图片、链接甚至是一段代码程序,以满足用户对表单功能的特殊要求;与其它表格模式不同除了设置字段的编辑属性之外,还可以给每个字段都添加属性,可以是一个简单的计算公式,也可以是复杂的逻辑运算,甚至可以与SAP等外部系统相结合;而且在绘制明细表的时候,不用象模板模式一样考虑明细表由多少列,主表有多少列,在表单设计器中主表的设计和明细表的设计是分开的,只是显示的时候才会放在一起显示,列数行数互不影响。
2.Html模板设计2.1.表单格式我们选择创建Html模板之后显示如图1所示图1在模板编辑页面我们看到了Excel编辑器一样的设计页面,我们可以在上面直接绘制表格,注意表格中需要为字段的显示名和字段本身分别留出对应的单元格;在表格设计器中有按钮,点击后可以编辑单元格的属性,先选中单元格,在点击后显示如图2所示,我们可以和Excel表格一样设定单元格的属性,包括了单元格内容的显示方式、对齐方式、边框和底色等;图2在表格设计器中还有按钮,点击后可以选择让单元格内容是否折行显示;其它的一些功能都是画表格的功能,当鼠标移动到快捷按钮上的时候会显示按钮的名称。
?2.2.添加主字段在表格的右侧显示了主字段的显示名和字段,先在绘制好的表格中选中某一个单元格,然后将右侧对应的显示名或字段双击后可以添加到指定的单元格中,如图3所示;已经添加过的显示名或字段会变为灰色;如果需要删除已经添加的字段,同样还是先选中单元格,再点击顶部的快捷按钮,就可以把这个字段清除了;添加了字段我们可以在快捷菜单中选择需要的字体样式,包括了字体、颜色、加粗等,如果需要重新设计字体样式只要点击按钮,就可以把我们设计的显示样式给清除了;点击按钮,除了会删除字段外,还会将单元格的设置属性,包括字体、颜色、加粗、表格线框、背景色等全部清除。
泛微 ecology 二次开发培训文档

二次开发培训文档一、ECOLOGY系统框架结构1、主要的程序结构EcologyClassbean 存放编译后的CLASS文件js 系统中使用的JA V ASCRIPT和VBSCRIPT脚本Css 系统中JSP页面使用的样式ImagesImages_faceImages_frame 系统中使用的图片的存放目录Crm..Workflow 该功能分文件夹存放每个功能的文件WEB-INFProp 系统配置文件存放Service 系统的接口配置文件的存放二、说明一个JSP页面,一个JA V A程序的基本组成,如何阅读JSP页面1、一个jsp页面通常需要包含什么内容2、如何阅读一个系统已有JSP页面由于ECOLOGY系统支持多语言,因此在JSP页面上一般不出现中文,全部使用标签的形式来显示中文:比如:在IE上显示“姓名”那么在JSP页面中将通过<%=SystemEnv.getHtmlLabelName(413,user.getLanguage())%>这样的形式来表示,其中的数字413就是表示姓名,同时可以通过“select labelname from htmllabelinfo where indexid=413 and languageid=7”来获取到“姓名”这个显示名称,其中languageid=7表示中文显示名称,languageid=8表示英文显示名称,languageid=9表示繁体显示名称.3、JA V A程序的基本组成在ECOLOGY中开发JA V A程序建议继承weaver.general. BaseBean,在BaseBean 中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
写日志的方法:writeLog(Object obj) 日志会输出到weaver/ecology/log/ecology 中获取配置文件数据:getPropValue(String fname , String key)比如获取weaver.properties中的DriverClasses的值,代码如下:getPropValue(“weaver”,” DriverClasses”)三、如何添加多语言版本的标签四、页面权限控制的说明这一部分将讲解怎样在页面中引用权限,怎么样新增一个权限,如何在新开发的模块上引入权限控制,1、引用系统中的权限首先从系统的权限设置中找到需要引用的权限名称,如下图找到“表单维护”这个权限,其ID为591,然后通过“select rightdetail from systemrightdetailwhere rightid=591”得到其rightdetail=“FormManage:All”,那么在JSP页面中通过如下语句,就可以使得有“表单维护”这个权限的用户可以查看该页面2、如何新增新的权限如何在新建的功能模块上添加新的权限(JSP页面添加权限控制)第一步:通过类似的sql先添加一个需要的权限在数据库中执行完上面的sql后,在系统权限管理中就可以看到添加的该权限了!注意:以上SQL语句中的id请用负数或者统一使用1000000以上的值(这样可以避免和我们升级可能给出的权限重复),并保证不重复,同时保证SystemRightDetail的字段rightdetail也不能重复,上面插入SystemRightDetail表数据的sql,其中42717目前没有实际意义,但也请不要重复,可以使用一个非常大的数据,比如500000。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Ecology二次开发树形图开发简介以上是Ecology产品中最典型的框架图之一,其中框架的左侧为一个树形导航栏,框架的右边为内容区。
以上框架一共由4个JSP组成,下面的表格分别对这四个JSP做了简要说明。
开发示例下图是个这个开发示例的效果图,下面的开发示例代码都是为了个效果而准备的!注:开发示例做完后,请访问“main.jsp”页面。
注:在Ecology服务器端的文件夹中,添加了一个treeframe-cst的文件夹,以下所提到的jsp都是存在此文件夹中。
main.jsp<%@ page language="java" contentType="text/html; charset=GBK" %><%@ page import="weaver.general.Util" %><%@ include file="/systeminfo/init.jsp" %><HTML><HEAD><LINK href="/css/Weaver.css" type=text/css rel=STYLESHEET></HEAD><body><TABLE class=viewform width=100% id=oTable1 height=100%><COLGROUP><COL width="50%"><COL width=5><COL width="50%"><TBODY><tr><td height=100% id=oTd1 name=oTd1 width=30%><IFRAME name=leftframe id=leftframe src="left.jsp " width="100%" height="100%" frameborder=no scrolling=no> 浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。
</IFRAME></td><td height=100% id=oTd0 name=oTd0 width=1%><IFRAME name=middleframe id=middleframe src="\framemiddle.jsp" width="100%" height="100%" frameborder=no scrolling=no noresize>浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。
</IFRAME></td><td height=100% id=oTd2 name=oTd2 width=70%><IFRAME name=contentframe id=contentframe src="right.jsp" width="100%" height="100%" frameborder=no scrolling=yes>浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。
</IFRAME></td></tr></TBODY></TABLE></body></html>left.jsp<%@ page import="weaver.general.Util" %><%@ page import="java.util.*" %><%@ page language="java" contentType="text/html; charset=GBK" %><%@ include file="/systeminfo/init.jsp" %><HTML><HEAD><LINK REL=stylesheet type=text/css HREF=/css/Weaver.css><script type="text/javascript" src="/js/xtree.js"></script><script type="text/javascript" src="/js/xmlextras.js"></script><script type="text/javascript" src="/js/cxloadtree.js"></script><link type="text/css" rel="stylesheet" href="/css/xtree2.css" /></HEAD><BODY onload="initTree()"><FORM NAME=SearchForm STYLE="margin-bottom:0" action="" method=get target="contentframe"> <%@ include file="/systeminfo/RightClickMenuConent.jsp" %><%@ include file="/systeminfo/RightClickMenu.jsp" %><table height="100%" width=100% class="ViewForm" valign="top"><TR><td height="100%"><div id="deeptree" class="cxtree" CfgXMLSrc="/css/TreeConfig.xml" /><td></tr></table></FORM><script language="javascript">function initTree(){CXLoadTreeItem("", "frameleftXML.jsp");var tree = new WebFXTree();tree.add(cxtree_obj);document.getElementById('deeptree').innerHTML = tree;cxtree_obj.expand();}</script></BODY></HTML>right.jsp<%@ page language="java" contentType="text/html; charset=GBK" %><%@ include file="/systeminfo/init.jsp" %><HTML><HEAD><LINK href="/css/Weaver.css" type=text/css rel=STYLESHEET /></head><body><%String id = request.getParameter("id");if ("l1_1_1".equals(id)){out.println("张俊、徐磊、曹水涛、潘康权、王伟、王沙...");} else if("l1_1_2".equals(id)){out.println("陈静");}%></body></html>frameleftXML.jsp<%@ page import="weaver.general.Util" %><%@ page import="mon.util.xtree.TreeNode, weaver.hrm.*" %><%@ page language="java" contentType="text/xml; charset=GBK" %><%response.setHeader("cache-control", "no-cache");response.setHeader("pragma", "no-cache");response.setHeader("expires", "Mon 1 Jan 1990 00:00:00 GMT");User user = HrmUserVarify.getUser (request , response) ;if(user == null) return ;String id=Util.null2String(request.getParameter("id"));TreeNode envelope=new TreeNode();envelope.setTitle("envelope");if(id.equals("")){TreeNode root=new TreeNode();root.setTitle("组织架构");root.setNodeId("l1");root.setTarget("_self");root.setIcon("/images/treeimages/global.gif"); envelope.addTreeNode(root);// 深圳智辰科技总部TreeNode l1_1 = new TreeNode();l1_1.setTitle("深圳智辰科技总部");l1_1.setNodeId("l1_1");l1_1.setIcon("/images/treeimages/Home.gif"); root.addTreeNode(l1_1);TreeNode l1_1_1 = new TreeNode();l1_1_1.setTitle("研发部");l1_1_1.setNodeId("l1_1_1");l1_1_1.setIcon("/images/treeimages/Home.gif"); l1_1_1.setTarget("contentframe");l1_1_1.setHref("right.jsp?id=l1_1_1");l1_1.addTreeNode(l1_1_1);TreeNode l1_1_2 = new TreeNode();l1_1_2.setTitle("行政部");l1_1_2.setNodeId("l1_1_2");l1_1_2.setIcon("/images/treeimages/Home.gif"); l1_1_2.setTarget("contentframe");l1_1_2.setHref("right.jsp?id=l1_1_2");l1_1.addTreeNode(l1_1_2);TreeNode l1_1_3 = new TreeNode();l1_1_3.setTitle("公司顾问");l1_1_3.setNodeId("l1_1_3");l1_1_3.setIcon("/images/treeimages/Home.gif"); l1_1.addTreeNode(l1_1_3);// 合作伙伴TreeNode l1_2 = new TreeNode();l1_2.setTitle("合作伙伴");l1_2.setNodeId("l1_2");l1_2.setIcon("/images/treeimages/Home.gif"); root.addTreeNode(l1_2);TreeNode l1_2_1 = new TreeNode();l1_2_1.setTitle("泛微");l1_2_1.setNodeId("l1_2_1");l1_2_1.setIcon("/images/treeimages/Home.gif");l1_2.addTreeNode(l1_2_1);TreeNode l1_2_2 = new TreeNode();l1_2_2.setTitle("擎旗");l1_2_2.setNodeId("l1_2_2");l1_2_2.setIcon("/images/treeimages/Home.gif");l1_2.addTreeNode(l1_2_2);// 测试部门TreeNode l1_3 = new TreeNode();l1_3.setTitle("测试部门");l1_3.setNodeId("l1_3");l1_3.setIcon("/images/treeimages/Home.gif");root.addTreeNode(l1_3);}envelope.marshal(out);%>开发说明mon.util.xtree.TreeNode是Ecology自身定义的一个类,Ecology的树形控件需要结合这个类才可以一起使用。