logo
small logo
  • Producto
  • Comprar
  • Ayuda
  • Blogs
  • Recuperar contraseña
    • en
    • ru
    • pt
    • es
    • JP
    • ZH
  • Página principal
  • /
  • Blogs
  • /
  • Cómo crear un recibo de venta desde una aplicación Delphi
  • How to print business cards from a Delphi application

    24 de agosto de 2020

    Applications built in Delphi are less common than, for example, those built in C #.

    read more
  • How to create an invoice from a Delphi application

    1 de julio de 2020

    As for Delphi applications, we understand that we are talking about applications implemented in VCL

    read more
  • Informes web en Lazarus en Linux

    15 de diciembre de 2020

    Hasta hace poco, generar informes a través de la Web desde una aplicación escrita en

    read more
  • Cómo crear un Open Documents Spreadsheet desde Delphi / C++Builder / Lazarus

    3 de agosto de 2020

    Resumen de ODS y ODF ODS es un formato abierto para hojas de cálculo realizadas de

    read more
  • How to make a Swiss QR code to the bill in Delphi or Lazarus

    2 de junio de 2020

    Lately many countries have been digitizing payment processes. In other words, they convert existing payments

    read more

Cómo crear un recibo de venta desde una aplicación Delphi

20 de agosto de 2020

El lenguaje de programación Delphi, o Turbo Pascal, se ha convertido en un punto de partida para muchos desarrolladores. Gracias a la sintaxis simple y clara y la capacidad de escribir en un estilo procedimental, resultó muy fácil de aprender. Muchos lo compararían con Visual Basic, pero en la cima de su popularidad Delphi dio muchas más oportunidades gracias a los componentes para trabajar con bases de datos y su propia base de datos: Interbase.

A pesar de que C # y la plataforma .Net reemplazaron a Delphi y VCL, todavía hay un gran número de sus adherentes. Incluso las aplicaciones antiguas escritas en este lenguaje se pueden actualizar fácilmente utilizando bibliotecas modernas, por ejemplo, el generador de informes FastReport 6 VCL. Por ejemplo, los sistemas de contabilidad automatizados necesitan informes.

Un sistema de contabilidad de ventas automatizado debe permitir la formación de documentos de pago, como un recibo de venta. En este artículo, veremos cómo crear e imprimir un recibo de venta desde una aplicación Delphi. Usaremos el generador de informes FastReport VCL para crear un recibo y una aplicación de usuario para imprimirlo. Además de imprimir, simplemente puede mostrar su recibo en la ventana de visualización de informes, desde la cual puede imprimir el recibo, guardarlo en uno de los formatos de documentos más populares, enviarlo por correo electrónico o cargarlo en el almacenamiento en la nube.

Para crear un recibo de venta, necesitamos la información sobre: pedido, cliente, vendedor y contenido del pedido.

En este ejemplo, usaremos la base de datos demo.mdb de la distribución FastReport VCL.

Para crear una aplicación, usaremos el entorno de desarrollo Delphi 7.

Agreguemos dos botones al formulario: uno para ejecutar el diseñador de informes, otro para mostrar o imprimir el informe hecho. Agregue también el componente OpenDialog al formulario; esto nos permitirá seleccionar el archivo de informe deseado para abrir.

Pasemos ahora a crear una fuente de datos para el informe, recibo de venta. Como se ha mencionado anteriormente, usamos la base de datos demo.mdb, o más precisamente las tablas: Orders, CUstomers, Ittems, Parts y Employees. Usaremos el componente ADOConnection para conectarnos a la base de datos y los componentes ADOTable para obtener datos de cada tabla. La tabla Orders está vinculada a las tablas Customers, Ittems y Employees. Por lo tanto, necesitamos configurar estas conexiones. Para hacerlo, agregue un componente DataSource para cada ADOTable y para que todas estas tablas estén disponibles en el informe, agregue el componente frxBDDataSet para cada tabla.

Por lo tanto, para trabajar con una tabla, debemos obtener tres componentes: ADOTable, DataSource, frxDBDataSet.

 Data controls needed for the report

En ADOConnection, cree una conexión a la base de datos demo.mdb desde el paquete de FastReport VCL.

Estos ajustes de componentes (para cada una de las cinco tablas) se encuentran a continuación.

Tabla de pedidos:

1. Para ADOTable, configure las propiedades:

− Connection – ADOConnection1;
− Name – Orders;
− TableName – orders.

2. Para DataSource, configure las propiedades:

− DataSet – Orders.

3. Para frxDBDataSet, establezca las propiedades:

− DataSet – Orders;
− UserName – Orders.

Tabla Customers:

1. Para ADOTable, configure las propiedades:

− Connection – ADOConnection1;
− Name – Customer;
− IndexFieldnames – CustNo;
− MasterSource – DataSource1;
− MasterFields - CustNo;
− TableName – customer.


2. Para DataSource, configure las propiedades:

− DataSet – Customer.

3. Para frxDBDataSet, establezca las propiedades:

− DataSet – Customer;
− UserName – Customer.

Tabla de Items:

1. Para ADOTable, configure las propiedades:

− Connection – ADOConnection1;
− Name – Items;
− IndexFieldnames – OrderNo;
− MasterSource – DataSource1;
− MasterFields - OrderNo
− TableName – items.

2. Para DataSource, configure las propiedades:

− DataSet - Items.

3. Para frxDBDataSet, establezca las propiedades:

− DataSet – items;
− UserName – Items.

Tabla Parts:

