본문 바로가기

Programming

리포트 팁

##파라미터를 넘겨주는법
Dim PS As Microsoft.Reporting.WinForms.ReportPageSettings

=.GetDefaultPageSettings
Dim RP As New Microsoft.Reporting.WinForms.ReportParameter("sttdate", "2007-01-01", True)
Dim RPA(1) As Microsoft.Reporting.WinForms.ReportParameter
RPA(0) = RP
RP = New Microsoft.Reporting.WinForms.ReportParameter("enddate", "2007-12-31", True)
RPA(1) = RP
.SetParameters(RPA)


필드식
=fields!컬럼명.value    일반값 출력
=fields!컬럼명.value & " " & fields!컬럼명.value   문자열붙이기
=IIf(Fields!Cost.Value > Fields!Revenue.Value, "Red", "Black")

코드 탭에서 사용자 지정 코드에 코드를 입력합니다.
포함 코드의 메서드는 전역적으로 정의된 Code 멤버를 통해 사용할 수 있습니다. Code 멤버 및 메서드 이름을 참조하여 이러한 메서드에 액세스합니다. 다음 예에서는 StandardCost 필드 값을 달러 값으로 변환하는 ToUSD 메서드를 호출합니다.
=Code.ToUSD(Fields!StandardCost.Value)


DateAdd 함수는 단일 매개 변수를 기반으로 날짜 범위를 제공하는 데 유용합니다. 다음 식에서는 StartDate라는 매개 변수에서 6개월 후의 날짜를 제공합니다.
 코드 복사
=DateAdd(DateInterval.Month, 6, Parameters!StartDate.Value)

다음 식에서는 특정 날짜에 대한 연도를 표시하는 Year 함수를 포함합니다. 이 함수를 사용하여 날짜를 그룹화하거나 연도를 일련의 날짜 레이블로 표시할 수 있습니다. 이 식은 주문 날짜 그룹에 해당하는 연도를 제공합니다.
 코드 복사
=Year(Fields!OrderDate.Value)

=Format(Parameters!StartDate.Value, "D") & " through " & 
Format(Parameters!EndDate.Value, "D")


Right, Len 및 InStr 함수는 부분 문자열을 반환하는 데 유용합니다. 예를 들어 DOMAIN\username에서 사용자 이름만 잘라서 반환할 수 있습니다. 다음 식에서는 User라는 매개 변수에서 백슬래시(\\) 문자의 오른쪽에 있는 문자열 부분을 반환합니다.
 코드 복사
