




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Oracle ERPE-BUSINESS SUITEForm開發(fā)總結文檔作者:何云創(chuàng)建日期:2012-02-12更新日期:2015-02-10文檔編碼:MD070當前版本:1.1審批者:用戶項目經(jīng)理:信息部項目經(jīng)理:外包方項目經(jīng)理:文檔控制1.1更新記錄日期作者版本變更參考2012-02-12何云1.0建立2015-02-10何云1.1更新1.2審閱記錄姓名職位簽字1.3分發(fā)人員編碼姓名地點和位置簽名1234目錄文檔控制ii1.1更新記錄ii1.2審閱記錄ii1.3分發(fā)人員ii1.前言42.基本步驟52.1 環(huán)境設置52.2 新建fmb52.3 添加對象52.4 建立主體對象62.5 初始化參
2、數(shù)72.6 標準代碼92.7 ITEM調整112.8 界面調整122.9 實現(xiàn)增刪改鎖132.10 手電筒查詢182.11 上傳編譯193.常用功能203.1 TAB頁Folder203.2 彈性域233.3 LOV253.4 Form個性化263.5 彈出窗口居中263.6 警告263.7 Onetime_where與Default_where273.8 啟動功能283.9 退出form283.10 工具欄283.11 保存點及回滾294.其他功能304.1 消息等級304.2 顏色屬性304.3 CASE_INSENSITIVE_QUERY304.4 Clear_block304.5 禁用
3、歷史記錄305.附件325.1 觸發(fā)器執(zhí)行順序326.參考資料33EBS Form開發(fā)總結1.前言在學習form的過程中,平時有在寫一些關于form開發(fā)的筆記,不過內容都比較零散,沒有歸納成一篇較為全面的總結文檔。在此基礎上,寫下一份針對form開發(fā)較為系統(tǒng)的個人總結。本次總結主要以我目前所做過的form開發(fā)為基礎,內容未必覆蓋form開發(fā)的全部內容,部分功能的實現(xiàn)方法和步驟的先后順序也未必最佳,日后將不斷完善。以下出現(xiàn)的代碼中,淺藍色部分為在實際開發(fā)需要變化的部分。2.基本步驟以下為開發(fā)一個普通頭行結構,帶有非TAB 的Folder功能的Form的基本步驟。2.1 環(huán)境設置僅在第一次開發(fā)EB
4、S R12 FORM時進行此步。從安裝EBS的服務器上下載resource文件夾,路徑位于$AU_TOP/resource。從安裝EBS的服務器上下載fmb文件,路徑位于$AU_TOP/form/ZHS和$AU_TOP/form/US。在注冊表中,將以上3個路徑寫到Forms_Path(在注冊表中搜索即可找到)中,格式是:resource路徑;form的ZHS路徑; form的US路徑。2.2 新建fmb復制模板TEMPLATE.fmb創(chuàng)建一個新的fmb文件,改名為:3位應用簡稱+3位模塊簡稱+2位功能簡稱,名稱最好不長于11位字符。名稱不可使用小寫字母,否則在ebs中運行會出錯。2.3 添加
5、對象1.STANDARD_FOLDER如果不用forlder可以跳過此步,但考慮到日后對form布局的維護,一般情況下的多行塊都建議做成folder形式。從APPSTAND.fmb中復制STANDARD_FOLDER對象組至在開發(fā)中的form,復制時選擇子類,不可修改。2.APPFLDR如果不用forlder可以跳過此步。在附加的庫中添加APPFLDR.pll,選擇移除絕對路徑。2.4 建立主體對象1.窗口刪除模板自帶窗口BLOCKNAME并新建窗口,主WINDOW建議起名為MAIN或MAIN_WIN,便于維護。為主WINDOW設置窗口名稱、最小化窗口名稱和主畫布,并把子類設置為WINDOW。
6、在form級觸發(fā)器pre-form中添加以下代碼:app_window.set_window_position('MAIN', 'FIRST_WINDOW');有時候自己做的form運行時跑出來的界面卻不是自己做的界面,很可能就是因為沒有刪除BLOCKNAME對象且沒有修改以上這句代碼中的第一個參數(shù)。2.畫布刪除模板自帶畫布BLOCKNAME并新建畫布,主CANVAS建議起名為MAIN,便于維護。為主畫布設置窗口,并把子類設置為CANVAS。為實現(xiàn)folder功能,還至少需要一個用來放置非固定列的畫布,子類選擇CANVAS_STACKED。畫布的上下順序對堆疊的
7、效果有影響,將置于底層的畫布放置在上方。3.數(shù)據(jù)塊刪除模板自帶數(shù)據(jù)塊BLOCKNAME。先在數(shù)據(jù)庫中創(chuàng)建好需要的視圖,需要帶有基表的ROWID,并起別名為ROW_ID。一般較少直接使用基表,這樣會降低程序的靈活性。再使用數(shù)據(jù)庫創(chuàng)建向導建立對應的數(shù)據(jù)塊。Header塊及Line塊的固定列放置在主畫布上,Line塊的非固定列放置在堆疊畫布上。Line塊需要有滾動條,且滾動條放置于MAIN畫布上。在Header塊中找到剛創(chuàng)建的關系,在屬性中把防止無主記錄操作選成是。手動創(chuàng)建一個數(shù)據(jù)塊CONTROL(一般按鈕放于此),屬性中的數(shù)據(jù)庫數(shù)據(jù)塊選擇否。手動創(chuàng)建一個提示數(shù)據(jù)塊(folder需要),屬性中的數(shù)據(jù)
8、庫數(shù)據(jù)塊選擇否。Header塊的導航,導航器樣式選擇改變數(shù)據(jù)塊,前一個數(shù)據(jù)塊選擇自身,后一個數(shù)據(jù)塊選擇Line塊,使用戶能從Header導航至Line。Line塊的導航,導航器樣式選擇改變記錄,前一個數(shù)據(jù)塊選擇Header塊,后一個數(shù)據(jù)塊選擇自身,使用戶能從一行導航至下一行。將全部塊的子類設置為BLOCK。根據(jù)需要對Header塊和Line塊的數(shù)據(jù)庫屬性,包括允許查詢、允許插入、允許更新和允許刪除等,做出調整。注意點:1.塊名長度不可大于22。2. 頭行結構設置級聯(lián)刪除時,系統(tǒng)會自動添加一個pre-delete觸發(fā)器代碼。2.5 初始化參數(shù)1.庫存組織參數(shù)如果form中的操作不需要區(qū)別不同的庫
9、存組織,可以跳過此步。增加4個參數(shù):number型的ORG_ID;char型的ORG_CODE;char型的ORG_NAME;number型的CHART_OF_ACCOUNTS_ID。可以手動創(chuàng)建。也可以從INVSTAND.fmb的對象組中將INV_PARAMS拖到正在開發(fā)的form的對象組中,選擇子類。在form級觸發(fā)器pre-form中添加以下代碼:FND_ORG.CHOOSE_ORG;用戶在打開form前就需要選擇庫存組織,庫存組織的相應信息會被保存在以上4個參數(shù)中。在form級觸發(fā)器when-new-form-instance中添加以下代碼:app_window.set_title(&
10、#39;QUERY_FIND',name_in('PARAMETER.ORG_NAME');app_window.set_title('MAIN',name_in('PARAMETER.ORG_NAME');使form中的窗口名稱后面都帶上庫存組織名稱,便于用戶操作。例如:交貨平臺(中彈組織)。在Header塊級觸發(fā)器when-new-block-instance中添加以下代碼:set_block_property('HEADER_BLOCKNAME',DEFAULT_WHERE,'ORGANIZATION_ID
11、= '|:parameter.ORG_ID|' ');From后續(xù)開發(fā)中使用ORG_ID區(qū)別不同庫存組織。2.配置文件參數(shù)如果form功能不涉及配置文件,可以跳過此步。創(chuàng)建參數(shù)用以保存配置文件的值,參數(shù)初始值設置為當配置文件值為空時所希望的缺省值。如item_ updatability_control,初始為N。在form級觸發(fā)器PRE-FORM中添加以下代碼:if fnd_profile.VALUE('CUX_XXX_XXX_CONTROLS') is not null then:parameter.item_updatability_control:
12、=fnd_profile.VALUE('CUX_XXX_XXX_CONTROLS');end if;form后續(xù)功能開發(fā)通過此類參數(shù)達到配置文件控制的作用。3.業(yè)務實體參數(shù)如果form中的操作不需要區(qū)別不同的業(yè)務實體,可以跳過此步。實際上,業(yè)務實體參數(shù)是一個名稱為“ORG_ID”的特定的配置文件參數(shù)。創(chuàng)建參數(shù)用以保存業(yè)務實體ID,一般起名為ORG_ID。在form級觸發(fā)器PRE-FORM中添加以下代碼:if fnd_profile.VALUE('ORG_ID') is not null then:parameter.ORG_ID:=fnd_profile.VAL
13、UE(' ORG_ID ');end if;From后續(xù)開發(fā)中使用ORG_ID區(qū)別不同業(yè)務實體。2.6 標準代碼1.APP_CUSTOM在程序單元app_custom. close_window中修改以下代碼:if (wnd = 'MAIN') then app_window.close_first_window;表現(xiàn)的效果是:當用戶點擊MAIN窗口右上方的叉,整個form會退出;而當用戶點擊form的其他窗口右上方的叉,僅會隱藏當前窗口。2.FORM同名PACKAGE在程序單元中增加一個與form同名的package,package頭里定義如下procedur
14、e:procedure event_handler(event varchar2);form級觸發(fā)器里的代碼都建議寫在這個event_handler內,尤其是行數(shù)多于3行時。在package body里添加以下代碼(不用folder可以跳過):PROCEDURE event_handler(event VARCHAR2) ISBEGIN IF event = 'WHEN-NEW-FORM-INSTANCE' THEN app_folder.define_folder_block('FOLDER_NAME', 'LINE_BLOCKNAME', &
15、#39;LINE_PROMPT_BLOCKNAME', 'FOLDER_STACKED_CANVAS', 'MAIN', NULL, NULL, NULL); app_folder.event('INSTANTIATE'); END IF;END event_handler;3.FORM級觸發(fā)器 以下代碼均為實現(xiàn)folder。 名稱代碼When-window-resizedif :system.event_window in ('MAIN') thenapp_folder.event('WHEN-WINDOW-RE
16、SIZED');end if;FOLDER_ACTIONapp_folder.event(:global.folder_action);KEY-CLRFRMapp_folder.event('KEY-CLRFRM');WHEN-NEW-FORM-INSTANCEFORM_NAME.event_handler('WHEN-NEW-FORM-INSTANCE');注意點:如果When-window-resized中的window名不正確,在form實際運行時會發(fā)現(xiàn)folder區(qū)域不會隨窗口寬度的變化而變化。4.BLOCK級觸發(fā)器為實現(xiàn)folder功能,一共需
17、要在Line塊添加BLOCK級觸發(fā)器14個:觸發(fā)器名稱代碼WHEN-NEW-RECORD-INSTANCEapp_folder.event('WHEN-NEW-RECORD-INSTANCE');WHEN-NEW-BLOCK-INSTANCEapp_folder.event('WHEN-NEW-BLOCK-INSTANCE');PRE-QUERYapp_folder.event('PRE-QUERY');POST-QUERYapp_folder.event('POST-QUERY');app_globe.event('PO
18、ST-QUERY');PRE-BLOCKapp_folder.event('PRE-BLOCK');POST-BLOCKapp_folder.event('POST-BLOCK');KEY-ENTQRYapp_folder.event('KEY-ENTQRY');KEY-EXEQRYapp_folder.event('KEY-EXEQRY');KEY-PREV-ITEMapp_folder.event('KEY-PREV-ITEM');KEY-NEXT-ITEMapp_folder.event('K
19、EY-NEXT-ITEM');KEY-PRVRECapp_folder.event('KEY-PRVREC');KEY-NXTRECapp_folder.event('KEY-NXTREC');KEY-CLRRECapp_folder.event('KEY-CLRREC');KEY-CLRBLKapp_folder.event('KEY-CLRBLK');2.7 ITEM調整1.Header Item增加需要的非數(shù)據(jù)庫項。ROW_ID項的子類選擇ROW_ID。所有顯示的項都需要設置對應的子類,以保持與EBS一致的風格。對各
20、項的細節(jié),如是否可更新、項導航順序、數(shù)據(jù)有效性、初始值、數(shù)字格式和提示文字等,做出調整。2.Line Item增加需要的非數(shù)據(jù)庫項。ROW_ID項的子類選擇ROW_ID。所有顯示的項都需要設置對應的子類,以保持與EBS一致的風格。刪除所有folder顯示項的提示文字。對各項的細節(jié),如是否可更新、項導航順序、數(shù)據(jù)有效性、初始值和數(shù)字格式等,做出調整。增加以下兩個項:名稱子類畫布FOLDER_SWITCHERSWITCHERFOLDER的堆疊畫布CURRENT_RECORD_INDICATORCURRENT_RECORD_INDICATORMAIN并且分別在它們的項級觸發(fā)器WHEN-NEW-ITE
21、M-INSTANCE中添加以下代碼:app_folder_move_cursor('1');3.提示塊Item從LINE塊復制全部使用folder的項至提示塊,子類全都選擇FOLDER_PROMPT_MULTIROW,初始值分別設置為相應的列標題。注意項序保持與LINE塊一致。增加以下六個項:名稱子類畫布ORDER_BY1FOLDER_ORDERBYFOLDER的堆疊畫布ORDER_BY2FOLDER_ORDERBYFOLDER的堆疊畫布ORDER_BY3FOLDER_ORDERBYFOLDER的堆疊畫布FOLDER_DUMMYFOLDER_DUMMYTOOLBARFOLDER
22、_TITLEDYNAMIC_TITLEMAINFOLDER_OPENFOLDER_OPENMAIN4.CONTROL塊Item按照需求添加相應的控制組件,多為按鈕。按鈕的子類:BUTTON。按鈕的標簽:顯示文本(&快捷鍵字母),如清除(&C)。注意:導航到一個數(shù)據(jù)塊上時,如果塊上一個可導航的項都沒有,將出現(xiàn)畫面死機的BUG。2.8 界面調整以下僅考慮Header項皆位于Line項上方、Control項皆位于Line項下方、帶folder的情況。1.Folder堆疊畫布 在畫布屬性中設置顯示水平滾動條。 參考下面表格做出調整。名稱坐標/數(shù)值提示項和ORDER_BY項(0,0)Li
23、ne塊的內容項(0,0.25)高度0.25*(Line塊顯示的記錄數(shù)+1)寬度窗口寬度-固定列區(qū)域寬度(無固定列時為0)-0.5視圖端口高度0.25*(Line塊顯示的記錄數(shù)+1)視圖端口寬度窗口寬度-固定列區(qū)域寬度(無固定列時為0)-0.5視圖端口的X軸位置0.25+固定列區(qū)域寬度視圖端口的Y軸位置按實際情況設置(一般保持與Header區(qū)域相差0.25)注意點:1.提示項與內容項的寬度保持一致。2.內容項最好與提示項在Y軸方向上緊貼,如果離得過遠(大于0.1),在多行記錄滾動時會出現(xiàn)內容項移位的bug。2.MAIN畫布對Header項的位置做適當調整,確定Header區(qū)域坐標及高寬。參考以下
24、表格做出調整。名稱坐標/數(shù)值畫布高度窗口高度畫布寬度窗口寬度FOLDER_OPEN(0.25,Header區(qū)域Y坐標+Header區(qū)域高度)FOLDER_TITLE(0.5, Header區(qū)域Y坐標+Header區(qū)域高度+0.05)CURRENT_RECORD_INDICATOR(0.15, Header區(qū)域Y坐標+Header區(qū)域高度+0.5)Line塊滾動條(窗口寬度-0.25,Header區(qū)域Y坐標+Header區(qū)域高度+0.5) Control項置于Line區(qū)域與窗口下邊界之間,做適當調整。2.9 實現(xiàn)增刪改鎖基于視圖的form的增刪改鎖操作需要我們添加代碼完成。以下程序包代碼可以通過
25、漢得的公共程序包HAND_PLSQL_AUTOCREATE自動生成。注意點:HAND_PLSQL_AUTOCREATE切忌小寫。 首先創(chuàng)建以下兩個程序包規(guī)格:名稱內容Header_BlockName_privatePACKAGE Header_BlockName_private IS PROCEDURE insert_row; PROCEDURE lock_row;PROCEDURE update_row;PROCEDURE delete_row;END Header_BlockName_private;Line_BlockName_privatePACKAGE Line_BlockName_
26、private IS PROCEDURE insert_row; PROCEDURE lock_row;PROCEDURE update_row;PROCEDURE delete_row;END Line_BlockName_private;再創(chuàng)建對應的程序包主體,Header與Line相似,以下僅列出Header_BlockName_private主體代碼:PACKAGE BODY header_blockname_private IS /*= * PROCEDURE: insert_row() *=*/ PROCEDURE insert_row IS CURSOR row_id IS SE
27、LECT ROWID FROM header_table_all WHERE header_table_primary_key = :header_blockname.header_table_primary_key; BEGIN fnd_standard.set_who; IF :header_blockname.header_table_primary_key IS NULL THEN SELECT header_table_all_s.nextval INTO :header_blockname.header_table_primary_key FROM sys.dual; END IF
28、; INSERT INTO header_table_all (creation_date, created_by, last_updated_by, last_update_date, last_update_login, header_table_primary_key, header_table_col1, header_table_col2, header_table_col3, attribute_category, attribute1, attribute2, attribute3, attribute4, attribute5, attribute6, attribute7,
29、attribute8, attribute9, attribute10, attribute11, attribute12, attribute13, attribute14, attribute15) VALUES (:header_blockname.creation_date, :header_blockname.created_by, :header_blockname.last_updated_by, :header_blockname.last_update_date, :header_blockname.last_update_login, :header_blockname.h
30、eader_table_primary_key, :header_blockname.header_table_col1, :header_blockname.header_table_col2, :header_blockname.header_table_col3, :header_blockname.attribute_category, :header_blockname.attribute1, :header_blockname.attribute2, :header_blockname.attribute3, :header_blockname.attribute4, :heade
31、r_blockname.attribute5, :header_blockname.attribute6, :header_blockname.attribute7, :header_blockname.attribute8, :header_blockname.attribute9, :header_blockname.attribute10, :header_blockname.attribute11, :header_blockname.attribute12, :header_blockname.attribute13, :header_blockname.attribute14, :
32、header_blockname.attribute15); OPEN row_id; FETCH row_id INTO :header_blockname.row_id; IF (row_id%NOTFOUND) THEN CLOSE row_id; RAISE no_data_found; END IF; CLOSE row_id; END insert_row; /*= * PROCEDURE: lock_row() *=*/ PROCEDURE lock_row IS CURSOR c_row IS SELECT * FROM header_table_all WHERE ROWID
33、 = :header_blockname.row_id FOR UPDATE OF header_table_primary_key NOWAIT; rec c_row%ROWTYPE; i NUMBER := 0; BEGIN LOOP BEGIN i := i + 1; OPEN c_row; FETCH c_row INTO rec; IF (c_row%NOTFOUND) THEN CLOSE c_row; fnd_message.set_name('FND', 'FORM_RECORD_DELETED'); fnd_message.error; RAI
34、SE form_trigger_failure; END IF; CLOSE c_row; IF (rec.creation_date = :header_blockname.creation_date) OR (rec.creation_date IS NULL) AND (:header_blockname.creation_date IS NULL) AND (rec.created_by = :header_blockname.created_by) OR (rec.created_by IS NULL) AND (:header_blockname.created_by IS NUL
35、L) AND (rec.last_updated_by = :header_blockname.last_updated_by) OR (rec.last_updated_by IS NULL) AND (:header_blockname.last_updated_by IS NULL) AND (rec.last_update_date = :header_blockname.last_update_date) OR (rec.last_update_date IS NULL) AND (:header_blockname.last_update_date IS NULL) AND (re
36、c.last_update_login = :header_blockname.last_update_login) OR (rec.last_update_login IS NULL) AND (:header_blockname.last_update_login IS NULL) AND (rec.header_table_primary_key = :header_blockname.header_table_primary_key) AND (rec.header_table_col1 = :header_blockname.header_table_col1) OR (rec.he
37、ader_table_col1 IS NULL) AND (:header_blockname.header_table_col1 IS NULL) AND (rec.header_table_col2 = :header_blockname.header_table_col2) OR (rec.header_table_col2 IS NULL) AND (:header_blockname.header_table_col2 IS NULL) AND (rec.header_table_col3 = :header_blockname.header_table_col3) OR (rec.
38、header_table_col3 IS NULL) AND (:header_blockname.header_table_col3 IS NULL) AND (rec.attribute_category = :header_blockname.attribute_category) OR (rec.attribute_category IS NULL) AND (:header_blockname.attribute_category IS NULL) AND (rec.attribute1 = :header_blockname.attribute1) OR (rec.attribut
39、e1 IS NULL) AND (:header_blockname.attribute1 IS NULL) AND (rec.attribute2 = :header_blockname.attribute2) OR (rec.attribute2 IS NULL) AND (:header_blockname.attribute2 IS NULL) AND (rec.attribute3 = :header_blockname.attribute3) OR (rec.attribute3 IS NULL) AND (:header_blockname.attribute3 IS NULL)
40、 AND (rec.attribute4 = :header_blockname.attribute4) OR (rec.attribute4 IS NULL) AND (:header_blockname.attribute4 IS NULL) AND (rec.attribute5 = :header_blockname.attribute5) OR (rec.attribute5 IS NULL) AND (:header_blockname.attribute5 IS NULL) AND (rec.attribute6 = :header_blockname.attribute6) O
41、R (rec.attribute6 IS NULL) AND (:header_blockname.attribute6 IS NULL) AND (rec.attribute7 = :header_blockname.attribute7) OR (rec.attribute7 IS NULL) AND (:header_blockname.attribute7 IS NULL) AND (rec.attribute8 = :header_blockname.attribute8) OR (rec.attribute8 IS NULL) AND (:header_blockname.attr
42、ibute8 IS NULL) AND (rec.attribute9 = :header_blockname.attribute9) OR (rec.attribute9 IS NULL) AND (:header_blockname.attribute9 IS NULL) AND (rec.attribute10 = :header_blockname.attribute10) OR (rec.attribute10 IS NULL) AND (:header_blockname.attribute10 IS NULL) AND (rec.attribute11 = :header_blo
43、ckname.attribute11) OR (rec.attribute11 IS NULL) AND (:header_blockname.attribute11 IS NULL) AND (rec.attribute12 = :header_blockname.attribute12) OR (rec.attribute12 IS NULL) AND (:header_blockname.attribute12 IS NULL) AND (rec.attribute13 = :header_blockname.attribute13) OR (rec.attribute13 IS NUL
44、L) AND (:header_blockname.attribute13 IS NULL) AND (rec.attribute14 = :header_blockname.attribute14) OR (rec.attribute14 IS NULL) AND (:header_blockname.attribute14 IS NULL) AND (rec.attribute15 = :header_blockname.attribute15) OR (rec.attribute15 IS NULL) AND (:header_blockname.attribute15 IS NULL)
45、 THEN RETURN; ELSE fnd_message.set_name('FND', 'FORM_RECORD_CHANGED'); fnd_message.error; RAISE form_trigger_failure; END IF; EXCEPTION WHEN app_exception.record_lock_exception THEN app_exception.record_lock_error(i); END; END LOOP; END lock_row; /*= * PROCEDURE: update_row() *=*/ PR
46、OCEDURE update_row IS BEGIN fnd_standard.set_who; UPDATE header_table_all SET creation_date = :header_blockname.creation_date, created_by = :header_blockname.created_by, last_updated_by = :header_blockname.last_updated_by, last_update_date = :header_blockname.last_update_date, last_update_login = :h
47、eader_blockname.last_update_login, header_table_primary_key = :header_blockname. header_table_primary_key, header_table_col1 = :header_blockname.header_table_col1, header_table_col2 = :header_blockname.header_table_col2, header_table_col3 = :header_blockname.header_table_col3, attribute_category = :
48、header_blockname.attribute_category, attribute1 = :header_blockname.attribute1, attribute2 = :header_blockname.attribute2, attribute3 = :header_blockname.attribute3, attribute4 = :header_blockname.attribute4, attribute5 = :header_blockname.attribute5, attribute6 = :header_blockname.attribute6, attribute7 = :header_blockname.attribute7, attribute8 = :header_blockname.attribute8, attribute9 = :header_blockname.attribute9, attribute10 = :header_b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)木吊頂協(xié)議書
- 微平臺開發(fā)協(xié)議書
- 售樓款分配協(xié)議書
- 防溺水監(jiān)護協(xié)議書
- 抵償共益?zhèn)鶇f(xié)議書
- 收購茶餐廳協(xié)議書
- 鋼結構掛靠協(xié)議書
- 2025年中國MLED點亮測試機行業(yè)市場前景預測及投資價值評估分析報告
- 逆水寒退款合同范本
- 足浴店轉讓合同范本
- 2025年法律基礎知識考試試題及答案
- 火力發(fā)電廠安全培訓課件
- 第八章-實數(shù)(單元復習課件)七年級數(shù)學下冊同步高效課堂(人教版2024)
- 浙江百順服裝有限公司年產100萬套服裝及135萬套床上用品生產線項目環(huán)境影響報告
- AI 技術在高中歷史教學中的應用實例2
- 交通大數(shù)據(jù)的應用試題及答案
- 2024年中石油招聘考試真題
- 企業(yè)環(huán)保與健康安全管理體系的構建與實施
- 《抽水蓄能電站樞紐布置格局比選專題報告編制規(guī)程 》征求意見稿
- 廣東省深圳市2025年高三年級第二次調研考試數(shù)學試題(含答案)
- 山東省山東名??荚嚶?lián)盟2025年高三4月高考模擬考試物理試卷+答案
評論
0/150
提交評論