Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   cargar varias veces sin salir del formulario (https://www.clubdelphi.com/foros/showthread.php?t=91017)

jose.ignacio.ve 26-10-2016 16:22:12

cargar varias veces sin salir del formulario
 
Hola. tengo un problema.
necesito dar de alta varios alumnos y deseo hacer que al cargar un alumno me muestre un cartel si deseo cargar otro alumno si acepta me de la opcion de cargar otro alumno. tengo el siguiente codigo.
Código Delphi [-]
procedure TFAlumno.BitBtn1Click(Sender: TObject);
var
vence:word;
SEGUIR: boolean;
begin

  repeat

     vence:=   DaysInMonth(now)-1;
     if(modificacion= false)then
        begin
             fmodulo.tSocios['fecha_inicio']:=self.DBfecha_ini.Text;
        end
     else
      begin
        fmodulo.tSocios.Active:=true;
        fmodulo.tSocios.Edit;
        modificacion:=false;
      end;
         // verificacion de campos obligarotios
         if self.dbapellido.Text='' then
              begin
                      Application.MessageBox('El campo Apellidos no puede ser vacio','Gimnasio NENINA',MB_OK+MB_ICONWARNING);
                      self.dbapellido.SetFocus;
               end
          else
             if self.DBnombre.Text='' then
                 begin
                    Application.MessageBox('El campo Nombres no puede ser vacio','Gimnasio NENINA',MB_OK+MB_ICONWARNING);
                    self.DBnombre.SetFocus;
                  end
            else
               if self.DBdni.Text='' then
                         begin
                          Application.MessageBox('El campo Dni no puede ser vacio','Gimnasio',MB_OK+MB_ICONWARNING);
                          self.DBdni.SetFocus;
                         end
                  else
                  if self.DBfecha_ini.Text='' then
                      begin
                           Application.MessageBox('El campo Fecha de inicio no puede ser vacio','Gimnasio NENINA',MB_OK+MB_ICONWARNING);
                            self.DBfecha_ini.SetFocus;
                       end
                   else
                     if self.DBLookupComboBox1.KeyValue=null then
                          begin
                            Application.MessageBox('El campo tarifa no puede ser vacio','Gimnasio NENINA',MB_OK+MB_ICONWARNING);
                            self.DBLookupComboBox1.SetFocus;
                           end
                    else
                          if self.DBLookupComboBox2.KeyValue=null then
                            begin
                               Application.MessageBox('El campo disciplina no puede ser vacio','Gimnasio NENINA',MB_OK+MB_ICONWARNING);
                              self.DBLookupComboBox2.SetFocus;
                            end
                            else
                               begin
                               fmodulo.tSocios['fecha_fin']:= fmodulo.tSocios['fecha_inicio'] + vence;
                               fmodulo.tSocios.Post;
                               fmodulo.tSocios.Refresh;
                               fmodulo.zqlistado_Socios.Active:=true;
                               fmodulo.zqlistado_Socios.Refresh;
                               fmodulo.zqmodificacionestado.ExecSQL;
                               fmodulo.ZQlisalumnosfecha.Active:=true;
                               fmodulo.zqlisalumnosfecha.refresh;
                               fmodulo.zqlistado_Socios.Refresh;

                               //self.Close;
                               end;
               if (Application.MessageBox('¿DESEA CARGAR OTRO ALUMNO?','GIMNASIO NENINA', MB_YESNO +MB_ICONQUESTION)= ID_YES) then
               begin

                   seguir:=true ;

               end
               else
                   seguir:=false;
      until (NOT seguir) ;
      fmodulo.ZQlisalumnosfecha.Close;
      fmodulo.tSocios.Close;
      fmodulo.ttarifa.Close;
      fmodulo.tdisciplina.Close;
      self.Close;

tengo un menu en un formulario principal. donde ahi creo el formulario de alta de alumnos.
yo necesito que si el usuario acepta cargar otro alumno me la opcion de seguir cargar, sin embargo lo que hace es directamente pasar a la verificacion de campos obligatorios y saltar hacia la pregunta de cargar otro alumno..

jose.ignacio.ve 27-10-2016 03:37:28

Hola pude solucionar el problema. pero ahora tengo otro.
Código Delphi [-]
 repeat
     vence:=   DaysInMonth(now)-1;
     if(modificacion= false)then
        begin
             fmodulo.tSocios['fecha_inicio']:=self.DBfecha_ini.Text;
          end
     else
      begin
        fmodulo.tSocios.Active:=true;
        fmodulo.tSocios.Edit;
        modificacion:=false;
      end;
         // verificacion de campos obligarotios
        //....codigo de validacion...
               if (Application.MessageBox('¿DESEA CARGAR OTRO ALUMNO?','GIMNASIO NENINA', MB_YESNO +MB_ICONQUESTION)= ID_YES) then
               begin

                   seguir:=true ;
                   fmodulo.tSocios.Active:=true;
                   fmodulo.tSocios.Insert;
                   falumno:=TFAlumno.Create(self);
                   fAlumno.DBfecha_ini.Text:= datetostr(now);
                   FAlumno.ShowModal;
               end
               else
                   seguir:=false;
      until (NOT seguir) ;
pero tengo un problema. Si el usuario pone que si desea cargar otro alumno y presiona el boton de cancelar me sale un error ya que vuelve a entrar el ciclo. tendria que parar el ciclo si es que presiona el boton cancelar. Si algun amable que me ayude con el problema..


La franja horaria es GMT +2. Ahora son las 01:07:34.

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