
U8UAP開發(fā)手冊
98頁UAP開發(fā)樣例指導(dǎo)用友研發(fā)中心 U8平臺技術(shù)部<本文檔適用于U871版本>目 錄一、 摘要 3二、 樣例開發(fā)前提 3三、 建立UAP項目 3四、 建立表單模型 5(一) 新建實體 6(二) 新建實體屬性 8五、 建立表單布局 12六、 行為對象開發(fā) 13(一) 表單開發(fā) 15(二) 列表開發(fā) 28(三) 生單二次開發(fā) 34(四) 聯(lián)查報表 35(五) 聯(lián)查UAP列表 36(六) UAP列表聯(lián)查U8單據(jù) 37(七) 用戶自定義控件開發(fā) 40(八) U8單據(jù)引用UAP檔案 41七、 行為對象注冊 54功能介紹: 54使用說明: 54應(yīng)用技巧: 56八、 建立數(shù)據(jù)引擎 57功能介紹: 57使用說明: 58應(yīng)用技巧: 80九、 設(shè)置過濾條件 80功能介紹: 80使用說明: 80應(yīng)用技巧: 85十、 設(shè)置欄目 86功能介紹 86使用說明 86應(yīng)用技巧 87十一、 權(quán)限 87功能權(quán)限 87記錄級權(quán)限 88字段級權(quán)限 89十二、 部署 90附錄:功能介紹 911、行為對象升級說明 912、LoginInfo 對象介紹 93一、 摘要本文以U8-ERP中的銷售訂單為應(yīng)用原型,介紹了如何通過UAP進行軟件開發(fā),文中給出了開發(fā)方法和豐富樣例。
內(nèi)容包括:l UAP表單開發(fā)原理l UAP項目的建立和導(dǎo)入、導(dǎo)出l UAP表單的模型設(shè)計和布局設(shè)計l UAP表單的行為對象開發(fā)l UAP表單列表設(shè)計與開發(fā)l UAP表單列表的行為對象開發(fā)l 如何對UAP表單的缺省按鈕進行擴展性開發(fā)l 如何對UAP表單的缺省按鈕進行取代性開發(fā)l 如何為UAP表單增加新的按鈕及行為l 如何用程序代碼調(diào)用UAP報表l 如何用程序代碼調(diào)用UAP表單列表l 如何在UAP表單中增加權(quán)限控制:功能權(quán)限、字段權(quán)限、記錄權(quán)限l 如何為UAP表單開發(fā)自定義控件l 如何開發(fā)樹形檔案l 如何維護UAP數(shù)據(jù)引擎l 如何維護欄目l 如何維護過濾條件l 如何調(diào)用U8APIl U8單據(jù)自定義項如何引用UAP檔案本文檔中使用的示例文件為“銷售訂單二次開發(fā)”,可以通過UAP將該文件導(dǎo)入到帳套中項目名稱為“ SaleVoucher ”,導(dǎo)入后在項目中包括幾個自定義單據(jù):“銷售訂單”為二次開發(fā)的Demo示例;“零售日報”為自定義空間二次開發(fā)的Demo示例;“列表檔案示例”、“樹形編輯檔案示例”、“樹形導(dǎo)航檔案示例”分別為各個對應(yīng)的檔案類型的示例二、 樣例開發(fā)前提首先,需要安裝U8產(chǎn)品,并建立一個帳套。
其次,您需要向用友公司購買UAP表單設(shè)計許可;不過您可以使用UAP的演示版本,但是演示版本不能新建UAP項目,也不能注冊行為對象三、 建立UAP項目使用UAP登錄您的帳套后,在系統(tǒng)界面上的新建項目選項卡,選中“供應(yīng)鏈”后,在右邊的列表中選擇“銷售管理”,在界面下方的幾個文本框中輸入項目名稱,編號,描述等;順序選擇框使用“默認(rèn)”即可點擊“確定”如果輸入信息與先前創(chuàng)建的項目信息不沖突,項目就可被成功創(chuàng)建您也可以導(dǎo)入我們?yōu)槟峁┑腢AP樣例項目,導(dǎo)入方法如下1、登錄UAP; 2、打開菜單“文件-導(dǎo)入和導(dǎo)出”; 3、選中“導(dǎo)入項目數(shù)據(jù)到目前的服務(wù)器”,點“確定”按鈕; 4、點“導(dǎo)入”按鈕,選取U8安裝目錄下的“uap\sdk”目錄中的文件“Samplefile”; 5、導(dǎo)入成功后; 6、在UAP已存在的項目中產(chǎn)生了一個名稱為“SaleVoucher”的項目;四、 建立表單模型選中“自定義表單”節(jié)點,單擊右鍵,使用“新建自定義表單”功能創(chuàng)建一個新的表單然后在彈出的選擇界面中選擇“表單類型”下的“單據(jù)”,在名稱文本框中輸入一個表單名字,不要與以前創(chuàng)建的表單名字重復(fù)在成功創(chuàng)建后,系統(tǒng)界面會如下圖(圖表1)所示:圖表 1在上圖所示的實體節(jié)點,默認(rèn)有兩個子節(jié)點,分別為“主表和第一子表”,根據(jù)當(dāng)前表單的需要設(shè)計實體,包括增加實體和實體屬性等。
一) 新建實體需要為實體填寫“實體名稱”,和選擇“實體類型”除此以外,還可以通過實體的屬性編輯窗口為實體設(shè)置各項信息實體的相關(guān)屬性:l 名稱:實體顯示的名稱,僅用于設(shè)計時l 發(fā)布狀態(tài):實體是否已發(fā)布,只讀l 功能:為實體定義自定義功能,在運行時顯示為表格對應(yīng)的工具欄按鈕l 狀態(tài)設(shè)置:設(shè)置實體屬性、功能在表單運行時的狀態(tài),決定實體屬性、功能在不同的環(huán)境下是否可用l 物理表模式:設(shè)置實體物理表的創(chuàng)建模式,默認(rèn)為由UAP在發(fā)布時自動創(chuàng)建在特殊的應(yīng)用場景中可以使用“使用已存在的對象”或“無”后兩種情況下UAP不負(fù)責(zé)實體物理表的維護l 物理表:設(shè)置該實體在數(shù)據(jù)庫存儲時使用的物理表,一般情況下一個實體對應(yīng)一個物理表l 數(shù)據(jù)引擎模式:設(shè)置實體運行時數(shù)據(jù)的訪問方式默認(rèn)為UAP系統(tǒng)在發(fā)布時自動創(chuàng)建,特殊的應(yīng)用場景中可以使用“使用已存在的對象”或“無”,這兩種情況下系統(tǒng)不負(fù)責(zé)實體數(shù)據(jù)的讀取,只能通過用戶定義的接口獲取數(shù)據(jù)集l 數(shù)據(jù)引擎:當(dāng)數(shù)據(jù)引擎模式為“使用已存在的對象”時,設(shè)置要使用的數(shù)據(jù)引擎對象l 主鍵:設(shè)置實體物理表的主鍵字段名l 主鍵類型:設(shè)置實體物理表主鍵字段的類型,可選“整數(shù)”或“GUID”或“字符串”。
l 行模式:多行或單行一般主表設(shè)置為單行二) 新建實體屬性 實體必須包含實體屬性時才有效可以在UAP界面“表單”窗口中,右鍵點擊實體對應(yīng)的節(jié)點,選擇“新建實體屬性”菜單向?qū)嶓w添加實體屬性:實體屬性通用屬性:l 類型:該實體屬性的類型l 描述:對該實體屬性的單體描述l 屬性名稱:實體屬性的名稱l 默認(rèn)值:實體屬性的默認(rèn)值l 使用默認(rèn)值:用戶未提供數(shù)據(jù)時,是否使用實體屬性的默認(rèn)值l 發(fā)布:該實體屬性是否已經(jīng)發(fā)布l 常用條件:該實體屬性是否可以在過濾中作為常用條件使用l 區(qū)間條件:該實體屬性是否可以在過濾中作為區(qū)間條件使用l 值更新事件:設(shè)置該實體屬性值更新時需要處理的腳本列表基礎(chǔ)資料類型字段共有三種類型的值更新事件:“攜帶當(dāng)前字段相關(guān)參照屬性到指定列”、“計算定義公式的值到指定列”、“表達(dá)式為真/假時改變指定欄目編輯狀態(tài)”;其余類型字段比基礎(chǔ)資料類型字段缺少第一種類型的值更新事件1. 攜帶當(dāng)前字段相關(guān)參照屬性到指定列2. 計算定義公式的值到指定列3. 表達(dá)式為真/假時改變指定欄目編輯狀態(tài)表單式為真\假時修改指定欄目的編輯狀態(tài)表單式為真\假時修改指定欄目的顯示狀態(tài)表單式為真\假時修改指定功能狀態(tài)表單功能實體功能l 唯一約束:是否檢查該實體屬性的值在整個表單范圍內(nèi)唯一。
l 文本對齊:實體屬性文本的顯示位置l 顯示文本:實體屬性的不同語言環(huán)境中顯示的文本l 允許空值:實體屬性的值是否可以為空l 物理表:實體屬性對應(yīng)物理字段的表名,即該實體屬性所屬實體的物理表l 字段:實體屬性對應(yīng)的物理字段名除了支持以上通用屬性外,不同類型的實體屬性還具有不同的特性:1. 表單編號表單編號只能出現(xiàn)的主表實體中,并且只能有一個表單編號類型的實體屬性2. 表單名稱表單名稱類型的實體屬性只能在檔案類型的表單中使用,同表單編號一樣,表單名稱類型的實體屬性只能出現(xiàn)主表實體中,并且只能出現(xiàn)一次3. 整數(shù)和正整數(shù)l 可否為0:數(shù)值型的值是否可為0l 錄入長度:限制用戶可錄入數(shù)值的最多位數(shù)l 數(shù)據(jù)格式:數(shù)值類型的顯示格式l 最大值和最小值:數(shù)據(jù)的有效范圍正整數(shù)的最小值必須等于或大于04. 小數(shù)和正小數(shù)l 可否為0:數(shù)值型的值是否可為0l 錄入長度:限制用戶可錄入數(shù)值的最多位數(shù)l 數(shù)據(jù)格式:數(shù)值類型的顯示格式l 最大值和最小值:數(shù)據(jù)的有效范圍正小數(shù)的最小值必須等于或大于0l 小數(shù)位數(shù):數(shù)據(jù)保留的小數(shù)位數(shù)5. 文本l 多行輸入:運行時是否支持錄入多行文本l 最大長度:最多可錄入的文本長度6. 日期和日期時間日期類型運行短日期格式,即只包含年月日。
日期時間類型包含年月日和時分秒7. 枚舉枚舉類型的實體屬性需要設(shè)置枚舉值列表,枚舉值的顯示值為在界面顯示的文本,保存值為實際保存到數(shù)據(jù)庫的數(shù)據(jù),如枚舉類型的實體屬性“銷售類型”的枚舉值可設(shè)置為如下圖所示:U872中枚舉字段支持選擇“枚舉模式”:使用已存在枚舉、新創(chuàng)建枚舉選擇“使用已存在枚舉”后,需要為“枚舉類型”選擇一個U8系統(tǒng)中現(xiàn)有的枚舉中的一個8. 基礎(chǔ)資料基礎(chǔ)資料類型的值來自指定參照檔案的對照值l 參照對象:設(shè)置基礎(chǔ)資料類型實體屬性的參照檔案對象,可以從U8檔案列表中選擇,包含UAP中定義為檔案類型的表單l 參照顯示值:該屬性是設(shè)置當(dāng)前就“基礎(chǔ)資料”字段在運行時的文本框里顯示參照的那個字段的值如上面的“參照對象”屬性選擇的存貨檔案,如果不設(shè)參照顯示值,則運行時默認(rèn)顯示為存貨編碼,如果將“參照顯示值”屬性設(shè)置為存貨檔案的“存貨”名稱,運行是該字段就會顯示為存貨的名稱l 選擇方式:設(shè)置在運行時的對照選擇方式l 自動校驗:是否對錄入的值進入檢驗以確定數(shù)據(jù)是否來自指定的參照對象選擇“否”時允許用戶錄入?yún)⒄諏ο笾胁淮嬖诘闹?. 基礎(chǔ)資料屬性基礎(chǔ)資料屬性類型的實體屬性必須和基礎(chǔ)資料類型的實體屬性結(jié)合使用。
l 參照屬性:設(shè)置基礎(chǔ)資料屬性類型實體屬性要綁定的基礎(chǔ)資料類型實體屬性,并指定關(guān)聯(lián)的參照字段當(dāng)基礎(chǔ)資料類型的實體屬性值變化時,基礎(chǔ)資料屬性類型的實體屬性值隨之改變10. 數(shù)量、價格和金額數(shù)量、價格和金額類型的實體屬性實質(zhì)上為小數(shù)類型,設(shè)置等同于小數(shù)類型的實體屬性11. 復(fù)選框特殊類型的整數(shù)值,運行時顯示為復(fù)選框,保存的數(shù)據(jù)為0(未選擇)或1(選擇)12. 制單人當(dāng)前單據(jù)的作者,一般設(shè)為登錄用戶13. 制單日期和修改日期制單日期保存當(dāng)前表單生成的日期,修改日期保存表單最后一次修改的日期這兩種類型的實體屬性實質(zhì)上為日期時間類型,設(shè)置等同于日期時間類型的實體屬性五、 建立表單布局在完成實體的設(shè)計后,可以設(shè)計表單布局,UAP支持一個表單多個布局視圖,用戶可根據(jù)自己的使用習(xí)慣選擇一種布局視圖布局視圖的設(shè)計與普通window界面的布局設(shè)計基本一致六、 行為對象開發(fā)行為對象開發(fā)是指增加表單或列表的功能按鈕,除了UAP系統(tǒng)自帶的功能按鈕外,還可以增加按鈕,這些增加的功能按鈕是UAP表單開發(fā)的基礎(chǔ)UAP提供了多種增加功能的途徑,首先通過設(shè)計界面的樹形菜單中的“功能”節(jié)點下的表單功能和列表功能的“功能管理”(圖表2)添加功能按鈕,這些功能按鈕最終在運行時會被加載到U8產(chǎn)品的門戶上;其次可以為每個表單實體添加功能按鈕(圖表3),為實體添加完成這些功能按鈕后,還需要在布局視圖上為該表單實體的“功能”屬性設(shè)置使用這些功能(圖表4),這些功能按鈕最終在運行時會被加載到該實體的工具欄按鈕上。
圖表 2 圖表 3 圖表 4 圖表 5增加功能按鈕時,很多工作都可以通過上圖(圖5)的設(shè)計界面完成,開發(fā)人員關(guān)心的僅僅是表單開發(fā)業(yè)務(wù)邏輯的實現(xiàn)這些按鈕的作用主要是通過在運行時對模型對象中數(shù)據(jù)的修改以及最終將修改的數(shù)據(jù)持久化來。
