泛微OAecology二次开发实例开发完整说明
泛微oaecology二次开发实例开发完整说明讲解学习
![泛微oaecology二次开发实例开发完整说明讲解学习](https://img.taocdn.com/s3/m/ff12a7fcf121dd36a32d827c.png)
二次开发培训文档一、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 中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
泛微OAecology二次开发实例开发完整说明书
![泛微OAecology二次开发实例开发完整说明书](https://img.taocdn.com/s3/m/e62cfb490912a216147929ba.png)
二次开发培训文档一、ECOLOGY系统框架结构1、主要的程序结构EcologyClassbean 存放编译后的CLASS文件js 系统中使用的JAVASCRIPT和VBSCRIPT脚本Css 系统中JSP页面使用的样式ImagesImages_faceImages_frame 系统中使用的图片的存放目录CrmWorkflow 该功能分文件夹存放每个功能的文件WEB-INFProp 系统配置文件存放Service 系统的接口配置文件的存放二、说明一个JSP页面,一个JAVA程序的基本组成,如何阅读JSP页面1、一个jsp页面通常需要包含什么内容2、如何阅读一个JSP页面由于ECOLOGY系统支持多语言,因此在JSP页面上一般不出现中文,全部使用标签的形式来显示中文:比如:在IE上显示“姓名”那么在JSP页面中将通过<%=SystemEnv.getHtmlLabelName(413,user.getLanguage())%>这样的形式来表示,其中的数字413就是表示姓名,同时可以通过“select labelname fromhtmllabelinfo 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、JAVA程序的基本组成在ECOLOGY中开发JAVA程序建议继承weaver.general. BaseBean,在BaseBean中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
泛微表单建模二次开发案例
![泛微表单建模二次开发案例](https://img.taocdn.com/s3/m/d38c7ca883d049649b6658cf.png)
1.根据建模数据定时创建流程每个月初触发客户回访记录流程package weaver.formmode.apps;import java.util.ArrayList;import java.util.List;import weaver.conn.RecordSet;import weaver.file.Prop;import weaver.general.BaseBean;import weaver.general.Util;import weaver.hrm.resource.ResourceComInfo;import weaver.interfaces.schedule.BaseCronJob;import weaver.soa.workflow.request.MainTableInfo;import weaver.soa.workflow.request.Property;import weaver.soa.workflow.request.RequestInfo;import weaver.soa.workflow.request.RequestService;import com.weaver.formmodel.util.DateHelper;/*** 每个月初定时创建客户回访信息* @author mc*/public class CreateWorkflowJob extends BaseCronJob {private BaseBean beseBean = new BaseBean();public void execute() {//chuaString workflowid = Prop.getPropValue("kh", "workflowid");// 流程创建人String createor = Prop.getPropValue("kh", "createid");RecordSet rs = new RecordSet();rs.executeQuery("select * from uf_khinfo ");while(rs.next()){String gsmc = Util.null2String(rs.getString("gsmc"));String khmc = Util.null2String(rs.getString("khmc"));String khjl = Util.null2String(rs.getString("khjl"));ResourceComInfo rci = null;try {rci = new ResourceComInfo();} catch (Exception e1) {e1.printStackTrace();}String khmcName = rci.getLastname(khmc);String topTitle = gsmc+"-"+khmcName+"("+ DateHelper.getCurrentMonth() +")"; // 创建流程RequestService requestService = new RequestService();RequestInfo requestInfo = new RequestInfo();requestInfo.setWorkflowid(workflowid);//流程类型idrequestInfo.setCreatorid(createor);//创建人requestInfo.setDescription(topTitle);//设置流程标题requestInfo.setRequestlevel("0");//0 正常,1重要,2紧急requestInfo.setIsNextFlow("1");//流转到下一节点0:不自动流程其它:自动流程MainTableInfo mainTableInfo = new MainTableInfo();List<Property> fields = new ArrayList<Property>();Property field = null;/*** 主表* 格式:* {* rwmc: '任务名称-001',* rwfzr: '杨文元',* ksrq: '2019-08-08',* }*/field = new Property();field.setName("khjl");field.setValue(khjl);fields.add(field);field = new Property();field.setName("khmc");field.setValue(gsmc);fields.add(field);field = new Property();field.setName("khjl");field.setValue(khjl);fields.add(field);field = new Property();field.setName("fzr");field.setValue(khmc);fields.add(field);Property[] fieldarray = (Property[]) fields.toArray(new Property[fields.size()]); mainTableInfo.setProperty(fieldarray);requestInfo.setMainTableInfo(mainTableInfo);int newrequestid = 0;try {newrequestid = Util.getIntValue(requestService.createRequest(requestInfo));} catch (Exception e) {e.printStackTrace();}beseBean.writeLog("创建成功的流程requestid:"+newrequestid);}}}配置文件2.建模中代码创建附件/*** 从网络上抓取文件存入系统中* @param modeid* @param userid* @param fileurl* @param filename* @return*/public int buildFile(int modeid,int userid,String fileurl,String filename) {RecordSet rs = new RecordSet();OutputStream os = null;ZipOutputStream filezipOut = null;InputStream source = null;int retDocid = 0;boolean needzip = false;try {SystemComInfo syscominfo = new SystemComInfo();String createdir = FileUpload.getCreateDir(syscominfo.getFilesystem());if( (syscominfo.getNeedzip()).equals("1") ) needzip = true ;FileManage.createDir(createdir) ;DefaultFileRenamePolicy defpolicy = new DefaultFileRenamePolicy() ;String refilename = weaver.general.Util.getRandom();String filepath = createdir+refilename;if(needzip) filepath+=".zip";java.io.File outfile = new java.io.File(filepath);outfile = defpolicy.rename(outfile);String iszip = "1" ;if(needzip){filezipOut = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(outfile)));filezipOut.setMethod(ZipOutputStream.DEFLATED); //设置压缩方法filezipOut.putNextEntry(new ZipEntry(refilename)) ;//正文只能是WORD文档os = filezipOut ;}else{os = new BufferedOutputStream(new FileOutputStream(outfile)) ;iszip = "0";}//通过HTTP方式获取文件URL url = new URL(fileurl);HttpURLConnection conn = (HttpURLConnection) url.openConnection();BufferedInputStream input = new BufferedInputStream(conn.getInputStream());long filesize = 0;byte[] buffer = new byte[1024];int count = 0;while ((count = input.read(buffer)) > 0) {os.write(buffer, 0, count);filesize++;}os.flush();if(os!=null) os.close();if(filezipOut!=null) filezipOut.close();if(input!=null) input.close();//以下将文件放至IMAGEFILE表中int imageid = 0;String imagefileused = "1"String isencrypt = "1" ;String originalfilename = filename;//原始文件名String contenttype = "HTTP";char separator = Util.getSeparator() ;imageid=imageFileIdUpdate.getImageFileNewId();String para = ""+imageid + separator + originalfilename + separator+ contenttype + separator + imagefileused + separator + filepath + separator+ iszip + separator + isencrypt + separator + filesize ;rs.executeProc("ImageFile_Insert",para);//文件FILEID处理DocManagerNoRequest docManagerNoRequest = new DocManagerNoRequest();int maincategory = Util.getIntValue((String)staticobj.getObject("DocChangeSetting.maincategory"), 0);int subcategory = Util.getIntValue((String)staticobj.getObject("DocChangeSetting.subcategory"), 0);int seccategory = Util.getIntValue((String)staticobj.getObject("DocChangeSetting.seccategory"), 0);if(modeid > 0){rs.executeSql("select * from modeinfo where id="+modeid);if(rs.next()){maincategory = Util.getIntValue(rs.getString("maincategory"),0);subcategory = Util.getIntValue(rs.getString("subcategory"),0);seccategory = Util.getIntValue(rs.getString("seccategory"),0);}}//填补文档信息String extname = "";//扩展名String imageFileName = Util.null2String(filename);int tempPos = stIndexOf(".");if (tempPos != -1) {extname = imageFileName.substring(tempPos + 1);}Map dataMap=new HashMap();String docsubject="";if(tempPos==-1) docsubject = originalfilename;else docsubject = originalfilename.substring(0, tempPos);dataMap.put("docsubject",docsubject);dataMap.put("doccreaterid",""+userid);dataMap.put("docCreaterType","1");dataMap.put("maincategory",""+maincategory);dataMap.put("subcategory",""+subcategory);dataMap.put("seccategory",""+seccategory);dataMap.put("fileids",""+imageid);docManagerNoRequest.UploadDocNoRequest(dataMap);retDocid = docManagerNoRequest.getId();//文档IDrs.executeSql("update docdetail setownerid="+userid+",doccreatedate='"+getCurrentDate()+"',doccreatetime='"+getCurrentTime()+"' where id="+retDocid);rs.executeSql("update docdetail set docPublishType='2' where id ="+retDocid);//处理文档共享rs.executeSql("INSERT INTOShareinnerdoc(sourceid,type,content,seclevel,sharelevel,srcfrom,opuser,sharesource)values('"+docManagerNoRequest.getId()+"','1','"+userid+"','10','3','80','"+userid+"','0')");}catch(Exception e) {writeLog(e);} finally {try {if (os != null) os.close();if(filezipOut!=null) filezipOut.close();}catch(Exception e) {writeLog(e);}return retDocid;}}3.甘特图插件<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@include file="./init_wev8.jsp"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"><title>甘特图</title><link rel="stylesheet"type="text/css"href="./core/jquery-ui.css"/><link rel="stylesheet"type="text/css"href="./reset.css"/><link rel="stylesheet"type="text/css"href="./core/jquery-gantt.css"/><script language="javascript"src="/js/datetime_wev8.js"></script><script language="javascript"src="/js/JSDateTime/WdatePicker_wev8.js"></script><script language="javascript"src="/js/ecology8/selectbox/js/jquery.selectbox-0.2_wev8.js"></script> <style type="text/css">body {font-family: tahoma, verdana, helvetica;font-size: 0.8em;padding: 10px;width: 90%;height: 95%;}</style></head><body><div style="padding-bottom:5px;width:400px;">开始日期:<input name="start"id="start"value=""type="hidden"class="wuiDate"_callback="calldate"/> 结束日期:<input name="end"id="end"value=""type="hidden"class="wuiDate" _callback="calldate"/> <input type="button"class="middle e8_btn_top_first"onclick="query()"value="查询"/> </div><div id="ganttChart"></div><br/><br/><div id="eventMessage"></div><script type="text/javascript"src="./core/jquery-1.4.2.js"></script><script type="text/javascript"src="./core/date.js"></script><script type="text/javascript"src="./core/jquery-ui.js"></script><script type="text/javascript"src="./core/jquery-gantt.js"charset="utf-8"></script><script type="text/javascript"src="./data.js"></script><script type="text/javascript">$(function () {//发送ajax 请求数据$.ajax({url:"/formmode/apps/gantt/data.jsp",data:{action:"init"},dataType:"json",success:function(result){for(var i=0;i<result.length ;i++){// 将日期格式转换为毫秒的形式:如“yyyy-MM-dd --> 1221456783545var s = result[i].series[1].start.split("-");var s1 = result[i].series[1].end.split("-")var start = new Date(s[0],s[1]-1,s[2]);var end = new Date(s1[0],s1[1]-1,s1[2]);result[i].series[1].start = start;result[i].series[1].end = end;}//console.log(result[0].series[1].start.getDate());if(result.length>0){init(result);}}})});function init(ganttData){$("#ganttChart").ganttView({data: ganttData,slideWidth: $(document).width()-400,//右边面板大小behavior: {draggable:false,//禁止拖动// 点击进度条触发事件onClick: function (data) {var msg = "You clicked on an event: { start: " +data.start.toString("M/d/yyyy") + ", end: " + data.end.toString("M/d/yyyy") + " }";$("#eventMessage").text(msg);window.open("/formmode/view/AddFormMode.jsp?modeId=11&formId=-30&type=0&billid="+data.i d);},onResize: function (data) {var msg = "You resized an event: { start: " +data.start.toString("M/d/yyyy") + ", end: " + data.end.toString("M/d/yyyy") + " }";$("#eventMessage").text(msg);},onDrag: function (data) {var msg = "You dragged an event: { start: " +data.start.toString("M/d/yyyy") + ", end: " + data.end.toString("M/d/yyyy") + " }";$("#eventMessage").text(msg);}}});}function query(){//获取到开始日期和结束日期var start = jQuery("#start").val();var end = jQuery("#end").val();if(start=='' && end=='') return;$.ajax({url:"/formmode/apps/gantt/data.jsp",data:{action:"query",start:start,end:end},dataType:"json",success:function(result){jQuery("#ganttChart").empty();for(var i=0;i<result.length ;i++){var s = result[i].series[1].start.split("-");var s1 = result[i].series[1].end.split("-")var start = new Date(s[0],s[1]-1,s[2]);var end = new Date(s1[0],s1[1]-1,s1[2]);result[i].series[1].start = start;result[i].series[1].end = end;}if(result.length>0){init(result);}}})}function calldate(){ }function stringToDate(dateStr,separator){if(!separator){separator="-";}var dateArr = dateStr.split(separator);var year = parseInt(dateArr[0]);var month;//处理月份为04这样的情况if(dateArr[1].indexOf("0") == 0){month = parseInt(dateArr[1].substring(1));}else{month = parseInt(dateArr[1]);}var day = parseInt(dateArr[2]);var date = new Date(year,month -1,day);return date;}</script></body></html>4.组织架构图插件<html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"> <title>组织结构图</title><link rel="stylesheet"href="css/bootstrap.min.css"/><link rel="stylesheet"href="css/jquery.jOrgChart.css"/><link rel="stylesheet"href="css/custom.css"/><link href="css/prettify.css"type="text/css"rel="stylesheet"/><script type="text/javascript"src="prettify.js"></script><script type="text/javascript"src="/formmode/apps/orgchart/css/jquery.min.js"></script> <script type="text/javascript"src="/formmode/apps/orgchart/css/jquery-ui.min.js"></script> <script src="jquery.jOrgChart.js"></script><style>a {text-decoration: none;color: #fff;font-size: 12px;}a:hover {color: red;text-decoration: none;}.jOrgChart.node {width: 120px;height: 50px;line-height: 50px;border-radius: 4px;margin: 0 8px;cursor: pointer;}</style></head><body onload="prettyPrint();"><div id='jOrgChart'style="width: 1900px;height:1000px;overflow-x: auto;margin:0 auto"></div> <script type='text/javascript'>$(function(){//数据返回$.ajax({url: "./data.jsp",//url: "test.json",type: 'GET',dataType: 'JSON',data: {action: 'org_select'},success: function(result){var showlist = $("<ul id='org' style='display:none'></ul>");showall(result.data, showlist);$("#jOrgChart").append(showlist);$("#org").jOrgChart( {chartElement : '#jOrgChart',//指定在某个dom生成jorgchartdragAndDrop : false //设置是否可拖动});}});});function showall(menu_list, parent) {$.each(menu_list, function(index, val) {if(val.childrens.length > 0){var li = $("<li></li>");li.append("<a href='javascript:void(0)'onclick=getOrgId("+val.id+");>"++"</a>").append("<ul></ul>").appendTo(parent);//递归显示showall(val.childrens, $(li).children().eq(1));}else{$("<li></li>").append("<a href='javascript:void(0)'onclick=getOrgId("+val.id+");>"++"</a>").appendTo(parent);}});}</script></body></html>。
泛微oaecology二次开发实例开发完整说明讲解学习
![泛微oaecology二次开发实例开发完整说明讲解学习](https://img.taocdn.com/s3/m/ff12a7fcf121dd36a32d827c.png)
二次开发培训文档一、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 中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
泛微OAecology二次开发实例开发完整说明书
![泛微OAecology二次开发实例开发完整说明书](https://img.taocdn.com/s3/m/e62cfb490912a216147929ba.png)
二次开发培训文档一、ECOLOGY系统框架结构1、主要的程序结构EcologyClassbean 存放编译后的CLASS文件js 系统中使用的JAVASCRIPT和VBSCRIPT脚本Css 系统中JSP页面使用的样式ImagesImages_faceImages_frame 系统中使用的图片的存放目录CrmWorkflow 该功能分文件夹存放每个功能的文件WEB-INFProp 系统配置文件存放Service 系统的接口配置文件的存放二、说明一个JSP页面,一个JAVA程序的基本组成,如何阅读JSP页面1、一个jsp页面通常需要包含什么内容2、如何阅读一个JSP页面由于ECOLOGY系统支持多语言,因此在JSP页面上一般不出现中文,全部使用标签的形式来显示中文:比如:在IE上显示“姓名”那么在JSP页面中将通过<%=SystemEnv.getHtmlLabelName(413,user.getLanguage())%>这样的形式来表示,其中的数字413就是表示姓名,同时可以通过“select labelname fromhtmllabelinfo 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、JAVA程序的基本组成在ECOLOGY中开发JAVA程序建议继承weaver.general. BaseBean,在BaseBean中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
泛微OAecology二次开发实例开发完整说明书
![泛微OAecology二次开发实例开发完整说明书](https://img.taocdn.com/s3/m/1be705c4998fcc22bcd10df6.png)
二次开发培训文档一、ECOLOGY系统框架结构1、主要的程序结构EcologyClassbean 存放编译后的CLASS文件js 系统中使用的JAVASCRIPT和VBSCRIPT脚本Css 系统中JSP页面使用的样式ImagesImages_faceImages_frame 系统中使用的图片的存放目录CrmWorkflow 该功能分文件夹存放每个功能的文件WEB-INFProp 系统配置文件存放Service 系统的接口配置文件的存放二、说明一个JSP页面,一个JAVA程序的基本组成,如何阅读JSP页面1、一个jsp页面通常需要包含什么内容2、如何阅读一个JSP页面由于ECOLOGY系统支持多语言,因此在JSP页面上一般不出现中文,全部使用标签的形式来显示中文:比如:在IE上显示“姓名”那么在JSP页面中将通过<%=SystemEnv.getHtmlLabelName(413,user.getLanguage())%>这样的形式来表示,其中的数字413就是表示姓名,同时可以通过“select labelname fromhtmllabelinfo 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、JAVA程序的基本组成在ECOLOGY中开发JAVA程序建议继承weaver.general. BaseBean,在BaseBean中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
泛微OA ecology 二次开发实例 开发完整说明
![泛微OA ecology 二次开发实例 开发完整说明](https://img.taocdn.com/s3/m/678a05e9eff9aef8951e06a9.png)
二次启垦训练文档之阳早格格创做一、ECOLOGY系统框架结构1、主要的步调结构EcologyClassbean 存搁编译后的CLASS文献 js 系统中使用的JAVASCRIPT战VBSCRIPT足本Css 系统中JSP页里使用的样式ImagesImages_faceImages_frame 系统中使用的图片的存搁目录CrmWorkflow 该功能分文献夹存搁每个功能的文献WEB-INFProp 系统摆设文献存搁Service 系统的交心摆设文献的存搁二、证明一个JSP页里,一个JAVA步调的基础组成,怎么样阅读JSP页里1、一个jsp页里常常需要包罗什么真质2、怎么样阅读一个JSP页里由于ECOLOGY系统收援多谈话,果此正在JSP页里上普遍不出现华文,局部使用标签的形式去隐现华文:比圆:正在IE上隐现“姓名”那么正在JSP页里中将通过<%=SystemEnv.getHtmlLabelName(413,user.getLanguage())%>那样的形式去表示,其中的数字413便是表示姓名,共时不妨通过“select labelname fromhtmllabelinfo 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 HtmlLabelInfoVALUES(81249,'Range of choice',8)INSERT INTO HtmlLabelInfo VALUES(81249,'選擇範圍',9)3、JAVA步调的基础组成正在ECOLOGY中启垦JAVA步调修议继启.BaseBean,正在BaseBean中主要启拆了二个要领:写日志文献,获与摆设文献中的参数值.public String getPropValue(String fname , String key)public void writeLog(Object obj)三、页里权力统造的证明,何如正在页里中引用权力,怎么样新删一个权力,怎么样正在新启垦的模块上引进权力统造正在那一部分将形貌:新删的页里怎么样脆持战ECOLOGY的风格脆持普遍;新删的页里上引用ECOLOGY中的权力;新删的页里上引用新的ECOLOGY中还不的权力;1、不妨根据<泛微协共商务系统(Ecology)_JSP式样编写指北>包管新启垦的页里正在风格上战本有系统脆持普遍2、引用系统中的权力最先从系统的权力树坐中找到需要引用的权力称呼,如下如找到“天面典型维护”那个权力,其ID为41,而后通过“select rightdetailfrom systemrightdetail where rightid=41”得到其rightdetail=“AddAddressType:Add”,那么正在JSP页里中通过如下语句,便不妨使得惟有的“天面典型维护”那个权力用的用户不妨查看该页里<% if(!HrmUserVarify.checkUserRight("AddAddressType:Add ", user) ) {response.sendRedirect("/notice/noright.jsp");return;}%>3、新删新的权力统造新功能的查看四、系统的人员构造结构的介绍1、主要数据结构2、怎么样从慢存中获与人员疑息(对付三个慢存的简朴介绍)五、对付过程,文档数据的存搁证明(主数据,明细数据,普遍疑息等正在数据库中怎么样存搁,主要为了思量报表的问题)1、文档的主要数据结构文档疑息的主要保存表DOCDETAIL:文档疑息保存表,主要存搁文档的基础疑息DOCDETAILCONTENT: 文档真质存搁表(如果是ORACLE数据库,如果文档的典型是HTML文档,那么文档真质存搁正在该表中,SQLSERVER数据库不必该表)DOCIMAGEFILE:文档,附件闭联表,此表记录文档战附件(WORD,EXCEL要领文档正在数据库中依照附件要领存搁)的闭系(即一个文档闭联了几个附件)IMAGEFILE:附件路径存搁表,此表记录了文档的附件(大概者WORD,EXCE)存搁正在文献服务器上的位子DOCSHARE:文档共享表SHARINNERDOC:文档共享明细表,此表存搁了该表简直共享给那些用户了2、过程的主要数据结构那里主要介绍过程的数据存搁结构及如果通过过程典型获与到过程的字段疑息,过程的载体分为表单战票据二类,表单战票据的辨别正在于:所有使用表单的过程数据存搁正在共一个表中,而票据每个票据对付应着一弛独力的数据表1、表单一、对付于表单而止过程的数据疑息存搁正在三个数据表中Workflow_requestbase:该表存搁了过程的基础疑息:题目,创修人,创修时间,过程典型等等Workflow_form:该表保存了过程的简直疑息通过REQUESTID字段战Workflow_requestbase表闭联Workflow_formdetail:该表存搁了过程的明细疑息,共样通过REQUESTID字段战Workflow_requestbase表闭联二、通过过程的典型怎么样获与该过程使用了Workflow_form战Workflow_formdetail表中哪些字段正在Workflow_form战Workflow_formdetail 表中存搁了洪量字段,所有使用表单的过程的字段皆正在那二个表中,怎么样获与每个过程使用了那些字段呢?A、找到过程的典型ID,假定为wfidB、找到过程用了哪个表单select formidfromworkflow_base where id=wfid andisbill=’0’C、赢得该表单用到了哪些主字段:select(select fieldlablefrom workflow_fieldlable where workflow_fieldlable.fieldid=workflow_formfield.fieldidandlangurageid=7and workflow_fieldlable.formid=workflow_formfield.formid)asname,(select fieldnamefrom workflow_formdict whereid=fieldid)from workflow_formfield where formid=上头获与的FORMID and (isdetail is null orisdetail=’’)哪些明细字段:select(select fieldnamefrom workflow_formdictdetail whereid=fieldid)from workflow_formfield where formid=上头获与的FORMID and isdetail=’1’2、票据对付于表单而止过程的数据疑息存搁正在三个数据表中Workflow_requestbase:该表存搁了过程的基础疑息:题目,创修人,创修时间,过程典型等等Workflow_form:该表只存搁Workflow_requestbase战票据表之间的闭系疑息各票据主表:该表保存了过程的简直疑息通过REQUESTID字段战Workflow_requestbase表闭联,怎么样获与该表呢:A、找到过程的典型ID,假定为wfidB、找到过程用了哪个票据select formidform workflow_base where id=wfid andisbill=’1’C、通过票据ID不妨获与到该票据使用的字段Select * from workflow_billfield wherebillid=formidD、通过票据ID找到其用了那个表保存过程主疑息,那个表保存过程明细疑息select tablename from workflow_bill whereid=formidselect tablenamefrom workflow_billdetailtable whereid=formid各票据主明细表:该表存搁了过程的明细疑息,共样通过REQUESTID字段战Workflow_requestbase表闭联3、过程的其余疑息表结构过程处理人情况表Workflow_currentoperator:此表保存了过程目前已收配者,已收配者等疑息workflow_requestlog 过程处理意睹表:此表保存了过程处理人处理过的审批意睹六、系统已经有可启垦的交心的训练1、短疑交心不妨通过该交心真止其余短疑网闭大概者硬件短疑设备举止正在OA中收收短疑的收配2、单面登录交心ECOLOGY提供了通过用户映射战模拟其余系统登录窗体的办法真止多系统之间的单面登录交心3、过程节面前后附加收配action交心4、自定义欣赏按钮5、过程webservice交心6、人力资材webservices交心7、文档webservice交心七、Html模式的过程应用八、几个时常使用的下层类的证明最基础的下层类,数据库收配类,上传下载文献,怎么样构修慢存,基础的工具类。
泛微OA-ecology-二次开发实例-开发完整说明.doc
![泛微OA-ecology-二次开发实例-开发完整说明.doc](https://img.taocdn.com/s3/m/f5ceb2a90c22590103029d3d.png)
二次开发培训文档一、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 中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
泛微OAecology二次开发实例开发完整说明书
![泛微OAecology二次开发实例开发完整说明书](https://img.taocdn.com/s3/m/1be705c4998fcc22bcd10df6.png)
二次开发培训文档一、ECOLOGY系统框架结构1、主要的程序结构EcologyClassbean 存放编译后的CLASS文件js 系统中使用的JAVASCRIPT和VBSCRIPT脚本Css 系统中JSP页面使用的样式ImagesImages_faceImages_frame 系统中使用的图片的存放目录CrmWorkflow 该功能分文件夹存放每个功能的文件WEB-INFProp 系统配置文件存放Service 系统的接口配置文件的存放二、说明一个JSP页面,一个JAVA程序的基本组成,如何阅读JSP页面1、一个jsp页面通常需要包含什么内容2、如何阅读一个JSP页面由于ECOLOGY系统支持多语言,因此在JSP页面上一般不出现中文,全部使用标签的形式来显示中文:比如:在IE上显示“姓名”那么在JSP页面中将通过<%=SystemEnv.getHtmlLabelName(413,user.getLanguage())%>这样的形式来表示,其中的数字413就是表示姓名,同时可以通过“select labelname fromhtmllabelinfo 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、JAVA程序的基本组成在ECOLOGY中开发JAVA程序建议继承weaver.general. BaseBean,在BaseBean中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
泛微OAecology二次开发实例开发完整说明书
![泛微OAecology二次开发实例开发完整说明书](https://img.taocdn.com/s3/m/1be705c4998fcc22bcd10df6.png)
二次开发培训文档一、ECOLOGY系统框架结构1、主要的程序结构EcologyClassbean 存放编译后的CLASS文件js 系统中使用的JAVASCRIPT和VBSCRIPT脚本Css 系统中JSP页面使用的样式ImagesImages_faceImages_frame 系统中使用的图片的存放目录CrmWorkflow 该功能分文件夹存放每个功能的文件WEB-INFProp 系统配置文件存放Service 系统的接口配置文件的存放二、说明一个JSP页面,一个JAVA程序的基本组成,如何阅读JSP页面1、一个jsp页面通常需要包含什么内容2、如何阅读一个JSP页面由于ECOLOGY系统支持多语言,因此在JSP页面上一般不出现中文,全部使用标签的形式来显示中文:比如:在IE上显示“姓名”那么在JSP页面中将通过<%=SystemEnv.getHtmlLabelName(413,user.getLanguage())%>这样的形式来表示,其中的数字413就是表示姓名,同时可以通过“select labelname fromhtmllabelinfo 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、JAVA程序的基本组成在ECOLOGY中开发JAVA程序建议继承weaver.general. BaseBean,在BaseBean中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
泛微OAecology二次开发实例开发完整说明书
![泛微OAecology二次开发实例开发完整说明书](https://img.taocdn.com/s3/m/e62cfb490912a216147929ba.png)
二次开发培训文档一、ECOLOGY系统框架结构1、主要的程序结构EcologyClassbean 存放编译后的CLASS文件js 系统中使用的JAVASCRIPT和VBSCRIPT脚本Css 系统中JSP页面使用的样式ImagesImages_faceImages_frame 系统中使用的图片的存放目录CrmWorkflow 该功能分文件夹存放每个功能的文件WEB-INFProp 系统配置文件存放Service 系统的接口配置文件的存放二、说明一个JSP页面,一个JAVA程序的基本组成,如何阅读JSP页面1、一个jsp页面通常需要包含什么内容2、如何阅读一个JSP页面由于ECOLOGY系统支持多语言,因此在JSP页面上一般不出现中文,全部使用标签的形式来显示中文:比如:在IE上显示“姓名”那么在JSP页面中将通过<%=SystemEnv.getHtmlLabelName(413,user.getLanguage())%>这样的形式来表示,其中的数字413就是表示姓名,同时可以通过“select labelname fromhtmllabelinfo 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、JAVA程序的基本组成在ECOLOGY中开发JAVA程序建议继承weaver.general. BaseBean,在BaseBean中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
泛微OAecology二次开发实例开发完整说明书
![泛微OAecology二次开发实例开发完整说明书](https://img.taocdn.com/s3/m/fa7e50dcbd64783e08122bd4.png)
二次开发培训文档ECOLOG系统框架结构1、主要的程序结构EcologyClassbea n 存放编译后的CLASS文件js 系统中使用的JAVASCRIPT^ VBSCRIPT脚本Css 系统中JSP页面使用的样式Imageslmages_facelmages_frame 系统中使用的图片的存放目录CrmWorkflow 该功能分文件夹存放每个功能的文件WEB-INFProp 系统配置文件存放Service 系统的接口配置文件的存放、说明一个JSP页面,一个JAVA程序的基本组成,如何阅读JSP页面1、一个jsp页面通常需要包含什么内容一个斟的JSP.J畀2、如何阅读一个JSP页面由于ECOLOG系统支持多语言,因此在JSP页面上一般不出现中文,全部使用标签的形式来显示中文:比如:在IE 上显示“姓名”那么在JSP页面中将通过<%=SystemEnv.getHtmlLabelName(413,user.getLa nguage())%> 这样的形式来表示,其中的数字413就是表示姓名,同时可以通过“select label name fromhtmllabeli nfo where in dexid=413 and Ian guageid=7 ”来获取到“姓名”这个显示名称,其中Ianguageid=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 HtmlLabelInfoVALUES(81249,' 選擇範圍',9)3 、JAVA程序的基本组成在ECOLOG中开发JAVA程序建议继承weaver.general. BaseBean ,在BaseBean 中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
泛微OAecology二次开发实例开发完整说明
![泛微OAecology二次开发实例开发完整说明](https://img.taocdn.com/s3/m/3e2ca588294ac850ad02de80d4d8d15abf230044.png)
泛微OAecology二次开发实例开发完整说明二次开发培训文档一、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页面中将通过<%=(413,())%>这样的形式来表示,其中的数字413就是表示姓名,同时可以通过“select labelname fromhtmllabelinfo 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程序建议继承. BaseBean,在BaseBean中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
ecology项目二次开发环境搭建
![ecology项目二次开发环境搭建](https://img.taocdn.com/s3/m/6faf5fe10242a8956bece49e.png)
设计说明书e c o l o g y项目二次开发环境搭建Submitted By WeaverWeaver Software中国上海浦东新区耀华支路39弄9号(通耀路济明路路口)邮政编码:200127电话:+86 21 50942228传真:+86 21 509422781文档版本控制文档简要信息:文档主题(Title)ecology项目二次开发环境搭建作者(Author)审批者(To BeApproved By)说明(Comments)ecology项目二次开发环境搭建文件名称(File Name)文档版本历史:序号日期版本变更说明修改人审批人注释1.2013-05-02- 1 蔡志军2.3.4.5.6.7.8.9.10.目录1文档版本控制 (2)2引言 (4)2.1编写目的 (4)2.2定义............................................................................................... 错误!未定义书签。
2.3参考资料....................................................................................... 错误!未定义书签。
3范围. (5)3.1主要步骤 (5)3.1.1从服务器上拷贝WEA VER/ECOLOGY代码 (5)3.1.2对客户代码复制至本地后修改 (5)3.1.3把本地代码导入到myeclipse工程中 (6)3.1.4在myeclipse中配置resin应用服务器(只需配置一次) (11)3.1.5在resin中配置客户项目运行 (15)3.1.6编译java文件 (15)2引言2.1 编写目的为了开发人员熟悉项目二次开发环境搭建预期读者:项目二次开发人员。
3范围3.1 主要步骤3.1.1从服务器上拷贝WEA VER/ECOLOGY代码3.1.2对客户代码复制至本地后修改1、请一定要记得修改数据库配置文件中的数据库配置,否则搭建的开发环境也是连接到正式库,那就很有可能会导致正式库中的数据出错,修改连接数据库的配置文件路径:F:\weaver\ecology\WEB-INF\prop\weaver.properties----oralce类型数据库在此文件中修改数据库链接:#ceshi nmsy oracleDriverClasses = oracle.jdbc.OracleDriverecology.url = jdbc:oracle:thin:@192.168.4.238:1521:ecologyer = nmsyecology.password = ecologyecology.charset = ISOecology.maxconn = 50ecology.minconn = 5ecology.maxusecount = 6000ecology.maxidletime = 600ecology.maxalivetime = 10ecology.checktime = 3600ecology.changestatus = 1ecology.overtime=5ecology.isgoveproj = 0----sqlserver类型数据库在此文件中修改数据库链接:#ceshi60 sqlserverDriverClasses = com.microsoft.sqlserver.jdbc.SQLServerDriverecology.url = jdbc:sqlserver://192.168.4.246:1433;DatabaseName=ecology60 er = saecology.password = ecologyecology.charset = ISOecology.maxconn = 50ecology.minconn = 5ecology.maxusecount = 6000ecology.maxidletime = 600ecology.maxalivetime = 10ecology.checktime = 3600ecology.changestatus = 1ecology.overtime=5ecology.isgoveproj = 03.1.3把本地代码导入到myeclipse工程中1、新建项目:类型是Java Project,如图8:(图8) 2、点击下一步到达如下窗口,如图9:(图9) 3、点击下一步到达如下窗口,如图10:(图10)4、点击图10中Finish后,项目新建完成,但是此时由于还没有导入ecology下classbean 作为jar包,所以src下的两个固定java类编译有异常,如图11。
泛微ecology7二开权限控制
![泛微ecology7二开权限控制](https://img.taocdn.com/s3/m/7fe695e4b8f67c1cfad6b81f.png)
E-COLOGY 7.1 中,如何把二次开发的功能加入到系统权限中,并实现通过系统权限来控制先给大家看看我实现后的图示(有图有真像嘛)。
我自己开发了一个与U8集成查询物料的功能,然后我把这个功能加入到系统的权限列表里了,如下图1在没有给任何用户授权时,是不允许访问的。
图2是该功能授权界面,图3是用户访问时界面:现在,我把这个权限授给角色---信息中心主任,他就可以查看了。
图4为授权后的界面,图5为其访问时的界面。
好了,言归正传,现在讲讲如何实现吧。
泛微OA(e-cology)系统功能主要由下面几张表控制:1、系统权限表:SystemRights ,该表主要记录权名称和类别,各字段表示如下id: 权限IDrightdesc: 权限名称righttype: 权限分类(如资料类,系统类等)detachable: 暂不清楚2、系统权限明细表:SystemRightDetail ,该表主要记录各种权限的详细信息,如名称,控制代码等,各字段表示如下id: 主键性字段,无意义rightdetailname: 权限名称rightdetail: 权限控制代码(在网页中即通过识别此段代码来控制权限有无)rightid: 权限ID,与系统权限表中的ID一致3、系统权限组表:SystemRightGroups,该表主要记录各权分的分组情况4、系统权限语言表:SystemRightsLanguage ,该表记录的内容主要为显示语方,各字段表示如下id: 权限IDlanguageid: 语言标识码(7为中文简体,8为英文,9为中文繁体)rightname: 权限名称rightdesc: 权限显示名称一、要实现把二次开发的功能通过系统权限的方式来控制,首先即要在系统权限表(SystemRights)和系统权限明细表(SystemRightDetail)里把相关权限添加进去,本像中二次开发的功能页面-“U8物料查询”(这个页我命名为:ItemBrowserIframe2.jsp),则分别在两个表里插入如下信息在SystemRights 里:insert SystemRights(id,rightdesc,righttype,detachable)values('1600','U8物料查看权限','7','') /* 注:1600为自定义ID,7表示系统类权限在SystemRightDetail 里:insert SystemRightDetail(id,rightdetailname,rightdetail,rightid)values('42800','U8物料查看权限','ItemBrowserIframe2:View','1600') /* 注:这里的ID42800是在原表ID的最大值上加1后插入的,‘ItemBrowserIframe2:View’这段为权限控制代码,1600为权限ID,要与系统权限表里的ID保值一致。
泛微OAecology二次开发实例开发完整说明书
![泛微OAecology二次开发实例开发完整说明书](https://img.taocdn.com/s3/m/6fb6c375bd64783e09122b75.png)
实用标准文案精彩文档二次开发培训文档一、ECOLOGY系统框架结构1、主要的程序结构EcologyClassbean 存放编译后的CLASS文件js 系统中使用的JAVASCRIPT和VBSCRIPT脚本Css 系统中JSP页面使用的样式ImagesImages_faceImages_frame 系统中使用的图片的存放目录CrmWorkflow 该功能分文件夹存放每个功能的文件WEB-INFProp 系统配置文件存放Service 系统的接口配置文件的存放二、说明一个JSP页面,一个JAVA程序的基本组成,如何阅读JSP页面1、一个jsp页面通常需要包含什么内容2、如何阅读一个JSP页面由于ECOLOGY系统支持多语言,因此在JSP页面上一般不出现中文,全部使用标签的形式来显示中文:比如:在IE上显示“姓名”那么在JSP页面中将通过<%=SystemEnv.getHtmlLabelName(413,user.getLanguage())%>这样的形式来表示,其中的数字413就是表示姓名,同时可以通过“select labelname fromhtmllabelinfo 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、JAVA程序的基本组成在ECOLOGY中开发JAVA程序建议继承weaver.general. BaseBean,在BaseBean中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
泛微OA ecology 二次开发实例 开发完整说明学习资料
![泛微OA ecology 二次开发实例 开发完整说明学习资料](https://img.taocdn.com/s3/m/96d9b7a35a8102d277a22f4a.png)
泛微O A e c o l o g y二次开发实例开发完整说明二次开发培训文档一、ECOLOGY系统框架结构1、主要的程序结构EcologyClassbean 存放编译后的CLASS文件js 系统中使用的JAVASCRIPT和VBSCRIPT脚本Css 系统中JSP页面使用的样式ImagesImages_faceImages_frame 系统中使用的图片的存放目录CrmWorkflow 该功能分文件夹存放每个功能的文件WEB-INFProp 系统配置文件存放Service 系统的接口配置文件的存放二、说明一个JSP页面,一个JAVA程序的基本组成,如何阅读JSP页面1、一个jsp页面通常需要包含什么内容2、如何阅读一个JSP页面由于ECOLOGY系统支持多语言,因此在JSP页面上一般不出现中文,全部使用标签的形式来显示中文:比如:在IE上显示“姓名”那么在JSP页面中将通过<%=SystemEnv.getHtmlLabelName(413,user.getLanguage())%>这样的形式来表示,其中的数字413就是表示姓名,同时可以通过“selectlabelname 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、JAVA程序的基本组成在ECOLOGY中开发JAVA程序建议继承weaver.general. BaseBean,在BaseBean中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
泛微协同商务系统(Ecology)_系统底层包开发指南
![泛微协同商务系统(Ecology)_系统底层包开发指南](https://img.taocdn.com/s3/m/57cb1e2dbe1e650e53ea9933.png)
泛微协同商务系统(Ecology) 底层包开发指南目录1.引言 (3)1.1概述 (3)1.2定义................................................................................ 错误!未定义书签。
2.底层包应用及范例 (3)2.1最基本的继承类 (3)2.2怎样记录日志 (3)2.3怎样获取属性文件的值 (6)2.4怎样获取系统的运行目录 (7)2.5怎样访问和运行数据库脚本 (8)2.6如何上传一个文件 (11)2.7如何访问已经上传的文件 (15)2.8如何使用缓存提高系统效率 (15)2.9其它底层类基本方法 (26)1. 引言1.1 概述本文档为泛微协同商务系统(Ecology)程序员开发指导文档,讲述了开发底层工具包的应用,常用功能的开发。
2. 底层包应用及范例本章对ecology系统的底层工具包进行讲解,开发人员可以从这里学到怎样利用底层的工具包进行开发2.1 最基本的继承类系统中每一个java bean 都需要继承weaver.general.BaseBean 类。
这个类实现了记录日志和获取属性文件值的方法。
继承这两个类的其它类可直接应用这些方法来记录日志,获取属性文件某一个属性的值。
方法的实现见后面的例子。
继承的例子如下:java bean 的继承public class ResourceComInfo extends BaseBean {public void doSomething() { //某一个方法方法的处理………writeLog(s) ;// 写日志}}2.2 怎样记录日志继承了weaver.general.BaseBean ,可以直接使用writeLog方法记录日志信息。
注意这里是使用,而不是调用,因为这个方法是这两个被继承类中的方法。
注意writeLog 方法的使用:/*** 将某个对象写入Log文件* @param obj 被写入的对象*/public void writeLog(Object obj)我们看到,可以被记入日志的是任意一个java对象。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二次开发培训文档一、ECOLOGY 系统框架结构1、主要的程序结构EcologyClassbean 存放编译后的 CLASS 文件js 系统中使用的 JAVASCRIPT 和VBSCRIPT 脚本 Css 系统中JSP 页面使用的样式 Images Images_faceImages_frame 系统中使用的图片的存放目录 Crm Workflow 该功能分文件夹存放每个功能的文件WEB-INFProp 系统配置文件存放Service 系统的接口配置文件的存放二、说明一个JSP 页面,一个JAVA 程序的基本组成,如何阅读JSP 页面1、一个jsp 页面通常需要包含什么内容2、如何阅读一个JSP 页面由于ECOLOGY 系统支持多语言,因此在JSP 页面上一般不出现中文, 全部使用标签的形式来显示中文:比如:在IE 上显示“姓名”那么在 JSP 页面中将通过<%=SystemEnv.getHtmlLabelName(413,user.getLanguage())%> 这样的形式来表示, 其中的数字 413就是表示姓名 ,同时可以通过“ select label name from htmllabeli nfowhere indexid=413 and Ianguageid=7”来获取到“姓名”这个显示名称,其中 Ianguageid=7表示中文显示名称 ,languageid=8表示英文显示名称 .delete from HtmlLabelIndex where id=81249 delete from HtmlLabelInfo where indexid=81249 INSERT INTO HtmlLabelIndex values(81249,' INSERT INTO HtmlLabelInfo VALUES(81249,'INSERT INTO HtmlLabelInfo VALUES(81249,'Range of choice',8) INSERT INTO HtmlLabelInfo VALUES(81249,'選擇範圍',9)3、JAVA 程序的基本组成在 ECOLOGY 中开发 JAVA 程序建议继承 weaver.general. BaseBean,在 BaseBean 中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
P ublic String get Prop Value(Stri ng fname , String key)选择范围') 选择范围’,7)p ublic void writeLogQbject obj)respo nse.sendRedirectC'/notice/noright.js p"); return;%>. HR , Bgi3Df=古百舌, fl 氏-魁询&第香 frlktiifiin ► API ►那 11, El|b"科曲1E 克s 石 »尸A 别It 綱dll . UP T .更*“ns 価Ht A 讣二同ABhJtl*?加 * ftg 」,咆n 和 Q*9.t 信用些即臥Ttb 晔,S 舶KJ K 志亘6 tuv- 5AitJES*5 営户E迷ei 谯till .出咗-iSiToEsa*支忖善件瞒in . Hr- F 劈ditiE 志之晋3、新增新的权限控制新功能的查看三、页面权限控制的说明,怎样在页面中引用权限,怎么样新增一个权限,如何在新开发的模块上引入权限控制ECOLOGY 的风格保持一致;新增的页 面上引用ECOLOGY 中的权限;新增的页面上引用新的 ECOLOGY中还没有的权限; 在这一部分将描述:新增的页面如何保持和 1、可以根据 <泛微协同商务系统(Ecology )_JSP 式样编写指南 >保证新开发的页面 在风格上和原有系统保持一致B泛微协同商务系统( 2、引用系统中的权限首先从系统的权限设置中找到需要引用的权限名称, 如下如找到“地 址类型维护”这个权限,其ID 为41,然后通过“ selectrightdetail=41” 得到其 rightdetai 匸from systemrightdetailwhere rightid“AddAddressType:Add ",那么在JSP 页面中通过如下语句,就可以使得只有的“地址类型维护”这个权限用的用户可以查看该页面<% if(!HrmUserVanfy.checkUserRight("AddAddressTy pe:Add", user) ) {花?护堆苒片式)*4沪 打业壇护信屮号讪却套口拦注雉护新增功能模块添加 权限控制.doc四、系统的人员组织结构的介绍1、主要数据结构2、如何从缓存中获取人员信息(对三个缓存的简单介绍)S S SU 出佶歳製存)軒E (分歸佶ja 毅缓)沖倔门伯息曇存)比P □urcvConlrLfciL javaGHipfiiirGmLllifa jaorLtiKnibCui^rLroL Ju五、对流程,文档数据的存放说明(主数据,明细数据,一般信息等在数据库中如何存放, 主要为了考虑报表的问题)DocShare.doc2、流程的主要数据结构这里主要介绍流程的数据存放结构及如果通过流程类型获取到流程的字段信 息,流程的载体分为表单和单据两类,表单和单据的区别在于:所有使用表单 的流程数据存放在同一个表中,而单据每个单据对应着一张独立的数据表1、表单HrmResource 人员 基本信息表).docHrmSubCo mp an 分 部信息表).doc HrmDe partment (部门信息表).doc1、文档的主要数据结构 文档信息的主要存储表DOCDETAIL:文档信息存储表,主要存放文档的基本信息 DOCDETAILCONTENT: 档的类型是HTML 文档, 用该表) DOCIMAGEFILE :文档,文档内容存放表(如果是 ORACLE 数据库,如果文 那么文档内容存放在该表中,SQLSERVER 数据库不附件关联表,此表记录文档和附件(WORD,EXCEL的关系(即一个文档关联了几个附件)WORD,EXCE )格式文档在数据库中按照附件格式存放) IMAGEFILE :附件路径存放表,此表记录了文档的附件(或者 存放在文件服务器上的位置DOCSHARE :文档共享表 SHARINNERDOC:文档共享明细表,此表存放了该表具体共享给那些用户了DocDetail.doc ImageFile.doc DocImageFile.doc shareinnerdoc.doc精选文库ldid and langurageid workflow fieldlable=7 and哪些明细字段:isdetail=2、单据对于表单而言流程的数据信息存放在三个数据表中Workflow_requestbase :该表存放了流程的基本信息:标题,创建人,创建 时间,流程类型等等Workflow_form :该表只存放 Workflow_requestbase 和单据表之间的关系信 息各单据主表:该表存储了流程的具体信息通过 REQUESTID 字段和Workflow_requestbase 表关联,如何获取该表呢:找到流程的类型ID ,假定为wfid 找到流程用了哪个单据select formid form workflow_basewhere id=wfid and isbill= ''C 、通过单据ID 可以获取到该单据使用的字段Select * from workflow_billfield where billid= formid通过单据ID 找到其用了那个表存储流程主信息,那个表存一、 对于表单而言流程的数据信息存放在三个数据表中Workflow_requestbase :该表存放了流程的基本信息: 时间,流程类型等等 Workflow_form:该表存储了流程的具体信息通过Workflow_requestbase 表关联 Workflow_formdetail :该表存放了流程的明细信息, 字段和 Workflow_requestbase 表关联二、 通过流程的类型如何获取该流程使用了 Workflow_form 和 Workflow_formdetail 表中哪些字段在Workflow_form 和Workflow_formdetail 表中存放了大量字段,所有 使用表单的流程的字段都在这两个表中, 如何获取每个流程使用了那些字段呢?标题,创建人,创建 REQUESTID 字段和 同样通过REQUESTID B、C、.找到流程的类型ID,假定为wfid找到流程用了哪个表单select formid from workflow_base whereid=wfid and isbill= ‘O ’获得该表单用到了哪些主字段:select (select fieldlable from workflow fieldlable where workflow fieldlable .fieldid=workflow formfield.fieid ) as name, (select where id= fieldid field namefrom workflow formdictfrom workflow formfield formid= isdetail=) 上面获取的 FORMID and (isdetail is null or where.formid =workflow formfield .formselect workflow(select field name formdictdetailfrom)fromworkflow formfieldwhere id= fieldidwhere formid= 上面获取的 FORMID andworkflow_requestLog.doc六、系统已经有可开发的接口的培训1、短信接口可以通过该接口实现其他短信网关或者硬件短信设备进行在 储流程明细信息select table name selectfrom workflow billwhere id= formidtable namefrom workflow billdetailtablewhere id= formid各单据主明细表:该表存放了流程的明细信息,同样通过 段和 Workflow_requestbase 表关联REQUESTID 字3、流程的其他信息表结构流程处理人情况表Workflow_currentoperator:此表存储了流程当前未操作者,流程处理意见表:此表存储了流程处理人处理过已操作者等信息workflow_requestlog的审批意见workflow_requestbase.docworkflow bill.doc workflow base.docworkfloW —Currentop erator.docOA 中发送短信的操作通用短信接口实现方式及使用说明.docsms.xml sms冲间表.xml YllCTSiKService. jflva2、单点登录接口ECOLOGY提供了通过用户映射和模拟其他系统登录窗体的方式实现多系统之间的单点登录接口Ecology系统接口指南---单点登录篇.doc精选文库警Entrance jsi>I —Ecology 系统接口指 南--节点附加操作.docsWorkf 1 rflrToSendSilis.javu4、自定义浏览按钮Ecology 系统接口指 南--自定义浏览框.doc5、流程 webservice 接口anew_X 作流 WebServ ice 接口 .doc6、人力资源webservices 接口e人力资源WebServic e 接口使用说明.doc7、文档 webservice 接口ae-cology 文档 Web Service 接口使用说明.3、流程节点前后附加操作action 接口browser.xmldatasource.xmlHASpoTtJiL. jspIcH*kfl<<TaJCTiL jnvuffflHtfhiwToNeByKyhXBqd. JuvusWork fl ovRecordUn ta juvaWorkf lawSendMfii 1,Juva警Vorhfloff^SerHMiilK(muuble, juvaVorkflcwRequestCllent- javttllrdldjServ tcetfClienL, javu精选文库七、Html 模式的流程应用HTM 模板的应用.docTlzbFieidUplood jBPTlzbFieldAJaxL jsPTkbHeJ(lAjtti2, js八、几个常用的底层类的说明最基本的底层类,数据库操作类,上传下载文件,如何构建缓存,基本的工具类Ecology 系统底层包 开发指南.dochtml IflyGHl 80l_0,。