FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
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.
__________________
|
#3
|
||||
|
||||
Cita:
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#4
|
|||
|
|||
Cita:
Gracias y SaLudos |
#5
|
||||
|
||||
Cita:
__________________
|
#6
|
|||
|
|||
Cita:
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 |
#7
|
||||
|
||||
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.
__________________
|
|
|
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 |
|