《2022年极限OA二次开发手册doc29.doc》由会员分享,可在线阅读,更多相关《2022年极限OA二次开发手册doc29.doc(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Office Automation 网络智能办公系统二次开发手册北京极限通科技2005年7月10日前言Office Automation网络智能办公系统(以下简称极限OA),不仅是一套成熟的网络办公系统,同时也是一个完好、精巧的软件开发平台,不仅集成了Web开发的全套环境,并提供了治理架构、系统资源的开放性支持,是开发中小型治理应用系统的理想平台。本文将从不同的技术层面向您提醒极限OA的二次开发细节,是主要针对专职程序设计人员、编程爱好者、软件产品技术支持人员编写的OA二次开发入门教程。通过阅读本文,您将不仅能够理解极限OA的设计神秘,也将能够运用本文所介绍的知识和技巧,轻松构建属于本人的应用
2、系统或模块,文中将结合详细实例加以说明。一、软件开发环境简介1.1 编程环境极限OA主要采纳PHP语言开发,系统使用Mysql数据库。在Windows平台下,极限OA主要注册了2个系统效劳,能够通过操纵面板-治理工具-效劳,查看这2项效劳,效劳名分别是OA_Service和Mysql,Office_Automation效劳实际是集成了PHP模块的Apache效劳,Apache是极限OA所使用的Web Server,极限OA也能够支持IIS作为Web Server,详细配置方法参见网站下载中心相关文档。关于PHP语言的使用,可下载PHP中文手册,作为开发指导;关于Mysql数据库的治理与使用,将
3、在第二章进展详细介绍。1.2目录层次构造极限OA的目录层次构造明晰,表达出对效劳程序、应用程序、WEB页面的巧妙整合与组织,便于理解和扩大。下面对目录构造加以说明:D:myoabinApache及PHP系统文件、PHP配置文件、Zend/MMcache加速器、效劳配置程序 sapiPHP的Apache接口程序modulesApache的模块webroot极限OA的WEB根目录 attachment 极限OA的附件目录,其途径可通过webrootincoa_config.php指定 wm外部邮件存储目录 hrms_pic人事档案照片目录 general主要模块目录 一般模块目录(略) ipane
4、l主控面板,集成了菜单、短信箱等应用操纵界面 bookmark珍藏夹 shortcut快捷组 menu_define菜单快捷组 win_defineWindows快捷组 smsbox短信箱 mytable桌面 intel_view智能桌面显示程序 myconfig桌面自定义 status_bar状态栏 system系统功能模块,下级目录略 winexe调用Windows外部程序的页面 ikernel通用治理程序,支持创立简单的MIS系统 images系统图片目录 avatar头像 menu菜单图片 inc系统通用程序及函数目录 dept_list部门列表XML输出 jpgraph统计图组件 u
5、ser_list用户列表XML输出 ispiritOA精灵页面 module系统组件 dept_select部门选择组件 editor简易HTML编辑器组件 OCOffice文档在线编辑与阅读-适用于文件柜、工作流等模块 OC_NETDISK文档在线编辑与阅读-仅适用于网络硬盘 rte复杂HTML编辑器组件 save_file文件转存组件 user_select用户多项选择组件 user_select_single 用户单项选择组件 theme界面主题 update系统晋级,该文件夹下如存在1.php会被自动执行并删除 wav系统声音,Flash格式tmp缓存目录,存储上传文件和登录Sessi
6、on文件。logsApache日志目录,主要包含了错误日志error.logconfApache配置文件目录dataMysql数据库目录 TD_OA极限OA主数据库 dzbbs超级论坛数据库 mysqlMysql系统数据库mysqlMysql数据库效劳程序二、数据库治理与应用2.1 数据库的配置极限OA在安装完毕后,会自动配置Mysql启动参数,并注册Mysql系统效劳。出于特别需要,用户也能够手动修正Mysql的配置参数,方法是使用记事本打开windows目录my.ini,这是Mysql的配置文件,其内容一般如下格式:mysqldbasedir=D:MYOAmysqldatadir=D:MY
7、OAdatadefault-character-set=gbkset-variable=max_connections=1000其中,basedir表示mysql效劳程序途径、datadir表示数据库文件途径,可依照实际情况进展调整并保存配置文件,重新启动Mysql效劳后生效。2.2 数据库的治理Mysql的数据库治理工具非常多,常见的有phpMyAdmin等,phpMyAdmin是使用PHP编写的免费Mysql数据库治理工具。由于OA的Mysql数据库出于平安考虑,被配置为仅能从本机访咨询,因此使用phpMyAdmin如此的B/S构造的治理工具,可实现数据库的远程治理。可通过网站OA知识库/
8、Office Automation 高级应用技巧/数据库治理工具/mysql网页方式治理工具,找到该程序的下载地址。将解压的文件,拷贝至 OA目录webrootmysql 目录下。mysql数据库的网页治理工具,使用方法 :/主机名/mysql,留意,进入后先选择中文界面。 该治理工具的使用需具有一定数据库根底,请勿进展危险操作,以免导致数据丧失。另外,为了防止别人利用该工具侵入数据库系统,可把目录名设为比拟复杂的,如mysql2345,防止目录名被猜想到。phpMyAdmin主界面选择TD_OA数据库,可查看数据表构造和数据为便于说明二次开发的过程,我们通过数据库治理工具,新建一个数据表。新
9、数据表STUDENT表示学生数据表,包含3个字段,ID是自增字段,作为主键和唯一标识,NAME表示姓名,SEX表示性别,值为1表示男,为2表示女。插入一条数据,并阅读,显示如图数据库治理工具简要介绍到此,关于有SQL关系型数据库根底的开发人员,掌握phpMyAdmin这个工具并不难。关于Mysql的语法规则参见Mysql手册,连同OA数据库构造说明,均可到上面提到的phpMyAdmin下载地址下载。三、使用PHP语言开发OA功能模块的标准3.1 PHP代码样例以下是一段样例代码test.php,可放置于webroot目录下执行,可作为开发OA应用程序的模版。/或/*/是PHP的注释语句。页面标
10、题程序运转结果3.2 数据库连接函数参考以下程序代码read.php,访咨询我们之前建立的STUDENT表程序运转结果从这段程序能够看出,使用OA系统提供的系统头文件和函数,访咨询数据库将是一件非常轻松的事,不用操心数据库的连接参数等咨询题,只需简单的写下SQL语句,执行它。以下这段程序,将删除STUDENT表的所有数据。Mysql数据库的连接参数在 webrootincoa_config.php文件中配置,可自行修正连接参数。3.3 系统变量OA系统提供了5个通过SESSION保存的系统变量,分别是$LOGIN_USER_ID用户ID$LOGIN_USER_PRIV用户角色ID$LOGIN_
11、DEPT_ID用户部门ID$LOGIN_AVATAR用户头像$LOGIN_THEME用户界面主题先建test.php如需使用这些系统变量,程序需要包含auth.php,如下代码:由于执行这个程序前,必须先登录,我们首先定义一项个人网址,以便执行这个需要登录的程序。程序执行结果以下一段程序,能够分别取出用户姓名、用户角色名称、在线时间至$USER_NAME、$USER_PRIV和$ONLINE变量。3.4 系统函数3.4.1 常用函数 包含方法:include_once(inc/ utility.php);如已包含auth.php,则无需包含Message($TITLE,$CONTENT) 显示
12、一个提示框如图标题和内容可通过参数指定Button_Back() 显示一个返回按钮,用于访回下一页面find_id($STRING,$ID) 查询用逗号隔开的$STRING字符串中,是否包含$ID如 find_id(abc,def,ghq,abc); 返回值是true3.4.2 一般系统函数 包含方法:include_once(inc/ utility_all.php);format_date($STRING1)返回形如 1999年2月1日get_week($STRING1)返回形如 六format_money($STR)返回金额格式,形如19.00compare_date($DATE1,$D
13、ATE2)日期比拟,DATE1=DATE2 返回0,DATE1DATE2 返回1,DATE1time2 返回1,time1time2 返回-1compare_date_time($DATE_TIME1,$DATE_TIME2)日期+时间比拟csubstr($str, $start=0, $long=0, $ltor=true, $cn_len=2)中文字符串截取函数一些中文字符串截取函数经常有一些咨询题,例如在一些自动换行程序中$a=“1中2”;经两次截取后,csubstr($str,$a,0,2);csubstr($str, $a, 2,2)由于载取位置指向“中”的右字节,可能会是如此的结果
14、1, 2用本函数会产生正确的结果1中, 2# start 开场位置,从0开场# long = 0 则从start 不断取到字符串尾# ltor = true 时从左到右取字符,false 时到右到左取字符# $cn_len 中文字符按字节取依然字数取,假如按字数取,则一个中文当一个字节计算is_ip($IP)检查IP是否合法is_dept_priv($DEPT_ID)查看$DEPT_ID是否属于本人治理范围my_dept_tree($DEPT_ID,$DEPT_CHOOSE,$POST_OP) 多级部门下拉菜单,支持按治理范围列出,格式为,不含标签dept_long_name($DEPT_ID
15、)递归求解完好的多级部门名称3.4.3 内部短信函数 包含方法:include_once(inc/utility_sms1.php );send_sms($SEND_TIME,$FROM_ID,$TO_ID,$SMS_TYPE,$CONTENT)发送内部短信,参数依次为发送时间,发送人ID,接收人ID,短信类型(0为个人短信),内容。例如:send_sms(2005-7-4 11:12:13,admin,admin,0, 你好);3.4.4 短信函数 包含方法:include_once(inc/utility_sms2.php );send_mobile_sms($SEND_TIME,$FRO
16、M_ID,$PHONE,$CONTENT)直截了当向号码发送,参数依次为发送时间,发送人ID,接收人号码,内容。例如:send_mobile_sms (2005-7-4 11:12:13,admin,13000000000,0, 你好);send_mobile_sms_user($SEND_TIME,$FROM_ID,$TO_ID,$CONTENT,$TYPE)直截了当向OA用户发送,参数依次为发送时间,发送人ID,接收人ID,内容,类型(0为个人短信)。例如:send_mobile_sms_user (2005-7-4 11:12:13,admin,admin,你好,0);3.5 系统组件3
17、.5.1 日期组件日期组件的程序是webrootinccalendar.php,调用方法是在前台页面使用javascript,举例如下:function td_calendar(fieldname) myleft=document.body.scrollLeft+event.clientX-event.offsetX-80; mytop=document.body.scrollTop+event.clientY-event.offsetY+140; window.showModalDialog(/inc/calendar.php?FIELDNAME=+fieldname,self,edge:r
18、aised;scroll:0;status:0;help:0;resizable:1;dialogWidth:280px;dialogHeight:205px;dialogTop:+mytop+px;dialogLeft:+myleft+px);3.5.2 人员多项选择组件人员多项选择组件的程序是webrootmoduleuser_select,调用方法是在前台页面使用javascript,举例如下:function LoadWindow() URL=/module/user_select; loc_x=document.body.scrollLeft+event.clientX-event.
19、offsetX-100; loc_y=document.body.scrollTop+event.clientY-event.offsetY+170; window.showModalDialog(URL,self,edge:raised;scroll:0;status:0;help:0;resizable:1;dialogWidth:320px;dialogHeight:265px;dialogTop:+loc_y+px;dialogLeft:+loc_x+px);nbsp;3.5.2 部门多项选择组件部门多项选择组件的程序是webrootmoduledept_select,调用方法是在前台
20、页面使用javascript,举例如下:function LoadWindow() URL=/module/dept_select; loc_x=document.body.scrollLeft+event.clientX-event.offsetX-100; loc_y=document.body.scrollTop+event.clientY-event.offsetY+170; window.showModalDialog(URL,self,edge:raised;scroll:1;status:0;help:0;resizable:1;dialogWidth:400px;dialogH
21、eight:245px;dialogTop:+loc_y+px;dialogLeft:+loc_x+px);nbsp;3.5.2 部门单项选择组件部门单项选择组件的使用举例如下,三个参数含义分别为上级部门ID,选中的部门ID,是否按治理范围显示:四、发布二次开发的功能模块4.1预备模块目录例如,在webrootgeneral下建议一个目录student,作为本人开发模块的目录,将程序放置于该目录下,默认页面是index.php或index.html或index.htm4.2 定制菜单如图,按界面上说明的要求定义好菜单将一个gif图片student.gif拷贝至webrootimagesmenu下在角色权限设置中,分好该模块权限。测试发布的二次开发模块为便于用户开发本人的模块,极限科技在用户效劳区提供了Office Automation部份模块源码的下载,供开发人员参考。五、JAVA应用程序扩展标准通过安装极限MYJAVA应用效劳器软件,能够使得极限OA支持Java应用程序,Java程序文件根目录是webrootapp,可通过Session变量LOGIN_USER_ID获取用户登录OA系统的ID。极限进销存软件内置了MYJAVA应用效劳器,Java代码标准可参考极限进销存软件。
限制150内