FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Consejo sobre flujo
Hola a todos, de antemano muchas gracias.
Quiero pedirles un consejo. Resulta que estoy haciendo un programa que captura cotizaciones, y quiero saber cual seria la forma correcta de mostrar los datos y de capturarlos. Tengo una tabla de "producto" que tiene precios y descripcion y tengo otra de "clientes". Lo que a mi se me ocurrio: poner un dbgrid que muestre los productos y su precio, puse un boton para que al precionarlo, el producto seleccionado pase a un stringrid del lado derecho y alli ir acumulando la lista de la cotizacion. Mi pregunta es...cual seria la forma correcta de grabar esta informacion en una tabla. O mejor si alguien se le ocurre una forma mas sencilla de resolver mi necesidad. Utilizo delphi 6 y access.
__________________
Saludos |
#2
|
||||
|
||||
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 |
#3
|
||||
|
||||
Hola
Yo esto lo haria con pageControl, en la primera pagina pondria la tabla clientes y la Productos, con un boton localizo al cliente, y en el grid tengo los productos (por ejemplo), al darle dobleclick al grid me pasa estos datos a otra tabla nueba (previo mensaje....Quiere pasar si/no): Numero cotizacion. cliente producto, precio Ect, en esta segunda pagina con un Query y un dbgrid visualizo los datos que estoy introduciondo, con filtro de cliente y numero cotizacion. y si voy a ser mas preciso, con edit en la primera pagina busco el numero de cotizacion que quiero y me la presenta en la segunda pagina. asi puedes hacer pracicamente lo que quieras. (3 Tablas) no dos. Con una numeracion de cotizacion puedes borrar esta si no la necesitas sin afectar otras cotizaciones. Espero te ayude. Saludos |
#4
|
|||
|
|||
Gracias por la Idea, me han ayudado mucho.
__________________
Saludos Última edición por Supermagayin fecha: 30-08-2006 a las 22:10:56. |
#5
|
||||
|
||||
De hecho te servirá revisar el demo MastApp que viene con Delphi. Es un ejemplo muy completo que incluye como agregar pedidos y líneas de un pedido. En ese caso, desde el grid de líneas abres un formulario con la lista de productos. Hay muchas formas de organizar visualmente los controles y una opción es la que comenta Caral. Pero lo importante de ese demo es que puedes aprender con más detalle el funcionamiento de las relaciones maestro-detalle.
// Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
consejo ..sobre teclas rapidas | ingel | Varios | 1 | 15-12-2005 17:18:09 |
Consejo sobre uso de contraseña. | alfredosg19 | Varios | 2 | 08-03-2005 14:22:43 |
Un consejo sobre como armar una bd | Walterdf | Conexión con bases de datos | 4 | 11-05-2004 19:53:33 |
Consejo sobre componente para backup | apicito | Varios | 0 | 10-05-2004 20:10:59 |
Consejo sobre indexación | JODELSA | Conexión con bases de datos | 1 | 19-05-2003 19:05:34 |
|