【EBS FORM】进阶1. 文件夹(FOLDER)

进阶1. 文件夹(FOLDER)

开发步骤
  1. 打开APPSTAND.fmb,把对象组“STANDARD_FOLDER”拖到我们自己的Form中,并选择子类
  2. 引用Folder的PLL库:APPFLDR.pll
  3. 按照普通步骤创建数据块:XXX_FOLDER
  4. 增加SWITCHER项,子类SWITCHER
  5. 编写触发器
    WHEN-NEW-BLOCK-INSTANCE app_folder.event(‘WHEN-NEW-BLOCK-INSTANCE’);
    WHEN-NEW-RECORD-INSTANCE app_folder.event(‘WHEN-NEW-RECORD-INSTANCE’);
    KEY-PREV-ITEM app_folder.event(‘KEY-PREV-ITEM’);
    KEY-NEXT-ITEM app_folder.event(‘KEY-NEXT-ITEM’);
    KEY-EXEQRY app_folder.event(‘KEY-EXEQRY’);
    PRE-QUERY app_folder.event(‘PRE-QUERY’);
    PRE-BLOCK app_folder.event(‘PRE-BLOCK’);
    POST-BLOCK app_folder.event(‘POST-BLOCK’);
    POST-QUERY app_folder.event(‘OST-QUERY’);
    KEY-ENTQRY app_folder.event(‘EY-ENTQRY’);
    KEY-PRVREC app_folder.event(‘KEY-PRVREC’);
    KEY-NXTREC app_folder.event(‘KEY-NXTREC’);
    KEY-CLRREC app_folder.event(‘KEY-CLRREC’);
    KEY-CLRBLK app_folder.event(‘KEY-CLRBLK’);
  6. 创建提示块:XXX_PROMPT
    Name Subclass
    FOLDER_TITLE DYNAMIC_TITLE
    FOLDER_OPEN FOLDER_OPEN
    FOLDER_DUMMY FOLDER_DUMMY
    ORDER_BY1 FOLDER_ORDERBY
    ORDER_BY2 FOLDER_ORDERBY
    ORDER_BY3 FOLDER_ORDERBY

    上面列出的是通用的,数据块有多少字段要显示,就要创建多少个同名的提示字段(带文件夹的表单,数据的头其实也是字段,只补过内容是固定的)。

  7. 设置布局(只有堆叠画布上的项才能使用文件夹)
  8. 设置FORM级触发器
    1. 在FOLDER_ACTION中追加:
    2. app_folder.event(:global.folder_action);
    3. 在KEY-CLRFRM中追加:
    4. app_folder.event(‘KEY-CLRFRM‘);
  9. 在WHEN-WINDOW-RESIZED中追加,注意BLOCKNAME,要改为你的Folder所在的Window名字:
    1. DECLARE
    2. l_x_position NUMBER;
    3. l_width NUMBER;
    4. BEGIN
    5. IF :system.event_window IN (‘DEMO_FOLDER‘) THEN
    6. app_folder.event(‘WHEN-WINDOW-RESIZED‘);
    7. l_width := get_view_property(‘DEMO_FOLDER_CONTENT‘, width);
    8. set_canvas_property(‘DEMO_FOLDER_CONTENT‘, width, l_width);
    9. l_width := get_view_property(‘DEMO_FOLDER_STACK‘, width);
    10. l_x_position := get_view_property(‘DEMO_FOLDER_STACK‘, viewport_x_pos);
    11. l_x_position := l_x_position + l_width + 0.015;
    12. set_block_property(‘DEMO_FOLDER‘, blockscrollbar_x_pos, l_x_position);
    13. END IF;
    14. END;

    注意必须用代码对内容画布进行调整,因为改变窗口大小时,Form不会自动调整。

  10. 在WHEN-NEW-FORM-INSTANCE中追加:
    1. app_folder.define_folder_block(object_name => ‘DEMO_FOLDER‘,
    2. folder_block_name => ‘DEMO_FOLDER‘,
    3. prompt_block_name => ‘DEMO_PROMPT‘,
    4. folder_canvas_name => ‘DEMO_FOLDER_STACK‘,
    5. folder_window_name => ‘DEMO_FOLDER‘,
    6. disabled_functions => ‘‘,
    7. tab_canvas_name => ‘‘,
    8. fixed_canvas_name => ‘‘);
    9. app_folder.event(‘INSTANTIATE‘);
    10. show_view(‘DEMO_FOLDER_CONTENT‘);

    第一句是Folder申明,根据参数名给出具体值即可,注意tab_canvas_name,我们不用Tab页,所以为空。

    最后一句是因为本例中内容画布上没有可导航的块,所以需要用带码使其显示。

