2014-03-31 3 views
1

JavaScript에서 런타임에 Report Studio 보고서에 대해 sql에서 반환 할 행 수를 얻으려면 어떻게해야합니까? 그 목적은 행 제한을 초과하여 보고서를 종료하고 데이터 볼륨을 줄이는 프롬프트를 다시 입력하라는 경고 메시지를 사용자에게 알리는 것입니다. 이렇게하면 사용자는 보고서를 다시 실행하지 않고도 새 프롬프트로 보고서를 실행할 수 있습니다. 반환되는 최대 행 수를 제한하는 몇 가지 옵션을 찾을 수 있지만 모두 오류가있는 보고서를 종료하는 것입니다.실행 횟수 계산 (Cognos Javascript에서)

답변

3

다른 해결책을 제안 할 수 있습니다. Javascript없이. 행 수에 따라 조건 블록을 만듭니다.

  1. Count([Your field]) for report 
    
  2. 를 쿼리에이 새로운 쿼리 항목과 싱글 추가 값으로 쿼리 항목을 추가합니다.
  3. 페이지의 기본 쿼리에 대한 쿼리 속성을 설정하십시오.
  4. 기본 쿼리의 처리 속성을 "제한된 로컬"로 설정하십시오.
  5. 조건부 블록을 새로운 변수와 함께 추가하십시오. 부울 값

    [Your query].[Your new field] > 1000 
    
  6. 조건부 블록의 "아니요"페이지와 "예"페이지의 행 제한에 대한 메시지를 보냅니다.

이 솔루션은 Excel 출력을 사용하는 경우에도 작동합니다.

+0

내 보고서에는 여러 개의 자식 드릴 스루 보고서가 있으며 각 보고서에는 네 가지 보고서보기가 있습니다. 당신의 생각은 훌륭하지만 그것은 내게 많은 일을 의미하며 나의 쥐는 그것을 좋아하지 않을 것입니다. 나는 한번도 프롬프트 페이지에서 html 항목을 복사 할 수 있기 때문에 코딩 된 이후로는 여전히 자바 스크립트 솔루션을 선호합니다. – chemicalkt

+1

자바 스크립트는 클라이언트 측 스크립팅 언어입니다. 기껏해야 페이지를 렌더링하지 못하게 할 수는 있지만 대량의 쿼리는 여전히 서버에서 실행됩니다. 행 제한이없는 CSV 또는 다른 출력 형식을 통해 전달하는 것이 어떨까요? – toddsonofodin

+0

의미가 있습니다. 나는 해결 방법을 생각했다. 나는 특정 프롬프트의 수를 기반으로 반환 행을 대략적으로 계산하고 특정 프롬프트의 최대 개수 선택을 제한하는 자바 스크립트 메시지를 넣습니다. 내 사용자는 DB 세션이 끝나기 위해 최소한 기다려야하는 X 행 수 제한보다 더 좋아했습니다. 또한 동일한 실행에서 새 프롬프트로 보고서를 다시 실행할 수 있습니다. 질문의 시나리오에 충실 Alexey의 답변은 내 경우에는 많은 작업을 의미한다고해도 솔루션 인 것 같습니다. – chemicalkt

-2

행에 HTML 항목을 추가 할 수 있습니다. 소스 유형 = 보고서의 표현 이

'<script language="javascript"> 
if ('+number2string (RowNumber())+'>500){ 
//Put here code that stops page loading 
} 
</script>' 

안에 넣어, 나는 부하에게 COGNOS 페이지를 중지하는 방법을 모르겠어요. 일반적인 방법은 작동하지 않습니다. 보고서의 일부 (전체 목록)를 숨기거나 지울 수 있지만 Cognos는 모든 데이터를로드합니다.