Duvida, como inutilizar o Insert de um DBGrid?
Caros amigos, como inutilizo o Insert de um DBGrid para alguns usuários e outros nao?!
Atenciosamente
Luiz Claudio V. Santos
Atenciosamente
Luiz Claudio V. Santos
Luiz.claudio.vieira
Curtidas 0
Respostas
Joilson_gouveia
05/03/2004
Há várias maneiras. Sugiro que no evento afterOpen da Tabela/Query
vc verifique se o usuario tem direito de atualizar e, se não, vc
torna o DBGrid somente leitura, alterando conforme abaixo:
DBGrid1.ReadOnly := True;
vc verifique se o usuario tem direito de atualizar e, se não, vc
torna o DBGrid somente leitura, alterando conforme abaixo:
DBGrid1.ReadOnly := True;
GOSTEI 0
Pain_elemental
05/03/2004
No OnStateChange do TDataSource ligado ao grid vc poe:
Onde TemPermissao é uma função que diz se o usuário tem permissão ou não.
if (Sender.State = dsInsert) and (TemPermissao) then Sender.DataSet.Cancel;
Onde TemPermissao é uma função que diz se o usuário tem permissão ou não.
GOSTEI 0
Luiz.claudio.vieira
05/03/2004
Eu fiz o que o amigo me passou mas deu o seguinte erro ´Undeclared identifier: ´State´ ´ Alguem sabe me responder o que estou fazendo de errado?!
GOSTEI 0
Andrey
05/03/2004
Tente utilizar o nome do dataset(query, table) ligado ao datasource no lugar de ´sender´.
GOSTEI 0
Pain_elemental
05/03/2004
Há várias maneiras. Sugiro que no evento afterOpen da Tabela/Query
vc verifique se o usuario tem direito de atualizar e, se não, vc
torna o DBGrid somente leitura, alterando conforme abaixo:
DBGrid1.ReadOnly := True;
Você pode ver a mudança de estado do TDataSource no evento OnStateChange, tendo um maior controle do que somente por read-only, podendo dar permissõs de alteração e inclusão.
GOSTEI 0
Pain_elemental
05/03/2004
Eu fiz o que o amigo me passou mas deu o seguinte erro ´Undeclared identifier: ´State´ ´ Alguem sabe me responder o que estou fazendo de errado?!
ops... desculpe.
serla
TDataSource(Sender).State
Sender.State
GOSTEI 0
Arlon
05/03/2004
Vai na cláusula Uses do código fonte e declara ´DB´, sem as aspas, é claro.
GOSTEI 0