1. Para ADOTable, configure las propiedades:

− Connection – ADOConnection1;
− Name – Parts;
− TableName – parts.

2. Para DataSource, configure las propiedades:

− DataSet – Parts.

3. Para frxDBDataSet, establezca las propiedades:

− DataSet – Parts;
− UserName – Parts.

Tabla Employees:

1. Para ADOTable, configure las propiedades:

− Connection – ADOConnection1;
− Name – Employee;
− IndexFieldnames – EmpNo;
− MasterSource – DataSource1;
− MasterFields - EmpNo
− TableName – employee.

2. Para DataSource, configure las propiedades:

− DataSet – Employee.

3. Para frxDBDataSet, establezca las propiedades:

− DataSet – Employee;
− UserName – Employee.

Las tablas Customer, Items y Employee tienen una relación con DataSource1 (la primera tabla, Orders). Están vinculados por clave de modo que para un registro en la tabla Orders se seleccionen los registros correspondientes de estas tablas.

La tabla Items contiene información sobre los artículos del pedido. No hay datos específicos sobre el artículo, solo un enlace a la tabla Parts. Agreguemos dos campos de la tabla Parts - Price y Description - a ADOTable para la tabla Items. Por lo tanto, no es necesario que utilicemos la tabla Items en el futuro.

Para agregar los campos computables a la tabla Items, haga doble clic en el objeto ADOTable y verá una ventana con los campos de la tabla. Inicialmente está vacío, pero puede cargarlos desde el menú contextual seleccionando Agregar campos…:

 Items table with two added fields

Los campos Price y Description se tomarán de la tabla Items.

Seleccione Nuevo campo ... en el menú contextual y agregue el campo Price:

 Settings to add Price field

Agregue una descripción de producto (campo Description) de la misma manera:

 Configuración para agregar campo Description

Ahora, tan pronto como hayamos creado la fuente de datos y configurado las relaciones entre las tablas, agreguemos un par de botones al formulario. Como recuerda, el primer botón inicia el diseñador de informes y el segundo muestra el informe.

No olvide agregar el componente frxReport al formulario.

Agregue un evento Click para cada uno de los botones. Aquí está el código del manejador de eventos para mostrar el diseñador de informes:

1
frxReport1.DesignReport();

Para imprimir el informe terminado, puede agregar el cuadro de diálogo Abrir archivo al formulario para seleccionar el informe creado en el diseñador. El código para imprimir el informe será así:

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

Si necesita obtener una vista previa del informe, puede reemplazar la función Imprimir con la presentaci'on del informe:

1
 frxReport1.ShowReport();

Ahora puede ejecutar la aplicación, haga clic en el botón Design informe y proceda a la creación del informe.

En primer lugar, seleccione conjuntos de datos de informes.

 Fuentes de datos necesarias en el informe

No necesitamos la tabla Items en este informe, por lo cual no tiene que seleccionarla. Pasemos a la creación de la plantilla. Hay dos bandas de datos en nuestro informe: MasterData y DetailData. En la primera banda de datos, mostramos la información sobre el cliente:

  • nombre – Customer.Company;
  • dirección - Customer.Addr1;
  • teléfono - Customer.Phone.

… Y el cliente:

  • nombre de empresa;
  • empleado - Employee.FirstName Employee.Last Name;
  • número de pedido - Orders.OrderNo;
  • fecha de venta - Orders.SaleDate.

Esta banda está vinculada a la tabla Orders. La información del contenido del pedido se mostrará en una banda de datos subordinada: nombre del producto, cantidad, precio del artículo, precio de la cantidad especificada.

Los totales, como el monto neto total, la tasa de impuestos, el monto final con impuestos incluidos se mostrarán en el pie de página.

Sales receipt teplate

Los subtotales Line Total se calculan multiplicando la cantidad y el precio del artículo como parte de una sola entrada de tabla:

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

Los subtotales netos se calculan mediante la fórmula:

∑ (cantidad del artículo * precio del artículo)

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

Valor total de impuestos:

∑ (cantidad del artículo * precio del artículo * tasa de impuestos)

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

Total adeudado:

∑ (cantidad del artículo * precio del artículo) + ∑ (cantidad del artículo * precio del artículo * tasa de impuestos)

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

Además, el método de pago se refleja en el pie de página de la banda de datos. Se espera que se especifique al imprimir un recibo de venta manualmente.

Aquí podemos decir que nuestro informe está listo para mostrarse. Guárdelo en el almacenamiento local y cierre el diseñador de informes. Usando el segundo botón en el formulario, seleccione el informe guardado e imprímalo (si usó la opción de impresión en el código) u obtenga una vista previa si eligió la opción de vista previa del informe - ShowReport ().

The report with sales receipt

Eso es. Con poco esfuerzo, puede implementar funciones útiles para su sistema de contabilidad. Ahora, desde la ventana de visualización del informe, puede imprimirlo o guardarlo en uno de los formatos de documento más populares: PDF, DOCS, XLSX, XML, RTF y muchos otros.

avatar
Dmitriy Fedyashov
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
  • Comprar
  • Descargar
  • Documentación
  • Opiniones de usuarios
  • Cómo desinstalar nuestros productos
  • Enviar mensaje
  • FAQ
  • Toturial en vídeo
  • Foro
  • Documentación técnica
  • Nuestras noticias
  • Quiénes somos
  • Socios
  • Nuestro equipo
  • Contactos

© 1998-2021 by Fast Reports Inc.

  • Privacidad