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 

  • i. FOLDER_AUTOSIZE , FOLDER_SORT_DATA ,FOLDER_TOOLS 

  • 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.

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


Thanks and Regards