Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki

Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Registrar/Visualizar por orden de ingreso la bitacora
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Registrar/Visualizar por orden de ingreso la bitacora

Publicar nuevo tema Responder al tema
Foros de discusión » Borland Delphi, Codegear Delphi .Net   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
Sizne
Magnífico usuario


Registrado: Oct 16, 2006
Mensajes: 46

Asunto: Registrar/Visualizar por orden de ingreso la bitacora Responder citando

Tengo un Form1 donde selecciono el nivel de cargo y su contrañeña antes de ingresar al FormularioPrincipal, si es correcta la contraseña pues seguidamente coloco este codigo para que me registre el NomUsuario, FechaIngreso,HoraIngreso, etc...en cuanto la contrañesa sea correcta.
Tbitacora es donde si visualizará los usuarios que ingresaron al sistema, TBitacora tiene los campos como ser el codigobitacora 1, 2,3,4,...
DM.TBitacora.Last;
DM.Tbitacora.Edit;
DM.Tbitacora.Insert;
n:=DM.Tbitacora.RecordCount+1;
DM.Tbitacora['CodigoB']:=n;
DM.Tbitacora.FieldByName('CiB').AsInteger:=DM.Tusuario['CiUsuario'];
DM.Tbitacora.FieldByName('NomB').AsString:=DM.Tusuario['NomUsuario'];
DM.Tbitacora.FieldByName('ApePB').AsString:=DM.Tusuario['ApePU'];
DM.Tbitacora.FieldByName('NivelB').AsString:=DM.Tusuario['NivelU'];
DM.Tbitacora.FieldByName('Fec_Ingreso').AsDateTime:=Date;
DM.Tbitacora.FieldByName('Hr_Ingreso').AsDateTime:=Time;
DM.Tbitacora.FieldByName('CodigoU').AsString:=DM.Tusuario['CodigoU'];
Fprincipal.Show;

Luego ingreso al sistemaPrincipal normal....pero no me registra los datos en Tbitacora, solo se registra en cuanto ingreso a ese FormBitacora, sino no entrara a ver quienes ingresaron, no lo registra.
El codigo que puse para ver quienes ingresaron al sistema es
procedure TFprincipal.Bitacora1Click(Sender: TObject);
begin
Fbitacora.ShowModal;
end;
Si hago click para ver la bitacora, recien me actualiza y por otra parte me lo ordena por codigoBitacora 1,10,11,12,13,14,15,16,17,18,19,2,20,21,22,23,24,25,26,27,28,29,3,30,31....4,40,41...5,6,7,8,9
Yo quisiera que me aparezca por orden de fecha ingreso, entonces use un Query(TBtablas), donde programe para que saliera en orden de fechaingreso, pero no me actualizaba, ni por mas que haga click en FormBitacora, por lo menos con Tbitacora al hacer click para ver este formbitacora me aparecia aunque sea en ese orde...
MensajePublicado:
Dom Mar 21, 2010 6:34 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Registrar/Visualizar por orden de ingreso la bitacora Responder citando



Anuncios



Siempre que hagas un "edit" o un "insert" tienes que hacer un "post" para guardar los datos, en tu caso, tras el:

Código:

  DM.TBitacora.Last;
  DM.Tbitacora.Edit;
  DM.Tbitacora.Insert;
  n := DM.Tbitacora.RecordCount + 1;
  DM.Tbitacora['CodigoB'] := n;
  DM.Tbitacora.FieldByName('CiB').AsInteger := DM.Tusuario['CiUsuario'];
  DM.Tbitacora.FieldByName('NomB').AsString := DM.Tusuario['NomUsuario'];
  DM.Tbitacora.FieldByName('ApePB').AsString := DM.Tusuario['ApePU'];
  DM.Tbitacora.FieldByName('NivelB').AsString := DM.Tusuario['NivelU'];
  DM.Tbitacora.FieldByName('Fec_Ingreso').AsDateTime := Date;
  DM.Tbitacora.FieldByName('Hr_Ingreso').AsDateTime := Time;
  DM.Tbitacora.FieldByName('CodigoU').AsString := DM.Tusuario['CodigoU'];
  Fprincipal.Show;


