2012-01-16 2 views
3

I 응용 프로그램에서 다음과 같은 문제가 날 미치게하는 표현이 있습니다 는 값

내가 링크 열을 포함하는 APEX 4.1 표 양식을 가지고있다. 사용자가 열을 클릭하면 응용 프로그램의 현재 상태를 저장하고 다른 페이지로 리디렉션하려고합니다. 링크를 클릭 한 행의 ID를 다른 페이지로 전달해야합니다. https://forums.oracle.com/forums/thread.jspa?threadID=489666&tstart=720

아이디어는 특별한 요청 값을 사용하여 페이지를 제출하고 링크에서라는 자바 스크립트 함수를 사용하여 숨겨진 페이지 항목에 필요한 모든 항목 값을 저장 :

구글을 사용하여 나는이 솔루션을 발견했다. 그런 다음 특별한 REQUEST 값을 조건으로 찾고 원하는 페이지로 이동하여 대상 페이지의 항목을 이전에 저장 한 현재 페이지의 페이지 항목으로 설정하는 페이지 분기를 만듭니다.

지침에 따라 진행되었지만 작동하지 않습니다. 대상 페이지가로드되지만 항목이 설정되지 않습니다.

내 자바 스크립트에서 전달 된 ID의 값을 표시하는 경고를 표시합니다. 이 작동합니다. 또한 표 형식의 숨겨진 페이지 항목을 텍스트 필드로 변경했으며 올바르게 업데이트되고 유지됩니다. 좋아 보인다

...Session State: Saved Item "P20_PRUEFUNG_ID_AKTIV" New Value="3950" 

:

로그는이 같은 것을 보여줍니다. 리디렉션 후 대상 페이지의 URL을 볼 때

그러나 그것은 다음과 같습니다 : F P = 110 : 22 : 1750507087114492 :: NO : P22_PRUEFUNG_ID는 :

P22_PRUEFUNG_ID 페이지의 이름입니다 목표 페이지에서 설정하고자하는 항목. 항목에 대해 전송 된 값이 없음을 유의하십시오. 내가 어떤 오류를 찾을 수없는 페이지 (20)의 값이 22 페이지에 전달되지 않습니다 어떤 이유

Session: Fetch session header information 
Saving g_arg_names=P22_PRUEFUNG_ID and g_arg_values= 
...Session State: Save "P22_PRUEFUNG_ID" - saving same value: "" 

내 지점에서 상대 : 대상 페이지의 로그에서

나는 이것을 발견 . I는 다음의 파라미터들 (처리 후) 정상 분기 생성 :

페이지 22 개 설정 이러한 항목 : P22_PRUEFUNG_ID 이들 값 : & P20_PRUEFUNG_ID_AKTIV. 조건 : 요청 = EDITSG (내 특수 요청 값).

나는 아직도 APEX 초보자라고 덧붙여 야합니다. 아마 어리석은 짓 일 겁니다.

처음에 설명한 문제를 해결하기위한 다른 솔루션은 물론 물론입니다. 새롭게 삽입 된 항목으로이 작업을 수행하는 방법에 대한 아이디어에 대한 보너스 포인트 (새 항목의 ID 전달).

편집는 : Source page

페이지에 2 개 지점이 있습니다 : 여기에 소스 페이지의 스크린 샷이다. 페이지 21의 브랜치는 페이지 22의 브랜치와 같으며 테이블의 다른 링크 (다른 REQUEST 값)를 클릭하면 작동하지 않을뿐입니다. 현재 페이지 인 20 페이지에 브랜치가있는 이유를 모르겠습니다. APEX가 추가 한 것입니다. 이 결과에 영향을주지해야한다, 그래서 어쩌면 APEX (3)에서 업데이트에서 잔존는 어떤 경우에는 내가은 "결코"조건을 설정하지를 비활성화 (?)

감사합니다!

+0

는 P22에 지사를 제외하고 거기 MRU/MRD를 제외하고 페이지의 다른 프로세스 및 다른 지점이 있습니까? 그렇다면이 프로세스 전후에 있습니까? 어쩌면 우리가 설정을 볼 수 있고 추측 할 필요가 없도록 페이지의 스크린 샷을 첨부 할 수 있습니다 :) – Tom

+0

스크린 샷을 추가했습니다. 보시다시피 더 이상 페이지 프로세스가 없습니다.그리고 다른 지부에는 사실이 아닌 조건이 있습니다. 나는 너의 도움을 aperestiate! – aKzenT

