《极限OA二次开发手册doc2930163.docx》由会员分享,可在线阅读,更多相关《极限OA二次开发手册doc2930163.docx(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Office Autommationn 网络智能能办公系统二次开发手册北京极限通科技技有限公司2005年7月月10日前言Office Autommationn网络智能办办公系统(以以下简称极限限OA),不不仅是一套成成熟的网络办办公系统,同同时也是一个个完整、精巧巧的软件开发发平台,不仅仅集成了Weeb开发的全全套环境,并并提供了管理理架构、系统统资源的开放放性支持,是是开发中小型型管理应用系系统的理想平平台。本文将从不同的的技术层面向向您揭示极限限OA的二次次开发细节,是是主要针对专专职程序设计计人员、编程程爱好者、软软件产品技术术支持人员编编写的OA二二次开发入门门教程。通过阅读本文,您您
2、将不仅可以以了解极限OOA的设计奥奥秘,也将能能够运用本文文所介绍的知知识和技巧,轻轻松构建属于于自己的应用用系统或模块块,文中将结结合具体实例例加以说明。一、软件开发环环境简介1.1 编程环环境极限OA主要采采用PHP语语言开发,系系统使用Myysql数据据库。在Windowws平台下,极极限OA主要要注册了2个个系统服务,可可以通过控制制面板-管管理工具-服务,查看看这2项服务务,服务名分分别是OA_Serviice和Myysql,OOfficee_Autoomatioon服务实际际是集成了PPHP模块的的Apachhe服务,AApachee是极限OAA所使用的WWeb Seerver,极
3、极限OA也可可以支持IIIS作为Weeb Serrver,具具体配置方法法参见网站下下载中心相关关文档。关于PHP语言言的使用,可可下载PHPP中文手册,作作为开发指导导;关于Myysql数据据库的管理与与使用,将在在第二章进行行详细介绍。1.2目录层次次结构极限OA的目目录层次结构构清晰,体现现出对服务程程序、应用程程序、WEBB页面的巧妙妙整合与组织织,便于理解解和扩充。下面对目录结结构加以说明明:D:myoaabinAApachee及PHP系系统文件、PPHP配置文文件、Zennd/MMccache加加速器、服务务配置程序 saapiPHP的AApachee接口程序modullesApa
4、chhe的模块webrooot极限OA的的WEB根目目录 atttachmment 极限OA的的附件目录,其其路径可通过过webroootinncoa_confiig.phpp指定 wm外部邮件存存储目录 hrmss_pic人事档案照照片目录 geenerall主要模块目目录 一般模块目目录(略) ipannel主控面板,集集成了菜单、短短信箱等应用用控制界面 bookkmark收藏夹 shorrtcut快捷组 menuu_defiine菜单快捷组组 win_definneWindoows快捷组组 smsbbox短信箱 mytaable桌面 inteel_vieew智能桌面显显示程序 myco
5、onfig桌面自定义义 statuss_bar状态栏 systtem系统功能模模块,下级目目录略 wineexe调用Winndows外外部程序的页页面 ikkernell通用管理程程序,支持创创建简单的MMIS系统 immages系统图片目目录 avattar头像 menuu菜单图片 innc系统通用程程序及函数目目录 deptt_listt部门列表XXML输出 jpgrraph统计图组件件 userr_listt用户列表XXML输出 isspirittOA精灵页页面 moodule系统组件 deptt_seleect部门选择组组件 edittor简易HTMML编辑器组组件 OCOfficce
6、文档在线编编辑与阅读-适用于文件件柜、工作流流等模块 OC_NNETDISSK文档在线编编辑与阅读-仅适用于网网络硬盘 rte复杂HTMML编辑器组组件 savee_filee文件转存组组件 userr_seleect用户多选组组件 userr_seleect_siingle 用户单选组组件 thheme界面主题 uppdate系统升级,该该文件夹下如如存在1.pphp会被自自动执行并删删除 waav系统声音,FFlash格格式tmp缓缓存目录,存存储上传文件件和登录Seessionn文件。logsApachhe日志目录录,主要包含含了错误日志志errorr.logconfApachhe配置文
7、件件目录dataMysqll数据库目录录 TDD_OA极限OA主主数据库 dzzbbs超级论坛数数据库 myysqlMysqll系统数据库库mysqllMysqll数据库服务务程序二、数据库管理理与应用2.1 数据库库的配置极限OA在安装装完毕后,会会自动配置MMysql启启动参数,并并注册Myssql系统服服务。出于特特殊需要,用用户也可以手手动修改Myysql的配配置参数,方方法是使用记记事本打开wwindowws目录mmy.inii,这是Myysql的配配置文件,其其内容一般如如下格式:mysqlddbasedirr=D:MYOOAmyssqldatadirr=D:MYOOAdattad
8、efaultt-charracterr-set=gbkset-varriablee=max_conneectionns=10000其中,baseedir表示示mysqll服务程序路路径、dattadir表表示数据库文文件路径,可可根据实际情情况进行调整整并保存配置置文件,重新新启动Myssql服务后后生效。2.2 数据库库的管理Mysql的的数据库管理理工具很多,常常见的有phhpMyAddmin等,phpMMyAdmiin是使用PPHP编写的的免费Myssql数据库库管理工具。由由于OA的MMysql数数据库出于安安全考虑,被被配置为仅能能从本机访问问,所以使用用phpMyyAdminn这样
9、的B/S结构的管管理工具,可可实现数据库库的远程管理理。可通过网站OOA知识库/Officce Auttomatiion 高级级应用技巧/数据库管理理工具/myysql网页页方式管理工工具,找到该该程序的下载载地址。将解压的文件件,拷贝至 OA目录webroootmyysql 目目录下。myysql数据据库的网页管管理工具,使使用方法 hhttp:/主机名/mysqll,注意,进入入后先选择中中文界面。 该管理工具具的使用需具具有一定数据据库基础,请请勿进行危险险操作,以免免导致数据丢丢失。另外,为为了防止他人人利用该工具具侵入数据库库系统,可把把目录名设为为比较复杂的的,如myssql234
10、45,避免目目录名被猜测测到。phpMyAddmin主界界面选择TD_OAA数据库,可可查看数据表表结构和数据据为便于说明二次次开发的过程程,我们通过过数据库管理理工具,新建建一个数据表表。新数据表STUUDENT表表示学生数据据表,包含33个字段,IID是自增字字段,作为主主键和唯一标标识,NAMME表示姓名名,SEX表表示性别,值值为1表示男男,为2表示示女。插入一条数据,并并浏览,显示示如图数据库管理工具具简要介绍到到此,对于有有SQL关系系型数据库基基础的开发人人员,掌握pphpMyAAdmin这这个工具并不不难。关于Mysqll的语法规则则参见Myssql手册,连连同OA数据据库结构
11、说明明,均可到上上面提到的pphpMyAAdmin下下载地址下载载。三、使用PHPP语言开发OOA功能模块块的规范3.1 PHPP代码样例以下是一段样例例代码tesst.phpp,可放置于于webrooot目录下下执行,可作作为开发OAA应用程序的的模版。/或/*/是PHHP的注释语语句。页面标题程序运行结果3.2 数据库库连接函数参考以下程序代代码readd.php,访访问我们之前前建立的STTUDENTT表程序运行结果从这段程序可以以看出,使用用OA系统提提供的系统头头文件和函数数,访问数据据库将是一件件很轻松的事事,不用操心心数据库的连连接参数等问问题,只需简简单的写下SSQL语句,执执
12、行它。以下这段程序序,将删除SSTUDENNT表的所有有数据。Mysql数据据库的连接参参数在 weebroottincoa_coonfig.php文件件中配置,可可自行修改连连接参数。3.3 系统变变量OA系统提供了了5个通过SSESSIOON保存的系系统变量,分分别是$LOGIN_USER_ID用户ID$LOGIN_USER_PRIV用户角色IID$LOGIN_DEPT_ID用户部门IID$LOGIN_AVATAAR用户头像$LOGIN_THEMEE用户界面主主题先建test.php如需需使用这些系系统变量,程程序需要包含含auth.php,如如下代码:因为执行这个程程序前,必须须先登录,
13、我我们首先定义义一项个人网网址,以便执执行这个需要要登录的程序序。程序执行结果以下一段程序,可可以分别取出出用户姓名、用用户角色名称称、在线时间间至$USEER_NAMME、$USERR_PRIVV和$ONLIINE变量。3.4 系统函函数3.4.1 常常用函数 包包含方法:iincludde_oncce(innc/ utiliity.phhp);如已包含autth.phpp,则无需包包含Messagee($TITTLE,$CCONTENNT) 显示一个提提示框如图标题和内容可通通过参数指定定Button_Back() 显示一个返返回按钮,用用于访回下一一页面find_idd($STRRING
14、,$ID) 查询用逗号号隔开的$SSTRINGG字符串中,是是否包含$IID如 find_id(aabc,deef,ghqq,abbc); 返回值是ttrue3.4.2 一一般系统函数数 包含方法法:incllude_oonce(inc/ utiliity_alll.phpp);format_date($STRIING1)返回形如 1999年年2月1日get_weeek($STTRING11)返回形如 六format_moneyy($STRR)返回金额格格式,形如119.00comparee_datee($DATTE1,$DDATE2)日期比较,DDATE1=DATE22 返回0,DATE11
15、DATEE2 返回11,DATEE1timee2 返回11,timee1timme2 返回回-1comparee_datee_timee($DATTE_TIMME1,$DDATE_TTIME2)日期+时间间比较csubstrr(&$sttr, $sstart=0, $llong=00, $lttor=trrue, $cn_leen=2)中文字符串截取取函数一些中文字符串串截取函数经经常有一些问问题,例如在在一些自动换换行程序中$a=“1中22”;经两次截取后,csubstrr($strr,$a,00,2);csubstrr($strr, $a, 2,2)由于载取位置指指向“中”的右字节,可可能
16、会是这样样的结果1, 2用本函数会产生生正确的结果果1中, 2# startt 开始位置置,从0开始始# long = 0 则则从starrt 一直取取到字符串尾尾# ltor = truue 时从左左到右取字符符,falsse 时到右右到左取字符符# $cn_llen 中文文字符按字节节取还是字数数取,如果按按字数取,则则一个中文当当一个字节计计算is_ip($IP)检查IP是是否合法is_deptt_privv($DEPPT_ID)查看$DEEPT_IDD是否属于本本人管理范围围my_deptt_treee($DEPPT_ID,$DEPTT_CHOOOSE,$PPOST_OOP) 多级级部
17、门下拉菜菜单,支持按按管理范围列列出,格式为为,不含标签dept_loong_naame($DDEPT_IID)递归求解完完整的多级部部门名称3.4.3 内内部短信函数数 包含方法法:incllude_oonce(inc/uutilitty_smss1.phpp );send_smms($SEEND_TIIME,$FFROM_IID,$TOO_ID,$SMS_TTYPE,$CONTEENT)发送内部短短信,参数依依次为发送时时间,发送人人ID,接收收人ID,短短信类型(00为个人短信信),内容。例例如:sennd_smss(2005-7-4 111:12:13,admiin,admiin,0,
18、 你好);3.4.4 手手机短信函数数 包含方法法:incllude_oonce(inc/uutilitty_smss2.php );send_moobile_sms($SEND_TIME,$FROMM_ID,$PHONEE,$CONNTENT)直接向手机机号码发送,参参数依次为发发送时间,发发送人ID,接接收人手机号号码,内容。例例如:sennd_mobbile_ssms (2005-7-4 111:12:13,admiin,1300000000000,0, 你好);send_moobile_sms_uuser($SEND_TIME,$FROMM_ID,$TO_IDD,$CONNTENT,$
19、TYPEE)直接向OAA用户发送,参参数依次为发发送时间,发发送人ID,接接收人ID,内内容,类型(00为个人短信信)。例如:sendd_mobiile_smms_useer (2005-7-4 111:12:13,admiin,admiin,你好,0);3.5 系统组组件3.5.1 日日期组件日期组件的程序序是webrrootiinccalenndar.pphp,调用用方法是在前前台页面使用用javasscriptt,举例如下下:functioon td_calenndar(ffieldnname) mylefft=doccumentt.bodyy.scroollLefft+eveent.c
20、llientXX-evennt.offfsetX-80; mytopp=docuument.body.scrolllTop+eventt.clieentY-eevent.offseetY+1440; wwindoww.showwModallDialoog(/iinc/caalendaar.phpp?FIELLDNAMEE=+fiieldnaame,seelf,eedge:rraisedd;scrooll:0;statuus:0;hhelp:00;resiizablee:1;diialogWWidth:280pxx;diallogHeiight:2205px;dialoogTop:+myttop
21、+ppx;diaalogLeeft:+mylefft+pxx);3.5.2 人人员多选组件件人员多选组件的的程序是weebroottmoduuleusser_seelect,调调用方法是在在前台页面使使用javaascrippt,举例如如下:functioon LoaadWinddow() URL=/moduule/usser_seelect; loc_xx=docuument.body.scrolllLeftt+evennt.cliientX-eventt.offssetX-1100; loc_yy=docuument.body.scrolllTop+eventt.clieentY-eeve
22、nt.offseetY+1770; wiindow.showMModalDDialogg(URL,self,edgee:raissed;sccroll:0;staatus:00;helpp:0;reesizabble:1;dialoogWidtth:3200px;diialogHHeightt:265ppx;diaalogToop:+lloc_y+px;ddialoggLeft:+locc_x+ppx);&nbbsp;3.5.2 部部门多选组件件部门多选组件的的程序是weebroottmoduuledept_seelect,调调用方法是在在前台页面使使用javaascrippt,举例如如下:f
23、unctioon LoaadWinddow() URL=/moduule/deept_seelect; loc_xx=docuument.body.scrolllLeftt+evennt.cliientX-eventt.offssetX-1100; loc_yy=docuument.body.scrolllTop+eventt.clieentY-eevent.offseetY+1770; wwindoww.showwModallDialoog(URLL,selff,edgge:raiised;sscrolll:1;sttatus:0;hellp:0;rresizaable:11;diallog
24、Widdth:4000px;ddialoggHeighht:2455px;diialogTTop:+loc_yy+px;dialoogLeftt:+looc_x+px);&nbssp;3.5.2 部部门单选组件件部门单选组件的的使用举例如如下,三个参参数含义分别别为上级部门门ID,选中中的部门IDD,是否按管管理范围显示示:四、发布二次开开发的功能模模块4.1准备模块块目录例如,在webbrootgenerral下建议议一个目录sstudennt,作为自自己开发模块块的目录,将将程序放置于于该目录下,默默认页面是iindex.php或iindex.html或或indexx.htm4.2 定制菜
25、菜单如图,按界面上上说明的要求求定义好菜单单将一个gif图图片studdent.ggif拷贝至至webroootimmagesmenu下下在角色权限设置置中,分好该该模块权限。测试发布的二次次开发模块为便于用户开发发自己的模块块,极限科技技在用户服务务区提供了OOfficee Autoomatioon部份模块块源码的下载载,供开发人人员参考。五、JAVA应应用程序扩展展规范通过安装极限MMYJAVAA应用服务器器软件,可以以使得极限OOA支持Jaava应用程程序,Javva程序文件件根目录是wwebroootappp,可通过SSessioon变量LOOGIN_UUSER_IID获取用户户登录OA系系统的ID。极限进销存软件件内置了MYYJAVA应应用服务器,JJava代码码规范可参考考极限进销存存软件。28