天天看点

Form_Form标准控件Folder开发解析(案列)

2014-01-09 Created By BaoXinjian

1. 打开APPSTAND.fmb, 并加载程序库APPFLDR.pll. 

2. 基于APPSTAND.fmb生成Folder开发所需的对象子类,如下: 

a) Window 

i. FOLDER_AUTOSIZE , FOLDER_SORT_DATA ,FOLDER_TOOLS 

b) Canvas 

c) Datablock 

i. FOLDER_TOOLS 

ii. FOLDER_CONTROL 

d) Objectset 

i. STANDARD FOLDER 

3. 建立基于表/视图的数据块,并设置记录指示器及滚动条.并设置对应画布及窗口. 

4. 建立堆叠画布,把数据字段全部放入此画布.并调整在普通画布上的位置. 

5. 删除所有数据字段的PROMPT. 

6. 创建非数据库数据块PROMPT,并在其中建立如下对象. 

a) 与数据字段名称一致的显示项字段,属性类为”FOLDER_PROMPT_MULTIROW” 

b) ORDER_BY1,ORDER_BY2,ORDER_BY3的按钮字段,属性类为”FOLDER_ORDERBY” 

c) FOLDER_OPEN的按钮字段,属性类为”FOLDER_OPEN”. 

d) FOLDER_TITLE的文本项字段,属性类为”DYNAMIC_TITLE”. 

e) FOLDER_DUMMY的文本项字段,属性类为”FOLDER_DUMMY”. 

7. 触发器编写 

a) FORM. LEVEL 

i.  FOLDER_ACTION 

app_folder.event(:global.folder_action); 

ii. WHEN-NEW-FORM-INSTANCE 

app_folder.define_folder_block('testfolder', --form名称                                          

                                             'xxab_folder_form', --data block名称

                                             'prompt', --prompt block 名称

                                             'main_stk', --stack canvas名称

                                             'main', --window 名称

                                             ''); --NULL

app_folder.event('instantiate');         

b) BLOCK LEVEL 

 i. 在数据库数据块上创建如下Triggers 

Pre-Query 

Post-Query 

Key-Prev-Item 

Key-Next-Item 

Key-ExeQry 

Key-EntQry 

When-New-Record-Instance 

Post-Block 

Pre-Block 

When-New-Block-Instance 

Key-Prvrec 

Key-Nxtrec 

Key-Clrblk 

Key-Clrrec 

其中代码均为: app_folder.event('Trigger name') 

8. 在数据项数据块中创建FOLDER_SWITCHER的文本项,属性类为SWITCHER. 

9. 新建两个Stack canvas, 用来分别放置记录指示器及滚动条. 

10. 新建一个Stack canvas, 用来放置FOLDER OPEN及FOLDER TITLE.

Thanks and Regards

<b>ERP技术讨论群: 288307890</b>

<b>技术交流,技术讨论,欢迎加入</b>

<b>Technology Blog Created By Oracle ERP - 鲍新建</b>