請假申請功能_第1頁
請假申請功能_第2頁
請假申請功能_第3頁
請假申請功能_第4頁
請假申請功能_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2.1問題背景本例開發(fā)一個簡單的請假申請功能,包括創(chuàng)建及編輯請假單,請假單查找,請假審批流程,本節(jié)擬定的請假單包括如下信息:1)申請人:申請人默認(rèn)是當(dāng)前登錄用戶,必填項。2)請假天數(shù):可以是小數(shù),必填項。3)開始日期:開始休假的日期,必填項。4)請假事由:一段文本,描述請假事由,可以不填。(用戶運用熟練后,可以自行添加其他信息)我們需要開發(fā)下述對象:1)請假單對象:將請假單保存到數(shù)據(jù)庫,以及能從數(shù)據(jù)庫查找請假單。2) 請假單視圖:查找、編輯請假單的畫面,包括列表(tree)和表單(form)兩個視圖。3) 菜單:準(zhǔn)備開發(fā)三級菜單:請假申請/請假單/請假單1。點擊“請假單1”時,進(jìn)入請假單列表視圖,可以查找或創(chuàng)建請假單。4) 請假單動作(Action):請假單動作把對象、視圖、菜單關(guān)聯(lián)到一起。2.2配置詳解2.2.1創(chuàng)建請假對象首先我們要給當(dāng)前用戶賦予開發(fā)權(quán)限,用系統(tǒng)默認(rèn)的超級用戶Admin登陸,然后點擊菜單:設(shè)置/用戶/用戶,選擇要賦予開發(fā)權(quán)限的用戶,點擊“編輯”按鈕,在“應(yīng)用程序”里選擇“設(shè)置”,然后在“易用性”里勾選“技術(shù)特性”,點擊“保存”。1) 點擊菜單:設(shè)置/技術(shù)/數(shù)據(jù)庫結(jié)構(gòu)/模型,點擊“新建”按鈕,創(chuàng)建請假單對象。2) 對象名:請假單對象:x_qingjd3) 字段:包括四個字段,申請人(x_shenqr),請假天數(shù)(x_tians),開始日期(x_kaisrq),請假事由(x_shiyou)。4)注意:從界面上創(chuàng)建對象時,對象及字段標(biāo)識符必須是x_開頭,后面還會介紹編寫代碼來創(chuàng)建對象,編寫代碼創(chuàng)建對象時,就沒有這個限制。創(chuàng)建請假單對象及創(chuàng)建字段的參考畫面如下:點擊“添加一個項目”逐個創(chuàng)建字段:

首先添加“申請人(x_shenqr)”這個字段,各種選項如下所示:本畫面中的“字段類型”在后面的“openerp對象”章節(jié)會講到,“對象關(guān)聯(lián)”通俗的講,就是該字段里面的內(nèi)容是從哪個對象里取值,本字段“申請人”是從“用戶”里取值,所以這里就填“用戶”所對應(yīng)的對象“res.users”。然后再用同樣的方法逐漸創(chuàng)建其他字段,如下:點擊“保存”,這樣“請假單對象”及其字段就創(chuàng)建完畢。創(chuàng)建視圖創(chuàng)建好對象后,只是在數(shù)據(jù)庫里有“請假單”這張表,要能在界面上顯示這張表,還需要為這個對象創(chuàng)建視圖。點擊菜單:設(shè)置/技術(shù)/用戶界面/視圖,點擊“創(chuàng)建”按鈕,依次創(chuàng)建請假單列表(tree)和請假單表單(form)兩個視圖。請假單列表:視圖名稱:請假單列表視圖類型:樹形列表(tree)對象:x_qingjd,即剛才創(chuàng)建的請假單對象,如果填寫的對象標(biāo)識符不正確的話,保存時會提示錯誤。子欄位和繼承視圖不填。優(yōu)先級:1,Action通常會關(guān)聯(lián)到多個視圖,優(yōu)先級表示多個視圖的顯示順序,數(shù)字越小越先顯示。通常列表總是最先顯示,其次是表單。視圖結(jié)構(gòu):視圖結(jié)構(gòu)是視圖中最重要的部分,也是最復(fù)雜的部分。視圖結(jié)構(gòu)定義要在視圖中顯示哪些字段,及顯示屬性(如只讀、必填、隱藏等)°Select=”l”表示,在列表視圖中,可以按該字段查找資源(記錄)。1)請假單列表視圖樹形視圖結(jié)構(gòu)如下:<?xmlversion=”1.0”?><treestring=”請假單”〉<fieldname=”x_shenqr”select=”1”/><fieldname=”x_tians”/><fieldname=”x_kaisrq”select=”1”/><fieldname=”x_shiyou”/></tree>

