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
  #7  
Antiguo 18-06-2004
Jvilomar Jvilomar is offline
Miembro
 
Registrado: mar 2004
Ubicación: Republica Dominicana
Posts: 97
Poder: 21
Jvilomar Va por buen camino
hola.. dejame darte una sugerencia...

yo tengo una aplicacion parecida... de facturacion y lo que hago es lo siguiente..

Tengo una tTable llamada tFactura y otra tDetalleFactura, en cuanto a la parte de los articulos existe otra llamada tArticulos aunque en este paso no se si prefieras usar un tQuery pero para el fin es lo mismo.....

Pues lo que hago es lo siguiente en tiempo diseño en la tabla tDetalleFactura por medio del field editor creo los campos del tipo tlookup, en este caso, serian: Precio,Descripcion,etc. sino sabes como abrir el field editor me lo dejas saber para explicartelo con mas calma.

esto te ahorra codigo y al mismo tiempo los puedes utilizar para hacer calculos como importe y otras cosas como eso...

Pruebalo a ver como te va......
__________________
El conocimiento es un Patrimonio Universal....
Responder Con Cita
  #8  
Antiguo 21-06-2004
simon simon is offline
Miembro
 
Registrado: jun 2004
Posts: 31
Poder: 0
simon Va por buen camino
muy buen dia..... disculpa por no aberte condetesdo con mas tiempor pero solo estoy usando este medio de informacion de lunes a viernes por que lo uso en el area de mi trabajo y no trabajo los sabados ni los domingos.

gracias por tu sugerencia, pero no soy muy experto programando sabe que los estudiantes de informatica siempre buscamos algo mas y estoy interesado en aprender la programacion delphi.

como degi mas ariba no tengo mucha experiencia programando por tal tason uso un DBGrid enlasado a un datasource llamada detallepedio, esta era la tabla que me hacia flata, solo me queda porbarla.

una pregunta, estoy usando el codigo de cliente por tal razon tengo una tabla llamada cliente, la pregunta es la siguinte:

hay alguna forma de que cuando digite el codigo de una cliente en un DBEdit me cature el Nombre y el TElefono de ese cliente y lo presente en dos DBEdit.

espero que me comprenda y mil graciasssss
Responder Con Cita
  #9  
Antiguo 21-06-2004
Avatar de miguel_fr
miguel_fr miguel_fr is offline
Miembro
 
Registrado: mar 2004
Ubicación: Santiago del estero, Capital
Posts: 73
Poder: 21
miguel_fr Va por buen camino
Arrow

No quiero ser ortiva ni hacerme el moderador ni nada por el estilo, pero muchachos este hilo se me hace que no va por estos lados, creo que tendria que ir en SQL o Conexion a BD (no pega mucho aqui)
Si tratamos de ordenar nosotros esto se hace un requilombo
PD: yo soy nuevo y tambien cometo errores, es mas talves me este equivocando al decir esto
Responder Con Cita
  #10  
Antiguo 21-06-2004
Jvilomar Jvilomar is offline
Miembro
 
Registrado: mar 2004
Ubicación: Republica Dominicana
Posts: 97
Poder: 21
Jvilomar Va por buen camino
Hola Simon, entiendo perfectamente tu pregunta.....

mira para poderte explicar mejor aqui esta mi direccion de correo es jvilomar@hotmail.com para que me agregues si cuentas con messenger....

en cuanto a Miguel Tiene Razon... este hilo deberia ir por los lados de BD...
__________________
El conocimiento es un Patrimonio Universal....
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 14:25:09.


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