OA网络智能办公系统二次开发手册_第1页
OA网络智能办公系统二次开发手册_第2页
OA网络智能办公系统二次开发手册_第3页
OA网络智能办公系统二次开发手册_第4页
OA网络智能办公系统二次开发手册_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 ,具体配置方法参见网站下载中心相关文档。关于 PH

3、P语言的使用, 可下载 PHP中文手册, 作为开发指导;关于 Mysql 数据库的管理与使用,将在第二章进行详细介绍。1.2 目录层次结构极限 OA的目录层次结构清晰,体现出对服务程序、应用程序、 WEB页面的巧妙整合与组织,便于理解和扩充。下面对目录结构加以说明:D:myoa bin Apache 及 PHP系统文件、 PHP配置文件、 Zend/MMcache加速器、服务配置程序 sapi PHP 的 Apache 接口程序modulesApache 的模块 webroot 极限 OA的 WEB根目录 attachment极限OA 的附件目录,其路径可通过webrootincoa_conf

4、ig.php指定 wm外部邮件存储目录 hrms_pic人事档案照片目录 general ipanel主要模块目录一般模块目录(略)主控面板,集成了菜单、短信箱等应用控制界面 bookmark 收藏夹 shortcut快捷组 menu_define菜单快捷组 win_defineWindows 快捷组 smsbox短信箱 mytable 桌面intel_view 智能桌面显示程序 myconfig 桌面自定义 status_bar状态栏 system 系统功能模块,下级目录略 winexe调用 Windows 外部程序的页面 ikernel通用管理程序,支持创建简单的MIS 系统 images

5、 系统图片目录 avatar 头像 menu 菜单图片 inc 系统通用程序及函数目录 dept_list 部门列表 XML输出 jpgraph 统计图组件 user_list用户列表XML输出 ispiritOA精灵页面 module 系统组件 dept_select 部门选择组件 editor 简易 HTML编辑器组件 OC Office 文档在线编辑与阅读 - 适用于文件柜、工作流等模块 OC_NETDISK 文档在线编辑与阅读 - 仅适用于网络硬盘 rte 复杂 HTML编辑器组件 save_file 文件转存组件 user_select 用户多选组件 user_select_sing

6、le用户单选组件 theme 界面主题 update 系统升级,该文件夹下如存在1.php 会被自动执行并删除 wav 系统声音, Flash 格式tmp 缓存目录,存储上传文件和登录Session 文件。logsApache日志目录,主要包含了错误日志error.logconfApache配置文件目录 data Mysql 数据库目录 TD_OA 极限 OA主数据库 dzbbs 超级论坛数据库 mysqlMysql 系统数据库 mysqlMysql 数据库服务程序二、数据库管理与应用2.1数据库的配置极限 OA在安装完毕后,会自动配置Mysql 启动参数,并注册 Mysql 系统服务。出于特

7、殊需要,用户也可以手动修改Mysql的配置参数,方法是使用记事本打开windows 目录my.ini,这是 Mysql 的配置文件,其内容一般如下格式:mysqldbasedir=D:MYOAmysqldatadir=D:MYOAdatadefault-character-set=gbkset-variable=max_connections=1000其中, basedir 表示 mysql 服务程序路径、 datadir 表示数据库文件路径,可根据实际情况进行调整并保存配置文件,重新启动Mysql 服务后生效。2.2数据库的管理Mysql 的数据库管理工具很多,常见的有phpMyAdmin等

8、,phpMyAdmin是使用 PHP编写的免费Mysql 数据库管理工具。由于 OA 的 Mysql 数据库出于安全考虑,被配置为仅能从本机访问,所以使用phpMyAdmin这样的 B/S 结构的管理工具,可实现数据库的远程管理。可通过网站OA知识库 /OfficeAutomation高级应用技巧/ 数据库管理工具 /mysql 网页方式管理工具,找到该程序的下载地址。将解压的文件,拷贝至OA目录 webrootmysql目录下。mysql数据库的网页管理工具,使用方法http:/主机名/mysql,注意,进入后先选择中文界面。该管理工具的使用需具有一定数据库基础,请勿进行危险操作,以免导致数

