2016-08-19 5 views
1

프롬프트가 표시되는 목록 보고서가 있습니다. 그러나 보고서에서 두 개의 열을 사용자가 선택한 행을 기준으로 차트의 필터로 사용하려고합니다. cognos에서 이것을 실행할 수 있습니까? 어떤 제안이라도 환영합니다.Cognos 10.2에서 클릭 가능한 테이블/목록 만들기

예 : 목록 보고서 :

주, 제품, 수익

A, A, 1

A, B, 2

A, C, 3

B, d, 4

따라서 사용자가 행을 클릭하면 (예 : fi 먼저) A와 a는 아래 차트의 필터로 사용되어야합니다.

답변

1

두 번째 열을 HTML 링크로 변환하는 것이 한 가지 방법입니다. 링크는 몇 가지 자바 스크립트를 해고 그 다음을 수행 할 클릭 할 때 :

  1. 는 프롬프트 (숨겨진 하나 또는 표시)
  2. 가 다시 메시지 액션
을 실행 채우기 위해 두 번째 열의 값 전달 사용

reprompt는 클릭에 해당하는 값을 사용하여 차트를 다시 그립니다.

데이터 항목을 링크로 변환하려면 HTML 태그의 양쪽에있는 HTML 태그를 추가하면됩니다. . 데이터 항목이 [Query1을이었다 경우

[항목] 다음 변환 된 버전이 될 수 있습니다

목록 보고서에
'<a href="#" onclick="fireJS(''' + [Presentation].[Location].[Item] + ''')">' + [Presentation].[Location].[Location Number] + '</a>' 

이있는 HTML 항목을 통해 페이지 드래그 잠금을 해제합니다. HTML 항목의 'Source Type'속성을 'Data Item Value'로 설정하고 새로 변환 된 데이터 항목을 'Data Item Value'속성에 설정하십시오.

클릭 한 값을 저장할지 묻는 메시지가 필요합니다. 이것은 단지 텍스트 프롬프트 일 수 있습니다. 이것을 넣을 수있는 가장 좋은 장소는 목록 페이지 바닥 글입니다. JavaScript로 작업하려면 name 속성을 지정해야합니다. 아래 코드에서 'textPrompt'라고 부릅니다.

클릭 이벤트를 처리하기 위해 일부 JavaScript가 필요합니다. 지정된 링크가 'fireJS'라는 함수를 실행하고 클릭 한 값을 전달합니다. 자바 스크립트를 유지하려면 목록 페이지 바닥 글에 새 HTML 항목이 필요합니다. 프롬프트 뒤에 나타나야합니다.

클릭의 가치를 읽고 텍스트 프롬프트를 채우고 페이지를 재촉하는 코드는 다음과 같습니다.

<script> 
var report = cognos.Report.getReport('_THIS_'); 
var textPrompt = report.prompt.getControlByName('textPrompt'); 

function fireJS(value) { 
    textPrompt.setValues([{'use':value}]); 
    report.sendRequest(cognos.Report.Action.REPROMPT); 
} 
</script> 

차트가 textPrompt의 값을 기반으로 필터링하는 경우 차트는 선택 항목을 반영하는 데이터로 새로 고침됩니다.

참고 : 프롬프트 페이지 및 JavaScript 개체를 목록 페이지 바닥 글에 넣는 것이 좋습니다. 이것에 대한 좋은 이유가 있습니다. 기본적으로 Cognos는 한 번에 20 개의 레코드 만 표시하는 HTML 목록 출력을 페이지로 표시합니다. 프롬프트와 자바 스크립트를 목록 아래에 배치하면 출력의 마지막 페이지에 도달 할 때까지 둘 다 렌더링되지 않습니다.그때까지는 아무 기능도 작동하지 않습니다. 이러한 개체를 목록 페이지 바닥 글에 넣음으로써 모든 페이지에 렌더링되도록 보장했습니다.