2012-07-02 5 views
1

저는 Micrososft SQL Reporting Services에서 보고서를 작성하고 있으며 startDate 및 endDate라는 두 개의 날짜 필드가 있습니다.한 달 제한 -보고 서비스

적어도 30 일 (또는 한 달) 동안 기간을 제한해야합니다. 예를 들어 startDate가 2012/01/01이고 endDate가 2012/02/02 인 경우 오류 메시지가 표시되고, 그렇지 않으면 (차이가 30 일 미만인 경우) 계속 진행할 수 있습니다. 보고 서비스에서 어떻게 할 수 있습니까?

+0

동적 값 (E.G., 1 - 5 일, 6 - 10 일 ... 등)으로 드롭 다운 목록을 사용하는 것에 대해 생각해 보셨습니까? – Kane

+0

VB 프로그램을 작성하여 매개 변수를 먼저 확인하는 보고서를 호출 할 수 있습니다. – SarekOfVulcan

답변

2

데이터 세트를 사용하여 startDate 매개 변수를 기반으로 endDate 매개 변수의 기본값을 제공 할 수 있습니다.

DefaultStartDate라는 데이터 집합을 추가하십시오. 쿼리 텍스트 설정 :

select DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0) as [startDate]; 

startDate라는 매개 변수를 추가하십시오. 설정 날짜/시간에 종류와 DefaultStartDate 쿼리에서 기본 값을 얻을 :

Default Values/Dataset=DefaultStartDate/Value=startDate

는 데이터 집합의 이름 ValidEndDates을 추가합니다. 다음과 같이 쿼리 텍스트를 설정하여 시작일을 기준으로 유효한 종료일 목록을 생성하십시오.

with A as 
(select 1 as i UNION ALL select i+1 from A where i<30) 
select DATEADD(dd, i, @startDate) as [endDate] from A; 

매개 변수 endDate를 추가하십시오.

Available Values/DataSet=ValidEndDates/Value=endDate/Label=endDate

1

이 오래된 질문이지만 답이있다 : 날짜/시간으로 설정 유형과는 ValidEndDates 데이터 집합에서 사용 가능한 값을 얻는다. 솔루션에 대한 자세한 설명은 Report Properties에 코드를 작성하고 매개 변수의 유효성을 검사하는 코드가 포함 된 숨겨진 매개 변수를 추가하고 DataSet에 조건부 표현식을 추가하는 것입니다. 자세한 설명은 다음 링크를 참조하십시오. https://gugiaji.wordpress.com/2012/03/26/easy-step-by-step-ssrs-parameter-validation-using-code