ITPub博客

首页 > 应用开发 > IT综合 > Form Folder的实现

Form Folder的实现

原创 IT综合 作者:hb0xf0wk 时间:2008-01-26 21:08:13 0 删除 编辑

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 复制过来

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/733767/viewspace-998518/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-11-17

  • 博文量
    20
  • 访问量
    303200