>Hola amigos Foxuser's
>
>Necesito una rutina simple para crear una factyura utilizando una tabla de Cabeceras de factura, una tabla de detalle, una tabla de items a facturar, una tabla de clientes.
>
>Gracias por su ayuda
¿Qué quiere decir "crear una factura"? ¿Imprimir? Selecciona los datos a un solo cursor, y luego imprímelos. Tu reporte (informe) tiene que estar especialmente preparado para este fin.
En tu base de datos, la información está normalizada. Para el informe, creas una versión "denormalizada", que duplica cosas tales como el encabezado de la factura, y el cliente. Ejemplo:
select NumFactura, Fecha, Cliente from Factura;
where NumFactura = ThisForm.TxtNumFactura.Value;
into cursor TempReport;
nofilter
select TempReport.*, df.Item, df.Cantidad, df.PrecioUnitario;
from TempReport join DetFactura df on TempReport.Factura = df.Factura;
into cursor TempReport
select TempReport.*, cl.Nombres, cl.Direccion;
from TempReport join Clientes cl on TempReport.Cliente = cl.Cliente;
into cursor TempReport
report form Factura preview
Se puede combinar los SELECT en un solo comando, pero al tenerlo separado en varios comandos, tienes dos ventajas: 1) es menos confuso, 2) frecuentemente es más rápido.
HTH,
Hilmar.
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)