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 18-07-2005
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
selección mútiple en dbgrid

Hola a todos :

Me gustaría saber si se puede hacer una selección múltiple en un dbgrid, o si existe algún componente semejante que sí lo permita.

Lo que hago es presentar los registros de una tabla mediante un dbgrid y el usuario debe seleccionar las filas que le interesan para incluir en otra tabla. Es importante que las líneas a incluir se seleccionen todas juntas y no de una en una, ya que hay un número mínimo de líneas a incluir, y si no se cumple este mínimo no se puede insertar ninguna línea.

Muchas gracias por adelantado.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #2  
Antiguo 18-07-2005
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Red face Hola

Despliega la propiedad options del DBgrid y establece dgMultiselect a True, luego con Ctrl + Clic el usuario podrá hacer selecciones múltiples, para acceder a las filas seleccionadas puedes usar la propiedad SelectedRows del propio DBgeid.

Saludos.
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #3  
Antiguo 18-07-2005
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
Muchas gracias yusnerqui, era justo lo que necesitaba
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #4  
Antiguo 18-07-2005
gontxalo gontxalo is offline
Miembro
 
Registrado: may 2005
Posts: 99
Poder: 19
gontxalo Va por buen camino
cada fila que abra un form

Hola

Esto me ha servido a mi también gracias.
Pero al tener ya toda la fila seleccionada, sabes como puedo mandar si se pincha en cada fila a un form distinto?

Es decir cada fila seleccionada al pinchar que se abra otro form. Con el evento cellclick mando todas las filas al mismo form.

Gracias
Responder Con Cita
  #5  
Antiguo 18-07-2005
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Si está muy claro, solo tienes que chequear el valor del dataset en el campo que creastes para este fin:

Código Delphi [-]
  Case MyTabla.FieldByName('IDForm').asInteger of
    1:Form1.show;
    3:Form3.show;
    N:FormN.show;
  end;

Espero sea lo que buscas, si no es esto, creo que debes explicarte mejor, y si es posible mencionar cuales son tus propósitos, que campos creaste para ello etc.
Pues realmente yo no te entiendo


Saludos



saludos
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #6  
Antiguo 20-07-2005
gontxalo gontxalo is offline
Miembro
 
Registrado: may 2005
Posts: 99
Poder: 19
gontxalo Va por buen camino
Por filas no columnas

Hola.
Me explico mejor.
En el DBGrid se abren tres columnas: Nombre Apellido Año, Y debajo de ellas varias filas con los datos. Ejemplo:
Nombre Apellidos Año
blanca Arteche 2000
gonzalo zabala 1995
maria salcines 1994

Yo tengo puesto:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
with Column do
case Index of
0: Form10.Show;
1: Form11.Show;
end;
end;

Pero así lo que consigo es que si pincho en blanca, gonzalo o maria se abre el form 10, y si pincho en arteche, zabala o salcines se abre el form 11. (Por columnas)

Lo que necesito es que cuando pinche una fila, blanca arteche 2000 se abra el form 10, y si pincho gonzalo zabala 1995 se abra el form 11, y si pincho en maria salcines 1994 se abra otro form. Es decir por filas no por columnas.

No se si en el dataset, pero no se hacerlo.
Gracias.
Responder Con Cita
  #7  
Antiguo 20-07-2005
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Pues lo dicho

Mira, es un tanto curioso tu problema, ya que se supone que el dbgrid está conectado a un objeto de tipo TDataset, el cual a su vez está conectado a una tabla de una base de datos, y se supone también que los valores de esta tabla puedan cambiar en cualquier momento, o se puedan incrementar registros, porque de no ser así para que usar bases de datos.

El único sentido que le veo es que quieras usar un formulario diferente para cada grupo de registros, por ejemplo: los pertenecientes a un año determinado.

Código Delphi [-]
  procedure TForm1.DBGrid1CellClick(Column: TColumn);
  begin
    Case MyTabla.FieldByName('Ano').asInteger of
      2000:Form1.show;
      1994:Form3.show;
      1995:Form2.show;
    end;
  end;

Aquí MyTabla es el objeto TDataset que al que esta conectado el DBgrid, esto puede ser un TTable, TADOTable, TQuery o lo que tengas conectado a la BD
Ten en cuenta que si agregas un registro con un año diferente a alguno de estos tres no se te abrirá Form alguno

Espero haberte aclarado un poco tu duda Saludos
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #8  
Antiguo 20-07-2005
gontxalo gontxalo is offline
Miembro
 
Registrado: may 2005
Posts: 99
Poder: 19
gontxalo Va por buen camino
Hola

Cuando dices:
El único sentido que le veo es que quieras usar un formulario diferente para cada grupo de registros, por ejemplo: los pertenecientes a un año determinado.

Tienes razón pero lo que necesito es usar un formulario para cada grupo de registro pero no en columnas como año, nombre o apellido. Sino en líneas.

Se abre el dbgrid. Queda así:
Nombre Apellidos Año
blanca Arteche 2000
gonzalo zabala 1995
maria salcines 1994

Lo que necesito es abrir un form10 cuando pincho en (blanca arteche 2000)
Que se abra un form 11 cuando pincho en (gonzalo zabala 1995)
Que se abra un form 12 cuando pincho en (maria salcines 1994)

De la manera que lo tenía puesto me abre un form cuando pincho (blanca gonzalo maria) es decir por toda la columna hacia abajo.
Me abre otro cuando pincho (arteche zabala salcines) Pero así no me sirve.

Cuando pones multiselect true cundo pinchas en una celda se selecciona toda la fila entera, bien pues toda esa fila que me lleve a un form, y la fila entera de abajo a otro form ....... y así toda la tabla

Gracias
Responder Con Cita
  #9  
Antiguo 20-07-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Si solo quieres ver los datos de la persona que pinchas, solamente tienes que colocar en el formulario que abres controles DataAware apuntando al mismo Dataset y así solamente te mostrar la línea = registro seleccionado.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #10  
Antiguo 20-07-2005
gontxalo gontxalo is offline
Miembro
 
Registrado: may 2005
Posts: 99
Poder: 19
gontxalo Va por buen camino
Bueno sería pinchar en los datos de una persona como dices pero que abra un formulario vacío. Tengo que diseñarlo todavía pero el form que abra esté por ahora vacío, no con sus datos.

Gracias
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


La franja horaria es GMT +2. Ahora son las 23:59:29.


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