PDA

Ver la Versión Completa : Recorrer 1 tabla


mantraxer21
12-09-2011, 21:05:04
Estimados:

Cómo se hace (literalmente) poder recorrer 1 tabla de mi bd (firebird) y si el valor por ejemplo de esa tabla trae true, entonces desabilitar una opción del menu...

Tabla: Menu
idMenu(1)
Menu (Mantenedor)
Enabled (true)

Alguien puede ayudar a trabajar esta opción ?

Saludos Cordiales

mantraxer21
12-09-2011, 21:07:15
Datos de la tabla:

Menu:

id Menu Enabled idTipoUsuario
1 Mantenedor True 1
2 Usuarios True 1
3 Informes False 2

oscarac
12-09-2011, 21:12:09
tiene algo de codigo fuente?

ecfisa
12-09-2011, 21:15:47
recorrer 1 tabla de mi bd (firebird) y si el valor por ejemplo de esa tabla trae true, entonces desabilitar una opción del menu
Hola mantraxer21.

En realidad, según te interpreto, no es la tabla la que devuelve el valor verdadero o falso sino alguno de sus campos.

¿ En base a que campo o campos queres realizar la evaluacion ?

Saludos.

oscarac
12-09-2011, 21:21:33
aqui (http://neftali.clubdelphi.com/?p=182) hay un ejuemplo de creacion de Menus utilizando archivos de texto

newtron
13-09-2011, 09:01:04
Hola.

Yo lo que hago es tener en una tabla solamente las opciones del menú que van a estar habilitadas guardando el caption del menú. Cuando se ejecuta el programa deshabilito primero todas las opciones del menú y luego me recorro la tabla habilitando las opciones que están en ella. En la tabla guardo el texto del menú de arriba +'#' + las opciones del menú.


// Primero deshabilito todo
for N:=0 To MainMenu.Items.Count-1 do begin
for M:=0 To MainMenu.Items[N].Count-1 do begin
MainMenu.Items[N].Items[M].Enabled := False;
end;
end;
// Habilito opciones de la tabla
DataModule1.EDBQuery1.first;
while not DataModule1.EDBQuery1.Eof do begin
sAux:=DataModule1.EDBQuery1.FieldByName('OPCION').AsString;
for N:= 0 to MainMenu.Items.Count-1 do begin
if StrTran(MainMenu.Items[N].Caption,'&','') = Copy(sAux,1,Pos('#',sAux)-1) then begin
for M:=0 To MainMenu.Items[N].Count-1 do begin
if Copy(sAux,Pos('#',sAux)+1,100)=MainMenu.Items[N].Items[M].Caption then begin
MainMenu.Items[N].Items[M].Enabled := True;
break;
end;
end;
end;
end;
DataModule1.EDBQuery1.Next;
end;


Aclaro: strtran es una función que tengo para buscar y sustituir, en este caso la uso para que ignore el carácter '&' de los textos de los menús.

Saludos