同理創(chuàng)建“請假單表單”視圖。視圖名稱:請假單表單視圖類型:表單(form)對象:x_qingjd優(yōu)先級:2)請假單表單視圖內(nèi)容如下<?xmlversion=”1.0”?><formstring=”請假單”〉<group><fieldname=”x_shenqr”/><fieldname=”x_tians”/><fieldname=”x_kaisrq”/><fieldname=”x_shiyou”/></group></form>

2.2.2創(chuàng)建菜單和Aciton創(chuàng)建菜單,點擊設(shè)置/技術(shù)/數(shù)據(jù)庫結(jié)構(gòu)/模型,查找剛才創(chuàng)建的“請假單”對象,點擊打開,在表單的下方有個“創(chuàng)建菜單”的按鈕,點擊進(jìn)去。?聖國連dF?*自現(xiàn)罠對豪■密耳口中n創(chuàng)在 +Tr-aniignBModul命蛍擇菱疊劃耳持盍烷程A_ksi?q科站日期平可枳罕目疋巽在總!1_油?*1甲璋宙人ma*iy?onfl不丑擇甯13卑X亭嵌x._jhi艸V1岸艇事白目罡文宇能XjrtlW韋詢石可裕第目龍咒亨跟進(jìn)去后,點擊“上級菜單”右邊的下拉按鈕,點擊“創(chuàng)建并編輯”,新建一個“請假申請”的父菜單,各字段含義如下:1)完整路徑:不用填,系統(tǒng)自動生成。2)菜單:請假申請,用于菜單顯示的文字。3)序號:在菜單列表中的顯示位置,數(shù)字越小越顯示在上位。4)上級菜單:由于本菜單式頂級菜單,不要父菜單。5) 動作(action):點擊菜單時將觸發(fā)的Aciton,本菜單僅僅是父菜單,不觸發(fā)Aciton,故不填。6) 組:只有這里定義的組(group)才能看見本菜單,如果不填,表示任何組都可以看到。暫時不考慮菜單權(quán)限,故而不填。點擊“保存”。父菜單建好后,按下圖創(chuàng)建“請假單“菜單。點擊“創(chuàng)建菜單”按鈕,系統(tǒng)會自動創(chuàng)建菜單和菜單對應(yīng)的Actiono該Action訪問請假單對象,依次調(diào)用請假單列表和請假單表單顯示數(shù)據(jù)。

再點擊“創(chuàng)建菜單”,創(chuàng)建二級菜單“請假單”的下級菜單:創(chuàng)建完畢后,點擊菜單:設(shè)置/技術(shù)/用戶界面/菜單項??梢钥吹健罢埣偕暾垺笔琼敿壊藛?,“請假申請/請假單”是二級菜單,“請假申請/請假單/請假單1”是三級菜單。點擊“請假申請”,可以查看該菜單的詳細(xì)信息:因為“請假申請”是頂級菜單,所以其完整路徑就是“請假申請”,而“請假單”是其子菜單,所以在子菜單一欄會顯示“請假單”這一項。

請愀申誦■AH1 FrdL砂二:!■'>**■図吟MilM申:aJ.na*SfO&.OPEN4子M*ffw109RV同理可以查看“請假申請”的子菜單的詳細(xì)信息:“請假單1”是最下級菜單,所以其子菜單一欄為空,其路徑是“請假申請/請假單/請假單1”。

