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 18-01-2007
JoanKa JoanKa is offline
Miembro
 
Registrado: ene 2005
Posts: 92
Poder: 20
JoanKa Va por buen camino
Algo curioso al salir de un edit... me lo graba

Hola todos una pregunta que ya estoy varios dias en estoy me tiene cabezonazo

Haber tengo 2 formularios :

1. FRM_Busqueda_Clientes
2. FRM_Mantenimiento_Clientes

Les explico como va... es respecto a realizar una factura para que tengan una idea

En Frm_Busqueda_Clientes tengo todos los clientes en un grid y tengo tres botones:
A. Nuevo Cliente
B. Seleccionar Cliente
C. Salir

Estando en el Frm_Busqueda_Clientes presiono el Boton Nuevo Cliente el cual en el evento click tengo :

procedure TFRM_Busqueda_Clientes.BTN_Nuevo_ClienteClick(Sender: TObject);
begin
FRM_Busqueda_Clientes.Close;
// Variable declarada Global
var_alta_factura_cliente:='Nuevo_Cliente_Factura';
FRM_Mantenimiento_Clientes.Show;
end;

Y como ven me muestra el Formulario de Clientes : FRM_Mantenimiento_Clientes

Hasta aca todo bien....
Ahora en este formulario(FRM_Mantenimiento_Clientes) hay varios edit asociados a los campos de la Tabla Clientes.

Codigo |------------|

Fecha Alta |------------|

Nif |------------|

Nombre Empresa |------------|

......Otros Edits
Entoces en el evento onActivate del Formulario de Clientes tengo esto:

procedure TFRM_Mantenimiento_Clientes.FormActivate(Sender: TObject);
var
x:string;
begin
TBL_CLIENTES.Active:=True;
if TBL_CLIENTES.Bof then
begin
PGC_Clientes.ActivePage:=TBS_Lista;
ACC_Primero.Enabled := False;
ACC_Anterior.Enabled :=False;
end;

x:=FRM_Busqueda_Clientes.var_alta_factura_cliente;
if x='Nuevo_Cliente_Factura' then
begin
PGC_Clientes.ActivePage:=TBS_Datos;
PAN_Datos.Enabled:=True;
TBL_CLIENTES.Active:=True;
TBL_CLIENTES.Insert;
EDT_Alta.Text:=FormatDateTime('dd/mm/yyyy',now);
QRY_CLIENTES.Active:=True;
QRY_CLIENTES.SQL.Text:='SELECT MAX(CLI_CODIGO) FROM T_CLIENTES';
QRY_CLIENTES.Open;
TXT_CODIGO.Text:= IntToStr(QRY_CLIENTES.Fields[0].AsInteger+1);
EDT_Codigo.Text:='CLI_'+ IntToStr(QRY_CLIENTES.Fields[0].AsInteger+1);
EDT_Nif.SetFocus;
end;
end;

Entonces veran que me genera el codigo con el query, me asigna la fecha bien, Y EL CURSOR SE PONE EN EL NIF, ENTONCES ESCRIBO CUALQUIER NIF Y CUANDO QUIERO SALIR DEL NIF PARA IR A OTRO EDIT ME LO GRABA Y ME GENERA OTRO CODIGO(SI ANTERIORMENTE ERA POR EJMPLO 15200 AHORA ES 15201), LA MISMA FECHA Y EL CURSOR OTRA VEZ SE PONE EN EL CAMPO DEL NIF Y PONGO CUALUQIER NIF Y AHORA ME VOY A OTRO CAMPO Y SI ME DEJA INGRESAR EL NOMBRE DE LA EMPRESA POR EJEMPLO...... Y AHORA SOLO CUANDO PRESIONE EN UN BOTON GRABAR SI ME REGISTRA TODO LOS DATOS INGRESADOS..

¿pOR QUE CUANDO ME VOY DEL FORMULARIO DE BUSQUEDA DEL CLIENTE AL FORMULARIO DE DATOS DEL CLIENTE ME SUCEDE ESTO?

Como puedo controlar esto ya que llevo varios dias ??

