極限OA二次開發(fā)手冊(cè)doc29_第1頁
極限OA二次開發(fā)手冊(cè)doc29_第2頁
極限OA二次開發(fā)手冊(cè)doc29_第3頁
極限OA二次開發(fā)手冊(cè)doc29_第4頁
極限OA二次開發(fā)手冊(cè)doc29_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Office Automation 網(wǎng)絡(luò)智能辦公系統(tǒng)二次開發(fā)手冊(cè)北京極限通科技有限公司2005年7月10日前言O(shè)ffice Automation網(wǎng)絡(luò)智能辦公系統(tǒng)(以下簡(jiǎn)稱極限OA),不僅是一套成熟的網(wǎng)絡(luò)辦公系統(tǒng),同時(shí)也是一個(gè)完整、精巧的軟件開發(fā)平臺(tái),不僅集成了Web開發(fā)的全套環(huán)境,并提供了管理架構(gòu)、系統(tǒng)資源的開放性支持,是開發(fā)中小型管理應(yīng)用系統(tǒng)的理想平臺(tái)。本文將從不同的技術(shù)層面向您揭示極限OA的二次開發(fā)細(xì)節(jié),是主要針對(duì)專職程序設(shè)計(jì)人員、編程愛好者、軟件產(chǎn)品技術(shù)支持人員編寫的OA二次開發(fā)入門教程。通過閱讀本文,您將不僅可以了解極限OA的設(shè)計(jì)奧秘,也將能夠運(yùn)用本文所介紹的知識(shí)和技巧,輕松構(gòu)建屬于自

2、己的應(yīng)用系統(tǒng)或模塊,文中將結(jié)合具體實(shí)例加以說明。一、軟件開發(fā)環(huán)境簡(jiǎn)介1.1 編程環(huán)境極限OA主要采用PHP語言開發(fā),系統(tǒng)使用Mysql數(shù)據(jù)庫。在Windows平臺(tái)下,極限OA主要注冊(cè)了2個(gè)系統(tǒng)服務(wù),可以通過控制面板-管理工具-服務(wù),查看這2項(xiàng)服務(wù),服務(wù)名分別是OA_Service和Mysql,Office_Automation服務(wù)實(shí)際是集成了PHP模塊的Apache服務(wù),Apache是極限OA所使用的Web Server,極限OA也可以支持IIS作為Web Server,具體配置方法參見網(wǎng)站下載中心相關(guān)文檔。關(guān)于PHP語言的使用,可下載PHP中文手冊(cè),作為開發(fā)指導(dǎo);關(guān)于Mysql數(shù)據(jù)庫的管理與

3、使用,將在第二章進(jìn)行詳細(xì)介紹。1.2目錄層次結(jié)構(gòu)極限OA的目錄層次結(jié)構(gòu)清晰,體現(xiàn)出對(duì)服務(wù)程序、應(yīng)用程序、WEB頁面的巧妙整合與組織,便于理解和擴(kuò)充。下面對(duì)目錄結(jié)構(gòu)加以說明:D:myoabinApache及PHP系統(tǒng)文件、PHP配置文件、Zend/MMcache加速器、服務(wù)配置程序 sapiPHP的Apache接口程序modulesApache的模塊webroot極限OA的WEB根目錄 attachment 極限OA的附件目錄,其路徑可通過webrootincoa_config.php指定 wm外部郵件存儲(chǔ)目錄 hrms_pic人事檔案照片目錄 general主要模塊目錄 一般模塊目錄(略) i

4、panel主控面板,集成了菜單、短信箱等應(yīng)用控制界面 bookmark收藏夾 shortcut快捷組 menu_define菜單快捷組 win_defineWindows快捷組 smsbox短信箱 mytable桌面 intel_view智能桌面顯示程序 myconfig桌面自定義 status_bar狀態(tài)欄 system系統(tǒng)功能模塊,下級(jí)目錄略 winexe調(diào)用Windows外部程序的頁面 ikernel通用管理程序,支持創(chuàng)建簡(jiǎn)單的MIS系統(tǒng) images系統(tǒng)圖片目錄 avatar頭像 menu菜單圖片 inc系統(tǒng)通用程序及函數(shù)目錄 dept_list部門列表XML輸出 jpgraph統(tǒng)計(jì)圖

5、組件 user_list用戶列表XML輸出 ispiritOA精靈頁面 module系統(tǒng)組件 dept_select部門選擇組件 editor簡(jiǎn)易HTML編輯器組件 OCOffice文檔在線編輯與閱讀-適用于文件柜、工作流等模塊 OC_NETDISK文檔在線編輯與閱讀-僅適用于網(wǎng)絡(luò)硬盤 rte復(fù)雜HTML編輯器組件 save_file文件轉(zhuǎn)存組件 user_select用戶多選組件 user_select_single 用戶單選組件 theme界面主題 update系統(tǒng)升級(jí),該文件夾下如存在1.php會(huì)被自動(dòng)執(zhí)行并刪除 wav系統(tǒng)聲音,F(xiàn)lash格式tmp緩存目錄,存儲(chǔ)上傳文件和登錄Sessi

