Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-10-2011
asdbernardo asdbernardo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 37
Poder: 0
asdbernardo Va por buen camino
Question Dbgrid1, como saber asignarle la ubicacion del cursor?

Buenas noches foristas, una pregunta .. estoy trabajndo en un formulario que añada, modifique, borre( logicamente con una variable boolean ) restaure ( la variable boolean pasa a false ) confirme y cancele .. es algo como esto:
----------------------------------------------------------
aca los mismos campos de la grilla pero en tdbedit


Añadir - Borrar - Restaurar - Modificar - Confirmar - Cancelar

----------------------------------------------------------
Grilla





----------------------------------------------------------

la cuestion esta creo que en cursor de la grilla.. ejemplo.. añado 3 registros y perfecto, borro los 3 ( logicamente pasando un campo que tengo oculto llamado borrado a true .. y se borran de la grilla ya que lo tengo filtradosql por los not borrado.. ahora el detalle es, que cuando estos 3 estan borrados, y quiero restaurar ejemplo.. borre 123 y quiero restaurar el 2 le doy confirmar y no lo hace, basta que en el boton confirmar coloque a un boton que hice para simular las movidas del dbnavigator << < > >> al darle el click Proximo es decir unitable1.next; y si borra pero el siguiente y quiero la posibilidad de que al marcar en la dbgrid1 el registro que yo desee sea cual fuere el registro lo haga, dejo el codigo con que hago borrar, restaurar, confirmar y cancelar, aparte del oncreate.

Si existen mejores formas de hacer este formulario escucho opiniones, ya que el filtrado con muchos registros me imagino que se pondra lenta .. ( aun no lo pruebo con registros exagerados), pero si con 20 registros al borrar logicamente que es ( cambiar el campo invisible a true, y el estado a desactivado se tarda a veces por el refresh que tiene la grilla ) -.- jeje bueno aki dejo el codigo.. a ver que se puede hacer..

saludos y gracias de antemano ..

pd: uso tdbedit + la grilla

Código Delphi [-]
 procedure TfrmAgencia.btnborrarClick(Sender: TObject);
begin

 if MessageDlg('¿Que quiere borrar este registro?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
 begin
 desactivarbarra;
 unitable1.Edit;
edtborrado.Field.AsString := 'true';
comboestado.Field.AsString := 'Desactivado';
unitable1.Post;
 unitable1.FilterSQL:= 'not borrado';
  activarbarra;
 end;

escero;
esceroborrado;

end;


procedure TfrmAgencia.btnrestaurarClick(Sender: TObject);
begin
comprobarnull;
unitable1.FilterSQL:= 'borrado';
unitable1.Edit;
desactivarbarra;
btnconfirmarborrado.Enabled :=true;
btnconfirmarborrado.Visible := true;
btncancelarborrado.Enabled := true;
btncancelarborrado.Visible := true;
edtborrado.Visible := true;
end;


procedure TfrmAgencia.btncancelarborradoClick(Sender: TObject);
begin
 escero;
unitable1.Cancel;
desactivarbarra;
    btnañadir.Enabled := true;
    btnmodificar.Enabled := true;
    btnborrar.enabled :=true;
unitable1.FilterSQL:= 'not borrado';
    btncancelar.Visible := true;
btnconfirmar.Visible :=true;

btncancelarborrado.Visible := false;
btnconfirmarborrado.Visible :=false;
dbgrid1.Refresh;
end;


procedure TfrmAgencia.btnconfirmarborradoClick(Sender: TObject);
begin
   unitable1.Edit;
   comboestado.Field.AsString := 'Activado';
     unitable1.Post;
      unitable1.FilterSQL:= 'not borrado';

   desactivarbarra;
    btnañadir.Enabled := true;
    btnmodificar.Enabled := true;
    btnborrar.enabled :=true;

    activarbtnir;
    btncancelar.Visible := true;
btnconfirmar.Visible :=true;
btncancelarborrado.Visible := false;
btnconfirmarborrado.Visible :=false;

end;

aca el create del formulario

Código Delphi [-]

procedure TfrmAgencia.FormCreate(Sender: TObject);
begin
esceroborrado;
escero;
   try
if conexion = true then
    begin
          unitable1.Active := true;
          unitable1.Last;

    end
else                              // OJEAR NO TRABAJA! LA EXCEPCION SI LA CONEXION SE CAE
 except
              on E: Exception do
         begin

           unitable1.Active := false;
           showmessage('Compruebe la conexion a internet, debido a que no se ha podido conectar con el servidor')
         end;
 end;
      Query1.SQL.Clear;
 Query1.SQL.Add('Select Max(numero_agencia) From Agencia');
 Query1.Open;

     unitable1.Edit;
      edtfalsonroagencia.Text:= inttostr(Query1.Fields[0].AsInteger);

  
            end;

Bueno eso creo que es todo.. agradezco su tiempo.. saludos!

pd1: el detalle sigo e insisto esta en el posicionamiento del dbgrid pero la verdad no se como hacer que al darle click y seleccionar el registro sepa que eso que estoy seleccionando debo cambiarle el campo borrado debe cambiarle el campo para que aparezca.. Saludos!

pd2: recien me he dado cuenta que al posicionarme en el registro desde la dbgrid1 y volver a darle el boton restaurar y darle al boton confirmar me hace la seleccion de ese registro y me lo restaura, pero si solamente le doy click a restaurar, no me deja editar el tdbcombobox que posee el true o el false del campo.. he ahi el dilema!

Última edición por asdbernardo fecha: 09-10-2011 a las 09:01:59. Razón: añadi la pd2, gracias a una prueba que hice luego de repasar el codigo
Responder Con Cita
  #2  
Antiguo 09-10-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola asdbernardo, lo que no he entendido es lo que quieres hacer, qué finalidad tiene, qué quieres conseguir, qué estás haciendo, vamos, que no me he enterado de nada
Repites varias veces algo así como: "lógicamente", pero yo no le veo la lógica, de verdad.
Seguramente es que no te he entendido, será que todavía estoy algo dormido.
Responder Con Cita
  #3  
Antiguo 09-10-2011
asdbernardo asdbernardo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 37
Poder: 0
asdbernardo Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Hola asdbernardo, lo que no he entendido es lo que quieres hacer, qué finalidad tiene, qué quieres conseguir, qué estás haciendo, vamos, que no me he enterado de nada
Repites varias veces algo así como: "lógicamente", pero yo no le veo la lógica, de verdad.
Seguramente es que no te he entendido, será que todavía estoy algo dormido.
jajaja. Saludos Casimiro Notevi.... bueno el caso de eso es que estoy haciendo un formulario como antes explique.. pero vuelvo a ver si me entienden, borro un registro ( pero logicamente es decir no borro de la base de datos, sino que con el campo (borrado) asi se llama en la base de datos de tipo boolean le cambio el valor para decirle Si esta borrado o no, y en la grilla muestro unicamente lo que no estan borrados.. ( en este caso los que son borrado = a false.. es decir muestra todo los registros que tengan false ( en campo borrado) ¿ que es lo que quiero? que al presionar boton restaurar y seleccionar X registro desde la grilla y presione confirmar proceda a borrarse ese registro... en este caso no lo hace, y creo que tiene que ver que no se posiciona con la grilla ya que en el codigo creo que esta lo necesario para que haga lo que digo, lee la pd2. eso lo descubri mientras probaba. cuando selecciono el registro a borrar y le doy boton restaurar y confirmar si lo borra! y la verdad no se como hacerlo jeje. te voy a dejar una pantalla a ver si se puede.
la primera pantalla es cuando inicia el programa no tengo registros pero en realidad si tengo 3 pero no se muestran por el filtrado


y esta pantalla es al darle restaurar que cambia el unitable1.filterSQL a 'borrado' entonces en eso se activan confirmar y cancelar, si selecciono el registro 2 desde la grilla que al darle confirmar proceda al codigo antes mencionado.


saludos! casimiro jeje gracias por tomarte el tiempo de pasar por mi post

Última edición por Casimiro Notevi fecha: 09-10-2011 a las 17:44:18.
Responder Con Cita
  #4  
Antiguo 09-10-2011
asdbernardo asdbernardo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 37
Poder: 0
asdbernardo Va por buen camino
Bueno gracias, casimiro .. ehm resolvi colocando la edtborrado( en este caso es donde esta la etiqueta estado: ) esa caja le coloque, el evento OnDropDown le puse unitable1.edit; y me resolviop lo de la posicion del registro que iba a restaurar.. en esa posicion. Saludos.
Responder Con Cita
  #5  
Antiguo 09-10-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Me alegro
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
Como saber la ubicacion de la carpeta Windows JoAnCa API de Windows 3 10-12-2010 17:23:18
como asignarle los componente dialogs a este codigo kurono Varios 4 12-04-2008 08:36:07
¿Cómo saber la ubicación del ejecutable que levantó un proceso? Alcolea Windows 1 24-11-2007 22:58:43
Saber la posición X-Y del cursor en un edit Sr_Sombrero API de Windows 1 19-06-2006 05:55:49
Como asignarle atributos a un pixel? bustio .NET 0 03-12-2004 20:42:00


La franja horaria es GMT +2. Ahora son las 05:55: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