Czasami trzeba zaktualizować raport, na przykład, jeśli dodana została nowa wartość zmiennej lub jeśli w ogóle chcesz wyświetlić inny raport w tym samym obiekcie raportu Web. Zazwyczaj aktualizuje się cały widok (mówimy o aplikacjach MVC) dla podzespołu. Ale byłoby zdecydowanie lepiej, gdybyś mógł zaktualizować tylko obiekt raportu Web.
1. Aktualizacja raportu asp.net core po zmianie zmiennej
https://forum.stimulsoft.com/viewtopic.php?f=13&t=57213

… Wszystko to jest świetne i działa dobrze. Nie wiemy tylko jak można odświeżyć zmienne raportu z nowymi danymi ponownie napisać raport. Czy odbywa się to w ramach kontrolera, a jeśli tak, to w jaki sposób można ustawić polecenie w przeglądarce opcję odświeżenia ( odnawiając wprowadzone dane ) lub czy odbywa się to widoku, a jeśli tak, jaka jest poprawna metoda wywołania obiektu Viewer. ...
2. Jak odświeżyć przeglądarkę raportów sieci Web po zmianie raportu.
https://forum.stimulsoft.com/viewtopic.php?f=13&t=58104
Co jest przedmiotem raportu webowego? Zasadniczo jest to kontener html z zestawem skryptów, które pozwalają poruszać się po stronach raportu i wywoływać przydatne funkcje, takie jak drukowanie i eksportowanie. A sam raport internetowy jest raportem wyeksportowanym do html. Najprostszym sposobem zaktualizowania części strony jest użycie elementu iframe. Wymieniamy tylko źródło ramki, a otrzymamy częściowy lub pełny widok raportu przez URL. Rozważmy przykład, w którym strona aplikacji sieci web wyświetla listę rozwijaną i ramkę. Jeśli wybierzesz nazwę raportu z listy rozwijanej, obiekt raportu sieci web z odpowiednim raportem zostanie załadowany.
Na początek będziemy potrzebowali ustawienia metody na kontrolerze, która przywróci widok za pomocą obiektu raportu Web:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public IActionResult Update(string SelectedItem) { if (SelectedItem != null) { WebReport webReport = new WebReport(); webReport.Report.Load($"App_Data/{SelectedItem}.frx"); var dataSet = new DataSet(); dataSet.ReadXml("App_Data/nwind.xml"); webReport.Report.RegisterData(dataSet, "NorthWind"); webReport.Width = "1000"; webReport.Height = "1000"; ViewBag.WebReport = webReport; } return PartialView(); } |
Metoda ma parametr wyjściowy SelectedItem - nazwa wybranego raportu.
Dla tej metody należy utworzyć widok częściowy z jednym wierszem kodu, który wyświetla obiekt raportu sieci web:
@await ViewBag.WebReport.Render()
Wygląd strony początkowej indeksu będzie wyglądał następująco:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
@{ ViewData["Title"] = "Home Page"; } <div> <select onchange="$('#partialViewDiv').attr('src', '/Home/Update?SelectedItem='+this.value)" id="report"> <option disabled selected>default</option> <option>Lines</option> <option>Simple list</option> <option>Barcode</option> </select> </div> <table> <tr> <td> <iframe id="partialViewDiv" width="1000" height="1000"></iframe> </td> </tr> </table> |
Najpierw wyświetlamy listę rozwijaną z trzema dostępnymi raportami w formularzu. W programie obsługi zdarzeń listy onclick przypisujemy ramkę źródłowego adresu URL. Sam adres URL zawiera ścieżkę do metody sieci web z parametrem. Wartość parametru jest pobierana z wybranego elementu z listy rozwijanej. Poniżej zostanie wyświetlona ramka.
Uruchom aplikację. Wybierz raport z listy rozwijanej:
Otrzymamy wynik:
Dzięki temu częściowe odświeżanie strony za pomocą ramki jest bardzo łatwe do zaimplementowania.