Najprawdopodobniej każdy programista platformy .Net rozpoczynał swoją pracę od aplikacji Windows Forms. Niezliczona liczba takich aplikacji jest tworzona codziennie na całym świecie. Są to aplikacje, na których opiera się codzienna praca użytkownika, czy jest to zwykły edytor tekstu lub inny jakiś system informacji. W porównaniu z aplikacjami konsolowymi formularze systemu Windows są przeznaczone do pełnego wykorzystania elementów graficznych — formularzy do wyświetlania informacji i interakcji z użytkownikiem. O wiele wygodniej jest pracować z takimi programami niż z konsolami.
Opracowując systemy informatyczne, zapewniamy użytkownikowi możliwość pracy z danymi – dodawanie, edytowanie i usuwanie elementów, ale co najważniejsze – wyświetlanie informacji w czytelnej formie. Raportowanie jest integralną częścią programu pod względem wyświetlania informacji. Raporty umożliwiają wyświetlanie informacji we właściwej formie – rachunków, paragonów, faktur itp. W końcu wraz z przejściem na elektroniczne zarządzanie dokumentami biurokracja nie zmniejszyła się i musimy tworzyć dokumenty zgodnie ze specjalnymi formami i standardami.
Jednym z takich dokumentów, jak wspomniano powyżej, jest paragon sprzedaży. Jeśli twój system informacyjny lub zautomatyzowany system księgowy jest przeznaczony do śledzenia sprzedaży, musisz wydać taki dokument klientowi. W tym artykule przyjrzymy się, jak wyprowadzić pokwitowanie sprzedaży z aplikacji WinForms. Najprostszym (i najbardziej logicznym) sposobem jest użycie generatora raportów do utworzenia wymaganego szablonu dokumentu i uzyskania danych z aplikacji użytkownika.
Przyjrzyjmy się więc, jak utworzyć szablon paragonu w projektancie raportu FastReport.Net. W rzeczywistości jest to bardzo proste. Aby utworzyć szablon raportu, należy połączyć się ze źródłem danych.
Istnieją dwa sposoby, aby to zrobić:
1) Utwórz źródło danych w aplikacji użytkownika, a następnie wywołaj generator raportów podczas wykonywania programu i utwórz szablon. Jednak w takim przypadku po utworzeniu szablonu raportu będziemy musieli zatrzymać aplikację i wprowadzić zmiany w jej kodzie do eksportowania utworzonego raportu do żądanego formatu.
2) Uruchom projektanta raportów, połącz go z zestawem danych (ten, którego użyjesz w aplikacji użytkownika do przesyłania informacji do raportu). Następnie należy utworzyć i zapisać szablon raportu. Następnie po opracowaniu aplikacji należy wskazać ścieżkę do utworzonego raportu.
Naszym zadaniem jest stworzenie następującego szablonu:
W paragonie sprzedaży zostaną wyświetlone informacje o sprzedającym, kupującym i sprzedanym towarze. Niektóre kraje mają tendencję do osobnego wskazywania stawki podatku i obliczenia należnego podatku, jak również ostatecznej kwoty po opodatkowaniu. Przede wszystkim należy powiedzieć o strukturze danych. Od tego zależy również zawartość pasm danych.
W naszym przypadku informacje o sprzedaży pochodzą z tabel: Zamówienia, Szczegóły zamówienia, Produkty, Pracownicy i Klienci. Aby wyświetlić dane dla określonej kolejności z każdej tabeli, wszystkie z nich muszą być połączone. W tym celu FastReport.Net zapewnia mechanizm łączenia tabel za pomocą klawiszy:
Tabela Zamówienia jest połączona z tabelami Klienci i Pracownicy. Oznacza to, że dla określonego rekordu zamówienia odpowiednie dane zostaną wybrane z tych tabel według klucza.
Spójrz na zrzut ekranu szablonu raportu. Dla pasma danych wybrano źródło zamówień. Oznacza to, że jeśli musimy wyświetlać informacje z tabel Klientów i Pracowników, musimy wziąć je pod uwagę z połączonych tabel:
Pasmo Data ma szczegółowe zespóły z pasmami nagłówka i stopki. W przypadku zakresu szczegółowych danych definiowane jest źródło Szczegółów zamówienia. Ta tabela zawiera również linki:
Jak zapewne oczekiwałeś, jest on połączony z tabelą Zamówienia, a także z tabelą Produktów, z której można uzyskać nazwy produktów.
Teraz, gdy jest jasne, że główne informacje są pobierane z tabeli Zamówienia, a szczegółowe informacje o produkcie pochodzą z tabeli Szczegóły zamówienia, możemy wziąć pod uwagę sumy.
Pierwsza to Suma wierszy — mnożenie ilości towarów przez cenę jest obliczane przez zwykłe pomnożenie pól: [Szczegóły zamówienia.Cena jednostkowa] * [Szczegóły zamówienia.Ilość]]. Suma ta jest obliczana dla każdego towaru.
Następnie należy podsumować wszystkie sumy w tej kolumnie i wyświetlić je w polu Suma podrzędna. Aby to zrobić, utwórz nową sumę w oknie Dane:
Nadajmy jej nazwę Sumy Częściowej i ustawmy właściwości w nowym oknie:
Jak widać, użyliśmy funkcji Suma do sumy. W przypadku wyrażenia danych użyliśmy kombinacji mnożenia tych samych pól, co w polu Suma wierszy. W ten sposób otrzymujemy sumę wszystkich sum dla wszystkich produktów.
Pole Stawka podatku wskazuje procent podstawy opodatkowania, która musi zostać zapłacona w podatkach. W naszym przypadku liczba ta wynosi 5%.
W polu Należne podatki należy obliczyć kwotę należną z tytułu podatku. Wzór jest prosty: całkowita * stopa procentowa:
I wreszcie, Total Due. Składa się z sumy częściowej i podatku:
Spowoduje to zakończenie tworzenia paragonu sprzedaży. Należy zapisać szablon raportu.
W aplikacji
Po utworzeniu szablonu raportu można go załadować do aplikacji, ustawić źródło danych, utworzyć i wyeksportować do, na przykład, formatu PDF.
1 2 3 4 5 6 7 8 9 10 |
DataSet data = new DataSet(); //Tworzenie zestawu danych data.ReadXml($"{Application.StartupPath}/nwind.xml"); //Załaduj do niego kod XML Report report = new Report();//Tworzenie raportu report.Load($"{Application.StartupPath}/SalesReceipt.frx"); //Załaduj obiekt raportu do szablonu report.RegisterData(data); //Zarejestruj dane w raporcie report.Prepare(); //Przygotowanie raportu using (var export = new FastReport.Export.PDF.PDFExport()) { export.Export(report, "SalesReceipt.pdf"); //Raport eksportu do pliku PDF } |
To wszystko, możesz dodać ten kod do przetwarzania przycisków i wystarczy kliknąć przycisk w aplikacji, aby utworzyć paragon. Teraz już wiesz, jak łatwo jest tworzyć i wyświetlać dokumenty za pomocą generatora raportów.