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 27-06-2004
arc22 arc22 is offline
Registrado
 
Registrado: may 2004
Posts: 9
Poder: 0
arc22 Va por buen camino
Post distintas picklists en la misma columna de dbgrid

Hola todos mi consulta es la siguiente:

Tengo un dbgrid conectado a una tabla y quiero que en la misma columna de ese dbgrid aparezcan distintas listas desplegables para cada registro (según campos de otra tabla).
Hasta ahora estoy usando esto:

procedure TForm3.Table1NewRecord(DataSet: TDataSet);
var
i:Integer;
lista: TStrings;
begin
lista:= TStringList.Create;
for i:=1 to table2stock.asinteger do
lista.Add (IntToStr (i));
DBGrid1.Columns[0].PickList:= lista; {1}
lista.Destroy;
end;

Pero lo que hace esto es cargar la misma lista para todos los registros.
Obviamente el problema está en {1} debo poder separar la fila seleccionada para cargar la picklist, pero hasta ahora no encuentro el método adecuado.
También probé ponerlo en el evento oncellclick del dbgrid pero parece no funcionar.
Si alguien puede darme una ayudita desde ya se lo voy a agradecer.
Saludos.
Responder Con Cita
  #2  
Antiguo 27-06-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Dado que picklist es un atributo de la columna, el dbgrid no puede mantener un picklist diferente para cada registro (fila).

Sin embargo, podes cambiarlo dinámicamente cada vez que cambia una fila (evento onScroll del DataSet), además de lo que ya estas haciendo para cuando se inserta un nuevo registro.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 28-06-2004
arc22 arc22 is offline
Registrado
 
Registrado: may 2004
Posts: 9
Poder: 0
arc22 Va por buen camino
list out of bound

Hola, antes que nada gracias por contestar, te comento que hice algunas modificaciones:

procedure TForm3.Dbgrid1onDblclick(Sender: TObject);
var
i:Integer;
lista: TStrings;
valo:integer;
catselgrid: string;
artselgrid: string;
begin
with DBGrid1.DataSource.DataSet do
begin
lista:= TStringList.Create;
catselgrid:= DBGrid1.SelectedRows.Items[1];
artselgrid:= DBGrid1.SelectedRows.Items[2];
if (Table2.FindKey([catselgrid, artselgrid])) then
begin
valo:= Table2Stock.AsInteger;
for i:=1 to valo do
lista.Add (IntToStr (i));
DBGrid1.Columns[0].PickList:= lista;
lista.Destroy;
end;
end;
end;

pero salta un Error: list index out of bounds.
Hay un limite en la cantidad de compoonentes de la lista ?
siendo que el valor de valo (tope del for que genera la lista) puede llegar a mas de 1.000.
Saludos.
Responder Con Cita
  #4  
Antiguo 28-06-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Hola.

Te recomiendo aprender a usar las etiquetas [ code ], [ delphi ], [ sql ] y [ php ] para publicar trozos de código, según corresponda. De esta manera respetan su indentación e incluso se resalta la sintaxis, con lo que son mucho mas legibles.

Sería útil saber en que línea del código salta la excepción, pues a simple vista no encuentro el error.

Por otro lado, me parece exagerado hacer un picklist con tantas opciones. De hecho, mas de unas cuantas ya no me parece práctico para un picklist... sobre todo si se trata de números. Mejor dejar que el usuario introduzca manualmente el dato, no te parece?

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 28-06-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Yo te recomiendo, aparte del consejo de jachguate, que identes un poco más tu código, pues aún con esas etiquetas, sin el identado se hace muy pesado el leerlo.
__________________
:)
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 08:26:25.


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