ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Form Builder中Folder文件夹功能的使用

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

原创 Linux操作系统 作者:静夜细藤 时间:2011-08-05 11:47:44 0 删除 编辑
  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。
  4. Object Groups 移植
    将名称为STANDARD_FOLDER的Object Groups 通过Subclass的方式移植到自己的表单中。
  5. 创建两个画布【一个继承canvas,一个继承CANVAS_STACKED】后者用来放使用folder控制的项目,属性Show Horizontal Scroll Bar设置为Yes,属性Window设置为主要窗口canvas画布,设置Viewport ,还有一个值得注意的地方就是其在Canvas节点的顺序要放到先前建立的内容画布MAIN的下面。
  6. 为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。
  7. 为文件夹块建立列标题块,块一般命名为文件夹块名称后加上_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
  8. 编写触发器代码。
    • 文件夹块中的项目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/,如需转载,请注明出处,否则将追究法律责任。

      上一篇: 会计期间状态
      请登录后发表评论 登录
      全部评论

      注册时间:2011-07-27

      • 博文量
        43
      • 访问量
        81370