Gracias y saludos
Responder Con Cita
  #2  
Antiguo 19-01-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
no se exactamente que esta pasando... lo que si te puedo decir, es que es muy mala idea que estes guardando datos en el evento OnActivate de un formulario, ya que este se activará cada vez que este formulario aparezca en la pantalla. es decir, muestras el formulario y se ejectua el código; por alguna razón cambias de venta y luego regresas otra vez al formulario y se vuelve a ejecutar el código. Tal vez sea esto lo que te esta pasando.
__________________

Responder Con Cita
  #3  
Antiguo 19-01-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por Contraveneno
no se exactamente que esta pasando...
Para no saberlo exactamente lo has explicado muy bien .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 19-01-2007
JoanKa JoanKa is offline
Miembro
 
Registrado: ene 2005
Posts: 92
Poder: 20
JoanKa Va por buen camino
Cita:
Empezado por ContraVeneno
no se exactamente que esta pasando... lo que si te puedo decir, es que es muy mala idea que estes guardando datos en el evento OnActivate de un formulario, ya que este se activará cada vez que este formulario aparezca en la pantalla. es decir, muestras el formulario y se ejectua el código; por alguna razón cambias de venta y luego regresas otra vez al formulario y se vuelve a ejecutar el código. Tal vez sea esto lo que te esta pasando.
Entonces que me se sugieres para que no me sucede este problema.

Gracias y SaLudos
Responder Con Cita
  #5  
Antiguo 19-01-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por JoanKa
Entonces que me se sugieres para que no me sucede este problema.

Gracias y SaLudos
Pense que era bastante obvio . Cambia de evento.
__________________

Responder Con Cita
  #6  
Antiguo 20-01-2007
JoanKa JoanKa is offline
Miembro
 
Registrado: ene 2005
Posts: 92
Poder: 20
JoanKa Va por buen camino
Cita:
Empezado por ContraVeneno
Pense que era bastante obvio . Cambia de evento.
He cambiado de evento y nada , lo he puesto en el evento Form Show del Mantenimiento de clientes como lo muestro a continuacion:

procedure TFRM_Mantenimiento_Clientes.FormShow(Sender: TObject);
var
x:string;
begin
x:=FRM_Busqueda_Clientes.var_alta_factura_cliente;
if x='Nuevo_Cliente_Factura' then
begin
PGC_Clientes.ActivePage:=TBS_Datos;
PAN_Datos.Enabled:=True;
TBL_CLIENTES.Active:=True;
TBL_CLIENTES.Insert;
EDT_Alta.Text:=FormatDateTime('dd/mm/yyyy',now);
QRY_CLIENTES.Active:=True;
QRY_CLIENTES.SQL.Text:='SELECT MAX(CLI_CODIGO) FROM T_CLIENTES';
QRY_CLIENTES.Open;
TXT_CODIGO.Text:= IntToStr(QRY_CLIENTES.Fields[0].AsInteger+1);
EDT_Codigo.Text:='CLI_'+ IntToStr(QRY_CLIENTES.Fields[0].AsInteger+1);
EDT_Nif.SetFocus;
end;
end;

Pero no me hace nada, me podrias decir por favor en que evento lo puedo poner..

gracias
Responder Con Cita
  #7  
Antiguo 20-01-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Lo que yo haría sería poner un botón "Aceptar" y un botón "Cancelar" para que el usuario confirmara o cancelara la acción que estas queriendo realizar. Y el guardar lo haría en el evento click del botón "Aceptar".

Fuera de eso no puedo opinar más ya que no conozco tu sistema ni su funcionamiento lógico.
__________________

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
Curioso despertador marcoszorrilla Humor 1 19-05-2006 09:02:29
Controlar el foco al salir de un edit ingel Varios 14 30-09-2005 18:58:15
Algo curioso que me paso, por si les sirve jwmoreira Firebird e Interbase 0 09-07-2005 01:46:53
Curioso mundo este en el que vivimos.... __cadetill Humor 3 13-05-2004 16:53:56


La franja horaria es GMT +2. Ahora son las 16:18:39.


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