logo
small logo
  • Produkty
  • Zamów
  • Wsparcie techniczne
  • Articles
  • Customer panel Wsparcie techniczne
    • en
    • pt
    • es
    • de
    • pl
    • JP
    • ZH
  • Glówna strona
  • /
  • Articles
  • /
  • Jak programowo utworzyć raport tabelaryczny z natywnego kodu
  • Jak utworzyć paragon z aplikacji WinForms

    30 maja 2020

    Najprawdopodobniej każdy programista platformy .Net rozpoczynał swoją pracę od aplikacji Windows Forms. Niezliczona liczba takich

    read more
  • Jak tworzyć wizytówki z aplikacji WinForms

    28 maja 2020

    Jak widać z nazwy, rodzaj aplikacji Windows Forms jest przeznaczony do pracy w środowisku systemu

    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 zaktualizować raport sieci Web FastReport.Core

    21 września 2020

    Czasami trzeba zaktualizować raport, na przykład, jeśli dodana została nowa wartość zmiennej lub jeśli w

    read more
  • Raporty i dokumenty PDF w Blazorze

    5 kwietnia 2021

    Microsoft udostępnił niedawno platformę webową o nazwie Blazor. Framework ten umożliwia tworzenie interaktywnych interfejsów internetowych

    read more

Jak programowo utworzyć raport tabelaryczny z natywnego kodu

8 lutego 2022

Przypomnijmy sobie dość powszechną sytuację, kiedy trzeba zrobić coś bardzo szybko i przy użyciu tego, co jest dostępne. Nie zapominajmy jednak, że struktura i zawartość raportu zależy od czynników zewnętrznych. Generator raportów FastReport.NET jest bardzo elastycznym produktem i daje Ci dwa sposoby rozwiązania tego problemu.

Metoda 1. Aby utworzyć strukturę raportu w kodzie aplikacji niestandardowej.
Sposób 2. Aby kontrolować zachowanie raportu wewnątrz, używając skryptu.

Istnieje sporo informacji o tym, jak zaimplementować pewne cechy zachowania w skrypcie raportu. Jednak niewiele przykładów pokazuje, jak stworzyć raport z kodu. W tym artykule utworzymy raport z tabelą z kodu aplikacji, a także przyjrzymy się, jak wypełnić tabelę danymi i umieścić obiekt w komórce tabeli. Metoda 2 zostanie opisana bardziej szczegółowo w innym artykule.

Obiekt Table możemy wypełnić danymi statycznymi lub dynamicznymi. W pierwszym przypadku znamy konkretne wymiary tabeli i od razu wprowadzamy dane do komórek z ustalonego zestawu.

W drugim przypadku tabela jest tworzona dynamicznie, wiersze (kolumny) są dodawane w zależności od danych w źródle. Można jednak również ograniczyć rozmiar tabeli i ją naprawić.

Stwórzmy aplikację WinForms. Do linków dołączmy bibliotekę FastReport.dll, którą znajdziemy w folderze z zainstalowanym generatorem raportów. Dodajmy do formularza przycisk, który będzie uruchamiał budowanie raportu.Nie zapomnij stworzyć dla niego handler'a kliknięć.

Po pierwsze, dołączamy biblioteki FastReport.

using FastReport;
using FastReport.Data;
using FastReport.Table;
using FastReport.Utils;
 