9、据丢失。 另外,为了防止他人利用该工具侵入数据库系统,可把目录名设为比较复杂的,如mysql2345 ,避免目录名被猜测到。phpMyAdmin主界面选择 TD_OA数据库,可查看数据表结构和数据为便于说明二次开发的过程,我们通过数据库管理工具,新建一个数据表。新数据表 STUDENT表示学生数据表,包含 3 个字段, ID 是自增字段,作为主键和唯一标识,NAME表示姓名, SEX表示性别,值为 1 表示男,为2 表示女。插入一条数据,并浏览,显示如图数据库管理工具简要介绍到此, 对于有 SQL关系型数据库基础的开发人员,掌握 phpMyAdmin这个工具并不难。关于 Mysql 的语法规则

10、参见 Mysql 手册,连同 OA数据库结构说明,均可到上面提到的 phpMyAdmin 下载地址下载。三、使用 PHP语言开发OA功能模块的规范3.1 PHP 代码样例以下是一段样例代码 test.php ,可放置于 webroot 目录下执行,可作为开发 OA 应用程序的模版。 / 或 /* */ 是 PHP的注释语句。<?/include_once("inc/auth.php");/如需登录验证则包含,未登录将退出/include_once("inc/conn.php");/如需要连接数据库则包含/include_once("inc

11、/utility_all.php"); /如需要使用公用函数则包含/include_once("inc/check_type.php");/如 需 要 使用类型检验函数则包含/ 如已包含 auth.php ,则无须包含 conn.php ?><html><head><title>页面标题 </title><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"></head>&

12、lt;body class="bodycolor"><?echo "hello OA"?></body></html>程序运行结果3.2数据库连接函数参考以下程序代码read.php ,访问我们之前建立的STUDENT表<?include_once("inc/conn.php");$query = "SELECT * from STUDENT" $cursor= exequery($connection,$query); /*exequery是 OA系统 inc/co

13、nn.php包装的 SQL语句执行函数, $connection是数据库的连接标识符*/if($ROW=mysql_fetch_array($cursor)$NAME=$ROW"NAME"echo $NAME;?>程序运行结果从这段程序可以看出,使用 OA系统提供的系统头文件和函数,访问数据库将是一件很轻松的事,不用操心数据库的连接参数等问题,只需简单的写下SQL语句,执行它。以下这段程序,将删除STUDENT表的所有数据。<?include_once("inc/conn.php");$query = "delete from ST

14、UDENT"exequery($connection,$query);?>Mysql 数据库的连接参数在webrootincoa_config.php文件中配置,可自行修改连接参数。3.3系统变量OA系统提供了5 个通过 SESSION保存的系统变量,分别是$LOGIN_USER_ID 用户 ID$LOGIN_USER_PRIV 用户角色ID$LOGIN_DEPT_ID 用户部门 ID$LOGIN_AVATAR用 户头像$LOGIN_THEME用户界面主题先建test.php如需使用这些系统变量,程序需要包含auth.php ,如下代码:<?include_once(&q

15、uot;inc/auth.php");echo " 我的登录用户ID 是".$LOGIN_USER_ID; /本句中的 .表示字符串连接?>因为执行这个程序前,必须先登录,我们首先定义一项个人网址,以便执行这个需要登录的程序。程序执行结果以下一段程序,可以分别取出用户姓名、用户角色名称、在线时间至 $USER_NAME、$USER_PRIV和$ONLINE变量。<?include_once("inc/auth.php");$query = "SELECT * from USER where USER_ID='$LO

16、GIN_USER_ID'"$cursor= exequery($connection,$query); if($ROW=mysql_fetch_array($cursor) $USER_NAME=$ROW"USER_NAME" $USER_PRIV=$ROW"USER_PRIV"$ONLINE=$ROW"ONLINE"$query1="SELECT*fromUSER_PRIV whereUSER_PRIV='$USER_PRIV'"$cursor1= exequery($conne

17、ction,$query1); if($ROW=mysql_fetch_array($cursor1)$USER_PRIV=$ROW"PRIV_NAME"?>3.4系统函数3.4.1常用函数包 含 方 法 : include_once("inc/utility.php");如已包含 auth.php ,则无需包含Message($TITLE,$CONTENT)显示一个提示框如图标题和内容可通过参数指定Button_Back()显示一个返回按钮,用于访回下一页面find_id($STRING,$ID)查询用逗号隔开的$STRING 字符串中,是否包含

18、 $ID如 find_id("abc,def,ghq","abc");返回值是 true一 般 系 统 函 数包 含 方 法 : include_once("inc/utility_all.php");format_date($STRING1)返回形如1999 年 2 月 1 日get_week($STRING1)返回形如六format_money($STR)返回金额格式,形如19.00compare_date($DATE1,$DATE2)日期比较,DATE1=DATE2返回 0,DATE1>DATE2 返回 1,DATE1&l

19、t;DATE2返回 -1compare_time($TIME1,$TIME2) 时间比较,time1=time2返回 0,time1>time2返回 1,time1<time2返回 -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, $

20、a, 2,2)由于载取位置指向“中”的右字节,可能会是这样的结果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)级部门 下 拉 菜 单 , 支 持

