2012-03-19 12 views
5

Jak mogę dodać numery wierszy tak:Jak dodać I rownumbers dla każdej grupy w raporcie RDLC?

GROUP 1

RowNumber ID Nazwa Wiek

1   231  test  43 
2   324  test2 45 
3   354  test3 34 

GROUP 2

RowNumber ID Nazwa Wiek

1   657  test4 43 
2   534  test5 45 
3   678  test6 34 

Chcę robić numery wierszy, jak ten przykład. Dla każdej grupy numery wierszy zostaną zresetowane i zaczną się od 1 do liczby wierszy w grupach. Moje grupy (GRUPA 1, GRUPA 2, ....) pochodzą z bazy dynamicznie! Ile mam grupy, nie jest jasne! here czy znalazłem rozwiązania, ale myślę, że te rozwiązania są dostępne dla ilu grup, kiedy wiemy!

Odpowiedz

14

RDLC mają funkcję RowNumber("ScopeName"). Spowoduje to powrót do numeru wiersza rekordu w danym zakresie.

Możesz zobaczyć istniejące grupy dla raportu poniżej projektanta pod nagłówkami "Grupy wierszy" i "Grupy kolumn". Wybierz kolumnę wewnątrz ugrupowania, w którym chcesz numer wiersza i przeglądać kolumny rzędu, domyślne nazwy będą:

[(Group1) 
≡(Details1) 

Ustaw wyrażenia dla kolumny numer wiersza być

=RowNumber("Group1") 
1

Right Click w raporcie nieruchomość następnie przejść do kodunastępnie wkleić poniższy kod

Dim private count as integer = 0 
    Dim private iniRow as integer = 0 
    Dim private iniGrp as Object = "" 
    Public function MatrixRow(Byval rowNum as integer,Byval rowGrp as Object) as integer 

    if iniGrp = "" then 
     iniGrp = rowGrp 
    end if 

    if rowGrp <> iniGrp then 
     iniRow = 0 
     count = 0 
     iniGrp = rowGrp 
    end if 

    if iniRow = 0 then 
     iniRow = rowNum 
    end if 

    if rowNum = iniRow then 
    count = 0 
    end if 

    count = count + 1 
    Return count 
    End function 

następnie użyć tej funkcji jak

=Code.MatrixRow(RowNumber(Nothing),(YourgroupfiledNameFromDataest)) 
+0

Działa z wyjątkiem każdej strony licznik resetuje się, wyświetla 1, 2 itd. –

+0

To postawiło mnie na dobrej drodze, ale naprawdę chciałem, aby moje wiersze tabeli były numerowane bez względu na dane, grupy lub cokolwiek innego, więc właśnie usunąłem odniesienia do 'iniGrp',' rowGrp' i dwóch 'if..then '. instrukcje zawierające je z kodu i drugi parametr w wywołaniu funkcji i działało idealnie. –