Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

Oracle Forms APP_MULTI 패키지 사용

Oracle® APP_MULTI 패키지를 사용하면 다중 선택 기능을 양식에 추가할 수 있습니다. 이 옵션은 APPCORE 라이브러리에서 사용할 수 있습니다.

APP_MULTI 패키지를 사용하여 단일 또는 다중 레코드를 선택하고 필요에 따라 처리할 수 있습니다. 다음 이미지는 무작위 레코드 선택을 보여줍니다.

Oracle Forms APP_MULTI 패키지 사용

이미지 소스 :https://i36.me/images/oracle/ebs/ebs_frm_lnchse_with_app_multi_01.jpg

기능

APP_MULTI 패키지를 사용하면 다음 작업을 수행할 수 있습니다.

  • 단일 레코드를 클릭하여 선택하십시오.

  • Ctrl 키를 누른 상태에서 여러 레코드를 클릭하면 동시에 여러 레코드를 선택할 수 있습니다.

  • 모두 선택 선택 애플리케이션 메뉴에서 모든 레코드를 선택합니다.

  • 모두 선택 취소 선택 선택한 모든 레코드를 선택 취소하려면 애플리케이션 메뉴에서.

  • 첫 번째 레코드를 클릭하고 Shift 키를 누른 상태에서 시퀀스의 마지막 레코드를 클릭하여 여러 개의 연속 레코드를 선택합니다.

APP_MULTI 패키지 이벤트

APP_MULTI 패키지는 양식에서 다음 이벤트에 응답합니다.

  • 키-CLRFRM :(양식 수준) 양식을 지우기 전에 레코드의 유효성을 검사합니다. 사용 예:APP_MULTI.EVENT('KEY-CLRFRM');

  • 키-CLRREC :(블록 수준) 현재 레코드를 지울 때 발생합니다. clear_record와 동일합니다. 명령.

  • KEY-CREREC :(블록 수준) 새 레코드를 만들 때 발생합니다. create_record와 동일합니다. 명령.

  • KEY-DELREC :(블록 수준) 기존 레코드를 삭제할 때 발생합니다. delete_record와 동일합니다. 명령.

  • 사전 차단 :(블록 수준) 블록에 들어갈 때 발생합니다.

  • 포스트 차단 :(블록 수준) 블록에서 나갈 때 발생합니다.

  • SELECT_ALL :(블록 수준) 모든 레코드를 선택하면 실행됩니다.

  • DESELECT_ALL :(블록 수준) 모든 레코드를 선택 해제할 때 발생합니다.

  • 때-지우기-차단 :(블록 수준) 블록을 지울 때 발생합니다.

  • 마우스 클릭 시 :(블록 수준) 마우스를 클릭하면 실행됩니다.

  • WHEN-NEW-RECORD-INSTANCE :(블록 수준) 블록에 대한 레코드를 생성하거나 쿼리할 때 발생합니다.

수동으로 트리거 생성

필요한 트리거를 만들고 APP_MULTI.EVENT를 명시적으로 호출해야 합니다. 다음 예와 같이 처리 중인 이벤트의 이름을 전달하여 프로시저:

PROCEDURE event(p_event_name VARCHAR2,p_blockname
VARCHAR2 DEFAULT NULL);

예를 들어, KEY-CLRREC 트리거는 다음 명령만큼 간단할 수 있습니다.

APP_MULTI.EVENT('KEY-CLRREC');

참고: 프로시저는 선택적 인수 p_blockname을 허용합니다. . p_blockname을 통과하지 못한 경우 , 프로시저는 SYSTEM.TRIGGER_BLOCK 값을 사용합니다. .

선택 및 선택 해제 이벤트

맞춤 MULTI_RETURN_ACTION을 구현할 때 트리거(데이터 블록에서 또는 양식의 최상위 수준에서)하면 시스템에서 레코드 선택 및 선택 해제를 알려줍니다. 트리거는 모든 개별 또는 대량 레코드 선택 또는 선택 해제 후에 실행됩니다.

트리거 변수

트리거에서 다음 변수를 사용할 수 있습니다.

  • GLOBAL.APPCORE_MULTI_BLOCK global:레코드 선택 또는 선택 해제의 영향을 받는 데이터 블록의 이름을 가집니다.

  • GLOBAL.APPCORE_MULTI_ACTION global:다음 값 중 하나를 가집니다.

    - **'RECORD\_SELECTED'**: When a record is selected
    
    - **'RECORD\_DESELECTED'**: When a record is deselected
    
    - **'LABEL\_CHANGE'**: When the **Select All** or **Deselect All** menu
      items are enabled or disabled
    
  • APP_MULTI.LOOPING 패키지 변수:MULTI_RECORD_ACTION을 호출했는지 여부에 따라 TRUE 또는 FALSE 값을 가집니다. 루프 내에서.

양식에서 선택한 데이터 검색

각 데이터 블록에 대해 APP_MULTI 패키지에는 현재 선택된 레코드의 레코드 번호가 있는 레코드 그룹이 있습니다.

데이터 블록의 이름을 제공하여 다음 작업을 수행할 수 있습니다.

  • **APP_MULTI.GET_GROUP_COL 함수를 사용하여 레코드 그룹의 Only에 액세스 특정 데이터 블록에 대한 열입니다.

  • APP_MULTI.GET_GROUP_COUNT 사용 선택한 레코드의 수를 가져옵니다.

예를 들어 개별 작업 양식이 있는 경우 W_JOBS 차단 및 필드, WIP_ENTITY_ID , 다음 PL/SQL 코드를 사용하여 선택한 작업의 ID를 인쇄할 수 있습니다.

DECLARE
 record_number_column    groupcolumn;
 selected_record_count   NUMBER;
 BEGIN
   record_number_column := app_multi.get_group_col ('W_JOBS');
   selected_record_count :=app_multi.get_group_count ('W_JOBS');

 FOR i IN 1 .. selected_record_count
  LOOP
   DECLARE
    record_number     NUMBER;

  v_wip_entity_id   NUMBER;
  BEGIN

   record_number := GET_GROUP_NUMBER_CELL (record_number_column, i);

   GO_RECORD (record_number);

   v_wip_entity_id := NAME_IN ('W_JOBS.WIP_ENTITY_ID');

   fnd_message.debug ( 'v_wip_entity_id' || v_wip_entity_id);

   EXCEPTION
    WHEN OTHERS  THEN
      Null;
  END;
 END LOOP;
END;

결론

APP_MULTI 패키지를 사용하여 사용자 정의 Oracle 양식에서 대량 데이터를 처리할 수 있습니다. 이 패키지를 사용하면 사용자가 표준 양식에서 선택하는 대량 데이터의 세부 정보를 얻을 수 있습니다. 양식 개인화 또는 custom.pl에서 사용할 수 있습니다. 표준 Oracle 형식에 사용자 지정 기능을 추가하는 코드입니다.

피드백 탭을 사용하여 의견을 작성하거나 질문하십시오. 지금 채팅을 시작하여 대화를 시작할 수도 있습니다.

데이터베이스에 대해 자세히 알아보십시오.