PDA

Ver la Versión Completa : filtrar DbLoockUpComboBox


eekkii
25-10-2010, 00:44:28
Hola, les comento, estoy haciendo un reproductor de música en delphi 7 para la facultad, donde para comenzar a usar el programa cada usuario tiene que logearse con su usuario y contraseña y mi problema es el siguiente al momento de cargar las canciones:

Tengo 3 tablas con los siguientes campos:

Tabla users:
id
Nombre
-
-

Tabla Playlist:
id
Nombre
id_user

Tabla tracks:
id
-
-
id_pl

Ahora el problema esta, en que al cargar un nuevo track, quiero asignarle a que playlist iría, para esto uso un dbloockupcombobox, donde muestro el campo nombre de la tabla playlist, y le agrego el id de la tabla playlist, al id_pl de la tabla tracks. Hasta ahi me funciona perfecto, mi problema es que no se como filtrarla para que solo aparezcan los playlist con el mismo id_user que el id del usuario logeado.
No creo que sea algo difícil de realizar, pero no tengo la menor idea de como hacerlo.

Pido disculpas si el tema esta tratado, pero la verdad es que lo busque y no lo encontre.

Luis F. Orjuela
25-10-2010, 01:13:57
Utiliza una variable gobal a tu programa donde guardes ei id_user, de tal suerte que cuando lo necesites pues lo usas.

Para ello creas un nuevo archivo.pas y dentro defines tu variable del mismo tipo que el utilizado en la tabla users, y en el Tform donde desees utilizar la variable pues solo adicionas el archivo miglobal.pas (por ejemplo) en la seccios uses de tu Tform.....


Así se definen variables globales para el programa

eekkii
25-10-2010, 02:04:22
Tal vez me exprese mal, no necesito usar variables globales, ya que en ningun momento la tabla de users se mueve, asi que uso un locate de la tabla para saber quien es...
lo que queria hacer era que solamente aparescan los playlist del user dentro del dbloockupcombobox.

lo que hice fue lo siguiente:

en el evento ondropdown del dbloockupcombobox puse.

procedure Tform_newtrack.DBLookupComboBox4DropDown(Sender: TObject);
var
x:string;
begin
x:=data_db.table_users.FieldByName('id').AsString;
Data_db.Table_pl.Filter:=('id_user=')+QuotedStr(x);
Data_db.Table_pl.Filtered:=True;
end;

creo que con eso lo arregle pero no se si estara bien :P

gracias