logo
small logo
  • Produkty
  • Zamów
  • Wsparcie techniczne
  • About
  • Customer panel Wsparcie techniczne
    • en
    • de
    • JP
    • ZH
  • Glówna strona
  • /
  • Articles
  • /
  • Jak utworzyć raport z kodu aplikacji internetowej
  • Jak wykorzystać FastCube .NET w aplikacji SPA Knockout.js

    21 lipca 2021

    Aby wyprowadzić kostkę danych, stworzymy aplikację SPA za pomocą Knockout.js (biblioteka do tworzenia aplikacji webowych).

    read more
  • Rodzina generatorów raportów FastReport krótka recenzja

    23 marca 2020

    Bez raportowania nie da się prowadzić działalności w żadnej dziedzinie. Biurokracja jest nieodłączną częścią ludzkiego

    read more
  • Jak używać FastCube .NET w aplikacji ASP .NET Core

    6 maja 2021

    1. O FastCube Generator raportów FastReport .NET spełnia prawie wszystkie wymagania użytkowników w zakresie tworzenia

    read more
  • Praca z pakietami NuGet FastReport

    22 listopada 2021

    UPD: Dotyczy wersji FastReport. NET przed 2022.2. Pakiety licencji są już dostępne na naszym serwerze

    read more
  • Jak utworzyć fakturę z aplikacji ASP.NET Core

    31 sierpnia 2020

    Niewielu wierzyło w sukces nowej platformy open-source ASP.NET Core firmy Microsoft. Wszystko z powodu niskiej

    read more

Jak utworzyć raport z kodu aplikacji internetowej

16 lutego 2022

Czasami tworzenie raportu może okazać się prawdziwym bólem głowy. Na przykład, gdy trzeba zarządzać zawartością raportu w oparciu o warunki w programie. Łatwiej jest to zrobić w kodzie programu, niż przekazywać parametry do raportu i opracowywać logikę skryptu raportu.

Dzisiaj przyjrzymy się jak stworzyć raport z kodu aplikacji, przy czym nie chodzi tu o zwykłą aplikację desktopową, a o aplikację webową ASP.NET Core MVC. Mieliśmy już okazję przyjrzeć się temu, jak stworzyć raport w kodzie aplikacji WinForms. Jednak aplikacje webowe są obecnie o wiele bardziej popularne i wielu użytkowników FastReport chciałoby wykorzystać w nich wszystkie możliwości tego generatora raportów.

Spójrzmy, jak stworzyć szablon raportu i uruchomić go bez użycia projektanta raportów. Po pierwsze, potrzebujemy projektu aplikacji ASP.NET Core MVC. Aby pracować z generatorem raportów FastReport.NET, należy zainstalować jego biblioteki za pomocą menedżera pakietów NuGet.

Ponieważ pakiety biblioteki znajdują się na dysku lokalnym (w katalogu zainstalowanego programu w folderze Nuget), potrzebujemy dodać lokalne źródło pakietów. Aby to zrobić, klikamy na ikonę koła zębatego w prawym górnym rogu menedżera pakietów i dodajemy nowe źródło, które będzie odsyłać do lokalnego folderu z naszymi pakietami (z rozszerzeniem .nupkg):

Dodawanie nowego lokalnego źródła pakietów

Teraz możesz wybrać dodane źródło pakietów z listy rozwijanej i zainstalować pakiety.

Pakiety zainstalowane z lokalnego źródła

Aby wykorzystać dodane biblioteki w kodzie programu, należy je najpierw podłączyć w pliku Startup. cs. W metodzie konfiguracyjnej dodajmy ciąg znaków:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
 {
…
app.UseFastReport();
…
}

Teraz możesz przejść do programowania. Nasz projekt MVC ma:

  1. Kontrolery, które zawierają logikę działania aplikacji po stronie serwera.
  2. Widoki wyświetlają informacje dla klienta.
  3. Modele są odpowiedzialne za pracę z danymi (przyjmowanie, przechowywanie, przekształcanie i zapisywanie).

Nasz prosty przykład będzie wymagał jedynie kontrolera i widoku. Zmieńmy metodę Index w kontrolerze. Nasza aplikacja, która jest automatycznie generowana na podstawie szablonu, posiada już gotowy kontroler - HomeController:

using FastReport.Web;
using FastReport;
using FastReport.Table;
using System.Data;
using FastReport.Data;
using System.Drawing;
using FastReport.Utils;
 
 public IActionResult Index()
 {
//Utwórz obiekt raportu sieciowego 
 WebReport report = new WebReport();
 
// Tworzenie obiektu strony internetowej
 ReportPage page = new ReportPage();
 page.Name = "Page1";
 
//Dodaj stronę do raportu 
 report.Report.Pages.Add(page);
 
 //CUtwórz źródło danych
 DataSet ds = new DataSet();
 ds.ReadXml("C:/Users/FR/source/repos/WebApp/WebApp/Reports/nwind.xml");
 
 //Zarejestruj źródła danych w raporcie
 report.Report.RegisterData(ds);
 
 //Umieść tabelę w raporcie
 report.Report.GetDataSource("Products").Enabled = true;
 
//Utwórz pasmo danych
 DataBand dataBand = new DataBand();
 dataBand.Name = "DataBand";
 
 //Pobierz tabelę ze źródła danych raportu
 DataSourceBase data = report.Report.GetDataSource("Products");
 //Inicjalizacja źródła danych 
 data.Init();
 //I otrzymujemy pierwszy wiersz danych
 data.First();
 
 //Dodanie paska danych do strony 
 page.Bands.Add(dataBand);
 
 //Utwórz obiekt tabeli
 TableObject table = new TableObject();
 table.Name = "Table1";
 //Ustaw liczbę wierszy - liczba wierszy w źródle + tytuł
 table.RowCount = data.RowCount+1;
 //Ustaw liczbę kolumn
 table.ColumnCount = 2;
 
 //Ustaw wielkość automatyczną pierwszej kolumny, w której będą wyświetlane nazwy produktów
 table.Columns[0].AutoSize = true;
 //Ustaw tytuły w pierwszym rzędzie tabeli
 table[0, 0].Text = "Product Name";
 table[0, 0].Border.Lines = BorderLines.All;
 table[1, 0].Text = "Unit Price";
 table[1, 0].Border.Lines = BorderLines.All;
 
 int i = 1;
 //Przeprowadź pętlę przez wszystkie wiersze w źródle danych
 while(data.HasMoreRows)
 { 
 //Wyświetlanie nazw produktów
 table[0, i].Text = data["ProductName"].ToString();
 table[0, i].Border.Lines = BorderLines.All;
 //Ceny wyświetlane
 table[1, i].Text = data["UnitPrice"].ToString();
 table[1, i].Border.Lines = BorderLines.All;
 
//Utwórz obiekt obrazkowy
 PictureObject picture = new PictureObject();
 picture.Bounds = new RectangleF(40, 0, Units.Centimeters * 0.5f, Units.Centimeters * 0.5f);
 picture.CreateUniqueName();
 //Wybieramy obrazek do wyświetlenia w komórce tabeli w zależności od wartości ceny
 if ((decimal)data["UnitPrice"] < 20)
 {
 picture.Image = Image.FromFile("C:/Users/FR/Downloads/28.png");
 }
 else 
 {
 picture.Image = Image.FromFile("C:/Users/FR/Downloads/29.png");
 }
 
 picture.LoadImage(); 
//Załaduj obraz do obiektu
 picture.Parent = table[1, i]; 
//Przypisanie obiektu nadrzędnego dla obrazka - komórki tabeli 
 i++;
 data.Next(); 
//Pobierz następny rekord z źródła
 }
 
 dataBand.Objects.Add(table); 
//Dodanie obiektu tabeli do strony raportu
 
 ViewBag.WebReport = report; 
//Przywrócenie raportu do widoku
 return View();
 }

Jak wynika z komentarzy do kodu, obiekty raportów tworzymy ręcznie i budujemy ich hierarchię. Teraz utworzyliśmy raport tabelaryczny z obrazkami w komórkach. Odpowiedni obrazek jest dobierany w zależności od wartości ceny. To jest tylko typowy przykład, kiedy użytkownik mógłby potrzebować stworzyć raport z kodu programu.

Teraz zmieńmy widok Index.cshtml. Zostawmy tylko jedną linijkę:

@await ViewBag.WebReport.Render()

To wszystko. Możesz uruchomić aplikację i zobaczyć nasz raport:

Tak wygląda gotowy raport

Tak, więc podsumujmy. W gruncie rzeczy tworzenie raportu z kodu aplikacji webowej nie różni się niczym od tworzenia zwykłej aplikacji desktopowej. Z jednej strony wymaga głębokiej wiedzy na temat struktury raportu i jego obiektów, co oznacza, że powinien go tworzyć wykwalifikowany specjalista. Z drugiej strony, czasami jest to jedyny sposób na stworzenie raportu ze skomplikowaną logiką. Więc nie traktuj tej metody jako głównej, niemniej jednak pomoże Ci ona w przypadku zaistnienia takiej potrzeby.

about product zamów
avatar
Dmitriy Fedyashov
Technical Writer
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
.NET FastReport ASP.NET MVC Core WebReport Report NuGet

Add comment
logo
  • 800-985-8986 (English, US)
  • +4930568373928 (German)
  • +55 19 98147-8148 (Portuguese)
  • info@fast-report.com
  • 901 N Pitt Str #325 Alexandria VA 22314
  • Zamów
  • Pobierz
  • Dokumentacja
  • Opinie użytkowników
  • Jak odinstalować nasze produkty
  • FAQ
  • Tutorial Video
  • Forum
  • Articles
  • Our News
  • Prasa o nas
  • Partnerzy
  • Extended licensing
  • Kontakty

© 1998-2023 by Fast Reports Inc.

  • Poufność