logo
small logo
  • Produkty
  • Zamów
  • Wsparcie techniczne
  • About
  • Customer panel Wsparcie techniczne
    • en
    • de
    • JP
    • ZH
  • Glówna strona
  • /
  • Articles
  • /
  • Jak utworzyć dokument sprzedaży z aplikacji WPF
  • 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 wyświetlić stopki PageFooter tylko na ostatniej stronie raportu

    15 maja 2020

    Do rozwijania tych samych raportów, lub raportów z tymi samymi wstęgami, można zastosować dziedziczenie raportów.

    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
  • Raport interaktywny z wstępnym wprowadzeniem danych do tabeli

    4 kwietnia 2022

    Jak już wiesz, raporty FastReport.NET mogą posiadać formularze dialogowe, które są wyświetlane przed tworzeniem

    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ć 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 byłoby lepiej wprowadzić ciekawszy projekt do aplikacji. A szczególnie w takich przypadkach, gdy potrzebujemy specjalnego projektu. O tych celów Microsoft stworzył specjalną bibliotekę – WPF (Windows Presentation Foundation).

Jeśli tworzysz oprogramowania księgowo – sprzedażowo, to na pewno jest tam możliwość wygenerowania podstawowych dokumentów księgowych, takich jak faktury i pokwitowania. Dokumenty te powinny odzwierciedlać dane z bazy danych. Najlepszym rozwiązaniem byłoby użycie generatora raportów do utworzenia szablonu dokumentu i wypełnienia go danymi.

Możesz użyć bibliotek generatora raportów aby zintegrować raporty z aplikacją WPF. Dzięki temu dla każdego zdarzenia można wygenerować i wyświetlić raport, a także wyeksportować go i wydrukować.

Przed utworzeniem szablonu w projektancie raportu należy utworzyć szablon w projektancie raportów.

W tym artykule opiszemy przykład tworzenia dokumentu z zastosowaniem generatora raportów FastReport.NET.

W dokumencie sprzedaży zostaną wyświetlone informacje o sprzedającym, kupującym i sprzedanym towarze. Niektóre kraje stosują zasadę wskazywania stawki podatku, kwotę obliczonego należnego podatku, a także ostateczną kwotę po opodatkowaniu.

Dlatego w naszym przykładzie rozważymy taki dokument sprzedaży.

Ponieważ dane zostaną pobrane z bazy danych, najpierw musimy utworzyć połączenie ze źródłem danych. W tym przykładzie użyjemy bazy danych nwind.xml demo z dystrybucji FastReport.NET. Będziemy potrzebować następujących tabel: Zamówienia, Szczegóły zamówienia, Klient, Pracownik. Naszym zadaniem jest stworzenie następującego szablonu:

Wzór raportu paragonu sprzedaży

Aby wyświetlić dane z każdej tabeli dla określonego zamówienia, wszystkie one muszą być połączone. W tym celu FastReport.NET zapewnia mechanizm łączenia tabel za pomocą kluczy. Tabela Zamówienia jest połączona z tabelami Klienci i Pracownicy, tabela Szczegóły zamówienia jest połączona z zamówieniami i produktami.

Oznacza to, że dla określonego rekordu zamówienia odpowiednie dane zostaną wybrane z tych tabel według klucza. W ten sposób możemy uzyskać nazwę kupującego z tabeli Klienci dla konkretnego rekordu zamówień:

 Źródła danych dla paragonów sprzedaży

Pasek Data ma szczegółowy zespół z paskami nagłówka i stopki. Dla wybranego paska Danych zdefiniowane jest źródło szczegółów zamówienia. Ta tabela zawiera również linki:

 Szczegóły zamówienia źródło danych

Zgodnie z oczekiwaniami są one połączone z tabelą Zamówienia, a także z tabelą Produkt, z której można uzyskać nazwy produktów.

Teraz, gdy już wiemy, ż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:

 Utwórz nowy raport razem

Nadajmy jej nazwę Sumy Częściowej i ustawmy właściwości w nowym oknie:

 Ustawienia paragonu Sprzedaży

Jak widać, do wykonania obliczenia użyliśmy funkcji suma. 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 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:

[[Suma częściowa] * 0,05]