揭開Action的面紗前面介紹過,是Action把對象、視圖、菜單等各個元素集成到了一起,那么Aciton到底是個什么東西呢?點擊菜單:設(shè)置/技術(shù)/動作/窗口動作,在動作對象中輸入“x_qingjd”查詢,得到“請假單1”動作,點擊打開。從Action編輯畫面,可以看到,Action關(guān)聯(lián)了對象(x_qingjd)、視圖(請假單列表和請假單表單),還有其他一些屬性字段。上述畫面中各字段的含義,參見后文的“菜單和動作”章節(jié)。2.2.3權(quán)限配置在實際工作中,經(jīng)理能看到所有下屬遞交的請假單,而下屬自己只能看到自己遞交的請假單,所以這里要進(jìn)行權(quán)限配置。首先創(chuàng)建一個“經(jīng)理”用戶和兩個“員工”用戶,點擊菜單:設(shè)置/用戶/用戶,點擊創(chuàng)建,寫好Name和電子郵件地址,其他暫時不填,如下:用戶創(chuàng)建完畢后,再對這三個用戶進(jìn)行分組。首先要創(chuàng)建一個“審批組”,點擊菜單:設(shè)置/用戶/組,點擊“創(chuàng)建”,填好各項如下所示,因為事先創(chuàng)建好的用戶中,經(jīng)理負(fù)責(zé)審批,所以在用戶欄里添加“經(jīng)理”這一個用戶:

點擊“保存”,然后再創(chuàng)建一個“員工組”,如下所示:ftri'■I*KA■鼎■4?S點擊“保存”,然后再創(chuàng)建一個“員工組”,如下所示:ftri'■I*KA■鼎■4?SHPana*A-VHPWMamygZQiMtaocnOwhi^IMMl|Hl說tit憎孕g(shù)#g*M科間u耳ft申£分組好了后,要讓“請假單”這個對象與這兩個組相關(guān)聯(lián),也就是這兩個組里有權(quán)限用到“請假申請”這個功能,我們還需進(jìn)行如下操作:點擊設(shè)置/技術(shù)/數(shù)據(jù)庫結(jié)構(gòu)/模型,選擇點擊“x_qingjd”對象,然后在訪問權(quán)限一欄里添加剛才創(chuàng)建的兩個組:點擊“保存”。系統(tǒng)并不能自行的進(jìn)行權(quán)限設(shè)置,還需要用戶設(shè)置一定的安全規(guī)則。點擊菜單:設(shè)置/技術(shù)/安全/設(shè)定/記錄規(guī)則,點擊“創(chuàng)建”,新建的內(nèi)容如下:這里規(guī)則定義里的內(nèi)容是:填完后,點擊“保存”,這樣員工自己只能看自己的請假申請,而經(jīng)理可以看到所有人的請假申請[('x_shenqr','=',user.id)]2.2.4工作流(審批)工作流的設(shè)置是一個比較復(fù)雜的問題,這里只作流程的介紹,具體請深入學(xué)習(xí)OpeERP軟件。請假單的審批是一個過程,在OpenERP里面叫做工作流(workflow),擬定請假審批有4個狀態(tài),分別是“草稿(qingjd_draft)”、“待批(qingjd_wait_prove)”、“批準(zhǔn)(qingjd_proved)”、“拒絕(qingjd_rejected)”。首先在原先建的請假單模型中添加一個“狀態(tài)”字段,各項如下:

其中“選擇項目”內(nèi)容為:點擊“保存并關(guān)閉”。準(zhǔn)備工作做完后,就開始制作工作流。首先擬定審批流程為:員工遞交“請假申請”,“請假申請”的狀態(tài)由“草稿”轉(zhuǎn)變?yōu)椤按?,?jīng)理批準(zhǔn)或拒絕請假申請,“請假申請”狀態(tài)由“待批”轉(zhuǎn)變?yōu)椤芭鷾?zhǔn)”或“拒絕”。在清楚了審批流程之后,就可以創(chuàng)建工作流了,點擊菜單:設(shè)置/技術(shù)/工作流/工作流,點擊“創(chuàng)建”,用戶可以任意命名,這里填“請假單審批”,資源對象填先前創(chuàng)建的請假單對象“x_qingjd”,然后點擊“添加一個項目”來創(chuàng)建4個狀態(tài),首先創(chuàng)建“草稿(qingjd_draft)”狀態(tài):

