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 21-10-2015
jose.ignacio.ve jose.ignacio.ve is offline
Miembro
 
Registrado: sep 2012
Posts: 79
Poder: 12
jose.ignacio.ve Va por buen camino
problemas con el pagecontrol

Hola buenas noches. Tengo un problema que no puedo resolver.
tengo un formulario que tiene un pagecontro con dos paginas, una tiene la carga de un socio y la otra pagina tengo una grilla donde me aparece la lista de los alumnos y esta tiene un botón que sirve para modificar un alumno seleccionado de la grilla. Mi problema es que cuando hago clic en la pagina de carga de alumno vuelve con los datos del primer alumno de la grilla y se me modifica siempre ese alumno, no puedo cargar mas alumnos. alguna ayuda. primera ves que trabajo con este componente.
Responder Con Cita
  #2  
Antiguo 21-10-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Y que culpa tiene el PageControl? Que grilla tenes? Una DBGrid? Esta conectada a un DataSet? Cual es el codigo del boton?
Responder Con Cita
  #3  
Antiguo 21-10-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.281
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por jose.ignacio.ve Ver Mensaje
... y esta tiene un botón que sirve para modificar un alumno seleccionado de la grilla.
Estaría bien que pusieras el código que estás utilizando. De otra forma tenemos que basar nuestras respuestas en suposiciones.
Lo normal es que tengas que "buscar" el alumno que quieres modificar, antes de hacerlo.
¿Lo estás haciendo? ¿Cómo? ¿Locate, SQL?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 21-10-2015
jose.ignacio.ve jose.ignacio.ve is offline
Miembro
 
Registrado: sep 2012
Posts: 79
Poder: 12
jose.ignacio.ve Va por buen camino
este seria el codigo completo..
Código Delphi [-]
    unit Uprincipal;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Menus, Vcl.ComCtrls, Vcl.StdCtrls,
  Vcl.Mask, Vcl.DBCtrls, Vcl.Buttons, Vcl.Grids, Vcl.DBGrids,dateutils,
  Vcl.ExtCtrls;

