logo
small logo
  • Produkty
  • Zamów
  • Wsparcie techniczne
  • Articles
  • Customer panel Wsparcie techniczne
    • en
    • de
    • JP
    • ZH
  • Glówna strona
  • /
  • Articles
  • /
  • Jak utworzyć paragon sprzedaży z aplikacji Delphi
  • Jak drukować wizytówki z aplikacji Delphi

    24 sierpnia 2020

    Aplikacje wbudowane w Delphi są mniej powszechne niż, na przykład, te wbudowane w C #.

    read more
  • Jak utworzyć fakturę z aplikacji Delphi

    1 lipca 2020

    Jeśli chodzi o aplikacje Delphi, rozumiemy, że mówimy o aplikacjach zaimplementowanych w VCL (Visual Component

    read more
  • Jak chronić dokumenty PDF?

    30 listopada 2020

    Z okazji Dnia Ochrony Danych Osobowych, zdecydowaliśmy się przygotować artykuł dotyczący ochrony dokumentów PDF. Format

    read more
  • Raporty typu Drill-Down w FastReport VCL (Delphi/Lazarus)

    9 lutego 2021

    „Wyszczególnianie” lub „zagłębianie się w dane” to pojęcie o wielu aspektach, które może odnosić się

    read more
  • Jak utworzyć jeden raport z wielu w Delphi / Lazarus / C++ Builder

    11 grudnia 2020

    Chciałbym zauważyć, że FastReport VCL jest jednym z najwygodniejszych komponentów do generowania raportów o dowolnej

    read more

Jak utworzyć paragon sprzedaży z aplikacji Delphi

20 sierpnia 2020

Język programowania Delphi, czyli Turbo Pascal, stał się punktem wyjścia dla wielu programistów. Dzięki prostej i jasnej składni oraz umiejętności pisania w stylu proceduralnym okazało się, że jest ton bardzo łatwy do nauczenia. Wielu porównałoby go z Visual Basic, ale u szczytu swojej popularności Delphi dał znacznie więcej możliwości dzięki komponentom do pracy z bazami danych i własną bazą danych – Interbase.

Pomimo tego, że C # i platforma .Net zastąpiły Delphi i VCL, wciąż jest wielu ich zwolenników. Nawet stare aplikacje napisane w tym języku można łatwo uaktualnić przy użyciu nowoczesnych bibliotek, na przykład generator raportu FastReport 6 VCL. Na przykład zautomatyzowane systemy księgowe wymagają raportowania.

Zautomatyzowany system księgowania sprzedaży powinien umożliwiać tworzenie dokumentów płatności, takich jak paragon sprzedaży. W tym artykule przyjrzymy się, jak utworzyć i wydrukować pokwitowanie sprzedaży z aplikacji Delphi. Użyjemy generatora raportów FastReport VCL, do utworzenia paragonu i aplikację użytkownika, aby go wydrukować. Oprócz drukowania można po prostu wyświetlić paragon w oknie przeglądania raportu, z którego można wydrukować paragon, zapisać go w jednym z popularnych formatów dokumentów, wysłać go jako e-mail lub przesłać na dysk w chmurze.

Aby utworzyć paragon sprzedaży, potrzebujemy informacji o: zamówieniu, kliencie, sprzedawcy i treści zamówienia.

W tym przykładzie użyjemy demo.mdb bazy danych z dystrybucji VCL FastReport.

Aby utworzyć aplikację, użyjemy środowiska programistycznego Delphi 7.

Dodajmy dwa przyciski do formularza: jeden do uruchomienia projektanta raportów, drugi do wyświetlania lub drukowania gotowego raportu. Dodaj OpenDialog do formularza, to pozwoli nam to wybrać żądany plik raportu i otworzyć go.

Teraz przejdźmy do tworzenia źródła danych dla raportu — paragonu sprzedaży. Jak wspomniano powyżej, korzystamy z bazy danych demo.mdb, a dokładniej tabel: Zamówienia, Klienci, Przedmioty, Części i Pracownik. Użyjemy składnika ADOConnection do łączenia się z bazą danych i składnikami ADOTable w celu uzyskania danych z każdej tabeli. Tabela Zamówienia jest połączona z tabelami Klienci, Towary i Pracownicy. W związku z tym musimy skonfigurować te połączenia. Aby to zrobić, należy dodać składnik DataSource dla każdej tabeli ADOTable i w celu udostępnienia wszystkich tych tabel w raporcie, dodaj składnik frxBDDataSet dla każdej tabeli.

W związku z tym do pracy z jedną tabelą, powinniśmy uzyskać trzy składniki: ADOTable, DataSource, frxDBDataSet.

 Kontrole danych niezbędne do sporządzenia sprawozdania

W ADOConnection utwórz połączenie z bazą danych demo.mdb z dostarczania listy VCL FastReport.

Te ustawienia składników (dla każdej z pięciu tabel) znajdują się poniżej.

Tabela zamówień:

1. Dla ADOTable ustaw właściwości:

− Połączenie – ADOConnection1;− Nazwa – Zamówienia;− Nazwa tabeli – zamówienia.

2. Dla DataSource ustaw właściwości:

− DataSet – Zamówienia.

3. Dla frxDBDataSet, ustaw właściwości:

− DataSet – Zamówienia;

− Nazwa użytkownika – zamówienia.

Tabela klienci:

1. Dla ADOTable ustaw właściwości:

− Połączenie – ADOConnection1;

− Imię i nazwisko – klient;

− Nazwy pól indeksowych – CustNo;

− MasterSource – DataSource1;

− MasterFields - CustNo;

− TableName – klient.

2. Dla DataSource ustaw właściwości:

− DataSet – Klient.

3. Dla frxDBDataSet, ustaw właściwości:

− DataSet – Klient;

− Nazwa użytkownika – Klient.

Tabela elementów:

1. Dla ADOTable ustaw właściwości:

− Połączenie – ADOConnection1;

− Nazwa – Przedmioty;

− Nazwy pól indeksowych – OrderNo;

− MasterSource – DataSource1;

− MasterFields - OrderNo;

− TableName – przedmioty.

2. Dla DataSource ustaw właściwości:

− Zestaw danych – Przedmioty.

3. Dla frxDBDataSet, ustaw właściwości:

− Zestaw danych – pozycje;

− Nazwa użytkownika – Przedmioty.

Tabela Parts:

1. Dla ADOTable ustaw właściwości:

− Połączenie – ADOConnection1;

− Nazwa – części;

− TableName – części.

2. Dla DataSource ustaw właściwości:

− Zestaw danych – części.

3. Dla frxDBDataSet, ustaw właściwości:

− Zestaw danych – części;

− Nazwa użytkownika – części.

Tabela pracowników:

1. Dla ADOTable ustaw właściwości:

− Połączenie – ADOConnection1;

− Imię i nazwisko – pracownik;

− Nazwy pól indeksowych – EmpNo;

− MasterSource – DataSource1;

− Pola nadrzędne - EmpNo;

− TableName – pracownik.

2. Dla DataSource ustaw właściwości:

− DataSet – Pracownik.

3. Dla frxDBDataSet, ustaw właściwości:

− DataSet – Pracownik;

− Nazwa użytkownika – Pracownik.

Tabele Nabywcy, Towarów i Pracownika mają relację z DataSource1 (pierwsza tabela — zamówienia). Są one połączone kluczem, dzięki czemu dla jednego rekordu w tabeli Zamówienia zostaną wybrane odpowiednie rekordy z tych tabel.

Tabela Pozycję zawiera informacje o towarach w zamówieniu. Nie ma żadnych konkretnych danych dotyczących towaru— tylko link do tabeli Parts. Dodajmy dwa pola z tabeli Parts— Cena i Opis – do tabeli ADOTable dla tabeli Items.

Dzięki temu nie musimy używać tabeli Części w przyszłości.

Aby dodać pola obliczeniowe do tabeli Elementy, kliknij dwukrotnie obiekt ADOTable i zobacz okno z polami tabeli. Początkowo nie będzie tam żadnych danych, ale można je załadować z menu kontekstowego, wybierając Dodaj pola ...:

 Tabela elementów z dwoma dodanymi polami

Pola Cena i Opis zostaną pobrane z tabeli Parts

Wybierz pozycję Nowe pole... w menu kontekstowym i dodaj pole Cena:

 Ustawienia pola dodaj cenę

Dodaj opis produktu (pole opisu) w ten sam sposób:

 Ustawienia dodawania pola opisu

Teraz, gdy tylko utworzyliśmy źródło danych i skonfigurowaliśmy relacje między tabelami, dodajmy do formularza kilka przycisków. Jeśli dobrze pamiętasz, to pierwszy przycisk uruchamia projektanta raportów, a drugi wyświetla raport.

Nie zapomnij dodać składnika frxReport do formularza.

Dodaj zdarzenie kliknięcia dla każdego z przycisków. Oto kod obsługi zdarzeń, do wyświetlania projektanta raportów:

1
frxReport1.DesignReport();

Aby wydrukować gotowy raport, można dodać okno dialogowe Open File do formularza, aby wybrać raport utworzony w projektancie. Kod do wydrukowania raportu będzie wyglądać następująco:

1
2
3
4
5
6
7
8
OpenDialog1.Filter := 'FastReport VCL (*.fr3)|*.FR3';
 OpenDialog1.Execute();
 if Length(OpenDialog1.FileName)>0 then
 begin
 frxReport1.LoadFromFile(OpenDialog1.FileName);
 frxReport1.PrepareReport();
 frxReport1.Print();
end

Aby wyświetlić podgląd raportu, można zastąpić funkcję Drukuj ekranem raportu:

1
 frxReport1.ShowReport();

Teraz możesz uruchomić aplikację, kliknąć przycisk Projektuj raport i przejść do tworzenia raportu.

Przede wszystkim wybierz zestawy danych raportu.

 Źródła danych potrzebne w raporcie

Nie potrzebujemy tabeli o nazwie Parts w tym raporcie, więc nie ma potrzeby jej wybierania. Przejdźmy do tworzenia szablonu. W naszym raporcie znajdują się dwa pasma danych: MasterData i DetailData. W pierwszym paśmie danych wyprowadzamy informacje o kliencie:

  • nazwa - Customer.Company;
  • adres - Customer.Addr1;
  • telefon - Customer.Phone.

... a klient:

  • nazwa firmy;
  • pracownik — Pracownik.FirstName Employee.Nazwisko;
  • numer zamówienia – Orders.OrderNo;
  • data sprzedaży – Zamówienia.Data sprzedaży.

Ten zespół jest połączony z tabelą Zamówienia. Informacje o zawartości zamówienia będą wyświetlane w podrzędnym paśmie Dane: nazwa produktu, ilość, cena towaru, cena dla określonej ilości.

Sumy, takie jak całkowita kwota netto, stawka podatku, ostateczna kwota wraz z podatkiem, będą wyświetlane w stopce.

Paragon sprzedaży

Sumy częściowe sumy wiersza są obliczane przez pomnożenie ilości i ceny towaru jako części pojedynczego zapisu tabeli:

[<Items."Qty">*<Items."Price">]

Net subtotals is calculated by the formula:

∑(item quantity * item price)

[SUM(<Items."Qty">*<Items."Price">)]

Total tax value:

∑(item quantity* item price * tax rate)

[SUM(<Items."Qty">*<Items."Price">)*0.05]

Total due:

∑(item quantity * item price)+ ∑( item quantity * item price * tax rate)

[SUM(<Items."Qty">*<Items."Price">) + SUM(<Items."Qty">*<Items."Price">)*0.05]

Również metoda płatności jest widoczna w stopce bazy danych. Oczekuje się, że zostanie to określone podczas ręcznego drukowania paragonu sprzedaży.

Tutaj możemy powiedzieć, że nasz raport jest gotowy do wyświetlenia. Zapisz go w rejestrze lokalnym i zamknij projektanta raportów. Za pomocą drugiego przycisku w formularzu wybierz zapisany raport i wydrukuj (jeśli użyto opcji drukowania w kodzie) lub wyświetl go ponownie, jeśli wybrano opcję podglądu raportu – ShowReport().

Raport z paragonem sprzedaży

To wszystko. Przy niewielkim wysiłku można wdrożyć przydatne funkcje dla systemu księgowego. Teraz, w oknie przeglądania raportu, można go wydrukować lub zapisać w jednym z popularnych formatów dokumentu: PDF, DOCS, XLSX, XML, RTF i wielu innych.

avatar
Dmitriy Fedyashov
Technical Writer
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
VCL FastReport FastReport 6 Delphi Sales receipt

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
  • Extended licensing
  • Kontakty

© 1998-2022 by Fast Reports Inc.

  • Poufność