Club Delphi  
    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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 16-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
O bien usando el dblclick de cada dbgrid...

Código Delphi [-]

procedure TForm1.DBGridDblClick(sender : TObject);
begin
    cod := (sender as TDBGrid).DataSource.DataSet.FieldByName('codigo').Asinteger;
    descr := (sender as TDBGrid).DataSource.DataSet.FieldByName('descr').Asstring;

    insertar_(cod,descr);
end;

poniendo esto en el OnDblClick de las dos dbgrids.
Responder Con Cita
  #22  
Antiguo 16-11-2008
deprimera deprimera is offline
Miembro
 
Registrado: jul 2008
Posts: 26
Poder: 0
deprimera Va por buen camino
tengo 2 tablas una de Servicios y otra de Productos...
los campos de Servicios son Código, Servicio y Precio
los campos de Productos son Código, Descripción y Precio..echos en access

yo quiero q al seleccionar una fila d cualkier dbgrid (el dbgrid1 asociado a un adotable1 q pertenece a la tabla Servicios y el dbgrid2 asociado a un adotable2 q pertenece a la tabla Productos) m lo guarde en las variables cod y desc para pasarlos a otra pantalla donde se realiza una factura
Responder Con Cita
  #23  
Antiguo 16-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
Caro, yo si te leo, como no hacerlo.
Saludos
Oh, muchas gracias amiguito .

Creo que ya te he entendido deprimera, tu quieres obtener los valores del ultimo DBGrid que ha tenido el foco, si es así no se puede directamente, ya que si preguntas por Focused el que va tener el foco es tu boton o si preguntas por ActiveCOntrol lo mismo.

Lo que se me ocurre es que guardes en una variable el ultimo dbGrid en el que s ele ha hecho click, eso lo puedes hacer en el evento OnEnter, pero también debes definirte una variable global.

Código Delphi [-]
 DBGridFoco : TDBGrid; //Nuestra variable global
 
 en el codigo de tu boton
 
 if DBGridFoco = DBGrid1 then
  begin
   cod:= adotable1.fieldbyname('Codigo').AsInteger;
   desc:= adotable1.fieldbyname('Servicio').AsString;
  end;

 if DBGridFoco = DBGrid2 then
  begin
   cod:= adotable2.fieldbyname('Codigo').AsInteger;
   desc:= adotable2.fieldbyname('descripcion').AsString;
  end;
 
//Ahora en el evento OnEnter de cada DBGrid
 
procedure TForm1.DBGrid1Enter(Sender: TObject);
begin
 DBGridFoco := DBGrid1;
end;
procedure TForm1.DBGrid2Enter(Sender: TObject);
begin
 DBGridFoco := DBGrid2;
end;

La variable global puede ser de otro tu tipo, solo te sirve para que identifiques cual ha sido el ultimo que ha tenido el foco.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 16-11-2008 a las 00:21:17.
Responder Con Cita
  #24  
Antiguo 16-11-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Perdona pero no termino de entender el concepto, para mi se podría hacer con sql.
Coso va muy bien con la explicación, creo que mejor lo sigues a el.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #25  
Antiguo 16-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Entonces, en el evento OnDblClick o bien OnClick, deberas recoger las variables y luego enviarlas.

Código Delphi [-]
procedure TForm1.DBGridOnDblClick(sender : TObject);
var
    cod : integer;
    dsc : string;
    prc : double;
begin
    cod := (sender as TDBGrid).FieldByName('codigo').Asinteger;
    prc := (sender as TDBGrid).FieldByName('precio').Asfloat; 

    if (sender as TDBGrid) = DBGrid1 then // DBGrid1 = la de servicios
    dsc := DBGrid1.DataSource.Dataset.FieldByName('servicio').Asstring
    else 
    if (sender as TDBGrid) = DBGrid2 then // DBGrid2 = la de productos
    dsc := DBGrid2.DataSource.DataSet.FieldByName('descripcion').Asstring;

    Insertar_en_factura(cod,dsc,prc);
end;

Última edición por coso fecha: 16-11-2008 a las 00:17:39.
Responder Con Cita
  #26  
Antiguo 16-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Cita:
Perdona pero no termino de entender el concepto, para mi se podría hacer con sql.
¿como se podria hacer con sql? pura curiosidad
Responder Con Cita
  #27  
Antiguo 16-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Cita:
Coso va muy bien con la explicación, creo que mejor lo sigues a el.
jejj pues yo viendo el codigo de caro, creo que mejor, pues asi usas el boton inicial y te olvidas de los eventos. saludos.

Última edición por coso fecha: 16-11-2008 a las 00:22:13.
Responder Con Cita
  #28  
Antiguo 16-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Bueno, espero que entre todos te hayamos aclarado algo. saludos.
Responder Con Cita
  #29  
