Form Builder中Folder文件夹功能的使用

  1. Folder文件夹功能
    可以实现位置在前三项的项目排序,而非特定项目排序。
    可以实现拖动列,隐藏列,显示列,拉宽列,拉窄列
  2. 加载实现Folder功能的pll
    从FTP上的au/11.5.0/resource/ 目录下载APPFLDR.pll到自己电脑上的某个位置,然后加载该pll,操作方法:选中表单的Attached Libraries节点,然后点击左侧的加号工具,也就是Create按钮,会弹出对话框,选择刚才下载的APPFLDR.pll,然后点击Attach按钮,在弹出的警告对话框中选择Yes,添加成功后就会出现APPFLDR。
  3. 继承的Window、画布Canvas与块Block的建立
  • 将APPSTAND.fmb中的三个以FOLDER开头窗口【FOLDER_SORT_DATA】、【FOLDER_TOOLS】、【FOLDER_AUTOSIZE】拖动到自己Forms的Windows节点,在弹出的对话框中选择Subclass。
  • 将APPSTAND.fmb中的三个以FOLDER开头画布【FOLDER_SORT_DATA】、【FOLDER_TOOLS】、【FOLDER_AUTOSIZE】拖动到自己Forms的Canvas节点,在弹出的对话框中选择Subclass。
  • 将APPSTAND.fmb中的两个以FOLDER开头块【FOLDER_CONTROL】、【FOLDER_TOOLS】拖动到自己Forms的Block节点,在弹出的对话框中选择Subclass。
Object Groups 移植
将名称为STANDARD_FOLDER的Object Groups 通过Subclass的方式移植到自己的表单中。 创建两个画布【一个继承canvas,一个继承CANVAS_STACKED】后者用来放使用folder控制的项目,属性Show Horizontal Scroll Bar设置为Yes,属性Window设置为主要窗口canvas画布,设置Viewport ,还有一个值得注意的地方就是其在Canvas节点的顺序要放到先前建立的内容画布MAIN的下面。 为STACKED文件夹块上所有要显示给用户看的项设置相应的属性。
  • 所有的项都应该设置Subclass Information属性(一般设置为TEXT_ITEM或者TEXT_ITEM_DISPLAY_ONLY)
  • 为该文件夹块增加一个项,名称为SWITCHER,Item Type属性值为Text Item,Subclass Information属性值设置为SWITCHER
  • 属性CANVAS要设置为内容画布MAIN,还有就是该项目要是该块的第一个项目,也就是放到项目CURRENT_RECORD_INDICATOR的上面。
  • 还要设置该文件夹块的Show Scroll Bar属性值为Yes,Scroll Bar Orientation属性值为Vertical,Scroll Bar Canvas为内容画布MAIN。
为文件夹块建立列标题块,块一般命名为文件夹块名称后加上_PROMPT,为文件夹块所有要显示的项目增加一个对应的项目,项目名称同文件夹块对应项目的名称,叠放顺序将会是列显示的顺序,其Width属性将会是列显示的宽度,属性Initial Value就是列标题,Item Type属性设置为Display Item,Subclass Information属性设置为FOLDER_PROMPT_MULTIROW,还要为该块增加几个特殊的项目,分别是FOLDER_OPEN (该项目的Item Type为Push Button,Subclass Information属性设置为FOLDER_OPEN,CANVAS属性设置为内容画布MAIN),FOLDER_TITLE (该项目的Item Type为Text Item,Subclass Information属性设置为DYNAMIC_TITLE FOLDER_DUMMY  (该项目的Item Type为Text Item,Subclass Information属性设置为FOLDER_DUMMY,CANVAS属性设置为TOOLBAR),ORDER_BY1,ORDER_BY2,ORDER_BY3 (这3个ORDER_BY项目的Item Type为Push Button,Subclass Information属性设置为FOLDER_ORDERBY 编写触发器代码。
  • 文件夹块中的项目SWITCHER 增加WHEN-NEW-ITEM-INSTANCE触发器,Execution Hierarchy属性为Override,代码为app_folder_move_cursor('1');
  • 文件夹块中的项目CURRENT_RECORD_INDICATOR 增加WHEN-NEW-ITEM-INSTANCE触发器,Execution Hierarchy属性为Override,代码为app_folder_move_cursor('1');
  •  文件夹块增加触发器WHEN-NEW-BLOCK-INSTANCE,Execution Hierarchy属性为Before,代码为app_folder.event('WHEN-NEW-BLOCK-INSTANCE');
  • 文件夹块增加触发器KEY-NEXT-ITEM,Fire in Enter-Query Mode属性为Yes,代码为app_folder.event('KEY-NEXT-ITEM');
  •  文件夹块增加触发器KEY-PREV-ITEM,Fire in Enter-Query Mode属性为Yes,代码为app_folder.event('KEY-PREV-ITEM');
  •  文件夹块增加触发器PRE-BLOCK,Execution Hierarchy属性为Before,代码为app_folder.event('PRE-BLOCK');
  •  文件夹块增加触发器POST-BLOCK,Execution Hierarchy属性为Before,代码为app_folder.event('POST-BLOCK');
  •  文件夹块增加触发器PRE-QUERY,Execution Hierarchy属性为Before,代码为app_folder.event('PRE-QUERY');
  •  文件夹块增加触发器KEY-EXEQRY,Execution Hierarchy属性为Before,Fire in Enter-Query Mode属性为Yes,代码为app_folder.event('KEY-EXEQRY');
  • 文件夹块增加触发器POST-QUERY,Execution Hierarchy属性为Before,代码为app_folder.event('POST-QUERY');
  •  创建或修改表单级触发器WHEN-WINDOW-RESIZED增加代码
    IF :system.event_window IN ('MAIN') THEN
    IF (get_window_property(:system.event_window,
                                width) < 5.7) THEN
          set_window_property(:system.event_window,
                              width,
                              5.7);
        ELSE
          app_folder.event('WHEN-WINDOW-RESIZED');
        END IF;
      END IF;
  • 创建或修改表单级触发器KEY-CLRFRM增加代码app_folder.event('KEY-CLRFRM');
  • 创建或修改表单级触发器WHEN-NEW-FORM-INSTANCE增加代码app_folder.define_folder_block('HELPSTZD',
                                   'NOTICE_MAIN',
                                   'NOTICE_MAIN_PROMPT',
                                   'NOTICE_MAIN_STACKED',
                                   'MAIN');
    app_folder.event('INSTANTIATE');

    过程app_folder.define_folder_block的说明:
    app_folder.define_folder_block('',
    '',
    '',
    '',
    '',
    ['']);
    参数解释
    其中OBJECT NAME 为表单的名称。
    FOLDER BLOCK NAME 为文件夹块的名称
    PROMPT BLOCK NAME 为文件夹块对应的列标题块的名称
    FOLDER STACKED CANVAS NAME 为堆叠画布的名称
    FOLDER WINDOW NAME 为表单主窗口的名称
    DISABLED FUNCTIONS 用来禁用某些功能。。。
  • 修改表单级触发器FOLDER_ACTION,代码为app_folder.event(:global.folder_action);
  • 修改表单级触发器FOLDER_RETURN_ACTION的代码为null;

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

转载于:http://blog.itpub.net/26101098/viewspace-704194/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值