JavaScript에서 런타임에 Report Studio 보고서에 대해 sql에서 반환 할 행 수를 얻으려면 어떻게해야합니까? 그 목적은 행 제한을 초과하여 보고서를 종료하고 데이터 볼륨을 줄이는 프롬프트를 다시 입력하라는 경고 메시지를 사용자에게 알리는 것입니다. 이렇게하면 사용자는 보고서를 다시 실행하지 않고도 새 프롬프트로 보고서를 실행할 수 있습니다. 반환되는 최대 행 수를 제한하는 몇 가지 옵션을 찾을 수 있지만 모두 오류가있는 보고서를 종료하는 것입니다.실행 횟수 계산 (Cognos Javascript에서)
1
A
답변
3
다른 해결책을 제안 할 수 있습니다. Javascript없이. 행 수에 따라 조건 블록을 만듭니다.
- 는
Count([Your field]) for report
- 를 쿼리에이 새로운 쿼리 항목과 싱글 추가 값으로 쿼리 항목을 추가합니다.
- 페이지의 기본 쿼리에 대한 쿼리 속성을 설정하십시오.
- 기본 쿼리의 처리 속성을 "제한된 로컬"로 설정하십시오.
조건부 블록을 새로운 변수와 함께 추가하십시오. 부울 값
[Your query].[Your new field] > 1000
- 조건부 블록의 "아니요"페이지와 "예"페이지의 행 제한에 대한 메시지를 보냅니다.
이 솔루션은 Excel 출력을 사용하는 경우에도 작동합니다.
-2
행에 HTML 항목을 추가 할 수 있습니다. 소스 유형 = 보고서의 표현 이
'<script language="javascript">
if ('+number2string (RowNumber())+'>500){
//Put here code that stops page loading
}
</script>'
안에 넣어, 나는 부하에게 COGNOS 페이지를 중지하는 방법을 모르겠어요. 일반적인 방법은 작동하지 않습니다. 보고서의 일부 (전체 목록)를 숨기거나 지울 수 있지만 Cognos는 모든 데이터를로드합니다.
내 보고서에는 여러 개의 자식 드릴 스루 보고서가 있으며 각 보고서에는 네 가지 보고서보기가 있습니다. 당신의 생각은 훌륭하지만 그것은 내게 많은 일을 의미하며 나의 쥐는 그것을 좋아하지 않을 것입니다. 나는 한번도 프롬프트 페이지에서 html 항목을 복사 할 수 있기 때문에 코딩 된 이후로는 여전히 자바 스크립트 솔루션을 선호합니다. – chemicalkt
자바 스크립트는 클라이언트 측 스크립팅 언어입니다. 기껏해야 페이지를 렌더링하지 못하게 할 수는 있지만 대량의 쿼리는 여전히 서버에서 실행됩니다. 행 제한이없는 CSV 또는 다른 출력 형식을 통해 전달하는 것이 어떨까요? – toddsonofodin
의미가 있습니다. 나는 해결 방법을 생각했다. 나는 특정 프롬프트의 수를 기반으로 반환 행을 대략적으로 계산하고 특정 프롬프트의 최대 개수 선택을 제한하는 자바 스크립트 메시지를 넣습니다. 내 사용자는 DB 세션이 끝나기 위해 최소한 기다려야하는 X 행 수 제한보다 더 좋아했습니다. 또한 동일한 실행에서 새 프롬프트로 보고서를 다시 실행할 수 있습니다. 질문의 시나리오에 충실 Alexey의 답변은 내 경우에는 많은 작업을 의미한다고해도 솔루션 인 것 같습니다. – chemicalkt