식을 작성하면 용어 범위 가 여러 컨텍스트에서 사용되는 것을 확인할 수 있습니다. 범위는 식을 평가하는 데 사용할 데이터, 렌더링된 페이지의 텍스트 상자 집합, 토글을 기반으로 표시하거나 숨길 수 있는 보고서 항목 집합을 지정할 수 있습니다. 식 평가, 집계 함수 구문, 조건부 표시 여부 및 이러한 영역과 관련된 오류 메시지와 관련된 항목에서 용어 범위 가 표시됩니다. 범위의 의미를 구분하려면 다음 설명을 사용합니다.
데이터 범위 데이터 범위는 보고서 처리기가 보고서 데이터와 보고서 레이아웃을 결합하고 데이터를 표시할 테이블 및 차트와 같은 데이터 영역을 빌드할 때 사용하는 범위의 계층 구조입니다. 데이터 범위를 이해하면 다음을 수행할 때 원하는 결과를 얻을 수 있습니다.
집계 함수를 사용하는 식을 작성합니다. 집계할 데이터를 지정합니다. 보고서에서 식의 위치는 집계 계산 범위에 있는 데이터에 영향을 줍니다.
테이블 또는 행렬에 스파크라인 추가 차트 축의 최소 및 최대 범위를 지정하여 중첩된 인스턴스를 테이블 또는 행렬에 맞춥니다.
테이블 또는 행렬에 표시기 추가 계기가 중첩된 인스턴스를 테이블 또는 행렬에 맞출 수 있도록 최소 및 최대 배율을 지정합니다.
정렬 식 작성 여러 관련 보고서 항목 간에 정렬 순서를 동기화하는 데 사용할 수 있는 포함 범위를 지정합니다.
셀 범위 셀 범위는 셀이 속한 테이블릭스 데이터 영역의 행 및 열 그룹 집합입니다. 기본적으로 각 테이블릭스 셀에는 텍스트 상자가 포함됩니다. 텍스트 상자의 값은 식입니다. 셀의 위치는 식의 집계 계산에 지정할 수 있는 데이터 범위를 간접적으로 결정합니다.
보고서 항목 범위 보고서 항목 범위는 렌더링된 보고서 페이지의 항목 컬렉션을 나타냅니다. 보고서 프로세서는 데이터와 보고서 레이아웃 요소를 결합하여 컴파일된 보고서 정의를 생성합니다. 이 프로세스 중에 테이블 및 행렬과 같은 데이터 영역은 필요에 따라 확장되어 모든 보고서 데이터를 표시합니다. 그러면 컴파일된 보고서가 보고서 렌더러에서 처리됩니다. 보고서 렌더러는 각 페이지에 표시되는 보고서 항목을 결정합니다. 보고서 서버에서 각 페이지는 볼 때 렌더링됩니다. 보고서를 내보내면 모든 페이지가 렌더링됩니다. 보고서 항목 범위를 이해하면 다음을 수행할 때 원하는 결과를 얻을 수 있습니다.
토글 항목 추가 보고서 항목의 표시 유형을 제어하는 토글을 추가할 텍스트 상자를 지정합니다. 토글하려는 보고서 항목의 범위에 있는 텍스트 상자에만 토글을 추가할 수 있습니다.
페이지 머리글 및 바닥글에 식 작성 렌더링된 페이지에 표시되는 텍스트 상자 또는 기타 보고서 항목의 식에 값을 지정합니다.
범위를 이해하면 원하는 결과를 제공하는 식을 성공적으로 작성할 수 있습니다.
비고
보고서 작성기 및 SQL Server 데이터 도구의 보고서 디자이너에서 보고서 정의(.rdl)를 만들고 수정할 수 있습니다. 각 작성 환경은 보고서 및 관련 항목을 만들고, 열고, 저장하는 다양한 방법을 제공합니다. 자세한 내용은 microsoft.com 웹 의 보고서 디자이너 및 SSRS(보고서 작성기)에서 보고서 디자인을 참조하세요.
데이터 범위 및 데이터 계층 구조 이해
데이터 범위는 보고서 데이터 집합을 지정합니다. 데이터 범위에는 내재된 포함 관계가 있는 자연 계층 구조가 있습니다. 계층 구조의 상위 범위에는 계층 구조에서 더 낮은 범위가 포함됩니다. 다음 데이터 범위 목록은 대부분의 데이터에서 최소 데이터로 순서대로 계층 구조를 설명합니다.
데이터 세트 필터가 적용된 후의 데이터 세트 데이터 영역 또는 보고서 본문의 보고서 항목에 연결된 보고서 데이터 세트를 지정합니다. 집계에 사용되는 데이터는 데이터 세트 필터 식이 적용된 후 보고서 데이터 세트에서 가져옵니다. 공유 데이터 세트의 경우 이는 공유 데이터 세트 정의의 필터와 보고서의 공유 데이터 세트 인스턴스에 있는 필터를 모두 의미합니다.
데이터 영역 데이터 영역 필터 및 정렬 식이 적용된 후 데이터 영역의 데이터를 지정합니다. 그룹 필터는 데이터 영역에 대한 집계를 계산할 때 사용되지 않습니다.
그룹 필터가 적용된 후의 데이터 영역 그룹 부모 그룹 및 자식 그룹에 대해 그룹 식 및 그룹 필터가 적용된 후의 데이터를 지정합니다. 테이블의 경우 행 및 열 그룹입니다. 차트의 경우 계열 및 범주 그룹입니다. 범위 포함을 식별하기 위해 모든 부모 그룹에는 해당 자식 그룹이 포함됩니다.
중첩된 데이터 영역 중첩된 데이터 영역이 추가된 셀의 컨텍스트와 중첩된 데이터 영역 필터 및 정렬 식이 적용된 후 중첩된 데이터 영역의 데이터를 지정합니다.
중첩된 데이터 영역에 대한 행 및 열 그룹 중첩된 데이터 영역 그룹 식 및 그룹 필터가 적용된 후의 데이터를 지정합니다.
집계 함수를 포함하는 식을 작성할 때 포함 및 포함된 범위를 이해하는 것이 중요합니다.
셀 범위 및 식
범위를 지정할 때 집계 계산에 사용할 데이터를 보고서 프로세서에 지정합니다. 식 및 식의 위치에 따라 유효한 범위는 부모 범위라고도 하는 포함하는 범위 또는 자식 또는 중첩된 범위라고도 하는 포함된 범위일 수 있습니다. 일반적으로 집계 계산에서는 개별 그룹 인스턴스를 지정할 수 없습니다. 모든 그룹 인스턴스에서 집계를 지정할 수 있습니다.
보고서 프로세서는 보고서 데이터 세트의 데이터를 테이블릭스 데이터 영역과 결합하므로 그룹 식을 평가하고 그룹 인스턴스를 나타내는 데 필요한 행과 열을 만듭니다. 각 테이블릭스 셀의 텍스트 상자에 있는 식 값은 셀 범위의 컨텍스트에서 평가됩니다. 테이블릭스 구조에 따라 셀은 여러 행 그룹 및 열 그룹에 속할 수 있습니다. 집계 함수의 경우 다음 범위 중 하나를 사용하여 사용할 범위를 지정할 수 있습니다.
기본 범위 보고서 프로세서가 식을 평가할 때 계산 범위에 있는 데이터입니다. 기본 범위는 셀 또는 데이터 요소에 속하는 가장 안쪽 그룹 집합입니다. 테이블릭스 데이터 영역의 경우 집합에 행 및 열 그룹이 포함될 수 있습니다. 차트 데이터 영역의 경우 집합에는 범주 및 계열 그룹이 포함될 수 있습니다.
명명된 범위 식 범위에 있는 데이터 세트, 데이터 영역 또는 데이터 영역 그룹의 이름입니다. 집계 계산의 경우 포함 범위를 지정할 수 있습니다. 단일 식에서 행 그룹과 열 그룹 모두에 대해 명명된 범위를 지정할 수 없습니다. 표현식이 집계의 집계에 대한 것이 아니면, 포함된 범위를 지정할 수 없습니다.
다음 식은 SellStartDate와 LastReceiptDate 사이의 간격 연도를 생성합니다. 이러한 필드는 DataSet1과 DataSet2의 두 가지 데이터 세트에 있습니다. 집계 함수인 첫 번째 함수(보고서 작성기 및 SSRS)는 DataSet1에서 SellStartDate의 첫 번째 값과 DataSet2에서 LastReceiptDate의 첫 번째 값을 반환합니다.
=DATEDIFF("yyyy", First(Fields!SellStartDate.Value, "DataSet1"), First(Fields!LastReceiptDate.Value, "DataSet2"))도메인 범위 동기화 범위라고도 합니다. 중첩된 데이터 영역에 대한 식 평가에 적용되는 데이터 범위의 형식입니다. 도메인 범위는 중첩된 인스턴스를 정렬하고 쉽게 비교할 수 있도록 그룹의 모든 인스턴스에서 집계를 지정하는 데 사용됩니다. 예를 들어 값이 정렬되도록 테이블에 포함된 스파크라인의 범위와 높이를 맞출 수 있습니다.
보고서의 일부 위치에서 범위를 지정해야 합니다. 예를 들어 디자인 화면의 텍스트 상자에 사용할 =Max(Fields!Sales.Value,"Dataset1")데이터 세트의 이름을 지정해야 합니다. 다른 위치에는 암시적 기본 범위가 있습니다. 예를 들어 그룹 범위에서 텍스트 상자에 대한 집계를 지정하지 않으면 기본 집계 First가 사용됩니다.
각 집계 함수 항목에는 해당 용도에 유효한 범위가 나열되어 있습니다. 자세한 내용은 집계 함수 참조(보고서 작성기 및 SSRS)를 참조하세요.
테이블 데이터 영역에 대한 예제 집계 식
기본이 아닌 범위를 지정하는 식을 작성하는 데는 약간의 연습이 필요합니다. 다양한 범위를 이해하는 데 도움이 되도록 다음 그림과 표를 사용합니다. 이 그림은 판매 정보 테이블의 각 셀에 레이블을 지정하여 연도 및 분기 및 판매 지역별로 판매된 항목의 수량을 표시합니다. 행 및 열 그룹의 구조를 보여주는 행 핸들과 열 핸들에서 시각적 표시를 주목하세요. 이는 중첩된 그룹을 나타냅니다. 테이블에는 다음과 같은 구조가 있습니다.
모퉁이 셀과 열 그룹 머리글을 포함하는 세 개의 행이 포함된 테이블 머리글입니다.
Cat이라는 범주와 SubCat이라는 하위 범주를 기반으로 하는 두 개의 중첩된 행 그룹입니다.
연도에 따라 'Year'로 명명된 그룹과 분기에 따라 'Qtr'로 명명된 두 개의 중첩된 열 그룹입니다.
합계라는 레이블이 지정된 합계 열 1개.
판매 지역에 따른 Territory로 명명된 인접한 열 그룹 하나.
영토 그룹의 열 헤더는 표시를 위해 두 개의 셀로 분할되었습니다. 첫 번째 셀에는 영역 이름과 합계가 표시되고, 두 번째 셀에는 모든 판매에 대한 각 지역의 기여도를 계산하는 자리 표시자 텍스트가 있습니다.
데이터 세트의 이름이 DataSet1이고 테이블 이름이 Tablix1이라고 가정합니다. 다음 표에서는 셀 레이블, 기본 범위 및 예제를 나열합니다. 자리 표시자 텍스트의 값은 식 구문에 의해 표시됩니다.
| 셀 | 기본 범위 | 자리 표시자 레이블 | 텍스트 또는 자리 표시자 값 |
|---|---|---|---|
| C01 | Tablix1 | [합계(수량)] | 집계 및 범위=Sum(Fields!Qty.Value) |
| C02 | 외부 열 그룹 "연도" | [연도] ([YearQty]) |
=Fields!Year.Value=Sum(Fields!Qty.Value) |
| C03 | Tablix1 | [합계(수량)] | 합계=Sum(Fields!Qty.Value) |
| C04 | "피어 칼럼 그룹 'Territory'" | ([Total]) | 지역=Sum(Fields!Qty.Value) |
| C05 | 내부 그룹 "Qtr" | [Qtr] ([QtrQty]) |
Q=Fields!Qtr.Value=Sum(Fields!Qty.Value) |
| C06 | 동료 열 그룹 "Territory" | [지역] ([Tty]) [Pct] |
=Fields!Territory.Value=Sum(Fields!Qty.Value)=FormatPercent(Sum(Fields!Qty.Value,"Territory")/Sum(Fields!Qty.Value,"Tablix1"),0) & " of " & Sum(Fields!Qty.Value,"Tablix1") |
| C07 | 외부 행 그룹 "Cat" | [고양이] [합계(수량)] |
=Fields!Cat.Value=Sum(Fields!Qty.Value) |
| C08 | C07과 동일 | ||
| C09 | 외부 행 그룹 "Cat" 및 내부 열 그룹 "Qtr" | [합계(수량)] | =Sum(Fields!Qty.Value) |
| C10 | C07과 동일 | <<Expr>> | =Sum(Fields!Qty.Value) & ": " & FormatPercent(Sum(Fields!Qty.Value)/Sum(Fields!Qty.Value,"Tablix1"),0) & " of " & Sum(Fields!Qty.Value,"Tablix1") |
| C11 | 외부 행 그룹 "Cat" 및 열 그룹 "Territory" | <<Expr>> | =Sum(Fields!Qty.Value) & ": " & FormatPercent(Sum(Fields!Qty.Value)/Sum(Fields!Qty.Value,"Territory"),0) & " of " & Sum(Fields!Qty.Value,"Territory") |
| C12 | 내부 행 그룹 "Subcat" | [Subcat] [합계(수량)] |
=Fields!SubCat.Value=Sum(Fields!Qty.Value) |
| C13 | 내부 행 그룹 "Subcat" 및 내부 열 그룹 "Qtr" | [합계(수량)] | =Sum(Fields!Qty.Value) |
| C14 | 내부 행 그룹 "Subcat" | <<Expr>> | =Sum(Fields!Qty.Value) & ": " & FormatPercent(Sum(Fields!Qty.Value)/Sum(Fields!Qty.Value,"Cat"),0) & " of " & Sum(Fields!Qty.Value,"Cat") |
| C15 | 내부 행 그룹 "Subcat" 및 열 그룹 "Territory" | <<Expr>> | =Sum(Fields!Qty.Value) & ": " & FormatPercent(Code.CalcPercentage(Sum(Fields!Qty.Value),Sum(Fields!Qty.Value,"Cat")),0) & " of " & Sum(Fields!Qty.Value,"Cat") |
테이블릭스 데이터 영역에서 시각적 신호를 해석하는 방법에 대한 자세한 내용은 테이블릭스 데이터 영역 셀, 행 및 열(보고서 작성기) 및 SSRS를 참조하세요. 테이블릭스 데이터 영역에 대한 자세한 내용은 테이블릭스 데이터 영역 셀, 행 및 열(보고서 작성기) 및 SSRS를 참조하세요. 식 및 집계에 대한 자세한 내용은 보고서의 식 사용(보고서 작성기 및 SSRS) 및집계 함수 참조(보고서 작성기 및 SSRS)를 참조하세요.
스파크라인의 스케일 동기화
테이블 또는 행렬에 중첩된 스파크라인 차트의 가로 축에서 시간 간 값을 비교하려면 범주 그룹 값을 동기화할 수 있습니다. 이를 축 맞춤이라고 합니다. 축을 맞추는 옵션을 선택하면 보고서는 축의 최소값과 최대값을 자동으로 설정하고 모든 범주에 존재하지 않는 집계 값에 대한 자리 표시자를 제공합니다. 이렇게 하면 스파크라인의 값이 모든 범주에 걸쳐 정렬되고 집계된 데이터의 각 행에 대한 값을 비교할 수 있습니다. 이 옵션을 선택하면 식 평가의 범위를 도메인 범위로 변경합니다. 중첩된 차트의 도메인 범위를 설정하면 범례의 각 범주에 대한 색 할당도 간접적으로 제어됩니다.
예를 들어 주간 추세를 보여 주는 스파크라인에서 한 도시에는 3개월 동안 판매 데이터가 있고 다른 도시에는 12개월 동안의 판매 데이터가 있다고 가정합니다. 동기화된 축이 없으면 첫 번째 도시의 스파크라인은 단지 3개의 바만 포함하며, 이 바들은 훨씬 더 넓어져 두 번째 도시의 12개월 바 세트가 차지하는 공간과 동일한 공간을 차지하게 됩니다.
자세한 내용은 테이블 또는 행렬의 차트에서 데이터 정렬(보고서 작성기 및 SSRS)을 참조하세요.
표시기의 범위 동기화
표시기 집합에 사용할 데이터 값을 지정하려면 범위를 지정해야 합니다. 표시기가 포함된 데이터 영역의 레이아웃에 따라 범위 또는 포함 범위를 지정합니다. 예를 들어 범주 판매와 연결된 그룹 머리글 행에서 화살표 집합(위쪽, 아래쪽, 옆으로)은 임계값을 기준으로 판매 값을 나타낼 수 있습니다. 포함 범위는 표시기가 포함된 테이블 또는 행렬의 이름입니다.
자세한 내용은 동기화 범위 설정(보고서 작성기 및 SSRS)을 참조하세요.
페이지 머리글 또는 페이지 바닥글에서 범위 지정
보고서의 각 페이지에 다른 데이터를 표시하려면 렌더링된 페이지에 있어야 하는 보고서 항목에 식을 추가합니다. 보고서는 렌더링되는 동안 페이지로 분할되므로 렌더링 중에만 페이지에 있는 항목을 확인할 수 있습니다. 예를 들어 세부 정보 행의 셀에는 페이지에 많은 인스턴스가 있는 텍스트 상자가 있습니다.
이를 위해 ReportItems라는 전역 컬렉션이 있습니다. 현재 페이지의 텍스트 상자 집합입니다.
자세한 내용은 페이지 머리글 및 바닥글(보고서 작성기 및 SSRS) 및ReportItems 컬렉션 참조(보고서 작성기 및 SSRS)를 참조하세요.
드릴다운 및 조건부 가시성을 위한 전환 항목 지정
토글은 텍스트 상자에 추가되고 사용자가 클릭하여 다른 보고서 항목을 표시하거나 숨길 수 있는 더하기 또는 빼기 기호 이미지입니다. 대부분의 보고서 항목 속성에 대한 표시 유형 페이지에서 토글을 추가할 보고서 항목을 지정할 수 있습니다. 토글 항목은 표시하거나 숨길 항목보다 높은 포함 범위에 있어야 합니다.
테이블릭스 데이터 영역에서 텍스트 상자를 클릭하여 표를 확장하여 더 많은 데이터를 표시하는 드릴다운 효과를 만들려면, 그룹의 Visibility 속성을 설정하고 포함하는 그룹과 연결된 그룹 머리글의 텍스트 상자를 토글로 선택해야 합니다.
자세한 내용은 항목에 확장 또는 축소 작업 추가(보고서 작성기 및 SSRS)를 참조하세요.
정렬 순서를 동기화하는 정렬 식 지정
테이블 열에 대화형 정렬 단추를 추가할 때 공통 포함 범위가 있는 여러 항목에 대한 정렬을 동기화할 수 있습니다. 예를 들어 행렬의 열 머리글에 정렬 단추를 추가하고 포함하는 범위를 행렬에 바인딩된 데이터 세트의 이름으로 지정할 수 있습니다. 사용자가 정렬 단추를 클릭하면 행렬 행이 정렬될 뿐만 아니라 동일한 데이터 세트에 바인딩된 차트의 차트 계열 그룹도 정렬됩니다. 이러한 방식으로 해당 데이터 세트에 의존하는 모든 데이터 영역을 동기화하여 동일한 정렬 순서를 표시할 수 있습니다.
자세한 내용은 데이터 필터링, 그룹화 및 정렬(보고서 작성기 및 SSRS)을 참조하세요.
셀에서 Null 또는 0 값 숨기기
많은 보고서에서 그룹으로 범위가 지정된 계산은 0 또는 null 값이 있는 많은 셀을 만들 수 있습니다. 보고서의 혼란을 줄이려면 집계 값이 0인 경우 공백을 반환하는 식을 추가합니다. 자세한 내용은 식 예제(보고서 작성기 및 SSRS)에서 "Null 또는 0 값을 억제하는 예제"를 참조하세요.
또한 참조하십시오
식 예(보고서 작성기 및 SSRS)
그룹 식 예제(보고서 작성기 및 SSRS)
재귀 계층 그룹 만들기(보고서 작성기 및 SSRS)
목록(보고서 작성기 및 SSRS)
텍스트 및 자리 표시자 서식 지정(보고서 작성기 및 SSRS)