Michał A.

Michał A. Programista
Microsoft Dynamics
AX

Temat: Wydruk raportu z kontrolki report viewer

Używam standardowej kontroli VS report viewer do generowania raportu. Raport generuje z obiektu.

Raport ma sekcję header, body i footer. Ma to wygląd faktury. Z wygenerowaniem jednej faktury nie ma problemu.

Ale mam drugi przypadek. Chciałbym wygenerować faktury o numerach np od 1 do 20 ale jako całość.

Potrzebne mi to do masowych wydruków np. nie chce drukować pojedynczo każdej faktury tylko mieć wszystko w jednym zrednderowanym raporcie i wtedy wydrukować.

Próbowałem robić pętli po obiekcie każdej faktury, ale po wywołaniu metody reportViewer1.RefreshReport(); na końcu ostatecznie na kontrolce dostaję tylko ostatnią fakturę, a ja chciałbym mieć jeszcze poprzednie.

Proszę o pomoc, czy taka akcja jest w ogóle możliwa w tej kontrolce

Pozdrawiam, michał

Temat: Wydruk raportu z kontrolki report viewer

Tak na szybko widzę dwa rozwiązania:

1. Raport nadrzędny - tabela ("robiąca" za pętlę), w jednej kolumnie osadzony subreport z fakturą. DataTable faktury miałaby dodatkowo pole klucza (zwykłe "1,2,3...n"), które "robiłoby" za iterator tej pętli i było podawane jako parametr, do subreportu. A tam, w funkcji wartości naszego "iteratora" generowałaby się i-ta faktura. Trzeba tylko dopilnować podziału na strony. Kontrolka MS ma pewnego buga - "KeepTogether" "nie działa", jest na sztywno ustawione na false w kodzie kontrolki :)

2. .....ręczne "klejenie" xml-a raportu. Wzór faktury Pan zna (tzn. jego zapis w xmlu). Można wstawić do faktury jakiś przykładowy wiersz z pozycją faktury i zobaczyć, jak się to wszystko razem generuje. Jak wygląda zapis tabeli, jej wierszy, pól i tak dalej (per analogiam do podejrzenia źródła wygenerowanej strony HTML). A potem, wiedząc już co i jak, własnoręcznie wygenerować kolejne faktury wraz z ich pozycjami. Programowo w pętli, poprzez doklejanie bloków xmla odpowiedzialnych za kolejne elementy raportu. Oczywiście odpowiednio ponazywać pola w RDLC, by ich nazwy były unikalne. I taki stream z RDLC załadować do kontrolki i wyświetlić. Karkołomne i cokolwiek "brudne", ale już tak robiłem i przyznam, że "cel uświęca środki" :) W końcu RDLC to zwykły XML i w dodatku jest opisany standardem. Na początku odpycha, ale potem szybko się "klei" własne raporty :)
Michał A.

Michał A. Programista
Microsoft Dynamics
AX

Temat: Wydruk raportu z kontrolki report viewer

ad. 1. O to chodziło :-)
Przy okazji znalazłem jeszcze takiego linka http://www.gotreportviewer.com/masterdetail/index.html
są przykłady, można sobie wyklikać.

ad. 2. przyjdzie i taki czas :-)

Dzięki za pomoc,

Pozdrawiam, michał

Następna dyskusja:

VS 2017 - Report Viewer - P...




Wyślij zaproszenie do