工年專tft0fHit iiljC|lriQJd_draift工和dn■鮒工作潔馬止V:皿取甲帀眥■U子工作流條件TTfiSt忙■碼(^ubnow."ja或胡作Oi雖答血代*“待批(qingjdwaitprove)”狀態(tài):0J樣勺方法建立其他3“待批(qingjdwaitprove)”狀態(tài):0J樣勺方法建立其他3個狀態(tài)。”H>“Python動作”內(nèi)容為write({'x_state':'qingjd_wait_prove'})“批準(zhǔn)(qingjd_proved“批準(zhǔn)(qingjd_proved)”狀態(tài):工fv]*評i±EJFE?E*:y-P**4|-H]“Python動作”的內(nèi)容為:write({'x_state':'qingjd_proved'})“拒絕(qingjd_rejected)”狀態(tài)工無工O"握軒站E整1I>晝?nèi)A?qr遣PM*UE產(chǎn)工作流條件At毎?富|JHK-SjH?-aadToQincZt*l P1rsflIdLwjiVr^KTlJ■ii“Python動作”的內(nèi)容為:write({'x_state':'qingjd_rejected'})狀態(tài)建立好了之后,還需要在視圖中顯示,所以要修改原先的視圖代碼,這里只修改表單視圖(form),如下:<?xmlversion="1.0"?>vformstring二"請假單"〉<header>vbuttonstring二"送批"name二"draft_to_wait"x_state="qingjd_draft"/>vbuttonstring二"批準(zhǔn)"name二"wait_to_proved"x_state二"qingjd_wait_prove"/>vbuttonstring="拒絕"name二"wait_to_rejected"x_state="qingjd_wait_prove"/><fieldname="x_state"widget="statusbar"statusbar_visible="qingjd_draft,qingjd_wait_prove,qingjd_proved"statusbar_colors='{"qingjd_wait_prove":"red","qingjd_proved":"blue"}'/></header><group><fieldname="x_shenqr"/><fieldname="x_tians"/><fieldname="x_kaisrq"/><fieldname="x_shiyou"/></group></form>狀態(tài)之間會有轉(zhuǎn)變,這里稱之為“遷移”,例如:員工遞交請假單是從“草稿”轉(zhuǎn)變到“待批”;經(jīng)理批準(zhǔn)請假,是從“待批”狀態(tài)轉(zhuǎn)變到“批準(zhǔn)”狀態(tài)。而狀態(tài)的轉(zhuǎn)變,在現(xiàn)實生活中是通過“遞交”或者“簽字”的方式進(jìn)行的,而OpenERP是通過點擊按鈕。首先,“草稿”只能轉(zhuǎn)變?yōu)椤按睜顟B(tài),所以點擊“草稿(qingjd_draft)”,然后點擊“遷移,”在“目標(biāo)活動”點擊“添加一個項目”,內(nèi)容如下:im:傳出辻榕[E*u11杯譏諭1E氣<皓IB肌沖、Angjd_艸砂_pr#IS-逹就込止“必須的用戶組”選擇“員工組”是因為請假單是員工遞交的,與“審批組”成員無關(guān)(這里沒有考慮審批組成員的請假)。“待批(qingjd_wait_prove)”是由“草稿”轉(zhuǎn)變而來,而其又可以轉(zhuǎn)變?yōu)椤芭鷾?zhǔn)”和“拒絕”,所以同理,在“源活動”添加內(nèi)容如下:

打卅:HAilI*EE■g曰鶯遼“]tfli:AlH-qlngj^_wafl^prnv#dF-3ffl_l0_irtr3llTru?*gAiAjCffir?True在“目標(biāo)活動”添加下面兩個“遷移”:ir>i 酋a:聞穆FT列KEqinaj<S0E#v?d僑皓ilstn林岳iTrueI價打3ffiiAftqm-Dj-dfejede-d1TJ1暉列Imu-iNEH(恬鍛童雜}^H-嵯1啊削戶■鎮(zhèn)■D*qinunj.iY^l.pfQVDqin<j|d_r<ij<ic1fl<ii*g 塑程39宸選貞wart_tc_f<U*ti*clTru?TfUfr吉4iJjo-rtfiit“批準(zhǔn)(qingjd_proved)”是由“待批”轉(zhuǎn)變而來,而其實結(jié)束狀態(tài),所以在“源活動”添加內(nèi)容如下:打*n軻人遷游甲列施 .1*E±T*世古曲處金*+qtaig|<|_crwfinwart_?_prGVBdTni*“拒絕(qingjd_rejected)”也是由“待批”轉(zhuǎn)變而來,而其也是結(jié)束狀態(tài),所以在源活動”添加內(nèi)容:豹幵】H-AU世 豪汕的III戶《1 帀眥個 ”小citnfll-d?wa^-P*°^* rgQlniQK_r?jv<iad ■-c± 44菠.咼齊*詁盤空略ttf耕fM*AwaiiLtc_r?Jodt?-djftfrTme所有“狀態(tài)”和“遷移”就創(chuàng)建完畢,點擊“保存”,“請假單審批”工作流就創(chuàng)建完畢,用戶就可以使用“請假申請”和“請假審批”功能。2.2.5測試回到主菜單,畫面上增加了菜單“請假申請/請假單/請假單1”。點擊請假單,進(jìn)入列表視圖,點擊新建按鈕,進(jìn)入創(chuàng)建請假單畫面。

