1. Cognos 프롬프트에서의 자바스크립트
자바스크립트는 프롬프트에서 다음과 같은 상황에서 사용된다.
1. 프롬프트 페이지를 보여주기 전에 프롬프트를 수정하고 싶을 때
2. 유효성 체크가 필요할 때
3. 사용자가 완료 버튼을 누른 후의 프롬프트 처리가 필요할 때
자바 스크립트는 프롬프트 페이지에 있는 한개 이상의 HTML 항목에 작성해야 한다. HTML 항목은 프롬프트가 위치한 후에 작성되어야 한다. 그리고 자바 스크립트는 <script> 와 </script> 태그 사이에 작성되어야 한다. 또한 HTML 항목에는 버튼이나 다른 HTML 소스의 정의가 포함된다.
2. 프롬프트 가져오기
프롬프트를 가져오기 위해서는 먼저 전체 폼 객체를 가져와야 한다.
var form = getFormWarpRequest();
2.1 표준 프롬프트
표준 프롬프트 객체는 다음의 Naming 규칙을 따르는
formWarpRequest 객체의 속성으로 가져올 수 있다.
List Box _oLstChoices<prompt name>
Drop Down List _oLstChoices<prompt name>
Radio Button Group _oLstChoices<prompt name>
Check Box Group _oLstChoices<prompt name>
Date Edit Box txtDate<prompt name>
ex) ListBox 프롬프트를 가져오기 위한 코드
var form = getFormWarpRequest();
var listB = form._oLstChoicesXYZ;
2.2 그 밖의 프롬프트
모든 그밖의 프롬프트 객체는 프롬프트에 이름을 지정한 <span> 태그를 감싸고 getElementById() 함수나 getElementsByTagName() 함수를
사용해서 span 태그에 접근함으로써 가져올 수 있다.
3. 프롬프트의 공통 동작
3.1 프롬프트 페이지 표시 전에 프롬프트 수정
프롬프트를 수정하기 위해서 HTML 항목을 만든 후 프롬프트를 가져오고 그 프롬프트의 값을 지정하는
스크립트를 작성한다..
XYZ라는
이름의 프롬프트에 대한 예제이다.
3.1.1 Text Box 에 값 지정하기
Text Box 프롬프트를 만들고 HTML 항목에 다음과 같은 스크립트를 작성한다.
var
form = getFormWarpRequest();
var textB
= form._textEditBoxXYZ;textB.value="First value";
canSubmitPrompt();
3.1.2 Multi
Select List Box 에서 항목 선택하기
값 프롬프트를 생성한 후 Multi-Select 속성을 예로 변경한다. 이 예제는 리스트에서 3번째 값을 선택하는 예제이다.
var form =
getFormWarpRequest();
var listB =
form._oLstChoicesXYZ; listB.options[2].selected=true;
canSubmitPrompt();
3.1.3 Drop Down
List Box 에서 위에 두줄 지우기
값 프롬프트를 생성하면 Select UI 속성이
기본적으로 DropDownList 로 지정된다. 첫번째 행은
파라미터명, 두번째행은 대쉬(-)이고 실질적인 데이터는 세번째
행부터 시작된다. 그래서 어떤 사용자는 위에 두 행을 지우길 원한다.
var form = getFormWarpRequest();
var dropDownL = form._oLstChoicesXYZ;
dropDownL.remove(1);
dropDownL.remove(0);dropDownL.removeAttribute("hasLabel"); // Cognos 8.3/8.4 에서만 필요
canSubmitPrompt();
3.1.4 Finish 버튼 사용
Finish 버튼은 프롬프트가 있는 페이지에서 사용자가 모든 필수 프롬프트의 값을 선택 했을 때만 사용할 수 있다.
여기에는 스크립트로 프롬프트의 초기값이 지정하는 것에 대한 예제이다. 모든 프롬프트 값을 선택하고
난 후 canSubmitPrompt() 함수를 사용해서 Finish 버튼을 누른 기능을 사용할 수 있다.
ex) 2개 프롬프트가 있는 프롬프트 페이지 예제
var form = getFormWarpRequest();
var textB = form._textEditBoxABC;
textB.value = "Hello";
var listB = form._oLstChoicesDEF;
listB.options[0].selected=true;
canSubmitPrompt();
3.2 사용자가
Finish 버튼을 클릭한 후의 실행 스크립트
기본적으로 Finish 버튼을 누르면 선택된 프롬프트를 가지고 보고서가 실행된다. 사용자가 Finish 버튼을 눌렀을 때 보고서가 실행되기 전 부가적인
동작을 실행하기 위해서는 다음과 같은 맞춤형 Finish 버튼으로 대체해야 한다.
1. 동작을 수행하기 위한 자바스크립트를 정의한다.
2. 위의 기능을 수행하기 위한 새로운 버튼을 정의한다.
3. 기존의 완료 버튼을 지운다.
<input
type="BUTTON" class="clsPromptButton"
onClick="fillTextBox()" value="Finish">
<script>
function fillTextBox() {
var form = getFormWarpRequest();
var list = form._oLstChoicesABC;
var textBox = form._textEditBoxXYZ;
for (i = 0; i < list.length; i++) {
if (list.options[i].selected) {
textBox.value
= list.options[i].value;
break;
}
}
promptButtonFinish();
}
</script>
댓글 없음:
댓글 쓰기