logo
small logo
  • Produkty
  • Zamów
  • Wsparcie techniczne
  • About
  • Customer panel Wsparcie techniczne
    • en
    • de
    • JP
    • ZH
  • Glówna strona
  • /
  • Articles
  • /
  • Raport interaktywny z wstępnym wprowadzeniem danych do tabeli
  • Jak utworzyć dokument sprzedaży z aplikacji WPF

    17 sierpnia 2020

    Myślę, że każdy deweloper WinForms zauważył, że standardowe kontrolki formularza wyglądają zbyt jednolite i że

    read more
  • Jak używać linijki w edytorze RichText dla FastReport .NET

    16 marca 2022

    Do edytora RichText została dodana linijka. Umożliwia ona kontrolowanie szerokości tabulatorów oraz ustawianie wcięć

    read more
  • Jak wydrukować obraz z raportu kliknięciem

    29 kwietnia 2020

    Wielu użytkowników generatorów raportów używaja dość standardową funkcjonalność w ich codziennej pracy. Ale czasami muszą

    read more
  • Dostosowywanie projektanta raportu

    31 maja 2020

    Report designer jest pełen wielu funkcji, których wielu użytkowników nie używa. Czasami różnorodność ikon i

    read more
  • 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

Raport interaktywny z wstępnym wprowadzeniem danych do tabeli

4 kwietnia 2022

Raport interaktywny z wstępnym wprowadzeniem danych do tabeli

Jak już wiesz, raporty FastReport.NET mogą posiadać formularze dialogowe, które są wyświetlane przed tworzeniem raportu. Pozwalają one na ustawienie pewnych zmiennych tekstowych, logicznych lub numerycznych. Mogą to być pola tekstowe, tabele, listy, listy rozwijane, daty, pola wyboru, a nawet listy z polami wyboru.

Z reguły formularze dialogowe są używane do filtrowania danych w raporcie lub do określania kryteriów zachowania raportu. Dzisiaj jednak porozmawiamy o innym użyciu formularza dialogowego.

Przeanalizujemy przypadek, w którym trzeba wprowadzić dane do raportu przed jego wyświetleniem. Jest to prosty przypadek, jeśli chodzi o pojedyncze pola tekstowe, pola wyboru, listy. Co jednak, jeśli masz tabelę danych, którą chcesz ręcznie dostosować przed sporządzeniem raportu?

W takiej sytuacji pomocny może być komponent Grid Grid  . Jest to tabela z danymi, które możemy wyświetlić na formularzu dialogowym przed utworzeniem raportu.

Dodajmy do raportu formularz dialogowy i umieśćmy w nim kontrolkę Grid. Następnie wywołajmy menu kontekstowe za pomocą kliknięcia prawym przyciskiem myszy:

Menu kontekstowe kontrolki Grid

Wybierz opcję "Edytuj kolumny...", aby dodać kolumny do tabeli.

Okno edycji kolumn w kontrolce Grid

W oknie edycji kolumny dodaj trzy kolumny - Nazwa, Adres, Telefon. Zwróć uwagę na właściwość Customers.Name. Odwołujemy się tutaj do źródła danych Customers, którego nie ma jeszcze w raporcie. Dodamy je jednak później za pomocą skryptu. Dla pozostałych kolumn należy ustawić odpowiednie właściwości.

Szablon strony raportu jest bardzo prosty - znajduje się na niej jeden obiekt Table z trzema kolumnami. Wypełnimy go w skrypcie raportu.

Szablon raportu do wyświetlania danych z formularza dialogowego

Dodajmy teraz funkcjonalność obsługi zdarzenia StartReport dla raportu:

Inspektor właściwości dla obiektu Raport

Skrypt raportu:

public class ReportScript
 {
 // Struktura danych dla tabeli
 public class Customer 
 {
 public string Name {get; set; }
 public string Address {get; set; }
 public string Phone {get; set; }
 
 public Customer(string name, string address, string phone)
 {
 Name = name;
 Address = address;
 Phone = phone;
 }
 }
 
 private void _StartReport(object sender, EventArgs e)
 {
 // Lista klientów
 List<Customer> customers = new List<Customer>();
 // Wypełnij listę klientów danymi domyślnymi
 customers.Add(new Customer("Kevin Smith", "221 52nd st, Brooklyn, NY, United States", "+12127599755"));
 customers.Add(new Customer("Justin Ford", "1556 Broadway, suite 416, NY, United States", "+12145678900"));
 customers.Add(new Customer("Amanda Stephenson", "455 Larkspur Dr., CA, United States", "+14105175379"));
 // Rejestrowanie źródła danych w raporcie
 Report.RegisterData(customers, "Customers"); 
 // Ustaw źródło danych w tabeli
 Grid1.DataSource = Report.GetDataSource("Customers");
 // Ustaw pola w komórkach
 Cell6.Text = "[Customers.Name]";
 Cell7.Text = "[Customers.Address]";
 Cell8.Text = "[Customers.Phone]";
 }
}
 

W tym przypadku ustawiamy strukturę danych Customer, która będzie używana do wyświetlania wierszy tabeli w oknie dialogowym i w raporcie. Następnie tworzymy źródło danych Customers i wypełniamy je instancjami Customer. Następnie rejestrujemy otrzymane źródło danych w raporcie. Czy pamiętasz, jak ustawialiśmy pole danych dla kolumn w obiekcie Siatka? Odwołaliśmy się do tego źródła danych. Tutaj przypisujemy pola ze źródła do komórek tabeli (obiekt Table) w szablonie strony.

Teraz stwórzmy obsługę zdarzenia ManualBuild dla obiektu Tabela na stronie raportu. Zdarzenie to jest wywoływane po zbudowaniu obiektu na stronie i pozwala na zmianę tabeli, która jest gotowa do wyświetlenia. W ten sposób możemy zmienić tekst w tabeli za pomocą skryptu.

Inspektor właściwości obiektu tabeli

 private void Table1_ManualBuild(object sender, EventArgs e)
 {
 // Ustaw źródło danych
 DataSourceBase rowData = Report.GetDataSource("Customers");
 // Zainicjuj dane
 rowData.Init();
 // Wyświetl pierwszy wiersz danych
 Table1.PrintRow(0);
 // Wyświetl kolumnę
 Table1.PrintColumns();
 // Przeciągnij ścieżkę przez wszystkie wiersze danych w źródle
 while (rowData.HasMoreRows)
 {
 // Wyprowadź następny wiersz danych
 Table1.PrintRow(1);
 // Wyświetl kolumnę
 Table1.PrintColumns();
 // pobierz następujący wpis ze źródła
 rowData.Next();
 }
 }

W tym przypadku wypełniamy tabelę, przechodząc po prostu przez wszystkie wiersze danych.

Teraz uruchamiamy raport. Pierwszą rzeczą, jaką zobaczymy, będzie okno dialogowe z tabelą:

Okno dialogowe tabeli

Kliknij podwójnie pierwszą komórkę, aby edytować jej tekst:

Edytowanie pierwszej komórki

Kliknij przycisk OK i sprawdź wynik:

Wynik działania kodu programu

Jak widać, nasze domyślne dane zmieniły się na te, które wprowadziliśmy ręcznie. W ten sposób można dać użytkownikom możliwość manualnej zmiany danych przed utworzeniem raportu. W tym przykładzie pokazano, jak wypełnić tabelę danymi ze skryptu, ale nic nie stoi na przeszkodzie, aby wypełnić ją danymi ze źródła.

about product zamów
avatar
Dmitriy Fedyashov
Technical Writer
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
.NET FastReport Interactivity Designer Script Report

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
  • Support SLA
  • Articles
  • Our News
  • Prasa o nas
  • Partnerzy
  • Extended licensing
  • Kontakty

© 1998-2023 by Fast Reports Inc.

  • Poufność

Trustpilot