Array
(
)

Duvidas - Como travar e liberar campos?

Ricieri
   - 22 mar 2006

Pessoal, tenho uma duvida que nao consegui resolver...
Vejam:

Estou fazendo um sistema de controle de estoque, e o campo ´quantidade em estoque´ eu só vou deixar o usuário digitar a quantidade quando for um cadastro novo...
Tipo, já tenho cadastrado ´coca cola´ com 50 itens em estoque, este estoque o usuário não pode mais editar, só vai ser alterado na tela de vendas e de compras que vai baixar e aumentar estoque.. até ai tudo bem, vou lá e dou um enable = false no dbedit...
Mas e quando for um cadastro novo, eu preciso deixar este campo liberado para o usuario digitar a quantidade...
Como posso fazer isso da melhor forma sem ninguem poder burlar?

Grato...


Rjun
   - 23 mar 2006

Verifique o estado do dataset. Se ele estiver como dsInsert então deixe o dbedit habilitado. Caso contrário desabilite o dbedit ou deixe-o como readonly.


Ricieri
   - 23 mar 2006

como faço isso?


Paullsoftware
   - 23 mar 2006

Declare a Unit DB na Uses do Form em questão, no OnChange ou OnEnter do Campo em questão faça assim:

if DataSource1.State in [DsInsert] then
begin
//Permita a insersão do valor
end
else
begin
//Caso contrário, faça alguma rotina de bloqueio!
end;

:!: Detalhe :!:
Existe outros estados em que o DataSet pode estar para vê-los Precione a tecla CTRL e clique sobre a palavra State! :wink: