从属值集-级联设置

xiaoxiao2021-03-01  10

1.从属值集 在EBS系统中建立 独立值集,从属值集,当父集被更选择填入之后,子集才能根据父集的选项填写内容,以下是链接,,我认为这个是讲的很清楚的,推荐一下 https://wenku.baidu.com/view/67d5d492dd88d0d233d46a40.html

2.从属值集 在form表单程序单元中写入 建块名为包名的包 在包头中写入 PACKAGE CMS_CMP_ACC IS PROCEDURE ERP_ACCOUNT_CODE(EVENT VARCHAR2); PROCEDURE ERP_SUBACCOUNT_CODE(EVENT VARCHAR2); END CMS_CMP_ACC;

在包体中写入 PACKAGE BODY CMS_CMP_ACC IS PROCEDURE ERP_ACCOUNT_CODE(EVENT VARCHAR2) IS BEGIN IF (EVENT = ‘WHEN-VALIDATE-ITEM’) THEN – Any validation logic goes here. ERP_SUBACCOUNT_CODE(‘INIT’); :CMS_CMP_ACC.ERP_SUBACCOUNT_CODE_DESC:=null;–注意注意 –此处,有一个LOV带出的字段,当父集被改变时,子集自动清空,子集带出的字段也要被清空,这种方法不是正常的方法,但是可以实现清除功能。 ELSE fnd_message.debug('Invalid event passed to CMS_CMP_ACC.ERP_ACCOUNT_CODE: ’ || EVENT); END IF; END ERP_ACCOUNT_CODE;

PROCEDURE ERP_SUBACCOUNT_CODE(EVENT VARCHAR2) IS BEGIN IF ((EVENT = 'PRE-RECORD') OR (EVENT = 'INIT')) THEN APP_FIELD.SET_DEPENDENT_FIELD(EVENT, 'CMS_CMP_ACC.ERP_ACCOUNT_CODE', 'CMS_CMP_ACC.ERP_SUBACCOUNT_CODE'); ELSE fnd_message.debug('Invalid event passed to CMS_CMP_ACC.ERP_SUBACCOUNT_CODE: '|| EVENT); END IF; END ERP_SUBACCOUNT_CODE;

END CMS_CMP_ACC;

–Trigger: WHEN–VALIDATE–ITEM on ERP_ACCOUNT_CODE: 这个触发器写在父集ERP_ACCOUNT_CODE这个item的触发器中,代码如下 CMS_CMP_ACC.ERP_ACCOUNT_CODE(’WHEN–VALIDATE–ITEM’);

–Trigger: PRE–RECORD on CMS_CMP_ACC (Fire in Enter–Query Mode: No): 这个触发器写在块级触发器下 CMS_CMP_ACC.ERP_SUBACCOUNT_CODE(’PRE–RECORD’); 此段代码中,CMS_CMP_ACC为块名,也是包名,ERP_ACCOUNT_CODE为父集,ERP_SUBACCOUNT_CODE为子集

3.从属值集 LOV查询 当使用了父集子集之后,当父集填入之后,子集才可以填写,子集带出的LOV字段需要在进行LOV查询或者块查询时自动带出,以下是代码实例 BEGIN SELECT FVL.DESCRIPTION INTO :CMS_CMP_ACC.ERP_SUBACCOUNT_CODE_DESC FROM FND_FLEX_VALUES_VL FVL, FND_FLEX_VALUE_SETS FVS WHERE FVL.FLEX_VALUE_SET_ID = FVS.FLEX_VALUE_SET_ID AND FVL.PARENT_FLEX_VALUE_LOW = :CMS_CMP_ACC.ERP_ACCOUNT_CODE–父集 AND FVS.FLEX_VALUE_SET_NAME = ‘GFS_B00_COA_SUBACCOUNT’;–子集字段 AND FVL.FLEX_VALUE = :CMS_CMP_ACC.ERP_SUBACCOUNT_CODE;–子集LOV带出字段

EXCEPTION WHEN NO_DATA_FOUND THEN NULL; END;

转载请注明原文地址: https://www.6miu.com/read-3850210.html

最新回复(0)