Ver Mensaje Individual
  #2  
Antiguo 30-08-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Necesitas una tabla para las cotizaciones:

cotizacion = (id, cliente_id, fecha, ... )

y una tabla para las líneas (productos) que incluye una cotización:

linea_cotizacion = (id, cotizacion_id, cantidad, ... )

Tendrás dos datasets, uno para cada tabla, además de las de productos y clientes, y estableces una relación maestro-detalle entre ambas:

cotizacion.id -> linea_cotizacion.cotizacion_id

Además tendrás dos dbGrid enlazados a estas tablas.

Cuando inicies la cotización añades un registro a la tabla de cotizaciones y lo llenas de entrada con el id del cliente seleccionado (en el dbgrid de clientes) y otros campos que hagan falta.

Haces el post y tomas el id asignado (suponiendo que lo genera el servidor o que es un campo autoincremental).

Al añadir un producto, (p. ej. con un doble click), agregas un registro a la tabla de líneas de cotización, y al registro en blanco le asignas el id de la cotización que ya obtuviste y el id del producto seleccionado en el dbgrid de productos.

De esta forma, tus líneas se guardan automáticamente con las relaciones necesarias sin necesidad de usar un StringGrid.

Algo así.

// Saludos
Responder Con Cita