6、on文件。logsApache日志目錄,主要包含了錯(cuò)誤日志error.logconfApache配置文件目錄dataMysql數(shù)據(jù)庫目錄 TD_OA極限OA主數(shù)據(jù)庫 dzbbs超級(jí)論壇數(shù)據(jù)庫 mysqlMysql系統(tǒng)數(shù)據(jù)庫mysqlMysql數(shù)據(jù)庫服務(wù)程序二、數(shù)據(jù)庫管理與應(yīng)用2.1 數(shù)據(jù)庫的配置極限OA在安裝完畢后,會(huì)自動(dòng)配置Mysql啟動(dòng)參數(shù),并注冊(cè)Mysql系統(tǒng)服務(wù)。出于特殊需要,用戶也可以手動(dòng)修改Mysql的配置參數(shù),方法是使用記事本打開windows目錄my.ini,這是Mysql的配置文件,其內(nèi)容一般如下格式:mysqldbasedir=D:MYOAmysqldatadir=D:MY

7、OAdatadefault-character-set=gbkset-variable=max_connections=1000其中,basedir表示mysql服務(wù)程序路徑、datadir表示數(shù)據(jù)庫文件路徑,可根據(jù)實(shí)際情況進(jìn)行調(diào)整并保存配置文件,重新啟動(dòng)Mysql服務(wù)后生效。2.2 數(shù)據(jù)庫的管理Mysql的數(shù)據(jù)庫管理工具很多,常見的有phpMyAdmin等,phpMyAdmin是使用PHP編寫的免費(fèi)Mysql數(shù)據(jù)庫管理工具。由于OA的Mysql數(shù)據(jù)庫出于安全考慮,被配置為僅能從本機(jī)訪問,所以使用phpMyAdmin這樣的B/S結(jié)構(gòu)的管理工具,可實(shí)現(xiàn)數(shù)據(jù)庫的遠(yuǎn)程管理??赏ㄟ^網(wǎng)站OA知識(shí)庫/Of

8、fice Automation 高級(jí)應(yīng)用技巧/數(shù)據(jù)庫管理工具/mysql網(wǎng)頁方式管理工具,找到該程序的下載地址。將解壓的文件,拷貝至 OA目錄webrootmysql 目錄下。mysql數(shù)據(jù)庫的網(wǎng)頁管理工具,使用方法 http:/主機(jī)名/mysql,注意,進(jìn)入后先選擇中文界面。 該管理工具的使用需具有一定數(shù)據(jù)庫基礎(chǔ),請(qǐng)勿進(jìn)行危險(xiǎn)操作,以免導(dǎo)致數(shù)據(jù)丟失。另外,為了防止他人利用該工具侵入數(shù)據(jù)庫系統(tǒng),可把目錄名設(shè)為比較復(fù)雜的,如mysql2345,避免目錄名被猜測(cè)到。phpMyAdmin主界面選擇TD_OA數(shù)據(jù)庫,可查看數(shù)據(jù)表結(jié)構(gòu)和數(shù)據(jù)為便于說明二次開發(fā)的過程,我們通過數(shù)據(jù)庫管理工具,新建一個(gè)數(shù)據(jù)表

