.NET 에서 RDLC 순환 처리 데이터 의 응용 분석

RDLC 개발 보고 서 를 사용 할 때 데이터 원본 내용 이 다음 과 같 으 면.

private List<UserData> CreateDataSet()
{
    List<UserData> userDataSet = new List<UserData>();
    userDataSet.Add(new UserData() { Name = "Clark", Age = 18 });
    userDataSet.Add(new UserData() { Name = "Yaya", Age = 15 });
    return userDataSet;
}
우 리 는 보고서 에 데 이 터 를 표시 하기 위해 RDLC 의 데이터 시트 컨트롤 을 빠르게 사용 할 수 있다.

그러나 고객 이 다음 그림 의 보고 서 를 요구 할 때 데이터 원본 내용 을 한 줄 에 표시 해 야 한다.RDLC 가 이런 수 요 를 처리 하 는 것 은 그리 간단 하지 않다.이것 은 RDLC 가 순환 처리 하 는 편지 식 으로 사용 할 수 없 기 때문이다.개발 자가 데 이 터 를 조합 하려 면 숨겨 진 목록,외부 에서 문자열 을 조합 하 는 등 우회 적 으로 보고서 내용 을 작성 해 야 합 니 다.그러나 이런 방식 의 개발 은 비효 율 적 이 고 제한 도 많다.

이 문 제 는 나 를 며칠 동안 괴 롭 혔 는데,어젯밤 에 절반 까지 잤 더 니 갑자기 영감 이 떠 올 랐 다.RDLC 의 Sum 함 식 을 사용 하여 데이터 순환 처 리 를 할 수 있 습 니 다.
Sum 편지 식 은 데이터 가 집 중 된 모든 자 료 를 얻 고 모든 데이터 의 총 계 를 계산한다.우 리 는 표현 식 을 다음 과 같은 편지 식 으로 쓸 수 있 습 니 다.code.PushStringStack 이라는 RDLC 사용자 정의 편지 식 을 이용 하여 Sum 편지 식 으로 모든 데 이 터 를 얻 을 수 있 습 니 다.이러한 쓰기 방법 은 데이터 가 집 중 된 모든 데 이 터 를 code.PushString 에 의 해 한 번 처리 할 수 있 습 니 다.

=Sum(code.PushString(Fields!Name.Value, Fields!Age.Value), "UserDataSet")
에 이 어 code.PushString 이라는 RDLC 사용자 정의 편지 식 내 부 를 보고 static 문자열 변 수 를 사용 하여 모든 데이터 처리 후의 결 과 를 기록 합 니 다.개발 자 들 은 이런 방식 이 데 이 터 를 순환 처리 하 는 것 이라는 것 을 이해 할 수 있 을 것 이다.

Public Shared _foreachResult As String = String.Empty

Public Shared Function PushString(userName As String, userAge As String) As Integer
    _foreachResult += userName & "(" & userAge & "), "
    Return 0
End Function
당연 하 죠.순환 처 리 를 마치 고 데 이 터 를 화면 에 표시 해 야 합 니 다.여기 서 간단 한 것 은 code.PopString 리 턴 을 만 드 는 것 입 니 다.

Public Shared Function PopString() As String
    Return _foreachResult
End Function
이 고 원래 의 표현 식 을

=IIF(Sum(code.PushString(Fields!Name.Value, Fields!Age.Value), "UserDataSet") <> 0, "", code.PopString())
으로 바 꾸 어 컴 파일 하고 실행 한 후에 RDLC 의 텍스트 상자 에서 고객 이 요구 하 는 데이터 형식 을 정확하게 표시 하 는 것 을 볼 수 있 습 니 다.

 
범례 프로그램:RdlcForeachDataSamplejb51net 에서 이 다운 로드 를 누 르 십시오.

좋은 웹페이지 즐겨찾기