2016-08-22 2 views
1

안녕하세요!Oracle Apex의 셔틀 값에 대한 의존성 달성

오라클 아펙스에서 페이지를 만들면 문서가 만들어집니다. 이 페이지는 "텍스트 필드"또는 "목록 선택"과 같은 많은 필드를 가지고 있으며 자체 로직을 가지고 있습니다. 셔틀 필드 (A라는 이름을 지정하십시오)와 텍스트 필드 B)라는 이름을 붙이십시오. 첫 번째 것에 의존해야합니다. 상호 작용 방식은 다음과 같습니다.

  • 셔틀 A의 값은 "A", "B", "C", "D"및 "others"입니다.
  • 셔틀에서 다른 사람의 값을 "다른 사람"으로 선택하면 텍스트 필드 B도 채워야합니다. 즉,이 경우 필드 B가 필요합니다.

내가 가진 문제는 필드 A 값에 따라 필드 B를 작동시킬 수 없다는 것입니다. Shuttle B의 오른쪽 절반에 "others"값이 있으면 "onChange"이벤트에서 트리거하는 JavaScript 함수를 사용하려고했습니다. 그러나이 방법은 내가 원했던 것처럼 작동하지 않았습니다. 왜냐하면 "onChange"이벤트는 셔틀의 두 반쪽을 클릭 할 때마다 발생하기 때문이며 값을 "다른"값으로 이동시킬 때만 arosen해야합니다 (두 가지 방법으로 수행 할 수있는 것 : 두 번 클릭하거나 셔틀의 화살표 아이콘 클릭).

그래서 "master-detail"논리에서 셔틀과 텍스트 필드를 동기화하는 방법은 무엇입니까?

p.s. Oracle Apex 4.2.6.0003을 사용하고 있습니다. 또한 선택 목록 만 사용하여 문제를 해결할 수 있음을 알고 있지만 셔틀을 사용하여 문제를 해결하려고합니다. 특히 마지막 하나가 거의 무한대의 값을 가질 수 있다는 점을 고려하면 문제를 해결하려고합니다. 이 같은 jvascript 코드를 사용

STATIC:A;A,B;B,C;C,Others;OTHERS 

: 셔틀의 값 목록으로 정적 값으로

답변

1

$("#P40_SHUTTLE").change(function(){ 
console.log(apex.item(this).getValue().indexOf("OTHERS") != -1); 
}) 

OTHERS이 선택되었을 때 TRUE를 반환합니다 (이것은의 값에

우주선). 변화는 여기에서 경청 할 정확한 사건이다! DA에 그 번역

:

이 코드 사용 "자바 스크립트 표현"및 셔틀 사용 유형의 ""조건의 변화에 ​​

:

apex.item(this.triggeringElement).getValue().indexOf("OTHERS") != -1 

그런 다음 사실을 사용할 수 있습니다 예를 들어 텍스트 필드를 필요에 따라 보여 주거나 숨기는 DA의 거짓 행동. 나는 프론트 엔드에서 그 이상으로 나아 가지 않을 것이다. 텍스트 필드에 필요한 라벨을 표시 할 수 있습니다. 필드가 표시 될 때만 표시됩니다. OTHERS 값의 셔틀 값을 검사 할 텍스트 필드에 서버 측 유효성 검사 (제출시)를 추가하십시오. 텍스트 필드가 있으면 텍스트 필드가 필요합니다.

유효성 검사가 텍스트 필드에 만들어졌습니다. 조건 유형의 "PLSQL 기능 바디"검증의

DECLARE 
    l_vc_arr2 APEX_APPLICATION_GLOBAL.VC_ARR2; 
BEGIN 
    l_vc_arr2 := APEX_UTIL.STRING_TO_TABLE(:P40_SHUTTLE); 
    FOR z IN 1..l_vc_arr2.count LOOP 
    IF l_vc_arr2(z) = 'OTHERS' THEN 
     RETURN TRUE; 
    END IF; 
    END LOOP; 

    RETURN FALSE; 
END; 

유형 : IS NOT NULL
항목 : 텍스트 필드.

타당성 확인은 타인이 선택한 값으로 존재할 때만 시작되며 텍스트 필드가 필요합니다.

+0

대단히 감사합니다. @ 톰! 나는 내 실수를 이해했다. 나는 셔틀의 가치를 문자열로 취급했지만 배열로 취급하지는 않았다. – PiggyInTheMirror

관련 문제