답변

3

난 당신이 게시 made 2 pages that do this kind of thing 링크에서 설명하는 단계를 통과했습니다. 페이지 20 : 열 링크가있는 emp의 표 형식. 이 링크는 선택한 empno를 P20_P_EMPNO 항목에 넣는 javascript 함수 (page> javascript)를 호출합니다 (하단 참조). 내가 10 BLAKE의 수수료를 변경하고 연필을 누르면 세부 사항은 BLAKE에 대해 표시되는 곳

function godetail(nEmpno){ 
    $("#P20_P_EMPNO").val(nEmpno); 
    doSubmit("EMPDETAIL"); 
}; 

는 예를 들어, 내가 21 페이지로 이동하세요. 내 커미션도 업데이트됩니다.

MRU의 상태를 변경해야했습니다. 표준 그것은 제출 버튼에 바인딩되어, 당신은이 필드를 지워야합니다. 그런 다음 조건을 Request Is Contained within Expression 1으로 변경하고 SUBMIT,<YOUR_REQUEST>을 입력하십시오. 설명한대로. 분기의 경우, 순서대로 내 자신의 조건부 분기를 먼저 넣습니다. 이것은 중요합니다, 당신은이 지점 이전에 다른 지점을 점화하는 것을 원하지 않습니다. branch details

편집 : 삭제시 캐시를 지우는 데 페이지 20 분기가 사용되었을 가능성이 있습니까?

참조 : 참조 된 항목의 철자가 올바른지 확인하십시오. 대문자를 사용하십시오. 항목을 사용하여 값을 설정하려면 정적 텍스트 대체 문자열 &ITEM.을 사용합니다. 처음에는 점을 맨 끝에 두는 것을 잊어 버립니다.

그래서 나는 왜 그것이 네 끝에서 잘못 될지 모르겠다. 20 ~ 21 쪽의 내 작업 공간을보고 싶다면 무엇이든 자리가 있는지 확인하십시오. http://apex.oracle.com/pls/apex 작업 영역 : TOMPETRUSBE, apex_demo/데모 새 레코드의 세부 사항에가는에 관해서는

는 : 당신은 분명히 ID를 통해 전달할 수 없습니다. 다중 행 업데이트는 단일 행 DML 프로세스와 달리 ID를 어디에서라도 반환하지 않으므로 'catch'할 수 없습니다. 말이된다. ID를 전달하는 대신 할 일은 고유 한 키를 전달하는 것입니다. 볼 행을 지정하기 위해 값이 필요하다는 것은 명백합니다. 따라서이 행을 얻을 수있을 때만 작동합니다. 당신이 이드와 만 일할 수 있다면, 운이 나쁠 것입니다.

당신은 또한 당신의 세부 정보 페이지에 DML이-가져 오기 프로세스를 변경해야 할 것 : 대신 ROWID 또는 ID와 협력, 당신이 함께 통과 고유 키 값으로 변경. 필드가 3 개 이상입니까? 페이지 프로세스를 사용하여 페이지 항목에 값을 선택하십시오.

예는 사람이 될 것입니다 : 대신 person_id로에 전달하는, 당신은 이름과 성을 전달할 것입니다. 그러나, 당신은 사용자 ID 또는 영국의 일종을 입력 할 경우

, 당신은 그것을 그렇게 유지할 수 있습니다. 예를 들어, 사용자가 예제 애플리케이션에서 새로운 행에 대해 empno를 입력 할 수있게하면 작동 할 것입니다! 합니다 (제출시는 물론 실패 제외)

+0

나는 그것을 작동하게했다! 이유는 모르겠지만 ... 지점의 순서를 변경하여 20 페이지에있는 (비활성화 된) 지점이 마지막에오고 작동하도록했습니다. 그래서 그것이 정말로 문제인지를보기 위해서, 나는 그것을 오래된 명령으로 되돌려 놓았습니다 ... 그것은 여전히 ​​효과가있었습니다! 어쩌면 일부 내부 상태가 잘못되어 주문 arround를 변경해도 문제가 해결되었을 수도 있습니다 ... 어쨌든 예제를 정리하고 지점 주문을 알려 주셔서 감사합니다. 오늘 오후에 더 많은 테스트를 해보고 작동하는지 확인한 다음이 대답을 받아 들일 것입니다. – aKzenT

+0

다행 이네! – Tom