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 24-11-2008
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
Enter Como Tab En Dbgrid

Hola Foreros Como Estan, Necesito Hacer Que Cuando Pulse A La Tecla Enter En Mi Dbgrid Me Pase A La Proxima Celda, Lo Necesito Porque Estoy Haciendo Los Detalles De Una Factura En El Dbgrid Y Necesito Esa Caracteristica, Si Alguien Lo Ha Hecho Por Favor Le Agradeceria La Ayuda, Gracias De Antemano.
Responder Con Cita
  #2  
Antiguo 25-11-2008
JosepGA JosepGA is offline
Miembro
 
Registrado: jun 2007
Ubicación: Tarragona
Posts: 166
Poder: 17
JosepGA Va por buen camino
hola,

para ello debes activar en la tForm ( la ventana ) la propiedad KeyPreview a True. Luego en uno de los dos eventos de la ventana poner lo siguiente ( no recuerdo cual de los dos afectaba al comportamiento que tu quieres ):

en el evento Onkeypress:

Código Delphi [-]
If ( Key = #13 ) Then
  Key := #9

en el evento OnKeyDown:

Código Delphi [-]
If ( ( Key = #13 ) Or ( Key = #9 ) ) Then
  Begin
    SelectNext( Sender As tWinControl, True, True );
    Key := #0;
  End;

Prueba cada uno, ya que es uno de ellos el que te irá bien

Un saludo
Responder Con Cita
  #3  
Antiguo 25-11-2008
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
Cita:
Empezado por JosepGA Ver Mensaje
hola,

para ello debes activar en la tForm ( la ventana ) la propiedad KeyPreview a True. Luego en uno de los dos eventos de la ventana poner lo siguiente ( no recuerdo cual de los dos afectaba al comportamiento que tu quieres ):

en el evento Onkeypress:


Código Delphi [-]
If ( Key = #13 ) Then
Key := #9





en el evento OnKeyDown:


Código Delphi [-]
If ( ( Key = #13 ) Or ( Key = #9 ) ) Then
Begin
SelectNext( Sender As tWinControl, True, True );
Key := #0;
End;





Prueba cada uno, ya que es uno de ellos el que te irá bien

Un saludo

hola jose, gracias por responderme, probe los dos ejemplos y ninguno me funciono, ahh y otra cosa como hago para mandar el codigo de factura a la tabla detalle factura ya que lo necesito enviar tantas veces como articulos haya en la factura, bueno espero tu respuesta, gracias nuevamente.
Responder Con Cita
  #4  
Antiguo 26-11-2008
JosepGA JosepGA is offline
Miembro
 
Registrado: jun 2007
Ubicación: Tarragona
Posts: 166
Poder: 17
JosepGA Va por buen camino
hola,

es raro que no te funcione, a mi me funcionaba sin problemas, lo que pasa es que ahora uso los componentes de Infopower, lleva un DBGrid que tiene la propiedad de EnterAsTab.

Sobre el tema del detalle de facturas, explicate un poco más para que entienda que es lo que estas haciendo.

Un saludo
Responder Con Cita
  #5  
Antiguo 27-11-2008
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
Cita:
Empezado por JosepGA Ver Mensaje
hola,

es raro que no te funcione, a mi me funcionaba sin problemas, lo que pasa es que ahora uso los componentes de Infopower, lleva un DBGrid que tiene la propiedad de EnterAsTab.

Sobre el tema del detalle de facturas, explicate un poco más para que entienda que es lo que estas haciendo.

Un saludo
hola de nuevo jose ya consegui lo del tab con enter, en cuanto a la factura que estoy intentando hacer lo k pasa es k tengo una tabla factura_enca donde tengo los siguientes campos:

COD_FACTURA INT,
COD_CLIENTE INT,
CONDICION PAGO VARCHAR,
PTJE_DESC FLOAT,
TOTAL_FACTURA FLOAT,

Y TENGO OTRA TABLA FACTURA_DETALLE CON LOS SIGUIENTES CAMPOS:

COD_FACTURAD INT
COD_ARTCULO VARCHAR,
CANTIDAD FLOAT,
PRECIO FLOAT,
IMPORTE FLOAT,

AHORA BIEN LO K NECESITO HACER ES QUE CUANDO ESTE CAPTURANDO SUPONGAMOS LA FACTURA 1 EN LA TABLA FACTURA_ENCA NECESITO QUE TAMBIEN SE CAPTURE LA FACTURA 1 EN LA TABLA FACTURA_DETALLE PARA PODER LUEGO HACER EL INNER JOIN QUE ME DEVUELVA LOS REGISTROS DE LA FACTURA PERO EN REALIDAD NO SE COMO HACERLO, CUAL ES TU SUGERENCIA?
Responder Con Cita
  #6  
Antiguo 02-12-2008
JosepGA JosepGA is offline
Miembro
 
Registrado: jun 2007
Ubicación: Tarragona
Posts: 166
Poder: 17
JosepGA Va por buen camino
hola,

si es para edición de un maestro-detalle, primero me deberias decir con que base de datos trabajas, es decir, ¿ es Firebird ? Si es así, mirate el tema del DataSetProvider y los tipos de campos tDataSetField, que no es otra cosa, que la tabla detalle. Como montarlo, pues dos tSQLQuery, uno para el maestro y otro para el detalle, relacionados los dos por un tDataSource, el tSQLQuery de la cabecera de la factura conectado a un tDatasetProvider, luego dos tClientDataSet conectando el de cabecera al tDatasetProvider, y el tClientDataSet del detalle se conectará al tClientDataSet de la cabecera mediante un campo del tClientDataSet de la cabecera ( del tipo tDataSetField ). Para que lo veas claro, te pongo un ejemplo según tus tablas:

tSQLQueryCab.SQL( 'SELECT * FROM factura_enca ORDER BY COD_FACTURA' );

tDataSourceCab.DataSet := tSQLQueryCab;

tSQLQueryDet.SQL( 'SELECT * FROM FACTURA_DETALLE where ( COD_FACTURAD = :COD_FACTURA ) ORDER BY COD_ARTCULO' );

donde :COD_FACTURA significa que es un parametro que recibe del componente tSQLQueryCab al estar relacionado tSQLQueryDet mediante la propiedad DataSource, es decir tSQLQueryDet.DataSource := tDataSourceCab;

Luego tDataSetProviderCab.DataSet := tSQLQueryCab;

Luego tClientDSCab.ProviderName := tDataSetProviderCab;

Activas tClientDSCab con tClientDSCab.Active := TRUE;

Añades los campos de la tabla al componente tClientDSCab ( botón derecho Fields Editor, luego botón derecho Add All Fields ). Fijate que el ultimo campo es del tipo tDataSetField, cojes el nombre de este campo y seleccionas el componente tClientDSDet y se lo asignas a la propiedad DataSetField. Ahora desactiva la tabla tClientDSCab y vuelvela a activar, verás que se activan tanto la tabla cabecera como detalle.

Espero te sirva, en el foro hay muchos hilos al respecto, pero qte queria introducir un poco, si desconocias esto.

Un saludo
Responder Con Cita
  #7  
Antiguo 02-12-2008
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
ok

ok jose muchisimas gracias por el ejemplo, se me olvido mencionarte que estoy utilizando sql server 2000 como base de datos, de todas maneras tratare de adaptar el ejemplo k me haz dado, gracias por todo hermano...
Responder Con Cita
  #8  
Antiguo 03-12-2008
JosepGA JosepGA is offline
Miembro
 
Registrado: jun 2007
Ubicación: Tarragona
Posts: 166
Poder: 17
JosepGA Va por buen camino
de nada, te aconsejo te bajes la cara oculta de delphi 6. Aqui verás mas ejemplos sobre el tema.

Un saludo
Responder Con Cita
  #9  
Antiguo 03-12-2008
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por JosepGA Ver Mensaje
de nada, te aconsejo te bajes la cara oculta de delphi 6. Aqui verás mas ejemplos sobre el tema.

Un saludo

jeje... será "La cara oculta de Delphi 4" que es libre, la 6 tendrá que comprarla.
http://www.terawiki.clubdelphi.com/a...elphi4.pdf.zip
Responder Con Cita
  #10  
Antiguo 03-12-2008
JosepGA JosepGA is offline
Miembro
 
Registrado: jun 2007
Ubicación: Tarragona
Posts: 166
Poder: 17
JosepGA Va por buen camino
es verdadm no recordaba cual era la gratuita.
Responder Con Cita
  #11  
Antiguo 08-12-2008
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
Wink yo logre mi objetivo

hola como estan, ya he logrado mi objetivo de hacer lo de la factura_detalle k comentaba mas arriba, la solucion fue en caso de k alguien le suceda lo mismo fue usar un componente llamado kbmMemTable no c si alguien lo conoce, bueno el caso es k este componente funciona como una tabla virtual en el cual tu mismo le escribes los campos y el tipo, y su funcion es como la de un tquery normar la diferencia es k trabaja desconectado de la bd, entonces el codigo que use para capturar en mi tabla factura_detalle fue el siguiente:

while not kmemtable1.eof do
begin
qfdetalle.close;
qf.detalle.sql.clear;
qfdetalle.sql.add('insert into factura_detalle');
qfdetalle.sql.add('values(' + quotedsrt(edit1.text) ......);
qfdetalle.executesql;
end;

de manera que guardara en la factura_detalle tantos valores como haya en el grid....
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
Enter como Tab en StrinGrid m.ruiz Varios 2 18-07-2007 17:08:45
Usar Enter como el tabulador susy Varios 27 09-08-2006 09:39:17
Validar/Grabar linea de un DBGrid con Enter jadelphi Varios 4 26-05-2005 00:40:46
Enter como Tab tutuk OOP 7 19-12-2004 20:02:31
Utilizar la tecla enter como el Tab ckaki Varios 3 02-10-2003 17:25:42


La franja horaria es GMT +2. Ahora son las 04:01:23.


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