关于标准form 物料编码查询 不通过lov

今天自己查看了一下 标准form 物料编码 的录入时
 系统的实现逻辑:
1.when_new_form_instance;
procedure when_new_form_instance  is
 
  CURSOR csr_org_id IS
   SELECT t.inventory_organization_id
     FROM financials_system_params_all t
    WHERE t.org_id = :parameter.mo_default_org_id;
  begin
    
    fdrcsid('$Header: CUXPOXSTAD.fmb 117.39 2015/09/05 12:52:55 pkm ship $');
    app_standard.event('WHEN-NEW-FORM-INSTANCE');
   
    -- R12 MOAC
    mo_setup_utl.multi_org_event('WHEN-NEW-FORM-INSTANCE');
   
    -- 定义文件夹
    app_folder.define_folder_block(object_name        => 'PO_LINES',
                                   folder_block_name  => 'PO_LINES',
                                   prompt_block_name  => 'PO_LINES_PROMPT',
                                   folder_canvas_name => 'PO_LINE_STK',
                                   folder_window_name => 'MAIN',
                                   disabled_functions => '',
                                   tab_canvas_name    => '',
                                   fixed_canvas_name  => '');
    app_folder.event('INSTANTIATE');
   
    -- 定义描述性弹性域
    fnd_descr_flex.define(BLOCK           => 'PO_HEADERS',
                          field           => 'DESC_FLEX',
                          appl_short_name => 'CUX',
                          desc_flex_name  => 'CUX_PO_HEADERS_ALL');
    fnd_descr_flex.define(BLOCK           => 'PO_LINES',
                          field           => 'DESC_FLEX',
                          appl_short_name => 'CUX',
                          desc_flex_name  => 'CUX_PO_LINES_ALL');
   
    -- 定义菜单
    fnd_message.set_name('CUX', 'CUX_POX_STAD_APPROVAL_HIST');
    app_special.instantiate(option_name       => 'SPECIAL1',
                            hint              => fnd_message.get,
                            icon              => NULL,
                            initially_enabled => FALSE,
                            separator         => NULL);
   
    -- 控制QUERY_ONLY模式
    IF NAME_IN('PARAMETER.QUERY_ONLY') = 'YES' THEN
      SET_BLOCK_PROPERTY('PO_HEADERS', INSERT_ALLOWED, PROPERTY_FALSE);
      SET_BLOCK_PROPERTY('PO_LINES', INSERT_ALLOWED, PROPERTY_FALSE);
      SET_BLOCK_PROPERTY('PO_HEADERS', UPDATE_ALLOWED, PROPERTY_FALSE);
      SET_BLOCK_PROPERTY('PO_LINES', UPDATE_ALLOWED, PROPERTY_FALSE);
     
      --APP_ITEM_PROPERTY.SET_PROPERTY('CONTROL.APPROVE', ENABLED, PROPERTY_OFF);
    ELSE
    
      SET_BLOCK_PROPERTY('PO_HEADERS', INSERT_ALLOWED, PROPERTY_TRUE);
      SET_BLOCK_PROPERTY('PO_LINES', INSERT_ALLOWED, PROPERTY_TRUE);
      SET_BLOCK_PROPERTY('PO_HEADERS', UPDATE_ALLOWED, PROPERTY_TRUE);
      SET_BLOCK_PROPERTY('PO_LINES', UPDATE_ALLOWED, PROPERTY_TRUE);
     
     -- APP_ITEM_PROPERTY.SET_PROPERTY('CONTROL.APPROVE', ENABLED, PROPERTY_ON);
    END IF;
   
    open csr_org_id;
    fetch csr_org_id into :PARAMETER.ORG_ID;
    close csr_org_id;
   
    fnd_key_flex.define(BLOCK                 => 'PO_LINES',
                        field                 => 'SEGMENT1',
                        id                    => 'INVENTORY_ITEM_ID',
                        appl_short_name       => 'INV',
                        code                  => 'MSTK',
                        data_set              => ':PARAMETER.ORG_ID',
                        required              => 'N',
                        usedbflds             => 'N',
                        allownulls            => 'Y',
                        validate              => 'FULL',
                        select_comb_from_view => 'MTL_SYSTEM_ITEMS_VL',
                        where_clause          => '',
                        longlist              => 'Y',
                        column                =>'DESCRIPTION DESCRIPTION(*) into PO_LINES.DESCRIPTION');  --物料描述字段
    Show_View('PO_LINE_STK');
   end;
2. 物料编码项的属性
lov enable_list_lamp 从列表中验证  否
物料编码 项 WHEN-VALIDATE-ITEM添加
fnd_flex.event(upper('when-validate-item'));
关于单位 物料类别 其他都可以写在 这个事件里面
procedure item_number(event varchar2) is
  l_uom_code     VARCHAR2(10);
  l_unit_of_measure  VARCHAR2(10);
  CURSOR csr_uom(p_inventory_item_id IN NUMBER,
                 p_organization_id   IN NUMBER) IS
    SELECT mu.unit_of_measure,
           msi.primary_uom_code
      FROM mtl_system_items_vl msi,
           mtl_units_of_measure_vl mu
     WHERE msi.primary_uom_code = mu.uom_code
     AND msi.inventory_item_id = p_inventory_item_id
       AND msi.organization_id = p_organization_id;
  begin
   if event ='WHEN-VALIDATE-ITEM' then
    OPEN csr_uom(:po_lines.inventory_item_id,
                   :parameter.org_id);
     FETCH csr_uom
       INTO l_unit_of_measure,
            l_uom_code;
     CLOSE csr_uom;
    
     :po_lines.PRIMARY_UNIT := l_unit_of_measure;
         
    app_field.clear_dependent_fields('PO_LINES.SEGMENT1',
                                     'PO_LINES.INVENTORY_ITEM_ID',
                                     'PO_LINES.DESCRIPTION',
                                     'PO_LINES.PRIMARY_UNIT');
    else
    app_exception.invalid_argument('PO_LINES.SEGMENT1',
                                   'EVENT',
                                   event);
    end if;
    end item_number; 

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

转载于:http://blog.itpub.net/30403620/viewspace-1805361/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值