Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-06-2004
simon simon is offline
Miembro
 
Registrado: jun 2004
Posts: 31
Poder: 0
simon Va por buen camino
Relacion Master Detail

Un cordial saludo para todos........

tengo un problemita y es el siguiente:

Tengo una Forma de Pedido de Articulos en el cual utilizo dos tablas una de Pedios y Articulos.

en la primera uso codigoPedigo,Fecha y CodigoCliente, Tambien tengo un DBGrid en lasado al DataSource de la segunda tabla(Articulos) la cual tengo una relacion Master, Detail entre la dos Tablas.

Lo que quiero es q cuando digite el codigo del Articulo en el DBGrib me traiga la Descripcion y el Precio del Articulo. Estoy utilizando la siguiente rutina

Código Delphi [-]
 
procedure TFrm_Pedidos.Tbl_PedidoCodigo_ArticuloChange(Sender: TField);
  var ls_CodigoArticulo:string;
  var ls_codigoPedido:real;
begin
ls_CodigoArticulo := Tbl_Pedido.FieldbyName('Codigo_Articulo').asstring;
ls_CodigoPedido   := Tbl_Pedido.FieldbyName('Precio_Unitario_Articulo').Index;
Qry_Articulo.Close;
with qry_Articulo do begin
with sql do begin
clear;
add ('select * from Articulos ');
add ('select * from Pedidos ');
add ('where Codigo_Articulo = ');
add ('where Precio_Unitario_Articulo = ');
add (''''+ls_CodigoArticulo+'''');
open;
 if recordcount = 0 then
   begin
    ShowMessage('El Codigo no Existe ');
    Abort;
  end;
  if Dts_Articulo.State in [dsinsert,dsedit] then
     Tbl_Pedido.FieldByName('Pescripcion_Articulo').Asstring := Qry_Articulo.FieldByname('Descripcion_Articulo').Value;
//     Tbl_Pedido.FieldByName('Precio_Unitario_Articulo').Asstring := Qry_Articulo.FieldByname('Precio_Unitario_Articulo').Value;
end;
end;
end;

Última edición por delphi.com.ar fecha: 18-06-2004 a las 15:27:53. Razón: Etiqueta [delphi]
Responder Con Cita
  #2  
Antiguo 18-06-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
No entiendo cual es tu problema, pero algo seguro no está bien, estas agregando dos Sql´s línea a línea... Antes de hacer el Open, evalúa el valor que ha quedado en el Sql del Query, verás que no es correcto.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 18-06-2004
simon simon is offline
Miembro
 
Registrado: jun 2004
Posts: 31
Poder: 0
simon Va por buen camino
gracias federico por su sugerencia....

dejamer ver si me doy a entender un poco mas, en una forma tengo dos tabla la cual estan relacionada los nombre son (Pedidos y Articulos).

estoy utilizando la de Articulo en un DBGrid, pero lo que esta enlasado al DBGrid es el DataSouce del Articulo lo que quiero es digitar el codigo del articulo en el DBGrid y este me traiga la Descripcion y el Precio del Articulo de la Tabla Articulo.

me gustaria saber que codigo tu utilizaria para que te de ese resultado.

graciassssssss
Responder Con Cita
  #4  
Antiguo 18-06-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Hola.

Si lo que queres meter es el detalle del pedido, estas equivocando el camino.

Te hará falta una tabla para almacenar el detalle, que tenga los campos necesarios para relacionarse con el pedido por un lado, y con el artículo por otro.

Hecho esto, podes usar campos lookup para traer la descripción y precio del artículo. Si te interesa almacenar los precios (o descripciones) históricos, entonces esta tabla también debe tener un campo para almacenarlo, y podes valerte del evento OnChange del código de artículo para asignar su precio en ese instante.

Espero haberme explicado y aclararte un poco las cosas.

Hasta luego.

Responder Con Cita
  #5  
Antiguo 18-06-2004
simon simon is offline
Miembro
 
Registrado: jun 2004
Posts: 31
Poder: 0
simon Va por buen camino
mucha gracias, Por la aclaracion, uno de los problema era que tenia el DBGrid enlasado al DataSource del Articulo y tiene que ser al DataSource Pedido. Cuando digito en el DBGrid el codigo me trae la descripcion del articulo pero no me trae el precio.

usando el siguiente codgio
Código PHP:
procedure TFrm_Pedidos.Tbl_PedidoCodigo_ArticuloChange(SenderTField);
  var 
ls_CodigoArticulo:string;
begin
ls_CodigoArticulo 
:= Tbl_Pedido.FieldbyName('Codigo_Articulo').asstring;
Qry_Articulo.Close;
with qry_Articulo do begin
with sql 
do begin
clear
;
add ('select * from Articulos ');
add ('where Codigo_Articulo = ');
add (''''+ls_CodigoArticulo+'''');
open;
 if 
recordcount 0 then
   begin
    ShowMessage
('El Codigo no Existe ');
    
Abort;
  
end;
  if 
Dts_Pedido.State in [dsinsert,dseditthen
     Tbl_Pedido
.FieldByName('Descripcion_Articulo').Asstring := Qry_Articulo.FieldByname('Descripcion_Articulo').Value;
end;
end;
end
si a esta rutina le falta alguna lineas o modificacion la pueden agregar.
en realidad tengo dos tabla la de pedido la cual funciona como encabezado y la de articulos esta funciona como detalle, pero tenia un problemiata
mil gracias nuevamente
Responder Con Cita
  #6  
Antiguo 18-06-2004
simon simon is offline
Miembro
 
Registrado: jun 2004
Posts: 31
Poder: 0
simon Va por buen camino
nuevamente gracias por la sugerencia.
esa parte ya esta resuelta solo tuve que agregarle la ultima linea y decirle que me traiga el precio del articulo.

pero tengo un nuevo preblema como estoy usando dos tablas encabezado y detalle o Articulos y Pedidos, en un boton que tengo para insertar registro cuando hago un click en el boton me limpia los campos del encabezado o en la tabla Pedido, pero en el DBGrid me incerta una linea y no me limpa el DBGrid.

espero me endiandan.
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


La franja horaria es GMT +2. Ahora son las 05:32:48.


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