9、。新數(shù)據(jù)表STUDENT表示學(xué)生數(shù)據(jù)表,包含3個(gè)字段,ID是自增字段,作為主鍵和唯一標(biāo)識(shí),NAME表示姓名,SEX表示性別,值為1表示男,為2表示女。插入一條數(shù)據(jù),并瀏覽,顯示如圖數(shù)據(jù)庫管理工具簡(jiǎn)要介紹到此,對(duì)于有SQL關(guān)系型數(shù)據(jù)庫基礎(chǔ)的開發(fā)人員,掌握phpMyAdmin這個(gè)工具并不難。關(guān)于Mysql的語法規(guī)則參見Mysql手冊(cè),連同OA數(shù)據(jù)庫結(jié)構(gòu)說明,均可到上面提到的phpMyAdmin下載地址下載。三、使用PHP語言開發(fā)OA功能模塊的規(guī)范3.1 PHP代碼樣例以下是一段樣例代碼test.php,可放置于webroot目錄下執(zhí)行,可作為開發(fā)OA應(yīng)用程序的模版。/或/*/是PHP的注釋語句。&

10、lt;?/include_once("inc/auth.php"); / 如需登錄驗(yàn)證則包含,未登錄將退出/include_once("inc/conn.php"); / 如需要連接數(shù)據(jù)庫則包含/include_once("inc/utility_all.php"); / 如需要使用公用函數(shù)則包含/include_once("inc/check_type.php"); / 如需要使用類型檢驗(yàn)函數(shù)則包含/如已包含auth.php,則無須包含conn.php?><html><head>&l

11、t;title>頁面標(biāo)題</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body class="bodycolor"><?echo "hello OA"?></body></html>程序運(yùn)行結(jié)果3.2 數(shù)據(jù)庫連接函數(shù)參考以下程序代碼read.php,訪問我們之前建立的STUDENT表<?include

12、_once("inc/conn.php");$query = "SELECT * from STUDENT"$cursor= exequery($connection,$query); /*exequery 是OA系統(tǒng)inc/conn.php包裝的SQL語句執(zhí)行函數(shù),$connection是數(shù)據(jù)庫的連接標(biāo)識(shí)符*/if($ROW=mysql_fetch_array($cursor)$NAME=$ROW"NAME"echo $NAME;?>程序運(yùn)行結(jié)果從這段程序可以看出,使用OA系統(tǒng)提供的系統(tǒng)頭文件和函數(shù),訪問數(shù)據(jù)庫將是一件很輕松的

13、事,不用操心數(shù)據(jù)庫的連接參數(shù)等問題,只需簡(jiǎn)單的寫下SQL語句,執(zhí)行它。以下這段程序,將刪除STUDENT表的所有數(shù)據(jù)。<?include_once("inc/conn.php");$query = "delete from STUDENT"exequery($connection,$query); ?>Mysql數(shù)據(jù)庫的連接參數(shù)在 webrootincoa_config.php文件中配置,可自行修改連接參數(shù)。3.3 系統(tǒng)變量OA系統(tǒng)提供了5個(gè)通過SESSION保存的系統(tǒng)變量,分別是$LOGIN_USER_ID用戶ID$LOGIN_USER_P

14、RIV用戶角色I(xiàn)D$LOGIN_DEPT_ID用戶部門ID$LOGIN_AVATAR用戶頭像$LOGIN_THEME用戶界面主題先建test.php如需使用這些系統(tǒng)變量,程序需要包含auth.php,如下代碼:<?include_once("inc/auth.php");echo "我的登錄用戶ID是".$LOGIN_USER_ID; /本句中的.表示字符串連接?>因?yàn)閳?zhí)行這個(gè)程序前,必須先登錄,我們首先定義一項(xiàng)個(gè)人網(wǎng)址,以便執(zhí)行這個(gè)需要登錄的程序。程序執(zhí)行結(jié)果以下一段程序,可以分別取出用戶姓名、用戶角色名稱、在線時(shí)間至$USER_NAME、

