Los informes, como una de las formas de salida típicas de información del sistema, son una función importante de la mayoría de los sistemas de aplicación que son funciones extraordinarias e importantes de los sistemas MIS. Si tiene una buena función de impresión a menudo está relacionada con el éxito o el fracaso del sistema hasta cierto punto. Delphi tiene fuertes funciones de informes, pero sus funciones de informes no pueden satisfacer nuestras necesidades. Por lo tanto, muchos expertos en Delphi han lanzado sucesivamente muchos controles de informes (módulos) excelentes como suplementos para QuickReport, entre los cuales Fastreport es un representante.
Fastreport combina las ventajas de QuickReport e ReportBuilder, es de tamaño pequeño, rápido en velocidad y tiene todo el código fuente. Al desarrollar un sistema de tratamiento de drogas, el autor produjo con éxito un informe basado en formularios que era exactamente el mismo que el formulario de aceptación de medicamentos y la asignación de medicamentos utilizando Fastreport 2.51. Déjame presentarlo a mis amigos a continuación.
Fastreport2.51 Dirección de descarga: http // www.skycn.com/soft/8805.html.
Análisis de requisitos de informe
Los amigos que trabajan en el hospital saben que cuando las drogas se colocan en el almacén, deben completar el formulario de aceptación de drogas, y cuando el personal de farmacia recibe las drogas, deben completar el formulario de asignación de drogas. El formulario de aceptación de drogas y el formulario de asignación utilizado por el autor no está dedicado, sino un formulario general de aceptación del producto y un formulario de asignación. A diferencia de los informes utilizados en los grandes almacenes y los sistemas de telecomunicaciones, su apariencia tiene forma de barra, y cada hoja se puede llenar con cinco tipos de medicamentos, incluida la unidad de entrega, el número de pedido de entrega, la unidad de entrega, el nombre del producto, las especificaciones, la unidad, el precio , Cantidad, etc., un estilo y una combinación triple.
En resumen, podemos resumir los requisitos del diseño de informes de la siguiente manera:
1. Tamaño: 21 cm de largo y 10 cm de ancho;
2. Cada uno puede imprimir 5 tipos de medicamentos, y el subtotal de esta página se encuentra en el formulario.
3. Cuando hay más de 5 drogas, comience a imprimir una nueva forma.
Diseño de informes
1. Abra el diseñador de informes de Fastreport y diseñe el "formulario de aceptación de drogas" según la Figura 1.
(La imagen es grande, por favor, tire de la barra de desplazamiento para mirar)
Además, las variables inhj, Outhj, Cahj y Linecount representan "total en la tienda", "en la tienda total", "diferencia total" y "filas de datos totales", y estas variables se asignarán valores en el programa.
2. Presione F11 para llamar al visor de objetos, seleccione Band2 e ingrese el siguiente código en su evento OnbeforPrint:
Comenzar
Si line#-1 <> 0 y line#-1 mod 5 = 0 entonces
Comenzar
showbandchild1
showbandband1
fin
fin
En el código, use la función incorporada line# de Fastreport para obtener el número de línea actual.
3. Seleccione Child3 e ingrese el siguiente código en su evento Onbeforprint:
Comenzar
lin = linecount // Asignar valor a esta variable en el programa
mientras que lin mod 5 <> 0 do
Comenzar
showbandchild2 // imprime líneas vacías
inclin
fin
showbandchild3
fin
El propósito de este código es imprimir líneas en blanco si la última línea de datos no es suficiente para que se muestre un formulario.
4. Seleccione Band3 e ingrese el siguiente código en su evento Onbeforprint:
Comenzar
showbandchild1 // Cuando se alcanza el informe, se muestra el contenido en la parte inferior del formulario
fin
5. Guarde el informe y regrese al entorno de desarrollo de Delphi.
Parte de programación de Delphi
En la parte de programación de Delphi, completamos principalmente el paso de los parámetros requeridos para el informe.
Privado
Line1line2integer // Guardar el número de línea
Inputxjintemp // Entrada subtotal en el almacén, claro después de cada 5 líneas, lo mismo a continuación
outxjOutemp // Salida Subtotal
Cajiaxjcatempreal // subtotal de la diferencia de precios
A continuación se muestra una lista de códigos para varios procesos principales.
// proceso de fusión de datos de forma única
procedimiento tinputform.frdbdataset1NextSender Tobject
varilla
Recuento de Integer
Comenzar
Cuento = Adoruku.RecordCount
Incline1 // Esta variable se transmite al archivo de informe para controlar la impresión de líneas vacías
Incline2 // Esta variable controla el valor subtotal
Si no es adorku.eof entonces
Comenzar
inputxj = inputxj+adoruku.fieldbyname'Input cantidad'.asfloat
outxj = outxj+adoruku.fieldbyname'out-deposit cantidad '.asfloat
Cajiaxj = Cajiaxj+Adorukujxcj.asfloat
fin
// borrar el valor subtotal después de cada 5 filas
Si line2 mod 5 = 0 y Recount> line2 div 5 5 entonces
Comenzar
intemp = inputxj
outemp = outxj
Catemp = Cajiaxj
inputxj = 0
outxj = 0
Cajiaxj = 0
fin
// Asignar un valor a la variable cuando alcanza el final del conjunto de datos
Si adoruku.eof entonces
Comenzar
intemp = inputxj
outemp = outxj
Catemp = Cajiaxj
fin
fin
El programa anterior fue depurado y aprobado en Windows 2000/XP+Delphi6.0. Hasta ahora, hemos completado el diseño del formulario de aceptación de drogas, y otros diseños de informes similares pueden referirse al proceso anterior. La Figura 2 es el efecto de vista previa del informe generado cuando el programa se está ejecutando.
(La imagen es grande, por favor, tire de la barra de desplazamiento para mirar)