Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Limpiar Formulario para ingresar nuevo registro en sql (https://www.clubdelphi.com/foros/showthread.php?t=80198)

novato_erick 09-09-2012 01:06:37

Limpiar Formulario para ingresar nuevo registro en sql
 
Hola a Todos tengo lo siguiente:

Código Delphi [-]

procedure TfrmEmpleados.btnAgregarClick(Sender: TObject);
var
  exito: boolean;
begin
  trn := dmConecta.FBLINUXCONECTION.BeginTransaction;
  try
    with dmConecta.qEmpleados do
    begin
      sql.Clear;
      sql.Add('insert into EMPLEADOS (NOMBRE, NOMBRE_2, APELLIDO, APELLIDO_2, CEDULA, NACIMIENTO, ....)');
      sql.Add('values (:pNOMBRE,:pNOMBRE_2,:pAPELLIDO,:pAPELLIDO_2,:pCEDULA,:pNACIMIENTO,:pID_GENERO... )');
      parambyname('pNOMBRE').AsString := edtNombre1.Text;
      parambyname('pNOMBRE_2').AsString := edtNombre2.Text;
      parambyname('pAPELLIDO').AsString := edtApellido1.Text;
      parambyname('pAPELLIDO_2').AsString := edtapellido2.Text;
      parambyname('PCEDULA').AsString := edtCedula.Text;
      parambyname('pNACIMIENTO').AsDateTime := dtpFNacimiento.DateTime;
      parambyname('pID_GENERO').AsInteger := IdGenero;
      parambyname('pDIRECCION').AsString := mDireccion.Text;
      parambyname('pTELEFONO').AsString := edtTelefono.Text;
      parambyname('pCELULAR').AsString := edtCelular.Text;
      execsql;
      begin
        dmConecta.FBLINUXCONECTION.CommitFreeAndNil(trn);
        exito := true;
      end;
    end;
  except
    on e: exception do
    begin
      dmConecta.FBLINUXCONECTION.RollbackFreeAndNil(trn);
      showmessage('Error Encontrado' + e.message);
    end;
  end;
  if Application.MessageBox('¿Desea Agregar Otro?', 'Confirmación',
    MB_ICONQUESTION OR MB_YESNO) = ID_NO then
  begin
    dmConecta.qEmpleados.Close;
    frmPrincipal.CerrarPestana;
  end
  else
  begin
   // Aqui no se como hacer para ingresar a otro empleado
end;

Que me recomiendan?

novato_erick

ecfisa 09-09-2012 01:47:09

Cita:

Empezado por novato_erick (Mensaje 442473)
Que me recomiendan?

No hacer nada (al menos si estoy entendiendo bién la lógica de tu ingreso).

Si decide continuar, saldrá del procedimiento btnAgregarClick, ingresará los nuevos datos, hará click en el botón agregar y así hasta que decida no agregar otro.
Código Delphi [-]
  ...
  if Application.MessageBox('¿Desea Agregar Otro?', 'Confirmación',
    MB_ICONQUESTION OR MB_YESNO) = ID_NO then
  begin
    dmConecta.qEmpleados.Close;
    frmPrincipal.CerrarPestana
  end;
  // no mas código aquí
end;

Saludos.

novato_erick 09-09-2012 02:00:06

Cita:

eficsa:

Si decide continuar, saldrá del procedimiento btnAgregarClick, ingresará los nuevos datos, hará click en el botón agregar y así hasta que decida no agregar otro.
Habia propuesto Limpliar mis edit y variables. es lo que me imagino que puedo yo hacer hasta decidir decirle que no deseo Agregar mas.

Ejemplo:

Código Delphi [-]
 if Application.MessageBox('¿Desea Agregar Otro?', 'Confirmación',
    MB_ICONQUESTION OR MB_YESNO) = ID_NO then
  begin
    dmConecta.qEmpleados.Close;
    frmPrincipal.CerrarPestana;
  end;
  else
    begin
     edtNombre1.Text := '';
     edtNombre2.Text := '';
     edtApellido1.Text := '';
     edtapellido2.Text := '';
     edtCedula.Text := '';
     dtpFNacimiento.DateTime := Now;
     IdGenero := 0;;
     mDireccion.Text := '';
     edtTelefono.Text := '';
     edtCelular.Text := '';
     dtpFAlta.DateTime := Now;
     edtContacto.Text := '';
     edtEmail.Text := '';
     id := 0;
     edtDependientes.Text := '';
     Estado := '';
     end;
end;

Es lo que se me ocurre.. Alguna otra idea?

Saludos

ecfisa 09-09-2012 02:45:17

Hola novato_erick.

Cita:

Habia propuesto Limpliar mis edit y variables.
Si por supuesto, no usando controles data aware se sobreentiende esa acción.

Cita:

Es lo que se me ocurre.. Alguna otra idea?
¿ Sobre como realizar esa limpieza ?

Saludos.

novato_erick 09-09-2012 17:11:54

Cita:

eficsa:
¿Sobre como realizar la Limpieza?
En realidad de esta manera la hago yo:

Código Delphi [-]
  if Application.MessageBox('¿Desea Agregar Otro?', 'Confirmación',
    MB_ICONQUESTION OR MB_YESNO) = ID_NO then // Aqui confirmamos si seguimos mas registros o cerramos el form
  begin
    dmConecta.qEmpleados.Close;
    frmPrincipal.CerrarPestana;
  end
  else              // si no cerramos limpiamos nuestros componentes y variables del form dejando algunos componente en su estado por defecto al abrir el form.
     begin
      edtNombre1.Text := '';
      edtNombre2.Text := '';
      edtApellido1.Text := '';
      edtapellido2.Text := '';
      edtCedula.Text := '';
      dtpFNacimiento.DateTime := Now;
      IdGenero := 0;;
      mDireccion.Text := '';
      edtTelefono.Text := '';
      edtCelular.Text := '';
      dtpFAlta.DateTime := Now;
      edtContacto.Text := '';
      edtEmail.Text := '';
      id := 0;
      edtDependientes.Text := '';
      Estado := '';
      cbxECivil.Text := 'Estado Civil';
      cbxGenero.Text := 'Género';
      cbxActivado.Checked := False;
     end;
end;

Creo que es la forma "talvez no la correcta". pero es la que se me ocurre.

Con esto puedo dejar como solucionado mi problema, agradeciendo enormemente tu ayuda eficsa y también a los chicos como Casimiro_Notevi, roman y caral....

Saludos

novato_erick


La franja horaria es GMT +2. Ahora son las 07:24:19.

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