Como te digo, tras el "Fprincipal.Show" tienes que añadir algo así:

Código:

  DM.Tbitacora.Post;


De esta forma validarás los cambios.

Puedes hacer el DM.Tbitacora.Post antes del "Fprincipal.Show", esto dependerá de lo que haga el Fprincipal.Show.
MensajePublicado:
Mar Mar 23, 2010 11:54 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Registrar/Visualizar por orden de ingreso la bitacora Responder citando



Anuncios



Además de lo que te he comentado, para las líneas:

Código:

  DM.TBitacora.Last;
  DM.Tbitacora.Edit;
  DM.Tbitacora.Insert;



Es suficiente con que hagas el:

Código:

  DM.Tbitacora.Insert;


Las otras dos líneas no son necesarias y no producen ningún efecto beneficioso, más bien el .Last puede que ralentice un poco el proceso. El .Insert ya deja el TBitacora en modo edición.
MensajePublicado:
Mar Mar 23, 2010 11:57 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Registrar/Visualizar por orden de ingreso la bitacora Responder citando



Anuncios



Otra recomendación, si me la permites, aunque no es imprescindible, es que la línea:

Código:

  n := DM.Tbitacora.RecordCount + 1;


La sustituyas por una función que ejecute una consulta SQL del tipo:

Código:

function obtenerNumeroSiguiente () : integer;
begin
  DM.TConsulta.Close;
  DM.TConsulta.SQL.Clear;
  DM.TConsulta.SQL.Add ('select count(*) NumReg from bitacora');
  try
    DM.TConsulta.Open;
    Result :=   DM.TConsulta.FieldByName('NumReg').AsInteger + 1;
    DM.TConsulta.Close;
  except
    Result := -1;
    raise;
  end;
end;


Te quedaría, algo así:

Código:

  DM.Tbitacora.Insert;
  n := obtenerNumeroSiguiente;
  DM.Tbitacora['CodigoB'] := n;
  DM.Tbitacora.FieldByName('CiB').AsInteger := DM.Tusuario['CiUsuario'];
  DM.Tbitacora.FieldByName('NomB').AsString := DM.Tusuario['NomUsuario'];
  DM.Tbitacora.FieldByName('ApePB').AsString := DM.Tusuario['ApePU'];
  DM.Tbitacora.FieldByName('NivelB').AsString := DM.Tusuario['NivelU'];
  DM.Tbitacora.FieldByName('Fec_Ingreso').AsDateTime := Date;
  DM.Tbitacora.FieldByName('Hr_Ingreso').AsDateTime := Time;
  DM.Tbitacora.FieldByName('CodigoU').AsString := DM.Tusuario['CodigoU'];
  Fprincipal.Show;
  DM.Tbitacora.Post;
MensajePublicado:
Mar Mar 23, 2010 12:03 pm
Top of PageVer perfil de usuario
Sizne
Magnífico usuario


Registrado: Oct 16, 2006
Mensajes: 46

Asunto: Responder citando

Hola!
Le cuento que coloqué la Funcion, pero me desconocia algunos campos de Bitacora. Lo que hice fue realizar una consulta solo de seleccion y relacionarla al DBGrid por medio de su DataSource y coloque el sigte codigo antes de visualizar o hacer click para ver el FormBitacora:
Código:
 
Q.QB.Close;
  Q.QB.SQL.Add ('select * from BDbitacora Order by Fec_Ingreso,Hr_Ingreso');
  Q.QB.Open;
  Fbitacora.ShowModal;

Me Registra en orden y sin problema.
Graciaaaaaaaass!!!
MensajePublicado:
Mar Mar 23, 2010 8:57 pm
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » Borland Delphi, Codegear Delphi .Net  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+