Form Folder的实现
一新建Form(復制Template.fmb)
1、添加Form Objects(包括WINDOW、CANVAS、BLOCK)(這裡都取名MY_FOLDER)
2、修改Trigger和Program Units
Form Level Trigger: PRE-FORM
Program Units:APP_CUSTOM
3、修改其他属性设置
Form的Console Window
Form的First Navigation Data Block
Window的Primary Canvas
二、添加Folder相关的Objects
把APPSTAND.FMB 的Object Groups STANDARD_FOLDER
及其相关的对象移至我们自己客制的Form为我们所用。
三、增加Attached Libraries
做完上面的步骤后,可以看看你的Attached libraries里面有没有
APPFLDR
如果没有,我们需要手工添加进去
四、增加Stacked Canvas FOLDER_STACK
1、增加Stacked Canvas
双击打开Canvas,在左侧工具条里面选择Stacked Canvas,然后在Canvas MY_FOLDER里面拖动。
2、设置Stacked Canvas属性
Name:FOLDER_STACK
SUBCLASS Information :CANVAS_STACKED
3 、Block MY_FOLDER增加Item
这里我们和View 保持一致
4、设置Item的属性
Subclass Information Text Item(other)
Canvas 这个属性不能设错,必须是你的Stacked Canvas
Prompt 空
5、创建Block MY_FOLDER_PROMPT
Subclass Information Block
Number of Records Displayed 1
6、增加與MY_FOLDER對應的Item
Subclass Information FOLDER_PROMPT_MULTIROW
Canvas 这个属性不能设错,必须是你的Stacked Canvas
Initial Value 就是在Form上面你将会看到的prompt值
7、增加其他相关Item(必需), 都是和Folder的功能有关的。
A、ORDER_BY1、ORDER_BY2、ORDER_BY3
Subclass Information: FOLDER_ORDERBY
Canvas : MY_FOLDER
B、FOLDER_OPEN
Subclass Information: FOLDER_OPEN
Canvas : MY_FOLDER
Trigger WHEN-BUTTON_PRESSED:
copy('OPEN', 'global.folder_action');
execute_trigger('folder_action');
C、FOLDER_TITLE
Subclass Information: DYNAMIC TITLE
Canvas : MY_FOLDER
D、FOLDER_DUMMY
Subclass Information: FOLDER_DUMMY
Canvas : TOOLBAR
五、增加Trigger
Level | Object | Trigger | Event |
Form | XXPOM400N | FOLDER_ACTION | app_folder.event(:global.folder_action); |
WHEN-NEW-FORM-INSTANCE | app_folder.define_folder_block ( 'MY_FOLDER', --'ObjectName' 'MY_FOLDER', --'folder_block', 'MY_FOLDER_PROMPT', --'prompt_block', 'FOLDER_STACK', --'stacked_canvas', 'MY_FOLDER', --'window', NULL --'disabledfunctions'; ); | ||
Block | MY_FOLDER | PRE-BLOCK | app_folder.event('PRE-BLOCK'); |
POST-BLOCK | app_folder.event('POST-BLOCK'); | ||
WHEN-NEW-BLOCK-INSTANCE | app_folder.event('WHEN-NEW-BLOCK-INSTANCE'); | ||
PRE-QUERY | app_folder.event('PRE-QUERY'); | ||
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'); | ||
备注 | 最简单的方式是直接把标准 Form ‘APPSTAND.fmb’ 中的 Block ‘SAMPLE_FOLDER’ 中的各个 Triger 复制过来 |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/733767/viewspace-998518/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/733767/viewspace-998518/