2012-07-12 3 views
0

나는 (여러 동적 필터 포함) DataGrid의 데이터를 포함하는 보고서를 작성해야하는 응용 프로그램을 작성 중입니다. 내 필터링은 현재 다음과 같은 문제를 일으키는 SQL 쿼리에서 결과 집합을 가져옵니다. 필드를 동적으로 생성 된 쿼리에 바인딩 할 수 없기 때문에 여러 곳의 필터를 SSRS 또는 Crystal 보고서로 보낼 수 없습니다.보고 문제

이것은 내 질문입니다 : Where 문에서 조건을 무제한으로 사용하여 보고서를 만들거나 CR 또는 SSRS와 함께 사용할 수 있도록 동적 where 절을 사용하여 저장 프로 시저를 만드는 방법이 있습니까? 그리고 그렇지 않다면 where 절에서 필터를 연결할 수있는보고 엔진이 있습니까?

참고 : SAP에서 SQL Server 2008 Express (SSRS 설치) 및 Crystal Reports for Visual Studio 2010 라이브러리와 함께 C# 4.0을 사용하고 있습니다.

답변

0

좀 더 크리스탈 리포트에 파고 후, 나는 명령을 것을 발견하고는 쿼리에있는 다소을 곳 문의 부분을 연결하는 것이 가능 매개 변수 : 당신은 절 같은 곳에 이상을 구축 할 수 있습니다 내 문제를 해결해. 이 방법은보고를 수행하는 방법이 아니므로이 작업을 수행하는 더 깨끗한 방법을 찾으려고 노력할 것입니다. SSRS는 이것을 지원하지 않습니다. 스토어드 프로 시저의 경우 전체 쿼리를 실행하는 문자열로 설정 한 다음 해당 스토어드 프로 시저 결과에서 문제가 될만한 가치가없는 테이블 인 것처럼 쿼리해야합니다 .

0

가 정의 된 경우 필터를 추가하는 간단한 트릭이 where 절에 다음 코드를 추가하는 것입니다 다음 @param는 (널)에 정의되어 있지 않은 경우 그래서

where (@param is null or @param = field) 

, 다음 필터는 적용되지 않습니다 .

where (@param1 is null or @param1 = field1) 
    and (@param2 is null or @param2 = field2) 
    and (@param3 is null or @param3 = field3) 
    and (@param4 is null or @param4 = field4) 
    ... 
+0

매개 변수의 수가 정의되어 있지 않기 때문에이 기능이 작동하지 않습니다. 한 사용자는 한 필드에서만 필터링 할 수 있으며 다른 사용자는 5 개 이상의 필터를 사용할 수 있습니다. 나는 보고서의 모든 매개 변수에 대해 이것을 생성하는 for 루프가 매우 깨끗하다고 ​​생각하지 않습니다. –

+0

"매개 변수 개수가 정의되지 않았습니다"는 의미는 무엇입니까? 보고서에 필터를 정의해야합니다. 그렇지 않으면 사용자가 적용 할 필터를 선택할 수 없습니다. –

+0

그게 무슨 뜻이야, 사용자가 필터를 정의하고 내가 그 순간에 필터를 사용하여 보고서를 필터링해야합니다, 필터링 된 DataGrid에서 wysiwyg 보고서처럼. Crystal Reports 또는 SSRS에서 이러한 일이 가능합니까? –