[C#]Automatyczne dodawanie kolumn do tabeli w rdlc


(eureka 170) #1

Witam,

Czy wie ktoś, czy możliwe jest automatyczne dodawanie kolumn w tabeli w pliku rdlc? Wiem, że dodawanie wierszy istnieje, bo jest funkcja RowNumber, ale czy istnieje coś w stylu ColumnNumber?


(Grzelix) #2

Kilka ciekawych odpowiedzi na ten problem jest na forum social.msdn.microsoft.com w google wystarczy wpisać.

Z tego co zauważyłem jeden ze sposobów jest tutaj:

http://social.msdn.microsoft.com/Forums ... 8bd861b54/


(Tomek Matz) #3

Możesz napisać do czego Ci to potrzebne? W sensie jaką aplikację robisz (pytam z ciekawości)? Plik rdlc ma predefiniowany wygląd, żeby się to wszystko nie porozjeżdżało na wydruku. Jak zaczniesz go dynamicznie modyfikować, to cholera wie co z tego wyjdzie :stuck_out_tongue:

Sprawdź link, który podał grzelix, a jak nie pomoże to zerknij tutaj:

W skrócie sugerują, żeby po prostu zmodyfikować plik XML (ręcznie). Ja osobiście też innego rozwiązania nie widzę. Daj znać jak sobie z tym poradzisz.


(eureka 170) #4

Ten link który umieściłeś powyżej prowadzi do strony http://www.techtalkz.com/vb-net/183691- ... -rdlc.html która nie pomaga mi w rozwiązaniu problemu. Mój problem dokładniej polega na tym, że mam 2 dataGridView, gdzie pierwsza ma 3 kolumny a druga 11. Użytkownik może wybrać które z tych dataGridView ma się wyświetlić, a ja muszę to napisać tak, żeby operować tylko na jednym pliku rdlc ( a nie tworzyć jeden plik rdlc dla pierwszego dataGridView, i drugi plik dla drugiego).


(Tomek Matz) #5

OK, rozumiem już Twój problem, ale muszę o jeszcze jedną rzecz zapytać (choć pewno to wiesz). Wiesz, że możesz sobie podmieniać jaki plik rdlc ma być wyświetlany w danym momencie w kontrolce ReportViewer? Przecież mógłbyś sobie przygotować dwa pliki rdlc i podmieniać je w kontrolce w zależności od potrzeby. Ktoś Ci narzucił, że ma być tylko jeden plik rdlc? Może warto przedyskutować to z tą osobą?

Jeśli tak jak piszesz, musi być jeden, to ja nie widzę innego rozwiązania jak ręczna edycja kodu XML (plik rdlc to plik XML) - czyli zrobienie tego, co jest opisane w podanym przeze mnie linku. Mógłbyś zrobić tak, że utworzysz plik rdlc, który ma 11 kolumn (lub więcej) i teraz jeśli będziesz potrzebował wyświetlić raport, który ma np. tylko 4 kolumny (tak jak podałeś), to:

1) wczytywałbyś ten plik rdlc zawierający 11 kolumn (lub więcej),

2) usuwałbyś ręcznie z niego te niepotrzebne kolumny (przyda się pewno Linq to XML),

3) zapisywałbyś ten nowy plik rdlc jako plik tymczasowy

4) i na końcu wyświetlałbyś go w kontrolce ReportViewer (musiałbyś zrobić dokładnie to o czym piszę wyżej, czyli ustawiałbyś nowy raport dla kontrolki ReportViewer).

Innego rozwiązania nie widzę (co nie znaczy, że go nie ma).


(eureka 170) #6

Dzięki za rady.

Okazało się całe szczęście że jednak nie będę musiał dynamicznie tworzyć kolumn, więc sprawa rozwiązana.