Hola CCortes:
Yo te expongo como yo lo haría y luego tú decides.
1.- Genera una base de datos con dos tablas CABECERAS_FACTURA y LINEAS_FACTURA, relacionándolas por un campo común que en este caso podría ser NumeroFactura.
2.- En un control grid, el que más te guste, (yo utilizo el TrueDBGrid) vas introduciendo las lineas que componen la factura que, lógicamente, estará enlazado a la tabla LINEAS_FACTURA.
3.- En la tabla CABECERAS_FACTURA recogerás los datos relativos a la fecha,cliente,domicilio, número de factura, etc.
4.- Por último la impresión de cada factura la harás combinando las dos tablas a las que nos venimos refiriendo.
Esto lo podrás hacer mediante un Data Report, con Crystal Reports, exportando el informe a Word, Excel o como tú mejor prefieras.
Bueno, esto es una idea absolutamente elemental y la más básica de cuantas podamos plantearnos.
Lógicamente, en una aplicación "seria" la base de datos debería de contener otras muchas tablas como por ejemplo CLIENTES, ARTICULOS, FORMAS DE PAGO, TARIFAS DE PRECIOS, ETC., ETC.
En fín, esta es mi modesta idea.
Saludos cordiales.