Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-09-2004
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Pasar enfoque de Celdas en dbGrid

Uso FireBird 1.50, IBX 7.08

Como puedo darle un ENFOQUE entre campos de una Tabla ó ya sea en un dbGrid, lo que pasa es que cuando estoy en el dbGrid y tengo 6 campos y en el campo 3 presionó la tecla "Fecha Abajo", me inserta un registro Nuevo en la Tabla al insertar uno Nuevo quiero pasarle el enfoque al instante al primer campo. Les agradezco cualquier comentario.
Responder Con Cita
  #2  
Antiguo 14-09-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
En el evento AfterInsert del DataSet asociado al DBGrid puedes poner

DBGrid1.SelectedIndex := 0;

// Saludos
Responder Con Cita
  #3  
Antiguo 14-09-2004
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
oki

Como me dice usted, no me funciona porque, tengo los dataset's en un datamodule y si mando llamar el SelectedIndex del dbGrid desde el datamodule dentro del evento AfterInsert me marca el error "Access Violation at adress....",
ó bien.

Como podria filtrar un Registro, que al momento de presionar la "flecha abajo" antes de Insertarme un Nuevo registro poder validar ciertos campos, si los campos son Correctos, entonces que Abra un Nuevo Registro, Si No son validos entonces que no Abra el Registro Nuevo?????
Responder Con Cita
  #4  
Antiguo 14-09-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Simplemente verifica en el AfterInsert que ya esté creado el DBGrid:

if DBGrid1 <> nil then

Por otra parte ya estás mezclando cosas. Para validar si se puede o no insertar un registro usa entonces el evento BeforeInsert.

// Saludos
Responder Con Cita
  #5  
Antiguo 14-09-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
Hay dos posibles soluciones:

En el evento AfterInsert del dataset, en el módulo de datos:

Código Delphi [-]
  Tabla.Fields[0].FocusControl;

Tambén, en el evento OnStateChange del DataSource, que debiera estar en el formulario:

Código Delphi [-]
  if ModuloDatos.Tabla.State = dsInsert Then
    dbGrid1.SelectedIndex := 0;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 14-09-2004
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
????

No me funcionan como lo exponen mandando llamar al dbGrid desde el Datamodule que es donde tengo los dataset's, aunque le ponga dbGrig<>Nil.
No hay un Evento parecido al OnValidate de cada campo del Dataser, pero yo lo ocupo por cada Registro, para Validar antes de Insertar un Nuevo registro, ya se que existe el evento BeforeInsert y AfterInsert, pero no viene como parámetro alguna variable booleana como el "Accept", para evitar que Inserte un Registro Sin antes haber validado el Anterior. Gracias por sus Respuestas.
Responder Con Cita
  #7  
Antiguo 14-09-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Si las condiciones no se cumplen en BeforeInsert basta que llames a abort para cancelar la inserción.

// Saludos
Responder Con Cita
  #8  
Antiguo 14-09-2004
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
oki

Muchas Gracias Sr. Roman, ya me funcionó, le debo otra más.
Responder Con Cita
  #9  
Antiguo 14-09-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
Cool

Cita:
Empezado por AGAG4
pero no viene como parámetro alguna variable booleana como el "Accept", para evitar que Inserte un Registro Sin antes haber validado el Anterior.
Esto no es necesario. Para hacer validaciones a nivel de registro, podes valerte del evento BeforePost, además de los OnValidate en cada campo. Si alguno de estos falla, el before insert nunca se ejecutará, puesto que nunca llega a intentar insertar un nuevo registro.

Saludos.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #10  
Antiguo 15-09-2004
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
oki

Tiene muchísima razón Sr. Juan Antonio Castillo Hernández, ya hice pruebas y lo tuve que poner en el BeforePost para validar el Registro. De todas formas Gracias por su Respuesta. Le debo otra comida
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 22:45:41.


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