type
  TFprincipal = class(TForm)
    MainMenu1: TMainMenu;
    Reportes1: TMenuItem;
    ListadodeAlumnos2: TMenuItem;
    ListadosdeVencimientos1: TMenuItem;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    DBGrid1: TDBGrid;
    GroupBox1: TGroupBox;
    BSalir: TBitBtn;
    Beliminar: TBitBtn;
    GroupBox3: TGroupBox;
    GroupBox4: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    DBapellido: TDBEdit;
    DBnombre: TDBEdit;
    DBdni: TDBEdit;
    DBdireccion: TDBEdit;
    DBtele: TDBEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    GroupBox5: TGroupBox;
    GroupBox6: TGroupBox;
    GroupBox7: TGroupBox;
    Label6: TLabel;
    DBEinicio: TDBEdit;
    Label7: TLabel;
    Bmodificar: TBitBtn;
    Label8: TLabel;
    Label9: TLabel;
    Enombres: TEdit;
    Edni: TEdit;
    RadioGroup1: TRadioGroup;
    procedure BitBtn1Click(Sender: TObject);
    procedure BmodificarClick(Sender: TObject);
    procedure EnombresChange(Sender: TObject);
    procedure EdniChange(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    //procedure BmodificarClick(Sender: TObject);
    //procedure BmodificarClick(Sender: TObject);
  private
    { Private declarations }
  public
  modificacion:Boolean;
    { Public declarations }
  end;

var
  Fprincipal: TFprincipal;

implementation
uses
umodulo;

{$R *.dfm}



procedure TFprincipal.BitBtn1Click(Sender: TObject);
var
vence:word;
inicio: tdate;
   
ruta:string;
begin

        vence:=   DaysInMonth(now);
        if modificacion=false then
              begin

                     fmodulo.talumnos.FieldByName('fecha_ingreso').AsDateTime:= now;
                    self.DBEinicio.Text:=DateToStr(now);

              end
         else
               begin
                    fmodulo.talumnos.Active:=true;
                    fmodulo.talumnos.Edit;
                    modificacion:=false;

               end;

         if self.dbapellido.Text='' then

                 begin
                      Application.MessageBox('El campo Apellido no puede ser vacio','Gimnasio',MB_OK+MB_ICONWARNING);
                      self.dbapellido.SetFocus;
                      end
                   else
                    if self.DBnombre.Text='' then

                 begin
                      Application.MessageBox('El campo Nombre no puede ser vacio','Gimnasio',MB_OK+MB_ICONWARNING);
                        self.DBnombre.SetFocus;
                 end
                   else
                    if self.DBEinicio.Text='' then
                      begin
                      Application.MessageBox('El campo Fecha de inicio no puede ser vacio','Gimnasio',MB_OK+MB_ICONWARNING);
                      self.DBEinicio.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 ;

                       begin

                  fmodulo.talumnos['fecha_vencimiento']:= fmodulo.talumnos['fecha_inicio'] + vence;
                  


            

                  fmodulo.talumnos.Post;
                  fmodulo.talumnos.Refresh;
                  fmodulo.talumnos.Close;
                  fmodulo.zqlistado_alumnos.Active:=true;
                  fmodulo.zqlistado_alumnos.Refresh;
                  fmodulo.zqmodificacionestado.ExecSQL;
                  fmodulo.ZQlisalumnosfecha.Active:=true;
                  fmodulo.zqlisalumnosfecha.refresh;
                  fmodulo.ZQlisalumnosfecha.Close;
                  fmodulo.zqlistado_alumnos.Refresh;
                 PageControl1.ActivePageIndex:=0;
                       end;
end;

procedure TFprincipal.BmodificarClick(Sender: TObject);
begin
      fmodulo.talumnos.Active:=true;
      fmodulo.talumnos.Locate('id_alumnos',fmodulo.zqlistado_alumnos.FieldByName('id_alumnos').AsString,[]);
      modificacion:=true;
      PageControl1.ActivePageIndex:=1;
      dbapellido.Enabled:=true;
      DBnombre.Enabled:=true;
      DBdni.Enabled:=true;
      DBdireccion.Enabled:=true;
end;

procedure TFprincipal.EdniChange(Sender: TObject);
begin
    fmodulo.zqlistado_alumnos.ParamByName('dni').AsString:='%'+self.Edni.Text+'%';
    fmodulo.zqlistado_alumnos.Refresh;
end;

procedure TFprincipal.EnombresChange(Sender: TObject);
begin

    fmodulo.zqlistado_alumnos.ParamByName('apellidos').AsString:='%'+self.enombres.Text+'%';
    fmodulo.zqlistado_alumnos.Refresh;
end;

procedure TFprincipal.PageControl1Change(Sender: TObject);
begin
if PageControl1.TabIndex = 0then
             begin
            fmodulo.zqlistado_alumnos.Active:=true;
            fmodulo.zqlistado_alumnos.ParamByName('apellidos').AsString:='%';
           fmodulo.zqlistado_alumnos.ParamByName('dni').AsString:='%';
           fmodulo.zqlistado_alumnos.ParamByName('estado').AsString:='A' ;
           fmodulo.zqlistado_alumnos.Refresh;
            fmodulo.ZQlisalumnosfecha.Active:=true;
            fmodulo.ZQlisalumnosfecha.Refresh;
            fmodulo.zqmodificacionestado.ExecSQL;
            fmodulo.zqlistado_alumnos.Refresh;
            fmodulo.talumnos.Close;
             end
            else
            begin
                fmodulo.zqlistado_alumnos.Close;
                fmodulo.talumnos.Active:=true;
                 fmodulo.talumnos.Insert;
                //fmodulo.talumnos.Refresh;
                DBEinicio.Text:= datetostr(now);
            end;
end;

procedure TFprincipal.RadioGroup1Click(Sender: TObject);
begin
if (self.RadioGroup1.ItemIndex= 0) then
       begin
        fmodulo.zqlistado_alumnos.ParamByName('estado').AsString:='A' ;

       end
     else
     if(self.RadioGroup1.ItemIndex=1) then
       begin
        fmodulo.zqlistado_alumnos.ParamByName('estado').AsString:='I';
       end;
        fmodulo.zqlistado_alumnos.Refresh;
end;

end.
Imágenes Adjuntas
Tipo de Archivo: png Sin título.png (23,0 KB, 8 visitas)
Tipo de Archivo: png Sin título1.png (17,6 KB, 4 visitas)
Responder Con Cita
  #5  
Antiguo 21-10-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.281
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Suponiendo que el botón de modificar sea este:

Código Delphi [-]
procedure TFprincipal.BmodificarClick(Sender: TObject);
begin
      fmodulo.talumnos.Active:=true;
      fmodulo.talumnos.Locate('id_alumnos',fmodulo.zqlistado_alumnos.FieldByName('id_alumnos').AsString,[]);
      modificacion:=true;
      PageControl1.ActivePageIndex:=1;
      dbapellido.Enabled:=true;
      DBnombre.Enabled:=true;
      DBdni.Enabled:=true;
      DBdireccion.Enabled:=true;
end;

Lo que yo haría sería añadir un booleano como resultado del Locate.
Y consultas si has encontrado el registro o no.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 21-10-2015
jose.ignacio.ve jose.ignacio.ve is offline
Miembro
 
Registrado: sep 2012
Posts: 79
Poder: 12
jose.ignacio.ve Va por buen camino
si mi problema creo que no esta en eso. Si yo quiero saber porque al hacer clic en cargar alumno los campos vuelven con datos del primer registro y lo modifica a ese. osea que nunca me deja cargar mas alumnos.
Responder Con Cita
  #7  
Antiguo 21-10-2015
jose.ignacio.ve jose.ignacio.ve is offline
Miembro
 
Registrado: sep 2012
Posts: 79
Poder: 12
jose.ignacio.ve Va por buen camino
Ya logre solucionar mi problema. a la hora de crear el formulario active y desactive las tablas.
Responder Con Cita
  #8  
Antiguo 21-10-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Justamente eso te iba a contestar. Al abrir y cerrar un DataSet no se va a "acordar" de donde estaba; vuelve a First
Responder Con Cita
  #9  
Antiguo 21-10-2015
jose.ignacio.ve jose.ignacio.ve is offline
Miembro
 
Registrado: sep 2012
Posts: 79
Poder: 12
jose.ignacio.ve Va por buen camino
muchas gracias!! ahora tenes algun post donde pinten las paginas? estuve buscando y no logro pintar las paginas del pagecontrol, o si sabes como hacer eso?
Responder Con Cita
  #10  
Antiguo 22-10-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por jose.ignacio.ve Ver Mensaje
muchas gracias!! ahora tenes algun post donde pinten las paginas? estuve buscando y no logro pintar las paginas del pagecontrol, o si sabes como hacer eso?
Por favor, recuerda nuestra guía de estilo, ya no eres un novato aqui, gracias
Responder Con Cita
  #11  
Antiguo 22-10-2015
jose.ignacio.ve jose.ignacio.ve is offline
Miembro
 
Registrado: sep 2012
Posts: 79
Poder: 12
jose.ignacio.ve Va por buen camino
si perdon!
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
Problema con PageControl jesconsa Varios 11 28-03-2014 16:55:02
F1..F12 con PageControl Parsec OOP 2 08-04-2013 12:02:25
Problemas PageControl en Builder franfl C++ Builder 5 01-10-2008 05:14:47
Pagecontrol emiliu Varios 3 02-12-2005 07:59:23
Pagecontrol Fita Varios 2 21-12-2003 05:07:03


La franja horaria es GMT +2. Ahora son las 13:36:16.


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