zoukankan      html  css  js  c++  java
  • form 程序开发之附加程序

    使用 APP_FIND.FIND( PARAMETER BLOCK_NAME); BLOCK_NAME 为展示的数据块查询结果;

    使用    app_find.query_range(TO_CHAR(:QUERY.RCV_DATE_S,'YYYYMMDD'),TO_CHAR(:QUERY.RCV_DATE_E,'YYYYMMDD'),'RESULT.RCV_DATE');

    将使程序中从一个数据块参数传入数据到另一个数据块

    ---- 在 开 发 应 用 中, 经 常 用 到List_Item 控 件, 此 控 件 是 列 表 框, 可 以 让 用 户 在 多 个 备 选 值 中 进 行 选 择。 列 表 框 的 加 载 有 两 种 方 式。 一 种 是 固 定 的, 另 一 种 是 动 态 的。

    ---- 1 . 固 定 式。 即 列 表 框 中 的 数 据 是 固 定 的。 这 种 方 式 比 较 简 单, 无 需 编 程 既 可 实 现。 假 设 有 一 个List_Item 控 件, 且 命 名 为List1, 如 图1 所 示。 在List1 的 属 性List elements 中 填 加 要 选 择 的 数 据 项, 即 可 达 到 目 的。 当 开 发 人 员 对 数 据 库 较 熟 悉 或 数 据 库 表 中 的 数 据 项 比 较 固 定 时, 可 采 用 此 种 方 式。

    ---- 2 . 动 态 式。 即 列 表 框 中 的 值 会 随 着 数 据 库 表 中 数 据 项 的 变 化 而 变 化。 此 种 方 式 的 通 用 性 较 强, 可 以 满 足 用 户 的 需 要。 在 实 际 应 用 中, 较 常 用 的 是 此 种 通 用 性 的 方 式。 本 文 将 举 一 个 实 例, 来 说 明 此 种 方 法 的 实 现。

    ---- 假 设 有 一 个 产 品 销 售 数 据 表SALES, 并 含 有 时 间(Time), 产 品 名 称(Name), 销 售 量(Amount) 三 个 字 段, 如 表1 所 示。

    时 间     产 品 名 称     销 售 量
    1997     彩 电     100
    1998     彩 电     120
    1997     冰 箱     90
    1998     冰 箱     80
    1997     空 调     110
    1998     空 调     130
    表1

    ---- 为 了 分 析 需 要, 现 要 求 用 列 表 框 把 所 有 产 品 的 名 称 显 示 出 来。 我 们 建 立 一 个 过 程pl, 并 用 游 标 来 实 现 此 功 能。 过 程pl 的 程 序 代 码 如 下:

    PROCEDURE pl IS
    cursor c1 is
      select name from sales;
    cnt number;
    i number;
    tname sales.name%type;
    BEGIN
    clear_list('list1');
    open c1;
    select count(distinct name) into cnt from sales;
    for i in 1..cnt loop
              fetch c1 into tname;
              add_list_element('list1',i,tname,tname);
    end loop;
    delete_list_element('list1',cnt+1);
    close c1;
    END;

    ---- 在Forms 中 设 置WHEN_NEW_FORM_INSTANCE 触 发 器 并 调 用 此 过 程, 即 完 成 了 此 工 作。 其 结 果 显 示 如 图2 所 示。

    SET_ITEM_INSTANCE_PROPERTY('PRGCLASS.PROGRAM_COLOR_ITEM', CURRENT_RECORD, VISUAL_ATTRIBUTE ,'TEXT_BG_MTO');

    set_item_property 如果数据块只有一行,用这个
    SET_ITEM_INSTANCE_PROPERTY 设置多行数据块某一行的属性

    set_item_instance_property('Query.LOC',
                               CURRENT_RECORD,
                               UPDATE_ALLOWED,
                               PROPERTY_OFF);

    SET_ITEM_INSTANCE_PROPERTY('PRGCLASS.PROGRAM_COLOR_ITEM', CURRENT_RECORD, VISUAL_ATTRIBUTE ,'TEXT_BG_MTO');

    set_item_property 如果数据块只有一行,用这个
    SET_ITEM_INSTANCE_PROPERTY 设置多行数据块某一行的属性

      常用ORACLE EBS FORM 二次开发常用总结  

    1.锁住当前行    Set_Item_Instance_Property('main.import_flag',  CURRENT_RECORD, UPDATE_ALLOWED, PROPERTY_OFF);  

           用在WHEN-NEW-RECORD-INSTANCE 或者POST-QUERY中。

           同:app_item_property.set_property('MAIN.REF_COST',ALTERABLE,PROPERTY_ON)  

    2.设置记录的颜色    app_record.highlight('RED_REC'); 

    3.窗口居中    app_window.set_window_position('WINDOW_NAME','CENTER');   

    4.最大化窗口时自动扩展文件夹数据块

    在WHEN-WINDOW-RESIZED中添加以下代码即可。

    if :system.event_window in ('MAIN') then

    app_folder.event('WHEN-WINDOW-RESIZED');

    end if;

    5.Form中调用forms基本参数方式

             FND_FUNCTION.EXECUTE(FUNCTION_NAME=>'CUXSOSETUP', OPEN_FLAG=>'Y', SESSION_FLAG=>'Y', OTHER_PARAMS=>NULL);

    其它参数传入OTHER_PARAMS即可。

    6.动态设置当前行指定列的必输属性 Set_Item_Instance_Property(item_name, CURRENT_RECORD, REQUIRED,PROPERTY_TRUE);

    如: if :CUX_WORKHOUR_EMP.ATTRIBUTE2 <> :CUX_WORKHOUR_EMP.ATTRIBUTE1

            then Set_Item_Instance_Property('CUX_WORKHOUR_EMP.MODIFY_REASON', CURRENT_RECORD, REQUIRED,PROPERTY_TRUE);

       if :CUX_WORKHOUR_EMP.MODIFY_REASON is null

           then :CUX_WORKHOUR_EMP.MODIFY_REASON := '123';

                   :CUX_WORKHOUR_EMP.MODIFY_REASON := null

                 fnd_message.set_string  ('请输入调整原因.');

                fnd_message.show;

                end if;

    else if :CUX_WORKHOUR_EMP.ATTRIBUTE4 = :CUX_WORKHOUR_EMP.ATTRIBUTE3

              then Set_Item_Instance_Property('CUX_WORKHOUR_EMP.MODIFY_REASON', CURRENT_RECORD, REQUIRED,PROPERTY_FALSE);

           end if;

    end if;

    7.增加菜单

            在 FORM级的when-new-form-instance APP_SPECIAL.INSTANTIATE('SPECIAL1','取消需求行', '', TRUE, 'LINE');

    8.LOV指定初始值后需在WHEN-NEW-RRECORD-INSTANCE用以下语句模拟验证, 否则会弹出验证框.

    代码如下: app_item_property.set_property('DETAIL_D.DEMAND_STATUS_DESC', ITEM_IS_VALID,property_on);

  • 相关阅读:
    js的内置对象arguments
    typeof
    JS 数组赋值,引用传递 问题
    技术突围打造创新解决方案 思岚科技让机器人移动更智能
    2020思岚科技第四季度大事记
    校企合作 | 上海交通大学 X 思岚科技“智能感知创新实验室”正式揭牌
    新基建下的智慧货架机器人,已迎来“下半场”应用期
    2020思岚科技第二季度大事记
    思岚科技2020第一季度大事记
    思岚科技2019第四季度大事件
  • 原文地址:https://www.cnblogs.com/SanFrans/p/3356854.html
Copyright © 2011-2022 走看看