2017-03-31 1 views
0

Oracle Application Express (APEX)에서 애플리케이션을 개발 중입니다.oracle apex의 "general"변수

첫 페이지에는 프로젝트 목록이 표 형식으로 포함되어 있습니다.

레코드를 편집 할 수있는 다음 페이지로 행을 클릭하면 전달됩니다. 나는 다음과 같은 설정으로 구현했습니다

  • 링크 열 : link to custom target
  • 대상 : Page in this application

이 잘 될 때까지합니다.

내 문제는 실제 보고서를 다음 페이지로 전달하는 방법입니까?

보고서의 기본이되는 내 테이블에는 기본 키 (ID)가 있고 소유자는 &의 제목 조합이 고유합니다. 현재 ID 열은 보고서에 포함되어 있지 않습니다.

또한이 정보는 사용자에게 중요하지 않으므로 두 번째 페이지에는 현재 ID을 나타내는 입력란이 없습니다.

보고서에 ID 열을 설정하고 다음 페이지에서 읽기 전용 (심지어 숨김) 텍스트 상자를 만들 수 있음을 알고 있지만보다 세련된 솔루션을 찾고 있습니다. 이것을 해결하는 표준 방법은 무엇입니까?

답변

1

당신이 요청하는 경우 궁금를 : "페이지 1에서 페이지 2로 값을 전달하면 페이지 2에서 값을 사용하여 쿼리를 수행하고 결과를 표시 할 수 있습니다. 그렇다면 여기에 어떻게 수행할까요?

P1 페이지에서 보고서는 예를 들어 디자인 된 페이지의 왼쪽에있는 렌더링 창의 영역 아래에서 보고서 영역의 특성을 선택합니다.

오른쪽의 속성 속성에서 링크 열을 찾아서 "사용자 지정 대상에 연결"으로 설정하십시오. 그런 다음 대상을 클릭하십시오.

