2016-06-08 1 views
0

프롬프트가 3 개 있습니다. 첫 번째 프롬프트에는 A & 값이 포함되어 있습니다. A를 선택하면 나머지 2 개의 프롬프트가 숨겨지고 B를 선택하면 2 개의 프롬프트가 표시됩니다. 모든 3 개의 프롬프트는 필수 항목입니다. 누구나이 시나리오를 달성하도록 도와 줄 수 있습니까?자동 제출이 Cognos에서 보고서를 생성하지 않도록하려면

+0

지금까지 시도한 적이 있습니까? – Darek

답변

2

조건부로 요소를 숨기거나 숨김 해제하는 방법을 이미 알고 있고 제출하지 않고 페이지를 새로 고치는 방법을 알고 싶다고 가정합니다.

문제에 대한 세 가지 솔루션이 있습니다

  1. 페이지
  2. 사용 숨겨진 사용하는 해결 방법을 라디오 버튼의 상태가 변경되었을 때 감지하고 다시 메시지 표시하기 위해 다시 메시지 버튼
  3. 를 사용하여 자바 스크립트 추가하기 값 프롬프트

방법 1 - 다시 메시지 버튼

보고서에 프롬프트 단추를 추가하고 '유형'속성을 'Reprompt'로 설정하면됩니다. 이 메서드는 사용자가 프롬프트 값을 변경 할 때마다 재기록 단추를 클릭해야하므로이 방법을 사용하는 것은 좋지 않습니다.

방법 2 - 자바 스크립트 API

이 메소드는 값 프롬프트 값을 변경할 때마다 페이지를 다시 메시지 표시하기 위해 COGNOS 지원하는 자바 스크립트 API를 사용합니다. API는 버전 10.2 이상에서만 사용할 수 있습니다.

  1. 값 프롬프트에 이름을 지정하십시오. 이것은 'Name'특성 프롬프트에 지정됩니다. 이 튜토리얼에서는 'valuePrompt'라는 이름을 사용하려고합니다.
  2. 'HTML 항목'을 보고서에 추가하십시오.
  3. 를 열고 HTML 항목 및 다음 코드를 붙여 넣습니다 다음 다시 메시지 조치는 프롬프트가 새로운 값으로 변경 될 때 발생하도록
<script> 
var report = cognos.Report.getReport('_THIS_'); 
var valuePrompt = report.prompt.getControlByName('valuePrompt'); 

var currentValues = (valuePrompt.getValues().length == 0) ? [{'use':''}] : valuePrompt.getValues(); 
valuePrompt.setValidator(validateValuePrompt); 

function validateValuePrompt(values) { 
    if (values && values.length > 0) { 
     if (values[0].use != currentValues[0].use) { 
      currentValues = values; 
      report.sendRequest(cognos.Report.Action.REPROMPT); 
     } 
    } else { 
     currentValues = [{'use':''}]; 
    } 
    return true; 
} 
</script> 

코드는 최적화되어 있습니다. 이렇게하면 시스템에서 프롬프트가 유효성을 검사 할 때마다 여러 재실행을 방지하므로 매우 자주 발생할 수 있습니다.

방법 3 - 숨겨진 종속 프롬프트

이 기술은 계단식 프롬프트 기능을 사용하여 더미 값 프롬프트 프롬프트를 매서 모든 값 프롬프트 변화에 대한 페이지를 reprompting에 COGNOS를 속여 숨겨진 값 프롬프트를 사용합니다.

  1. 프롬프트 새 값을 추가
  2. 새로운 프롬프트의 '캐스케이드 소스'속성을 설정
  3. '아니오'에 새 메시지의 '필수'속성이 기존의 값 프롬프트의 매개 변수로 설정
  4. 새 프롬프트 숨기기
  5. 원래 값 프롬프트의 '자동 숨김'속성을 '예'로 설정하십시오.

값 프롬프트를 변경할 때마다 페이지가 다시 프롬프트되어 숨겨진 프롬프트가 새로 고쳐집니다.

+0

인상적인 대답입니다. – Darek

+0

안녕하세요 존슨. 두 번째 해결책은 내가 기대했던 것입니다. 그것은 환상적으로 일했습니다! 도와 주셔서 감사합니다! – Saraban

+0

@Saraban 도움이된다면 답변으로 받아 들여주세요. –

관련 문제