21、 按 管 理 范 围 列 出 , 格 式 为 <optionvalue=>,不含 <select> 标签dept_long_name($DEPT_ID) 递归求解完整的多级部门名称内部短信函数包含方法:include_once("inc/utility_sms1.php ");send_sms($SEND_TIME,$FROM_ID,$TO_ID,$SMS_TYPE,$CONTENT)发送内部短信,参数依次为发送时间,发送人ID,接收人ID ,短信类型(0 为个人短信) ,内容。例如:send_sms("2005-7-411:12:13&q

22、uot;,"admin","admin",0," 你好");手机短信函数包含方法:include_once("inc/utility_sms2.php ");send_mobile_sms($SEND_TIME,$FROM_ID,$PHONE,$CONTENT)直接向手机号码发送,参数依次为发送时间,发送人ID , 接 收 人 手 机 号 码 , 内 容 。 例 如 : send_mobile_sms你好");send_mobile_sms_user($SEND_TIME,$FROM_ID,$TO_ID,

23、$CONTENT,$TYPE)直接向 OA用户发送,参数依次为发送时间,发送人 ID ,接收人ID ,内容,类型(0 为个人短信) 。例如:send_mobile_sms_user("2005-7-411:12:13","admin","admin","你好 ",0);3.5系统组件日期组件日期组件的程序是webrootinccalendar.php,调用方法是在前台页面使用javascript,举例如下:<script>function td_calendar(fieldname).offsetX-8

24、0;ffsetY+140;window.showModalDialog("/inc/calendar.php?FIELDNAME="+fieldname,self,"edge:raised;scroll:0;status:0;help:0;resizable:1;dialogWidth:280px;dialogHeight:205px;dialogTop:"+mytop+"px;dialogLeft:"+myleft+"px");</script><inputtype="text&quo

25、t;name="BEGIN_DATE"size="10"maxlength="10"><imgsrc="/images/menu/calendar.gif"border="0"style="cursor:hand"onclick="td_calendar('BEGIN_DATE');">人员多选组件人员多选组件的程序是webrootmoduleuser_select,调用方法是在前台页面使用javascript,举例如下:

26、<script>function LoadWindow()URL="/module/user_select"offsetX-100;ffsetY+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");</script

27、><input type="hidden" name="TO_ID"><textareacols=45name="TO_NAME"rows="3"class="BigStatic" wrap="yes" readonly></textarea><inputtype="button"value="添加"class="SmallButton" onClick="L

28、oadWindow()" title="添加收件人 " name="button">&nbsp;<inputtype="button"value="清空"class="SmallButton" onClick="clear_user()" title="清空收件人 " name="button">部门多选组件部门多选组件的程序是webrootmoduledept_select,调用方法是在前台页面使用

29、javascript,举例如下:<script>function LoadWindow()URL="/module/dept_select"offsetX-100;ffsetY+170;window.showModalDialog(URL,self,"edge:raised;scroll:1;status:0;help:0;resizable:1;dialogWidth:400px;dialogHeight:245px;dialogTop:"+loc_y+"px;dialogLeft:"+loc_x+"px");</script><input type="hidden" name="TO_ID"><textareacols=40name=TO_NAMErows=2class="BigStatic" wrap="yes" readonly&g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论