Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-08-2006
Supermagayin Supermagayin is offline
Miembro
 
Registrado: nov 2003
Ubicación: Mexico
Posts: 54
Poder: 21
Supermagayin Va por buen camino
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
Responder Con Cita
  #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
Poder: 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
  #3  
Antiguo 30-08-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 30-08-2006
Supermagayin Supermagayin is offline
Miembro
 
Registrado: nov 2003
Ubicación: Mexico
Posts: 54
Poder: 21
Supermagayin Va por buen camino
Gracias por la Idea, me han ayudado mucho.
__________________
Saludos

Última edición por Supermagayin fecha: 30-08-2006 a las 22:10:56.
Responder Con Cita
  #5  
Antiguo 30-08-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 12:55:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi