Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-11-2005
EfrainSanmiguel EfrainSanmiguel is offline
Miembro
 
Registrado: oct 2004
Ubicación: Venezuela
Posts: 39
Poder: 0
EfrainSanmiguel Va por buen camino
Smile

exactamente, eso es exactamente lo que necesito hacer veras yo tengo una tabla de productor terminados y tengo otra de materias primas, entonces en la tabla mezcla necesito lo siguiente:

seleccionar del combo el codigo de un producto terminado "x" y asignarle a traves del grid varias materias primas con sus cantidades, costos, y porcentajes....... y que quede grabado eso, en pocas palabras eso seria como la receta (lo que se necesita para poder producir ese producto terminado)..

guao, muchas gracias de verdad de ante mano.... ojala y me puedan ayudar..!
Responder Con Cita
  #2  
Antiguo 08-11-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 22
Héctor Randolph Va por buen camino
1.- Primero que nada establece la relación Maestro-Detalle entre las tablas Mezclas/Materias_Primas.

Esto lo puedes hacer con las propiedades MasterSource y MasterFields del DataSet Detalle (Materias_Primas)

En este punto te aconsejo que veas un demo que trae delphi que se llama MastApp búscalo en la carpeta de 'Demos/DB'.

2.- Para seleccionar el producto terminado en un ComboBox agrega un DBLookUpComboBox y crea una relación entre la tabla Mezclas/Productos terminados (no es necesario agregar un campo LookUp en la tabla de Mezclas).

3.- Para que cada celda nueva en el DBGrid tenga la clave del producto terminado utiliza el evento OnNewRecord como te lo indique anteriormente

4.- Para calcular los totales puedes utilizar una sentencia SQL en un query por ejemplo:
Código SQL [-]
  SELECT SUM(costos) FROM materias_primas WHERE   codigo_producto=:mi_codigo AND codigo_mezcla=:mi_mezcla;

Debes actualizar las sumas después de guardar cambios o borrar algún registro de la tabla de materias primas, es decir en los eventos OnPost y OnDelete.

Bueno, creo que son muchas cosas a la vez, intenta con esto por lo pronto.

Un saludo.
Responder Con Cita
  #3  
Antiguo 08-11-2005
EfrainSanmiguel EfrainSanmiguel is offline
Miembro
 
Registrado: oct 2004
Ubicación: Venezuela
Posts: 39
Poder: 0
EfrainSanmiguel Va por buen camino
Question

Ok. voy a seguir esos pasos, pero una duda?

porque una relacion maestro delatalle entre Mezclas y materias primas?
no debe ser entre Mezcla-Productos Terminados??

porque el codigo de la mezcla debe ser el mismo del codigo del producto terminado.... y en el grid es donde debo cargar las materias primas que van a conformar el producto terminado "x".....
Responder Con Cita
  #4  
Antiguo 10-11-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 22
Héctor Randolph Va por buen camino
En realidad necesitas otra tabla para la relación Mezclas-Materias_primas
porque es una relación uno a muchos (1 <-> n).

A cada mezcla se le puede asociar más de una materia prima.

Crea una tabla que se llame partidas_mezclas o algo asi, en ella los atributos son:
el código de la mezcla, y el código de la materia prima,el costo, la cantidad, etc.
Esta nueva tabla es la que estará asociada con el DBGrid.

La relación maestro-detalle es entre Mezclas/Partidas_Mezclas

Por otra parte, la relación Mezclas-Productos terminados es uno a uno (1<->1).

A cada mezcla le corresponde un sólo producto terminado y viceversa.

Esta no es relación maestro-detalle, en este caso puedes utilizar un DBComboLookUp
-------------------------------------------------
Crea esta nueva tabla y seguimos en contacto.

Última edición por Héctor Randolph fecha: 10-11-2005 a las 04:53:29.
Responder Con Cita
  #5  
Antiguo 12-11-2005
EfrainSanmiguel EfrainSanmiguel is offline
Miembro
 
Registrado: oct 2004
Ubicación: Venezuela
Posts: 39
Poder: 0
EfrainSanmiguel Va por buen camino
Question

Hola, ya realice todos los pasos que me dijistes, tengo un detallito necesito que el campo codigo del DBgrid sea igual al valor del DBLookupComboBox

es decir: MisTablas.Mezclas.FieldByName('Codigo').Value := DBlookupComboBox1.Text;
------------------------------------------------------------------------

hice lo que me dijistes del OnewRecord en la tabla que esta ligada al DBgrid pero cuando guarda, lo que hace es poner en el campo codigo del DBgrid el mismo valor del codigo de la materia prima que seleccione en el grid.


este es el codigo que tengo:

procedure TMisTablas.PartidasNewRecord(DataSet: TDataSet);
begin
MisTablas.PartidasCODIGO.Value:= MisTablas.MezclasCodigo.Value;
end;
------------------------------------------------------------------------
este codigo lo uso para guardar:

procedure TFrmMezclas.ItemsGridEnter(Sender: TObject);
begin
if (DSMezclas.DataSet.State = dsEdit) or (DSMezclas.DataSet.State = dsInsert) then
begin
DSMezclas.DataSet.Post;
DSMezclas.DataSet.Refresh;
end;
end;
Responder Con Cita
  #6  
Antiguo 12-11-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 26
vtdeleon Va por buen camino
Saludos

EfrainSanmiguel, apuesto que no has leido la guia de estilo!!!!
Has posteado en este hilo 6 mensaje, y aun no he visto la primera etiqueta utilizada por tí.
Creo que ya es hora de utilizarlas
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #7  
Antiguo 14-11-2005
EfrainSanmiguel EfrainSanmiguel is offline
Miembro
 
Registrado: oct 2004
Ubicación: Venezuela
Posts: 39
Poder: 0
EfrainSanmiguel Va por buen camino
disculpa!!

a ok. no sabia pero con referente al tema pudieras ayudarme!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 21:40:27.


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