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 utworzyć fakturę 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ć 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

    read more
  • Przekształcanie danych z bazy danych w dokument w Delphi / Lazarus / C++ Builder

    3 lutego 2021

    Jak z gąszczu danych zrobić czytelny raport? Oracle DB, MySQL, Microsoft SQL Server, PostgreSQL, FireBird to

    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ć fakturę z aplikacji Delphi

1 lipca 2020

Jeśli chodzi o aplikacje Delphi, rozumiemy, że mówimy o aplikacjach zaimplementowanych w VCL (Visual Component Library) dla systemu operacyjnego Windows. W raz z pojawieniem się platformy C i .Net popularność Delphi VCL nieco, mimo to na całym świecie istnieje wiele programistów Delphi. Wiele aplikacji jest napisanych w VCL i wymagają zmiany.

Jeśli wdrażasz system informacji księgowej dla obrotu towarami, musisz wygenerować niektóre dokumenty z aplikacji. Mogą to być raporty, czeki sprzedaży i kasjera, faktury. W tym artykule przyjrzymy się całemu procesowi drukowania faktury zaczynając od tworzenia aplikacji do wyświetlania raportu.

Do tworzenia aplikacji użyjemy środowiska programistycznego Delphi 7 i generatora raportów FastReport VCL do utworzenia raportu.

Praca nad aplikacją sprowadza się do dodawania niezbędnych składników do formularza i konfigurowania ich.

Znajdź kartę FastReport w panelu komponentów i dodaj składnik frxReport do formularza. Musimy również utworzyć źródło danych dla raportu. Na przykład użyjemy bazy danych demo.mdb z dystrybucji VCL FastReport. Użyj następujących tabel: Zamówienia, Klienci, Towary, Części.

Przeciągnij i upuść składnik ADOConnection na formularz z karty ADO w palecie komponentów. Następnie dodaj cztery składniki ADOTable.

Na karcie DataAccess dodaj cztery składniki DataSource.

Na karcie FastReport dodaj cztery składniki frxDBDataSet.

Teraz mamy: ADOTable, DataSource, frxDBDataSet i trzeba skonfigurować je jako trzy.

Zróbmy to.

Pierwsze trzy:

  •  W przypadku tabeli ADOTable ustaw właściwości:

          − Połączenie – ADOConnection1;

          − Nazwa – zamówienia;

          − Nazwa tabeli – zamówienia.

  • W przypadku źródła danych ustaw właściwości:

         − DataSet – Zamówienia.

  • W przypadku zestawu frxDBDataSet ustaw właściwości:

         − DataSet – Zamówienia;

         − Nazwa użytkownika – zamówienia.

Drugie trzy:

  • W przypadku tabeli ADOTable ustaw właściwości:

         − Połączenie – ADOConnection1;

         − Imię i nazwisko – klient;

        − Nazwy pól – CustNo;

− MasterSource – DataSource1;

− Pola nadrzędne - CustNo;

− TableName – klient.

  • W przypadku źródła danych ustaw właściwości:

         − DataSet – Klient.

  • W przypadku zestawu frxDBDataSet ustaw właściwości:

         − DataSet – Klient;

− Nazwa użytkownika – Klient.

Trzecie trzy:

  • W przypadku tabeli ADOTable ustaw właściwości:

− Połączenie – ADOConnection1;

− Nazwa – Przedmioty;

− IndexFieldnames – OrderNo;

− MasterSource – DataSource1;

− MasterFields - OrderNo

− TableName – przedmioty.

  • W przypadku źródła danych ustaw właściwości:

         − DataSet– Przedmioty.

  • W przypadku zestawu frxDBDataSet ustaw właściwości:

− DataSet– pozycje;

− UserName – Przedmioty.

Czwarte trzy:

  • W przypadku tabeli ADOTable ustaw właściwości:

− Połączenie – ADOConnection1;

− Nazwa – części;

− TableName – części.

  • W przypadku źródła danych ustaw właściwości:

         − DataSet – części.

  • W przypadku zestawu frxDBDataSet ustaw właściwości:

− DataSet – części;

− UserName – części.

Prawdopodobnie zauważyłeś, że tabela Odbiorca i Elementy mają relację z DataSource1 (pierwsza tabela — zamówienia). Oznacza to, że są one połączone kluczem (relacja jeden do wielu). Wiele zamówień może mieć tylko jednego Klienta itp. Jest to konieczne, aby podczas wyświetlania informacji o konkretnym zamówieniu w raporcie, dane były pobierane z połączonych tabel istotnych dla tego zamówienia.

Utwórzmy obliczalne pola w tabeli ADOTable dla tabeli Elementy, aby uprościć naszą dalszą pracę z szablonem raportu. Kliknij dwukrotnie ten obiekt i zobacz okno z polami tabeli. Początkowo będą one puste, ale można je załadować z menu kontekstowego, wybierając Dodaj pola ...:

 Elementy ADOTable pola okno z ceną i opis dodany

Pola Cena i Opis zostaną pobrane z tabeli Part.

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

 Pole ceny dodawanie do artykułów reklamowych

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

 Pole opisu dodawanie do pozycji ADOTable

W ten sposób wyeliminowaliśmy konieczność korzystania z tabeli Part w naszym raporcie; zdobyliśmy już wszystko, czego potrzebowaliśmy.

Teraz, gdy tylko utworzyliśmy źródło danych i skonfigurowaliśmy relacje między tabelami, dodajmy kilka przycisków do formularza: Raport projektu i ShowReport.

Jak zapewne się domyślacie, pierwszy przycisk uruchamia projektanta raportów, a drugi wyświetla raport.

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

1
frxReport1.DesignReport();

Aby wydrukować gotowy raport, można dodać okno dialogowe Otwórz plik do formularza, aby wybrać raport utworzony w projektancie. Kod do drukowania raportu będzie taki:

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

Jeśli chcesz wyświetlić podgląd raportu, możesz zastąpić funkcję Drukuj wyświetlaniem raportu:

1
 frxReport1.ShowReport();

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

Nadszedł czas, aby omówić o raport, które zamierzamy stworzyć. Aby dokument był prosty i czytelny dla klienta, musisz umieścić na nim wszystkie niezbędne informację. Ale pamiętaj aby nie przesadzić z ich zawartością. Spróbujmy utrzymać tę delikatną równowagę. Tak więc, naszym zdaniem, faktura powinna zawierać następujące informacje:

 Szablon faktury

Na rysunku tym przedstawiono ważne obszary dokumentu.

  1. Dane sprzedawcy. Każdy dokument powinien zawierać informacje o sprzedawcy: imię i nazwisko, adres, telefon, adres e-mail, dodatkowe informacje (opcjonalnie);

  2. Dane Nabywcy – konieczne jest wskazanie osoby faktycznie odpowiedzialnej za płatność;

  3. Identyfikatory zamówień i faktur, wystawienie faktury i terminy płatności. Identyfikatory te pomogą znaleźć fakturę lub zamówienie w bazie danych, w przypadku gdy klient ma jakiekolwiek pytania później;

  4. Informacje o zawartości zamówienia. Klient musi zrozumieć, za co płaci. Konieczne jest określenie nazwy i ilości towarów, a także koszt jednostkowy;

  5. Całkowita kwota. Łączne kwoty są niezbędne nie tylko do dokonania płatności, ale także do wykonywania obliczeń;

  6. Szczegóły płatności. Ponieważ jest to faktura płatnicza, powinna ona zawierać dane odbiorcy;

  7. Dane bankowe dotyczące płatności za granicą. Nawet jeśli w tym przypadku klient nie pochodzi z zagranicy, możesz pozostawić te dane dla ujednoliconej formy;

  8. Informacje wyjaśniające. Ważne jest, aby podać dane kontaktowe w przypadku pytań. Należy również ostrzec o konsekwencjach opóźnionych płatności. Zmobilizuje to klienta do dotrzymania terminu płatności.

Stworzymy taki dokument w projektancie raportu, który już uruchomiliśmy. Przede wszystkim wybierz zestawy danych raportu.

 Zestawy danych raportów

Nie potrzebujemy tabeli Part 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:

  • numer faktury – Orders.OrderNo;
  • data faktury – zmienna systemowa [Data];
  • termin płatności – bieżąca data [Data] + liczba dni.

Ten zespół jest połączony z tabelą Zamówienia. Informacje o zawartości zamówienia będą wyświetlane w podrzędnym pasie Dane: nazwa produktu, ilość, cena towaru, cena dla określonej ilości, podatek VAT, który nie jest uwzględniony w cenie w niektórych krajach (pokazany jako przykład), całkowita kwota PODATKU VAT.

Kwota VAT, kwota netto, suma faktury będą wyświetlane w stopce. Zostaną tam również podane szczegóły płatności.

Wzór raportu

Dodaj kilka informacji wyjaśniających do stopki strony, aby uniknąć pytań od klientów:

Other recommendations for the client

Sumy częściowe netto są obliczane w ramach rekordu pojedynczej tabeli przez pomnożenie ilości towarów przez cenę towaru:

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

Kwota PODATKU VAT jest obliczana według wzoru:

Ilość towarów * cena towaru * VAT %

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

Całkowita kwota netto:

∑(ilość towaru * cena towaru)

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

Łączna kwota podatku VAT:

∑( ilość towarów * cena towaru * stawka VAT)

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

Suma faktury:

∑(ilość towaru * cena towaru)+ ∑( ilość towarów * cena towaru * stawka VAT)

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

To wszystko. Zapisz raport w schowku i zamknij projektanta raportów. Za pomocą drugiego przycisku wybierz wygenerowany raport i pobierz okno dialogowe Drukowanie lub okno podglądu, jeśli w kodzie przycisku użyto programu ShowReport().

 Faktura pokazana w raporcie

W ten sposób stworzyliśmy fakturę płatniczą i wyświetliliśmy ją użytkownikowi w zaledwie pół godziny. Teraz, z okna podglądu raportu, możemy wysłać dokument do wydrukowania lub wyeksportować do jednego z popularnych formatów dokumentów elektronicznych: PDF, DOCX, XLSX, RTF i wielu innych.

about product pobierz zamów
avatar
Dmitriy Fedyashov
Technical Writer
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
VCL FastReport FastReport 6 Delphi Invoice

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ść