=Right(Parameters!User.Value, Len(Parameters!User.Value) -
InStr(Parameters!User.Value, "\"))
다음 식에서는 Visual Basic 함수 대신 .NET Framework String 클래스의 멤버를 사용한 것으로 위의 값과 동일한 값을 반환합니다.
 코드 복사
=Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("\")+1,
Parameters!User.Value.Length-Parameters!User.Value.IndexOf("\")-1)


=Iif(Fields!LineTotal.Value > 100, True, False)


Iif(Fields!PctComplete.Value >= .8, "Green",
Iif(Fields!PctComplete.Value >= .5, "Amber", "Red"))


=Switch(Fields!PctComplete.Value >= .8, "Green",
Fields!PctComplete.Value >= .5, "Amber", Fields!PctComplete.Value <
.5, "Red")


Sum 함수는 그룹 또는 데이터 영역에서 값의 합계를 구합니다. 이 함수는 테이블 그룹의 머리글 또는 바닥글에서 유용하게 사용됩니다. 다음 식에서는 Order 그룹 또는 데이터 영역에 데이터의 합계를 표시합니다.
 코드 복사
=Sum(Fields!LineTotal.Value, "Order")


RowNumber 함수를 포함하는 식이 데이터 영역의 텍스트 상자에 사용되는 경우 식이 나타나는 텍스트 상자의 각 인스턴스에 대해 행 번호를 표시합니다. 이 함수는 테이블에서 행 번호를 지정하는 데 유용합니다. 또한 행 번호를 기반으로 페이지를 나누는 등 더욱 복잡한 작업에 유용합니다. 자세한 내용은 이 항목 뒷부분의 "페이지 나누기"를 참조하십시오.
다음 식에서는 가장 바깥쪽 데이터 영역의 첫 번째 행에서 마지막 행까지 행 번호를 표시합니다. Nothing 키워드는 함수가 가장 바깥쪽 데이터 영역의 첫 번째 행부터 계산을 시작하는 것을 표시합니다. 자식 데이터 영역에서 계산을 시작하려면 데이터 영역의 이름을 사용합니다.
 코드 복사
=RowNumber(Nothing)


다음 식에서는 보고서 이름과 보고서가 실행된 시간을 제공합니다. 식은 보고서 바닥글이나 보고서 본문의 텍스트 상자에 배치할 수 있습니다. 시간 형식은 .NET Framework 형식 문자열(간단한 날짜)로 지정합니다.
 코드 복사
=Globals.ReportName & ", dated " &
Format(Globals.ExecutionTime, "d")



다음 식을 보고서 바닥글에 사용하면 보고서의 페이지 번호와 총 페이지 수를 제공합니다.
 코드 복사
=Globals.PageNumber & " of " & Globals.TotalPages


다음 식을 페이지 머리글 오른쪽의 텍스트 상자에 사용하면 페이지에서 LastName 텍스트 상자의 마지막 값을 제공합니다.
 코드 복사
=Last(ReportItems!LastName.Value)


페이지 나누기
일부 보고서에서는 페이지 나누기를 그룹 또는 보고서 항목 외에도 지정된 행 수의 끝에 배치할 수 있습니다. 이렇게 하려면 데이터 영역에 그룹을 만들고(일반적으로 상세 정보 바로 상위 그룹) 페이지 나누기를 그룹에 추가한 다음 그룹 식을 지정된 행 수에 따라 그룹에 추가합니다.
다음 식을 그룹 식에 사용하면 25행마다 번호를 할당합니다. 그룹에 페이지 나누기가 정의되어 있는 경우 25행마다 페이지가 나눠집니다.
 코드 복사
=Int((RowNumber(Nothing)-1)/25)

다음 식을 텍스트 상자의 Color 속성에 사용하면 Profit 필드의 값에 따라 텍스트 색이 달라집니다.
 코드 복사
=Iif(Fields!Profit.Value < 0, "Red", "Black")
다음 식을 데이터 영역에 있는 보고서 항목의 BackgroundColor 속성에 사용하면 각 행의 배경색을 연녹색과 흰색으로 번갈아 표시합니다.
 코드 복사
=Iif(RowNumber(Nothing) Mod 2, "PaleGreen", "White")


다음 식을 그룹에서 자세히 행의 초기 표시 유형에 사용하면 PctQuota 필드에서 90%를 초과하는 모든 판매액에 대해 자세히 행을 표시합니다.
 코드 복사
=Iif(Fields!PctQuota.Value>.9, False, True)


ReportViewer 컨트롤에서 처리되는 보고서 정의에 대해 작성한 식에 전역 개체 컬렉션 참조가 포함될 수 있습니다. 사용할 수 있는 5개 전역 개체 컬렉션에는 Fields, Globals, Parameters, ReportItems 및 User가 있습니다. 이러한 컬렉션에 액세스하기 위해 표준 Visual Basic 컬렉션 구문을 사용할 수 있습니다. 이러한 구문의 예는 다음과 같습니다.
Collection!ObjectName
=User!Language
Collection.Item("ObjectName")
=User.Item("Language")
Collection("ObjectName")
=User("Language")

속성 구문을 사용하여 Globals 및 User 컬렉션의 항목을 액세스할 수도 있습니다. 이러한 예는 다음과 같습니다.
Collection.ObjectName
=Globals.PageNumber


Globals
Globals 컬렉션에는 보고서의 전역 변수가 포함됩니다. 다음 표에서는 Globals 컬렉션의 멤버를 설명합니다.
멤버  유형  설명 
ExecutionTime
 DateTime
 보고서가 실행되기 시작한 날짜와 시간입니다.
PageNumber
 Integer
 현재 페이지 번호입니다. 페이지 머리글과 바닥글에서만 사용될 수 있습니다.
ReportFolder
 String
 보고서를 포함하는 폴더의 전체 경로입니다. 여기에는 보고서 서버 URL이 포함되지 않습니다. 이 멤버는 서버 보고서에만 적용됩니다.
ReportName
 String
 보고서 서버 데이터베이스에 저장되어 있는 보고서의 이름입니다. 이 멤버는 서버 보고서에만 적용됩니다.
ReportServerUrl
 String
 보고서가 실행 중인 보고서 서버의 URL입니다. 이 멤버는 서버 보고서에만 적용됩니다.
TotalPages
 Integer
 보고서의 총 페이지 수입니다. 페이지 머리글과 바닥글에서만 사용될 수 있습니다.
 
=ReportItems!Textbox1.Value


고급육1호 (A06)
이호상 입금  30일자 취소 미수금


cnltht

15번 거래처 010168