Antiguo 16-11-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Cita:
Empezado por coso Ver Mensaje
¿como se podria hacer con sql? pura curiosidad
Lo que quieres es ponerme a trabajar un sábado, eres malo como la leche
Amigo, lo que se me ocurre es que para que usar dos table, que ademas son lentos, cuando se puede usar un solo query, ademas se podria hacer un enlace de las dos tablas y presentar una sola consulta.
Bueno, ya sabes en estas cosas soy muy novato asi que es solo una opinión, los que sabéis sois vosotros, Caro y tu.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #30  
Antiguo 16-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por coso Ver Mensaje
Bueno, espero que entre todos te hayamos aclarado algo.
Lo mismo espero yo .

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #31  
Antiguo 16-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Pues si, podria usarse un join de las dos (siendo el nombre de descripcion = servicio) o bien una unica tabla...
Responder Con Cita
  #32  
Antiguo 16-11-2008
deprimera deprimera is offline
Miembro
 
Registrado: jul 2008
Posts: 26
Poder: 0
deprimera Va por buen camino
bueno les agradezco mucho a los 3= caral coso y caro por las ayuditas...voy a ver con todo lo q m pasaron como lo puedo solucionarr...besos y gracias nuevamente
Responder Con Cita
  #33  
Antiguo 16-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Holitas, yo creo que no se puede hacer con un join, porque supongo o se vende un sevicio o se vende un producto, nose la verdad no entiendo bien .

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #34  
Antiguo 16-11-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Caro, me parece que se venden los dos, según entendí es una peluquería.
Si le cortas el pelo, tal vez le vendes el champu, negocio redondo.
Hacemos un Join y si no sirve, le hacemos una oferta, dos por uno
Saludos
__________________
Siempre Novato
Responder Con Cita
  #35  
Antiguo 16-11-2008
deprimera deprimera is offline
Miembro
 
Registrado: jul 2008
Posts: 26
Poder: 0
deprimera Va por buen camino
caro este codigo es el que funciona como yo queria
DBGridFoco : TDBGrid; //Nuestra variable global
en el codigo de tu boton
if DBGridFoco = DBGrid1 then
begin
cod:= adotable1.fieldbyname('Codigo').AsInteger;
desc:= adotable1.fieldbyname('Servicio').AsString;
end;
if DBGridFoco = DBGrid2 then
begin
cod:= adotable2.fieldbyname('Codigo').AsInteger;
desc:= adotable2.fieldbyname('descripcion').AsString;
end;
//Ahora en el evento OnEnter de cada DBGrid
procedure TForm1.DBGrid1Enter(Sender: TObject);
begin
DBGridFoco := DBGrid1;
end;
procedure TForm1.DBGrid2Enter(Sender: TObject);
begin
DBGridFoco := DBGrid2;
end;

espero poder encontrate pronto en el foro pq seguramente tendre mas dudas y necesito terminar el programa para poder recibirme.[/b]muchas graciass
Responder Con Cita
  #36  
Antiguo 16-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
Caro, me parece que se venden los dos, según entendí es una peluquería.
Si le cortas el pelo, tal vez le vendes el champu, negocio redondo.
Hacemos un Join y si no sirve, le hacemos una oferta, dos por uno
Saludos
Ok . Pero si se vendieran ambos, sigo pensando que estan en tablas separadas y despues de escoger recién entraría a la tabla que los relaciona, ahora si se pudiera vender ambos, creo que debería poderse escoger tanto el servicio o servicios y el producto o los productos.

Cita:
Empezado por deprimera Ver Mensaje
espero poder encontrate pronto en el foro pq seguramente tendre mas dudas y necesito terminar el programa para poder recibirme.[/b]muchas graciass
No estoy todo el tiempo conectada, si estuviera y se la respuesta te ayudo, sino, no te preocupes encontraras muchos amiguitos caperusos (que saben mucho e inclusive saben muchíiiiiiisimo mas que yo), asi como coso y Caral , que te ayudaran.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #37  
Antiguo 16-11-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
La verdad me decanto por la opción de coso y dobleclick, sin ofender.
Y sigo insistiendo en usar querys con sql, tarde o temprano tendra problemas con los table.
Solo opino.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #38  
Antiguo 16-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
La verdad me decanto por la opción de coso y dobleclick, sin ofender.
Y sigo insistiendo en usar querys con sql, tarde o temprano tendra problemas con los table.
Yo también estoy de acuerdo que deprimera utilizara Querys, piensalo deprimera con los querys podras hacer muchas mas cosas sin complicarte la vida, tu codigo no va a cambiar mucho. Ahora, supongo que despues tendra que darle la opción de seleccionar varios registros en ese caso yo utilizaría un boton, si es que se va ha dar esa posibilidad con el tiempo.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #39  
Antiguo 16-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
...tambien puede usar las dos...boton y ademas, el dblclick.
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
Fila Seleccionada DBGrid lacovera OOP 1 26-09-2008 15:58:40
marcar una fila seleccionada!! candido OOP 10 19-10-2007 15:53:46
Borrar fila seleccionada de un componente TStringGrid JM75 OOP 3 16-11-2006 10:31:06
cambiar color en fila seleccionada en un dbgrid gmontes OOP 2 05-05-2005 22:33:24
cambiar color a la fila seleccionada de un grid!! triniti OOP 2 03-08-2004 13:00:42


La franja horaria es GMT +2. Ahora son las 20:00:26.


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