나는 Cognos에서 FromDate와 Todate라는 두 개의 날짜 프롬프트를 가지고 있습니다. FromDate는 항상 첫 번째 주 (즉, 월요일)이고 ToDate는 그 주 마지막 날 (예 : 일요일)이어야합니다. 어떤 도움을 주시면 감사하겠습니다. 감사Cognos에서 구현하는 첫 주 첫날과 마지막 날
답변
FROMDATE
다음 표현식은 지난 주 월요일을 반환합니다
다음 FROMDATE 값 다음 일요일 거기에서 당신이 얻을 수있는_add_days(current_date, (-1 * _day_of_week(current_date,2)) - 7)
TODATE
_add_days([FromDate],6)
유일한 문제는 월요일에 보고서를 실행할 때 원하는 범위입니다. 위의 표현을 사용하면 보고서는 월요일에 실행될 때 추가 주간으로 돌아갑니다. 이전 월요일 FROMDATE 이전 월요일되며 TODATE 그냥 현재 전 일요일 될 것이 표현식을 사용하여 월요일에 실행하면
CASE _day_of_week(current_date,1)
WHEN 1 THEN _add_days(current_date, -1 * _day_of_week(current_date,2))
ELSE _add_days(current_date, (-1 * _day_of_week(current_date,2)) - 7)
END
: 당신이 그에 따라 FROMDATE 식을 월요일 테스트하고 변경할 수 있습니다이 문제를 얻으려면 날짜.
날짜 프롬프트에 대해 프롬프트 기본값을 동적으로 설정하는 유일한 방법은 JavaScript를 사용하는 것입니다. 고맙게도 Cognos는 버전 10.2.1 이상에서 완벽하게 지원되는 JavaScript 프롬프트 API를 제공했습니다.
프롬프트 개체를 Cognos JavaScript API를 통해 참조하려면 프롬프트에 고유 한 이름을 지정해야합니다. 다음 코드에서는 "FromDate"프롬프트의 이름이 "FromDate"이고 "ToDate"프롬프트의 이름이 "ToDate"라고 가정했습니다.
새 HTML 개체에 다음 코드를 삽입하십시오. 프롬프트 개체 뒤에 HTML 개체가 나타나는지 확인하십시오.
<script>
var report = cognos.Report.getReport('_THIS_');
var FromDate = report.prompt.getControlByName('FromDate');
var ToDate = report.prompt.getControlByName('ToDate');
var today = new Date();
var fromdate = new Date();
var todate = new Date();
fromdate.setDate(today.getDate() - (today.getDay() + 6));
todate.setDate(today.getDate() - today.getDay());
var fromdatestring = fromdate.getFullYear() + '-' + ("0" + (fromdate.getMonth() + 1)).slice(-2) + '-' + ("0" + fromdate.getDate()).slice(-2);
var todatestring = todate.getFullYear() + '-' + ("0" + (todate.getMonth() + 1)).slice(-2) + '-' + ("0" + todate.getDate()).slice(-2);
FromDate.addValues([{'use':fromdatestring}]);
ToDate.addValues([{'use':todatestring}]);
</script>
대단히 감사합니다. 이것은 나의 요구 사항을 충족시킨다. 지금 (20/03/2015)이 보고서를 실행하면 FromDate를 (01/26/2015)로, ToDate를 (02/01/2015)으로 볼 수 있습니다. 다음주에이 보고서를 실행하면 전 날짜로 생각합니다. 2011 년 2 월 10 일에 FromDate가 2012 년 2 월 2 일이어야하고 ToDate가 2015 년 2 월 8 일이어야한다고 가정합니다. 내가 틀렸다면 나를 바로 잡아주세요. 감사합니다 –
그것은 자동으로 조정해야합니다. 보고서를 일요일에 실행하면 최신 월요일을 시작일로 선택하고 현재 날짜를 종료일로 선택합니다. 예를 들어, 2015-02-08에 실행하면 2015-02-02가 "시작 날짜"로, 2015-02-08이 "종료 날짜"로 반환됩니다. 이것은 당신이 원하는 것일 수도 아닐 수도 있습니다. 이 경우 다른 주에 돌아가려면 일요일에 실행될 때 각 날짜에 대해 추가로 7 일을 빼기 위해 수식을 수정하는 로직을 사용해야합니다. – Johnsonium
그것은 자동으로 주 월요일과 일요일 right.I에 다음 주 (02/09 ~ 02/15)에 다음주 보고서를 열면, 내가 기본적으로 FromDate로 볼 수 있기를 바랍니다./2015) 및 ToDate (20/02/2015). 나는 그날부터 단지 지난주의를 원한다. –
- 1. 관계 대수학 첫날과 마지막 날
- 2. 한 달에 첫날과 마지막 날 가져 오기
- 3. 몇 주 동안 첫날과 마지막 요일에 오기
- 4. 첫날과 마지막 요일
- 5. 윤년의 마지막 날, 주 53 또는 1?
- 6. 오라클은 특정 분기의 첫날과 마지막 날을 찾습니다.
- 7. arb가 주어지면 1 주일의 첫날과 마지막 날의 날짜를 얻으려고합니다. 날짜
- 8. MySQL에서 마지막 날, 주, 월 및 연도의 데이터 가져 오기
- 9. 마지막 날 나방을 선택
- 10. 지난 달 마지막 날
- 11. 당월 마지막 날?
- 12. .NET의 월 마지막 날
- 13. VLOOKUP 달의 마지막 날
- 14. NetSuite 수식이 지난 달의 첫 번째/마지막 날 사이에 검색됩니다.
- 15. Redshift에서 지난 달의 첫 번째 날과 마지막 날
- 16. 다음 해 첫날과 같은 요일
- 17. Moment JS 월 마지막 날
- 18. SQL - 유연성이있는 전주의 마지막 날 결정
- 19. Jquery datebox 달력 주 시작 날
- 20. 현지 푸시 알림 월 마지막 날
- 21. 토요일에 일요일의 첫 번째 요일을 시작하고 토요일의 마지막 주 마지막 날을 시작합니다.
- 22. 가장 간단한 방법 JodaTime을 사용하여 매월 첫날과 마지막 날을
- 23. 다음 주 마지막 날은
- 24. 마지막 주 수요일을 얻으려면
- 25. 4 주 기간의 첫 번째 날짜와 마지막 날짜를 가져옵니다.
- 26. 달의 첫 번째 토요일과 지난 주 마지막 금요일의 가져 오기
- 27. 취할 기능이 필요합니다. 요일의 첫 번째 요일과 마지막 요일입니다.
- 28. Cognos에서 여러 의견을보고 함
- 29. MySQL의 CURDATE은() - yesteday 달의 마지막 날
- 30. 이전 달에서 마지막 날 삭제 datepicker
답변 해 주셔서 감사합니다. 그러나 우리는 이것을 Value Prompt에만 사용할 수 있다고 생각합니다. 두 개의 데이터 항목으로 쿼리를 만들고 논리를 사용했습니다. 이 작품. 그러나 우리는 이것을 Date Prompts에 사용할 수 있습니다. 이 날짜 프롬프트를 사용할 수 있으면 기본 월요일 및 일요일을 볼 수 있으며 원하는 경우 다른 날짜를 선택할 수도 있습니다. 하지만 지금은 그렇게 일어나지 않습니다. 값 프롬프트에서 다른 날짜를 선택할 수 없습니다 .Pl advice –
날짜 프롬프트를 동적으로 설정하는 유일한 방법은 JavaScript를 사용하는 것입니다. 10.2부터 Cognos는 지원되는 JavaScript API를 제공하여 기본값을 설정하는 데 사용할 수 있습니다. 다음 URL을 문서화합니다. http://www-01.ibm.com/support/knowledgecenter/SSEP7J_10.2.0/com.ibm.swg.ba.cognos.ug_cr_rptstd.10.2.0.doc/c_prmpt_api_overview.html. 시간을 좀주세요. 코드를 포함하는 또 다른 대답을 추가하겠습니다. – Johnsonium