• FORM开发相关技术(一)


    1.一进页面就能看到表中已生成数据,而不用按ctrl+f11进行查询的语句:
    在form级的触发器when-new-form-instance中,
    写如下代码:
    go_block('XXXX');
    execute_query;
    要查询的数据块的名称
    说明:当使用基于表建立的块时,可使用块里的任何项的GO_BLOCK或者GO_ITEM找到那个块.当查询数据到一个块里去,可通过execute_query进行处理
    补充:用DELETE_RECORD从块中删除当前记录,要改变数据库的记录,必须使用COMMIT_FORM
    2, 什么办法可以控制form中File菜单中的Export吗?使其失效
    答:在FORM中,在FORM级的触发器EXPORT中,
    将其中的代码app_standard.event('EXPORT');屏蔽掉,改为null;试一试
    3当form 启动时,在pre-form触发器中instantiate你特定的菜单items
    调用 app_special.instantiate包
    procedure APP_SPECIAL.INSTANTIATE(
    option_name varchar2, --定义tigger 名字
    hint varchar2 default null,--定义菜单实体的名字,使用&来定义菜单实体的键盘快捷键
    icon varchar2 default null,--
    initially_enabledboolean default true,
    separator varchar2 default null);--定义'LINE'为separator
    例子app_special.instantiate(’SPECIAL1’,’&rint Order’,’PRINTORD’);
    4, 在tool 菜单中的check boxes
    --option_name 与trigger_name 包括关键字CHECKBOX(例如:SPECIAL3_CHECKBOX)
    app_special.instantiate(’SPECIAL3_CHECKBOX’,’Spe&cial 3 Box w Line’, ’’,TRUE,’LINE’);
    --调用app_special.set_checkbox 来初始化check box 的值
    app_special.set_checkbox(’SPECIAL3_CHECKBOX’,’TRUE’);
    --在SPECIALn_CHECKBOX函数中和相应的逻辑代码中测试check box
    app_special.get_checkbox
    if (app_special.get_checkbox(’SPECIAL3_CHECKBOX’)=’TRUE’) then
    fnd_message.debug(’Special 3 is True!’);
    else
    fnd_message.debug(’Special 3 is False!’);
    end if;
    5, 在你在pre-form 中instantiate实体,随意将指定的菜单实体设置为可用或不可用(基于数据块),
    调用APP_SPECIAL.ENABLE
    procedure APP_SPECIAL.ENABLE(option_name varchar2,
    state);
    在form-level 中的pre-block trigger里面,将你的special 菜单的item 定义为disable
    app_special.enable(’SPECIAL1’,PROPERTY_OFF);
    在form-level 中的pre-block trigger里面,将你的special 菜单的item 定义为able
    app_special.enable(’SPECIAL1’,PROPERTY_on);
    将所有的special 菜单设置为 disable
    app_special.enable(’SPECIAL’,PROPERTY_OFF);
    6, 编辑鼠标右键菜单
    调用APP_POPUP.INSTANTIATE(block或者item层的PRE-POPUPMENU Trigger)
    procedure APP_POPUP.INSTANTIATE(
    option_name varchar2,
    txt varchar2,
    initially_enabled boolean default true,
    separator varchar2 default null);
    与app_special.instantiate类似
    例如:APP_POPUP.INSTANTIATE('POPUP1','First Entry');
    7, 关于 Implementing Zoom Use the Custom Library的学习:
    1. .pll文件可以用form builder 打开,修改,创建
    2. .pll文件的编译方法:
    f60gen module=CUTOM.PLL userid=apps/apps module_type=LIBRARY
    3. 当系统不自动激活菜单上的图标时,可以在数据块的 block-level 的 when-new-block-instance trigger中
    添加如下代码:
    以zoom为例子:set_menu_item_property('VIEW.ZOOM',ENABLED,PROPERTY_TURE)
    在form-level 的相应的trigger(比如zoom trigger)中改写下列代码:
    custom.event('ZOOM')
    4. fnd_function.exrcute语法:
    procedure FND_FUNCTION.EXECUTE
    (function_name IN varchar2,
    open_flag IN varchar2 default ’Y’,
    session_flag IN varchar2 default ’SESSION’,
    other_params IN varchar2 default NULL,
    activate IN varchar2 default ’ACTIVATE’,
    browser_target IN varchar2 default NULL);
    5.FND_FUNCTION.TEST(function_name IN varchar2)
    测试指定的函数是否可以连接,该函数用于form 启动时测试函数的可用性,
    8, 弹性域(Flexfields)的总结:
    使用 FND_KEY_FLEX.DEFINE 在item handler 中设定key弹性域的定义
    procedure flexfield_item_name(event varchar2)
    is
    begin
    fnd_key_flex.define(
    block=>'block_name',
    field=>'concatenated_segements_field_name',
    id=>'ccid_field_name',
    appl_short_name=>'shortname_of_application_used_to_register_flexfield',
    code=>'flexfield_code',
    NUM=>'structure_number',
    any_other_auguments);
    例: FND_KEY_FLEX.DEFINE(
    BLOCK=>’LINES’,
    FIELD=>’ACCTG_FLEX_VALUES’,
    ID=>’GL_ACCOUNT_CC_ID’,--Your ID field is the GL_ACCOUNT_CC_ID item
    APPL_SHORT_NAME=>’SQLGL’,
    CODE=>’GL#’,
    NUM=>’101’--可以使用GL_SET_OF_BOOKS_ID 作为structure id);
    使用FND_DESCR_FLEX.DEFINE 在item handler 中设定描述性弹性域的定义
    定义
    FND_DESCR_FLEX.DEFINE(
    BLOCK=>'BLOCK_NAME',
    FIELD=>'DISPLAYED_FLEXFIELD_FIELD_NAME',
    APPL_SHORT_NAME=>'SHORTNAME_OF_APPLICATION_USED_TO_REGISTER_FLEXFIELD',
    DESC_FLEX_NAME=>'FLEXFIELD_NAME',
    ANY_OTHER_ARGUMNTS);
    例: FND_DESCR_FLEX.DEFINE(
    BLOCK=>’ORDERS’,
    FIELD=>’DESC_FLEX’,
    APPL_SHORT_NAME=>’DEM’,
    DESC_FLEX_NAME=>’DEM_ORDERS’);
    9, COPY 命令
    Copies a value from one item or variable into another item or global variable.
    Syntax
    PROCEDURE COPY(source VARCHAR2, destination VARCHAR2)
    Parameters
    source: The source is a literal value.
    destination: The destination can be either a text item or another global variable.
    例:COPY( 'Yes', 'GLOBAL.'||global_var_name );
    将‘YES’付值给 变量global_var_name

    10设置Item-level和Item-instance-level属性时需特别的注意,
    Item-level属性影响所有的记录,而Item-instance-level属性只影响特定的记录(当前行)。
    11 fotmatting currency fields( 货币的转换和格式化)
    FND_CURRENCY:The Dynamic Currency feature allows different values in arbitrary currencies to be displayed in
    the same report or form, each shown with appropriate formatting.
    FND_CURRENCY.GET_FORMAT_MASK(:ORDERS.CURRENCY_CODE,GET_ITEM_PROPERTY('LINES.PRICE',MAX_LENGTH));

  • 相关阅读:
    【06】SQL语句之创建数据库
    【05】数据类型
    【02】SQL Server 配置管理器基本使用
    【01】连接到数据库引擎
    MySQL学习记录【02】常用数据类型
    MySQL学习记录【01】主键
    [转]九个Console命令,让js调试更简单
    HTML5中引入的关键特性
    [转]CSS hack大全&详解
    [转]IE8兼容Object.keys
  • 原文地址:https://www.cnblogs.com/quanweiru/p/2616117.html
Copyright © 2020-2023  润新知