2012-03-24 8 views
0

Visual Studio 2010에서 RDLC 보고서가 처음입니다.
저는 웹 사이트에서 VS2010의 보고서 기능을 사용하고 있습니다. 나는 을 사용하여 Report1.rdlc을 표시합니다. 그것을 완벽하게 보여줍니다. 이제 필자의 요구 사항은 런타임에 보고서의 데이터를 필터링하는 것입니다. 나는 this 질문을 통해 대답을 이해할 수 없지만.
코드 뒤에 Report1.rdlc을 사용할 수 없으므로
RDLC 보고서의 데이터를 필터링하는 방법은 무엇입니까?

이제 보고서의 데이터를 런타임에 필터링 할 수 있습니까?

답변

0

어떻게 서버에서 데이터를 가져 오는 중입니까? 데이터 테이블 결과에 바인딩합니까? 그렇다면 실제 보고서에서 특별한 작업을 수행 할 필요가 없도록 데이터를 추출 할 때 필터에 쿼리를 적용하도록 설정할 수 있습니다. 당신이 DataTable의를 받고있는 경우 의견을 당

, 다음 필터를 적용하는 것은

DataTable oDT = YourSQLCommandToGetData(); 
oDT.DefaultView.RowFilter = "SomeColumn = x and OtherColumn = y"; 

처럼 쉽게 그리고 보고서를 실행해야합니다. 다른 수준으로 가져 가서 당신이 원하지 않는 기록을하지 않도록하려면, 당신도 당신은 RDLC를 호출 할 새 테이블을 할당 할 수 있습니다, 그리고

DataTable oNewFilteredResult = oDT.DefaultView.ToTable(); 

처럼 뭔가를 할 수 있습니다.

+0

예 데이터 테이블에 바인딩하지만 쿼리 옵션을 제공하지 않는 마법사입니다. 그것은 단지 테이블 이름을 묻는 것입니다. SQL Server를 사용하고 있습니다. – jams

+0

@jams, 수정 된 답변 참조 – DRapp

0

데이터 세트를 rdlc 보고서에 할당하고 reportviewer 페이지에서 쿼리를 캡슐화하는 개체 데이터 소스 (따라서 데이터 테이블이있는 XSD 데이터 집합)를 사용하게됩니다.

쿼리는 자연스럽게 당신이 좋아하는 의해 데이터를 필터링하도록 매개 변수를 삽입하는 절 있습니다

WHERE (Table.Field = @Param OR @Param = A_Default_Value) 

지금 (보고서를 호출하기 전에이 페이지를 좋아하는 컨트롤을 추가 드롭 다운 목록, 텍스트 상자 등), 해당 컨트롤은 rdlc 보고서의 데이터 집합에 매핑되는 Object 데이터 소스를 필터링하므로 특정 단추를 클릭하면 보고서가 filterd됩니다. 보고서 표시, 개체 데이터 원본을 새로 고치고 (데이터 바인딩) 보고서 뷰어에 보고서를 다시 표시합니다.

당신이 그것을 생성시 헤더에서 보고서의 매개 변수를 표시 할 수 있도록 당신의 RDLC에서 매개 변수를 필터링 컨트롤의 값을 assiging 고려할 수있다 : 당신을 도와줍니다

Parameters!ParameterName.Value 

희망.

관련 문제