[C#]Automatyczne dodawanie kolumn do tabeli w rdlc

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?

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/

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 ■■■■■■■ wie co z tego wyjdzie :stuck_out_tongue:

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

http://stackoverflow.com/questions/4985408/dynamic-columns-in-c-sharp-rdlc-report

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.

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).

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).

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.