I wreszcie, całkowita należna kwota. Składa się z sumy częściowej i podatku:

[[Suma częściowa] + [Suma częściowa] * 0,05]

Spowoduje to zakończenie tworzenia dokumentu sprzdaży. Należy zapisać szablon raportu w aplikacji. Na przykład utwórz App_Data folder i zapisz w nim szablon raportu i bazę danych.xml.

Teraz przejdźmy do aplikacji.

W aplikacji

Aby wyświetlić raport w aplikacji, musimy dodać składnik ScrollViewer do formularza, aby móc przewijać raport. Dodaj inny składnik – ListBox – wewnątrz. Będzie on używany do wyświetlania raportu w formacie Xaml. Dodaj trzy przyciski do formularza aplikacji: wyświetl raport, eksportuj raport do pliku PDF, wydrukuj raport.

Dodaj zdarzenie kliknięcia dla każdego z przycisków. Wyświetl raport:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private void Button_Click(object sender, RoutedEventArgs e)
 {
 var report = new Report();
 report.Load("C:/Users/User/source/repos/WPFInvoice/WPFInvoice/App_Data/invoice.frx");
 var data = new DataSet();
 data.ReadXml("C:/Users/User/source/repos/WPFInvoice/WPFInvoice/App_Data/nwind.xml");
 
 report.RegisterData(data);
 report.Prepare();
 var export = new XAMLExport();
 export.HasMultipleFiles = true;
 
 using (var ms = new MemoryStream())
 {
 export.Export(report, ms);
 lb.Items.Add(new Frame()
 {
 Content = XamlReader.Load(ms)
 });
 }
 }

W tym miejscu tworzymy obiekt raportu, wczytaj szablon raportu, który wcześniej utworzyliśmy. Następnie utwórz źródło danych i zarejestruj go w raporcie.

Formularze w aplikacjach WPF są tworzone przy użyciu języka XMAL. W związku z tym raport musi być wyświetlany w tym formacie. Aby to zrobić, wykonaliśmy eksport do XMAL.

Kod przycisku do wyeksportowania raportu do formatu PDF:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 private void PDFExport_Click(object sender, RoutedEventArgs e)
 {
 var report = new Report();
 report.Load("C:/Users/User/source/repos/WPFInvoice/WPFInvoice/App_Data/invoice.frx");
 var data = new DataSet();
 data.ReadXml("C:/Users/User/source/repos/WPFInvoice/WPFInvoice/App_Data/nwind.xml");
 
 report.RegisterData(data);
 report.Prepare();
 var export = new PDFExport();
 export.HasMultipleFiles = true;
 using (var fs = new FileStream("C:/Users/User/source/repos/WPFInvoice/WPFInvoice/App_Data/report.pdf", FileMode.Create))
 {
 export.Export(report, fs);
 }
 }

Zamysł jest taki sam jak w przypadku wyświetlania raportu, ale zapisujemy wynik uzyskany z eksportu w folderze i nie dodajemy go do formularza.

Kod przycisku do wydrukowania raportu:

1
2
3
4
5
6
7
8
 private void Print_Click(object sender, RoutedEventArgs e)
 {
 PrintDialog printDialog = new PrintDialog();
 if (printDialog.ShowDialog() == true)
 {
 printDialog.PrintVisual(lb, "Print the report");
 }
 }

Przed wydrukowaniem raportu należy go najpierw wyświetlić za pomocą przycisku. Klikając na niego, wywołasz okno dialogowe drukowania i wydrukujesz zawartość komponentu ListBox.

Teraz uruchom aplikację i kliknij przycisk Pokaż:

Paragon sprzedaży we wniosku WPF

Teraz możesz nie tylko wyświetlić utworzony dokument sprzedaży, ale także zapisać go w formacie PDF i wydrukować! Możesz wyeksportować go do innych formatów plików dostępnych w FastReport: HTML, BMP, PNG, JPEG, GIF, TIFF, EMF, PDF, XLSX, DOCX, PPTX, ODS, ODT, RTF, Text, XPS, XML, XAML, PS, PPML, LaTeX, Json, Dbf, Csv, XLS (Biff8), SVG, ZPL.

about product zamów
avatar
Dmitriy Fedyashov
Technical Writer
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
.NET FastReport WPF Designer 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