private void button1_Click(object sender, EventArgs e)
{
using (Report report = new Report()) 
// Tworzenie obiektu raportu
 {
 ReportPage page = new ReportPage(); 
// Utworzenie obiektu strony raportu
 page.Name = "Page1"; 
//Set the name of the page
 report.Pages.Add(page); 
// Dodaj stronę do kolekcji stron raportu
 DataSet ds = new DataSet(); 
// Utwórz źródło danych
 ds.ReadXml("~/../../../App_Data/nwind.xml"); 
//Load the xml database into it
 report.RegisterData(ds); 
// Zarejestruj źródła danych w raporcie
 report.GetDataSource("Products").Enabled = true; 
// Uaktywnij źródło danych
 DataBand dataBand = new DataBand(); 
// Utwórz pasmo danych
 dataBand.Name = "DataBand"; 
// Sprecyzuj nazwę zespołu
 page.Bands.Add(dataBand); 
// Dodaj zespół do kolekcji zespołów na stronie
 
 TableObject table = new TableObject(); 
// Utwórz obiekt tabeli 
 table.Name = "Table1"; 
// Określ nazwę obiektu 
 table.RowCount = 10; 
// Określa liczbę wierszy 
 table.ColumnCount = 2; 
// Określ liczbę kolumn
 
// Wypełnij wszystkie komórki danymi w pętli
 for (int i = 0; i < 10; i++) 
 for (int j = 0; j < 2; j++)
 {
 table[j, i].Text = (10 * i + j + 1).ToString();
 table[j, i].Border.Lines = BorderLines.All;
 }
 
 dataBand.Objects.Add(table);
 //dataBand.Objects.Add(picture);
 if (report.Prepare())
 report.ShowPrepared();
 }

 

Tabela wypełniona dowolnymi danymi

Przyjrzyjmy się teraz przykładowi, w którym musimy wypełnić tabelę danymi ze źródła. Zamieńmy powyższą pętlę na inny kod:

table.Columns[0]. AutoSize = true;
 //table.Columns[1]. AutoSize = true;
 
 DataSourceBase data = report.GetDataSource("Products");
 data.Init(); 
//Zainicjalizujmy źródło danych 
 
 data.First(); 
/Zdobędziemy pierwszy rekord 
 
 for (int i = 0; i < 10; i++)
 {
 table[0, i].Text = data["ProductName"]. ToString();
 table[0, i]. Border.Lines = BorderLines.All; 
//Zmieńmy granice
 table[1, i].Text = data["UnitPrice"]. ToString();
 table[1, i]. Border.Lines = BorderLines.All;
 data.Next();
 }

Na koniec otrzymamy tabelę z danymi z bazy danych:

Tabela wypełniona danymi z bazy danych

Tabela wygląda niekompletnie bez tytułu. Dodajmy go:

table.RowCount = 11;
…
 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;
 
 for (int i = 1; i < 10; i++)
 {
 table[0, i].Text = data["ProductName"].ToString();
 table[0, i].Border.Lines = BorderLines.All;
 
 table[1, i].Text = data["UnitPrice"].ToString();
 table[1, i].Border.Lines = BorderLines.All;
 
 data.Next();
 }

Wyjaśnię, że tytuły podaliśmy w pierwszym wierszu tabeli, co oznacza, że cykl rozpoczyna się nie od pierwszego, a od drugiego elementu.

Tabela z tytułami

Przyjrzyjmy się ostatniemu przypadkowi na dziś - jak umieścić obiekt w komórce tabeli. Na przykład obrazek:

PictureObject picture = new PictureObject();
//Utwórz obiekt obrazkowy 
 picture.Bounds = new RectangleF(40, 0, Units.Centimeters * 0.5f, Units.Centimeters * 0.5f); 
// Ustaw rozmiar obiektu
 picture.CreateUniqueName(); 
//Ustaw dowolną nazwę 
 picture.Image = Image.FromFile("C:/Users/FR/Downloads/28.png"); 
//Podaj ścieżkę dostępu do obrazu 
 obraz.LoadImage(); 
//Wczytaj obraz 
 picture.Parent = table[1, 1]; 
//Określenie obiektu nadrzędnego dla obrazu

Jest to właściwość Parent, która wpływa na sposób, w jaki obrazek będzie wyświetlany w komórce. Zobaczmy, jak to będzie wyglądało:

Tabela z obrazkiem w komórce

W ten sposób poznaliśmy sposób tworzenia tabeli w raporcie z poziomu kodu aplikacji oraz dwa sposoby wypełniania jej statycznymi lub dynamicznymi danymi. Teraz już wiesz, jak programowo dodać obiekt do komórki tabeli.

about product pobierz zamów
avatar
Dmitriy Fedyashov
Technical Writer
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
.NET FastReport WinForms

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
  • Ticket system
  • FAQ
  • Tutorial Video
  • Forum
  • Articles
  • Our News
  • Prasa o nas
  • Partnerzy
  • Kontakty

© 1998-2022 by Fast Reports Inc.

  • Poufność