페이지를 선택한 다음 왼쪽의 이름이있는 항목 설정 섹션에서 전달 된 값 (예 : P2_ID)을 수신 할 PK ID 필드를 선택하십시오. 값 오른쪽의 값을 전달할 필드 (예 : # P1_ID #)를 선택하고 확인을 클릭하십시오. 이제 1 페이지 보고서의 링크를 클릭하면 P1_ID가 Apex에 의해 세션 상태로 저장되고 P2로 전달되어 전달 된 값을 사용하여 FETCH를 수행합니다. 세션 상태 here에 대한 자세한 내용을 볼 수 있습니다. 또한 매개 변수가 URL에서 전달할 수 있거나 전달할 수없는 것에 영향을주는 보안 설정이 있음을 알아 두십시오. 개발자 도구 모음에서 "세션"을 클릭하면 전달되는 세션 변수를 볼 수 있습니다.

"전역 변수와 같이 앱의 어느 곳에서나 액세스 할 수있는 값을 앱에 저장하려면 어떻게해야합니까?"그런 다음 Application Items을 확인하십시오.

언제나이 게시물에는 버전 번호를 포함하십시오.

1

당신이 대상 페이지를 만들 때의 3 페이지 을 가정 해 봅시다 그리고 당신의이 P3_ITEM_1, P3_ITEM_2을 가정 해 봅시다, 일부 항목을 만드는 등 원래 페이지

에있는 URL을 통해 각각의 값을 할당 할 수

전체 APEX URL 구문은 다음과 같습니다

:

http://apex.oracle.com/pls/apex/f?p=AppId:PageId:Session:Request:Debug:ClearCache:Params:ParamValues:PrinterFriendly

이의 좀 더 자세히 살펴 보자

  • http : // - 프로토콜은 http 또는 https가 될 수 있습니다. apex.oracle.com - 도메인/호스트/서버, 원하는대로 지정하십시오. 또한 localhost 일 수 있습니다.
  • /pls - mod_plsql과 함께 Oracle HTTP Server를 사용 중임을 나타냅니다. APEX Listener 또는 Embedded PL/SQL Gateway를 사용하는 경우이 부분은 더 이상 사용되지 않습니다.
  • /apex - dads.conf 파일의 항목 (응용 프로그램 서버 또는 대상 데이터베이스가 구성된 EPG의 파일) - EPG의 경우 로컬 호스트를 가리키는 EPG의 경우 하나의 항목으로, OAS의 경우 각각 다른 데이터베이스를 가리키는 여러 항목을 가질 수 있습니다.
  • /f? p = - 프로 시저 "f"가 호출되고 매개 변수 "p"가 나머지 문자열 전체에 설정됩니다. 기억하십시오 : APEX는 mod_plsql을 사용합니다. "f"는 공용 절차이며, 이것이 APEX의 주 요점입니다. 아니면 "f"가 APEX라고 말할 수 있습니다.
  • APPID - 수 또는 응용 프로그램
  • 의 별칭 :의 PageId - 수나 페이지
  • 의 별칭 : 세션 - 고유 한 세션 ID, 공개 페이지 또는 빈 0을 할 수 있습니다 (다음 APEX가 생성하는 새 세션)
  • : 요청 - 요청 키워드. 이것은 기본적으로 자유 텍스트이며 프로세스 또는 지역 조건에서 반응하도록 지정할 수있는 문자열입니다. 예 : 당신은 키워드 "CREATE"를 전달할 수 있고 귀하의 페이지의 삭제 버튼에 "CREATE 일 경우이 버튼을 표시하지 마십시오"라는 조건을 가질 수 있습니다. 즉, REQUEST를 사용하여 페이지의 동작을 제어하십시오. 버튼을 누르면 버튼이 REQUEST를 버튼 값 (예 : SAVE)으로 설정하므로 페이지 처리 (제출) 단계에서 프로세스를 제어 할 수 있습니다.
  • : 디버그 - 브라우저 창에서 디버그 메시지 및 타임 스탬프를 렌더링하는 디버그 모드에서 YES (대문자!)로 설정합니다. 이렇게하면 페이지 또는 성능 문제와 그 밖의 모든 문제를 감지하는 데 도움이됩니다. 다른 모든 값을 YES로 설정하면 디버그 모드가 해제됩니다.
  • : ClearCache - 여기에 페이지 ID 또는 페이지 ID 목록 (쉼표로 구분)을 넣어이 페이지의 캐시를 지울 수 있습니다 (세션 상태를 null로 설정 ...). 하지만 RP는 페이지에 대한 보고서의 페이지 매김을 재설정하고 컬렉션 이름은 컬렉션을 삭제하고 APP는 모든 페이지와 응용 프로그램 항목을 지우고 SESSION은 APP와 동일하지만 모든 응용 프로그램에서 세션 ID는
  • : 매개 변수 - 쉼표로 구분 된 페이지 항목 이름 목록입니다. 좋은 방법은 당신이 가고있는 페이지에있는 페이지 아이템 만 설정하는 것입니다. 응용 프로그램 항목뿐만 아니라 페이지 항목도 허용합니다.
  • : ParamValues ​​- 쉼표로 구분 된 값 목록입니다. 각 값은 ParamNameList (첫 번째 매개 변수에 할당 된 첫 번째 값, 두 번째 매개 변수에 할당 된 두 번째 값 등)에 제공된 해당 매개 변수에 할당됩니다. 여기의 트릭에는 쉼표 "또는"콜론 ":"이 포함 된 값이 없습니다. APEX가 URL을 구문 분석 할 때 혼란스러워지기 때문에 두 가지 모두 부작용과 오류를 유발할 수 있습니다. 슬래시로 묶인 경우 쉼표를 사용합니다 (예 : \ 123,89.
  • : PrinterFriendly - YES (대문자!)로 설정하면 페이지를 PrinterFriendly-Mode로 전환하고 Printerfriendly 서식 파일을 사용하여 페이지를 렌더링합니다. 또한 조건의 PRINTER_FRIENDLY 변수를 사용하여 PrinterFriendly-Mode에서 영역 또는 기타 요소를 숨길 수 있습니다. 귀하의 경우에는

당신은에 Params을 사용하십시오 : ParamValues를 다음과 같이 :

P3_ITEM_1, P3_ITEM_2 : someValue_1을 someValue_2

Documentation

+0

고마워, 이미 새로운 정보. 그러나'ID '를 전달해야하며 이해할 수있는대로'REQUEST '에서 상수 텍스트 만 사용할 수 있으므로 작동하지 않습니다. 그것을 컨트롤의 가치로 보내는 유일한 방법은 무엇입니까? –

+0

URL을 동적으로 구성 할 수 있습니다 (여기서는 모든 목적). 매개 변수로 보낼 ID를 얻을 수 없다고 생각합니다. "컨트롤의 가치"란 무엇입니까? – Typo

관련 문제