15、$USER_PRIV和$ONLINE變量。<?include_once("inc/auth.php");$query = "SELECT * from USER where USER_ID='$LOGIN_USER_ID'" $cursor= exequery($connection,$query); if($ROW=mysql_fetch_array($cursor) $USER_NAME=$ROW"USER_NAME" $USER_PRIV=$ROW"USER_PRIV" $ONLINE=

16、$ROW"ONLINE" $query1 = "SELECT * from USER_PRIV where USER_PRIV='$USER_PRIV'" $cursor1= exequery($connection,$query1); if($ROW=mysql_fetch_array($cursor1) $USER_PRIV=$ROW"PRIV_NAME" ?>3.4 系統(tǒng)函數(shù)3.4.1 常用函數(shù) 包含方法:include_once("inc/ utility.php");如已包含auth

17、.php,則無需包含Message($TITLE,$CONTENT) 顯示一個(gè)提示框如圖標(biāo)題和內(nèi)容可通過參數(shù)指定Button_Back() 顯示一個(gè)返回按鈕,用于訪回下一頁面find_id($STRING,$ID) 查詢用逗號(hào)隔開的$STRING字符串中,是否包含$ID如 find_id("abc,def,ghq","abc"); 返回值是true3.4.2 一般系統(tǒng)函數(shù) 包含方法:include_once("inc/ utility_all.php");format_date($STRING1)返回形如 1999年2月1日get_w

18、eek($STRING1)返回形如 六format_money($STR)返回金額格式,形如19.00compare_date($DATE1,$DATE2)日期比較,DATE1=DATE2 返回0,DATE1>DATE2 返回1,DATE1<DATE2 返回-1compare_time($TIME1,$TIME2)時(shí)間比較,time1=time2 返回0,time1>time2 返回1,time1<time2 返回-1compare_date_time($DATE_TIME1,$DATE_TIME2)日期+時(shí)間比較csubstr(&$str, $start=0,

19、 $long=0, $ltor=true, $cn_len=2)中文字符串截取函數(shù)一些中文字符串截取函數(shù)經(jīng)常有一些問題,例如在一些自動(dòng)換行程序中$a=“1中2”;經(jīng)兩次截取后,csubstr($str,$a,0,2);csubstr($str, $a, 2,2)由于載取位置指向“中”的右字節(jié),可能會(huì)是這樣的結(jié)果1, 2用本函數(shù)會(huì)產(chǎn)生正確的結(jié)果1中, 2# start 開始位置,從0開始# long = 0 則從start 一直取到字符串尾# ltor = true 時(shí)從左到右取字符,false 時(shí)到右到左取字符# $cn_len 中文字符按字節(jié)取還是字?jǐn)?shù)取,如果按字?jǐn)?shù)取,則一個(gè)中文當(dāng)一個(gè)字節(jié)計(jì)

20、算is_ip($IP)檢查IP是否合法is_dept_priv($DEPT_ID)查看$DEPT_ID是否屬于本人管理范圍my_dept_tree($DEPT_ID,$DEPT_CHOOSE,$POST_OP) 多級(jí)部門下拉菜單,支持按管理范圍列出,格式為<option value=>,不含<select>標(biāo)簽dept_long_name($DEPT_ID)遞歸求解完整的多級(jí)部門名稱3.4.3 內(nèi)部短信函數(shù) 包含方法:include_once("inc/utility_sms1.php ");send_sms($SEND_TIME,$FROM_ID,

21、$TO_ID,$SMS_TYPE,$CONTENT)發(fā)送內(nèi)部短信,參數(shù)依次為發(fā)送時(shí)間,發(fā)送人ID,接收人ID,短信類型(0為個(gè)人短信),內(nèi)容。例如:send_sms("2005-7-4 11:12:13","admin","admin",0, "你好");3.4.4 手機(jī)短信函數(shù) 包含方法:include_once("inc/utility_sms2.php ");send_mobile_sms($SEND_TIME,$FROM_ID,$PHONE,$CONTENT)直接向手機(jī)號(hào)碼發(fā)送,參數(shù)依次

22、為發(fā)送時(shí)間,發(fā)送人ID,接收人手機(jī)號(hào)碼,內(nèi)容。例如:send_mobile_sms ("2005-7-4 11:12:13","admin","quot;,0, "你好");send_mobile_sms_user($SEND_TIME,$FROM_ID,$TO_ID,$CONTENT,$TYPE)直接向OA用戶發(fā)送,參數(shù)依次為發(fā)送時(shí)間,發(fā)送人ID,接收人ID,內(nèi)容,類型(0為個(gè)人短信)。例如:send_mobile_sms_user ("2005-7-4 11:12:13",&q

23、uot;admin","admin","你好",0);3.5 系統(tǒng)組件3.5.1 日期組件日期組件的程序是webrootinccalendar.php,調(diào)用方法是在前臺(tái)頁面使用javascript,舉例如下:<script>function td_calendar(fieldname) myleft=document.body.scrollLeft+event.clientX-event.offsetX-80; mytop=document.body.scrollTop+event.clientY-event.offsetY+140

24、; 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><input type="text" name=&q

25、uot;BEGIN_DATE" size="10" maxlength="10"><img src="/images/menu/calendar.gif" border="0" style="cursor:hand" onclick="td_calendar('BEGIN_DATE');">3.5.2 人員多選組件人員多選組件的程序是webrootmoduleuser_select,調(diào)用方法是在前臺(tái)頁面使用javascript,舉例

26、如下:<script>function LoadWindow() URL="/module/user_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:0;status:0;help:0;resizable:1;dialogWidth

27、:320px;dialogHeight:265px;dialogTop:"+loc_y+"px;dialogLeft:"+loc_x+"px");</script><input type="hidden" name="TO_ID"><textarea cols=45 name="TO_NAME" rows="3" class="BigStatic" wrap="yes" readonly>&

28、lt;/textarea><input type="button" value="添 加" class="SmallButton" onClick="LoadWindow()" title="添加收件人" name="button">&nbsp;<input type="button" value="清 空" class="SmallButton" onClick="clea

29、r_user()" title="清空收件人" name="button">3.5.2 部門多選組件部門多選組件的程序是webrootmoduledept_select,調(diào)用方法是在前臺(tái)頁面使用javascript,舉例如下:<script>function LoadWindow() URL="/module/dept_select" loc_x=document.body.scrollLeft+event.clientX-event.offsetX-100; loc_y=document.body.scr

30、ollTop+event.clientY-event.offsetY+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"><textarea cols=40 name=TO_NAME rows=2 class="BigStatic"

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論