點擊“創(chuàng)建”。點擊“保存”。2.2.6深入數(shù)據(jù)庫在上述界面操作中,依次創(chuàng)建了對象、視圖、菜單和系統(tǒng)動作,作成了“請假申請“的功能。在界面操作的背后,OpenERP內(nèi)部做了哪些動作呢?實際開發(fā)工作中,總是會碰到這樣那樣的問題,只有明白了其背后動作,才知道從哪里查找原因,解決問題。本節(jié)深入OpenERP數(shù)據(jù)庫,探求背后內(nèi)幕。對象當(dāng)在界面上創(chuàng)建x_qingjd對象時,OpenERP在數(shù)據(jù)庫中新建了一張表x_qingjd,用于保存請假單對象,如下:X_qingjdTableid[PKinicreate_datetimestampvwrite_datetimestampvwritintex_shenqrintegerx_tiansdouble匚x_kaisrqdatex_shiyoutext112009-12-272:2009-12-20□:131.52009-12-29休年假x_qingjd對象及其字段的信息,也寫入了數(shù)據(jù)表ir_model,字段信息在ir_model_fields。ir_model_fields通過model_id字段和ir_model外鍵關(guān)聯(lián)。如下:ir_modelTable[Pl^serialmodelcharactervanamecharactervarying(6statecharactervainfotext185 1xqingjd諳假單manualir_model_fieldsTableidmodelmodelnamerelationSEfield_descripttype[PK]characteintegercharacteicharacteclcharactervacharacter1jEElxqingjd35xshenqrres.users□申諳人many2one5SSxqingjdS5xtiansNULL□諳假天數(shù)float5S9xqingjdS5xkaisrqNULL□開始日期date590x.qingjd05xshiyouNULL0諳假爭由text視圖界面上創(chuàng)建的視圖,寫入在表ir_ui_view,其中視圖結(jié)構(gòu)保存在arch字段中,是一段XML文本。如下:ir_ui_viewTable限]serialnamecharactervamodelcharactervatypecharactfarchtextfield_parercharacter、priorityinteger122假單列表1xqingjdtree<?xinlversion=":1123諳假單表單xqingjdformversion=":2菜單和動作在界面上創(chuàng)建菜單(父菜單和子菜單)時,菜單信息保存在表ir_uimenu,如下:ir_ui_menuTableid[PK]serialparentintegernamecharactericoncharactervacreateintegecreate_datetimestampvwrititimewriteintegsequenceinteger103卜諳假申諳STOCKOPEN12009-12-272:10104103 圧詰假單STOCKJNDEP-12009-12-272;1101動作(Action)信息在表ir_act_window,ir_act_window_view,ir_values中。其中Action的基本信息在ir_act_window中,字段res_model定義了和本Action關(guān)聯(lián)的對象。Action和視圖的關(guān)聯(lián)信息在ir_act_window_view中,和菜單的關(guān)聯(lián)信息在ir_values中。ir_act_windowTable嘯[PK]ilnamecharactetypecharactervarying(32'usagicharaviewjcintegerres_modelcharactervaview_t

溫馨提示

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

評論

0/150

提交評論