来自为知笔记(Wiz)

时间: 2024-08-05 18:22:00

【EBS FORM】进阶1. 文件夹(FOLDER)的相关文章

Xcode folder(蓝色文件夹) 和 group(黄色文件夹)的区别

folder:蓝色文件夹 group:黄色文件夹 folder 只能作为资源,整个引用进项目(文件夹里面的东西都会直接拷贝到 bundle 包),不能编译代码,也就是说,以folder形式引用进来的文件,不能被放在complie sources列表里面. group 参与编译.一般只在你的工程中是文件夹的形式,但是在本地的目录中还是以散乱的形式放在一起的,除非你是从外部以group的形式引用进来的.

shell bash判断文件或文件夹是否存在

shell bash判断文件或文件夹是否存在 1, #如果文件夹不存在,创建文件夹 folder="log" if [ ! -d "${folder}" ]; then mkdir ${folder} fi 2.判断文件是否存在 file="/var/www/log.txt" # -f 参数判断 $file 是否存在 if [ ! -f "$file" ]; then touch "$file" fi. 3

iOS开发——Swift篇&文件,文件夹操作

文件,文件夹操作 ios开发经常会遇到读文件,写文件等,对文件和文件夹的操作,这时就可以使用NSFileManager,NSFileHandle等类来实现. 下面总结了各种常用的操作: 1,遍历一个目录下的所有文件 1 //假设用户文档下有如下文件和文件夹[test1.txt,fold1/test2.txt] 2 let manager = NSFileManager.defaultManager() 3 let urlForDocument = manager.URLsForDirectory

Xcode中蓝色与黄色文件夹的区别

folder:蓝色文件夹 group:黄色文件夹 folder 只能作为资源,整个引用进项目(文件夹里面的东西都会直接拷贝到 bundle 包),不能编译代码,也就是说,以folder形式引用进来的文件,不能被放在complie sources列表里面. group 参与编译.一般只在你的工程中是文件夹的形式,但是在本地的目录中还是以散乱的形式放在一起的,除非你是从外部以group的形式引用进来的.

Swift - 文件,文件夹操作大全

ios开发经常会遇到读文件,写文件等,对文件和文件夹的操作,这时就可以使用NSFileManager,NSFileHandle等类来实现. 下面总结了各种常用的操作: 1,遍历一个目录下的所有文件 /假设用户文档下有如下文件和文件夹[test1.txt,fold1/test2.txt] let manager = NSFileManager.defaultManager() let urlForDocument = manager.URLsForDirectory( NSSearchPathDi

Windows 特殊文件夹

转载:http://www.xue163.com/124/6/1243914.html 1. 目录(Directory)与文件夹(Folder)的区别 目录是DOS时代的产物,DOS文件系统是以目录树的形式将文件组织起来的,文件全部包含在目录里.任何一个文件的全名,由"目录名+文件名"两部分组成,目录名则是以"根目录+子目录+多级子目录..."组成,其中根目录是以任一26个英文字母加上冒号":"表示的盘符,目录之间用反斜杠"\"

C# 设置文件夹的访问权限

/// <summary> /// 设置文件夹的ACL /// </summary> /// <param name="folderPath">文件夹路径</param> /// <param name="userName">用户</param> /// <param name="rights">权限</param> /// <param nam

2、包和文件夹的转换

场景:java资源文件下都是包package,resources资源文件下都是文件夹folder,可是有时候resources文件夹下居然是包,看起来特别别扭,需要将包改成文件夹,如下: 1.选中项目->右键Build Path->找到Source: 其中,src/main/java下的Excluded的值应该是None,表示包:src/main/resources下的Excluded应该是**,表示文件夹,如下图 2.如果src/main/resources下的Excluded也是None,

Java文件/文件夹 创建-删除-重命名

文件.文件夹: 创建-删除-重命名 import java.io.File; import java.io.IOException; public class Test2 { //创建文件 [如果目录不存在则创建失败!] public static void createFile() throws IOException { String folderPath="F:\\temp"; String fileName="Test.java"; //创建文件夹路径对象