FORMS開發中FOLDER(資料夾)功能的應用
一、模板製作:YSFOLDER.FMB
開啟TEMPLATE.FMB,如果開啟的是APPSTAND.FMB,以下步驟省略:
1、FORM級觸發器:
1、 在WHEN-NEW-FORM-INSTANCE後面新增以下程式碼:
--定義資料夾資料塊
app_folder.define_folder_block(
object_name => ' DETAILBLOCK _FOLDER' ,
folder_block_name => 'DETAILBLOCK',
prompt_block_name => 'DETAILBLOCK_PROMPT',
folder_canvas_name => 'DETAILBLOCK_STACKED',
folder_window_name => 'BLOCKNAME',
disabled_functions => '');
--以上引數均為VARCHAR2,長度不得超過20個字元
2、 增加FORM級觸發器:FOLDER_ACTION, PL/SQL程式碼如下:
app_folder.event(:global.folder_action);
3、 增加FORM級觸發器:FOLDER_RETURN_ACTION, PL/SQL程式碼如下:
null;
--
-- action code is in :global.folder_action
-- affected field is in :global.folder_field
--
2、Attached Libraries:
新增檔案:APPFLDR.PLL
來源:ERP安裝目錄下,AU目錄下查詢該類檔案所在的目錄
3、Object Groups
繼承一個物件組:STANDARD_FOLDER
做法:複製APPSTAND.FMB中的同名物件,貼上到模板物件組中,選擇“Refence”(繼承),路徑方式選擇“Remove path”(不要路經)。
結果:將會把物件組中的所有物件對映新增到相應的物件節點中。
二、模板例子的製作
1、 修改WHEN-NEW-FORM-INSTANCE中資料夾資料塊定義語句中的引數,確定物件名稱(一般為form物件名稱)、資料夾資料塊名稱、標題塊名稱、堆疊畫布名稱、視窗名稱。
2、 定義視窗(windows),win_main:繼承屬性WINDOW_NORMAL
3、 定義堆疊畫布(stacked canvas-views), cv_detail_stacked:繼承屬性類CANVAS_STACKED
4、 定義資料夾資料塊(folder block),blk_detail:繼承屬性類BLOCK
(1) 觸發器:
· KEY-EXEQRY:
app_folder.event('KEY-EXEQRY');
· KEY-NEXT-ITEM
app_folder.event('KEY-NEXT-ITEM');
· KEY-PREV-ITEM
app_folder.event('KEY-PREV-ITEM');
· POST-BLOCK
app_folder.event('POST-BLOCK');
· PRE-BLOCK
app_folder.event('PRE-BLOCK');
· WHEN-NEW-BLOCK-INSTANCE
App_folder.event('WHEN-NEW-BLOCK-INSTANCE');
· KEY_CLRBLK
App_folder.event(' KEY_CLRBLK ');
· KEY_ENTQRY
App_folder.event(' KEY_ENTQRY ');
· KEY_NXTREC
App_folder.event(' KEY_NXTREC ');
· KEY_PRVREC
App_folder.event(' KEY_PRVREC ');
· PRE_QUERY
App_folder.event(' PRE_QUERY ');
· WHEN-NEW-RECORD-INSTANCE
App_folder.event('WHEN-NEW-RECORD-INSTANCE');
(2) 定義資料項,可以是表項,也可以是非基表項,確定哪些項需要放在堆疊畫布上,注意只有在堆疊畫布上的項才能使用資料夾功能
(3) 注意:資料項的型別不能是:Display Item、List Item等;
可以是:Text Item、Check Box等;
如果開啟folder時出現錯誤:“Set_Item_Property沒有這樣的屬性”,說明erp標準程式中用到的屬性在個別項中不存在,出現幾次就有幾個缺乏這個屬性的Item;是否擁有這個屬性,是由Item的型別確定的,因此有些Item型別不能用於folder功能。
(4) 確定各個項在畫布中的位置
5、 定義標題資料塊(prompt block), blk_detail_prompt:繼承屬性類BLOCK_DIALOG
便捷的做法:先複製資料夾資料塊blk_detail,改名稱,再刪去新塊下的全部觸發器,然後除去不需要的項,修改剩下所有項的屬性繼承FOLDER_PROMPT_MULTRIROW,最後將各個項的default value屬性值寫入對應的中文或英文標題
(1) 觸發器:無
(2) 標題項,來自資料夾資料塊blk_detail,屬性繼承自FOLDER_PROMPT_MULTIROW,default value屬性值寫入相應的中英文標題
標題項必須和參與folder功能的資料項保持一一對應,名稱必須一致
(3) 資料夾功能項(6個):
· FOLDER_OPEN:屬性繼承FOLDER_OPEN
Canvas: CV_MAIN
· FOLDER_TITLE:屬性繼承DYNAMIC_TITLE
Canvas: CV_MAIN
· ORDER_BY1、ORDER_BY2、ORDER_BY3:
屬性:
繼承FOLDER_ORDERBY
觸發器:
WHEN-BUTTON-PRESSED:
APP_FOLDER.EVENT('TOGGLE-ORDER-BY');
Canvas: CV_DETAIL_STACKED
FOLDER_OPEN、FOLDER_TITLE可見,放置在堆疊畫布的左上位置
(4) 確定各個項在畫布上的位置
(5) 注意:在資料夾資料塊中,項的初始寬度由同名的標題項的寬度確定,而且只有存在標題項的資料夾資料項才能使用資料夾功能。設計時,應該將資料夾資料塊中項的寬度與標題塊中項的寬度保持一致。
(6) 如果資料夾資料塊在第一個視窗,可能會出現初次進入視窗標題項沒有顯示的現象,需要在form級觸發器when-new-form-instance中,在導航到控制塊之前,先將導航到標題塊,例如:
…
GO_BLOCK(‘BLK_DETAIL_PROMPT’);
GO_BLOCK(‘BLOCKCONTROL’);
(7) Q&A
三、基於模板的開發過程
1.模板名:XZ_FOLDER.fmb
2.模板說明:
2.1 APP_FOLDER.DEFINE_FOLDER_BLOCK引數說明
'XZ_FOLDER'àMODULE NAME ,表單名稱
'BLK_DETAIL'àFOLDER資料塊名稱
'BLK_DETAIL_PROMPT'àFOLDER標題塊名稱
'CAVSTACK'àFOLDER資料塊所在畫布
'WINFOLDER'à FOLDER資料塊所在畫布所屬的視窗
2.2資料塊
2.2.1 BLK_DETAILàFOLDER資料塊
2.2.2 BLK_DETAIL_PROMPTàFOLDER標題塊
其中的:FOLDER_OPEN、FOLDER_TITLE、ORDER_BY1、ORDER_BY2、ORDER_BY3,不用動。
2.3畫布
'CAVSTACK'àFOLDER資料塊所在畫布,堆疊型別
'CAVMAIN'àcontent型別, CAVSTACK堆疊在其上邊。
2.4視窗
3修改過程
3.1修改form級觸發器WHEN-NEW-FORM-INSTANCE:APP_FOLDER.DEFINE_FOLDER_BLOCK('XZ_FOLDER','BLK_DETAIL','BLK_DETAIL_PROMPT','CAVSTACK','WINFOLDER','ENABLED');
在模板xz_folder.fmb基礎上開發程式時,把‘XZ_FOLDER’替換為自己的表單名即可。
3.2修改資料塊BLK_DETAIL,在模板塊的基礎上改資料來源,增刪資料項
3.3修改資料塊BLK_DETAIL_ PROMPT在模板塊的基礎上增刪項,與BLK_DETAIL中的項一一對應。
3.4調整畫布輸出及大小格式來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/92289/viewspace-1012943/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Eclipse-source folder資料夾和folder資料夾的區別Eclipse
- Chromebook資料夾應用新功能Chrome
- Mac的秘密資料夾:Secret FolderMac
- Xamarin.Forms教程開發Xamarin.Forms應用程式需要的工具ORM
- 資料夾設計工具:Color Folder for MacMac
- Folder Tidy for Mac - 資料夾整理工具Mac
- 資料夾隱藏加密工具:Secret Folder for Mac加密Mac
- 好用的資料夾快速訪問:Default Folder X啟用最新版
- Default Folder X for mac 資料夾快速訪問工具Mac
- 資料夾圖示更改軟體Folder Icons for MacMac
- 快速開啟縮放資料夾與Safari應用
- Mac更改資料夾圖示顏色軟體:Color FolderMac
- Mac資料夾圖示顏色修改工具Color Folder MacMac
- Default Folder X for Mac:提升資料夾訪問速度的終極工具Mac
- JSON資料格式及其在WEB開發中的應用JSONWeb
- Mac資料夾圖示美化製作工具——Folder Icon MakerMac
- Folder Icons for Mac資料夾個性化圖示修改工具)Mac
- Default Folder X Mac資料夾快速訪問工具使用小技巧Mac
- 資料庫開發(21)高階應用開發資料庫
- HHDESK資料夾比較功能
- 資料庫應用開發一、vs資料庫
- WEB應用開發中的ServletWebServlet
- Windows中的特殊資料夾Windows
- Xamarin iOS開發實戰中冊 (內部資料)C#蘋果應用開發iOSC#蘋果
- win10開啟資料夾無響應卡死怎麼辦 win10開啟資料夾無響應卡死的方法Win10
- 用TC來實現只複製資料夾而不復制資料夾中的內容
- 外部資料在資料分析中的應用
- 資料庫應用程式開發入門篇—— 關聯式資料庫中的基本概念資料庫
- 併發應用中不可變資料結構資料結構
- CRS bin資料夾中的程式
- Substrate 區塊鏈應用開發之存證模組的功能開發區塊鏈
- 大資料技術於應用 視覺化圖表的開發應用大資料視覺化
- 鴻蒙原生應用開發——分散式資料物件鴻蒙分散式物件
- Windows phone應用開發[19]-RSA資料加密Windows加密
- Windows phone 應用開發[2]-資料快取Windows快取
- Android中asset資料夾和raw資料夾區別Android
- 把多個資料夾中的檔案批量放到一個資料夾
- 瀏覽資料夾中的圖片(用VB實現) (轉)