cancelar modificação do registro

Delphi

16/02/2004

Como cancelar a modificação de um registro se o campo Data_saida estiver preenchido.


Franck.c

Franck.c

Curtidas 0

Respostas

Vinicius2k

Vinicius2k

16/02/2004

Franck,
vc poderia nos fornecer mais detalhes, como qual banco de dados, qual tipo de conexão e quais componentes de acesso vc está utilizando?

T+


GOSTEI 0
Franck.c

Franck.c

16/02/2004

uso uma table, paradox, o nome do form é FOSRetirar o nome da tabela é Table1 e o banco é OS.db e o campo é dt_saida


GOSTEI 0
Vinicius2k

Vinicius2k

16/02/2004

Franck,
desculpe, mas ainda não consigo entender o que vc precisa...
descreva para nós a lógica detalhada do processo...
T+


GOSTEI 0
Adilsond

Adilsond

16/02/2004

No evento BeforePost de sua Table1 coloque:

if not Table1Dt_saida.IsNull then
raise EDatabaseError.Create(´Mensagem´);

ou

if not Table1Dt_saida.IsNull then
begin
ShowMessage(´Mensagem´);
Abort;
end;


As duas formas mostrarão uma caixa de mensagem e abortarão a alteração. Se voce deseja que esta verificacão seja feita apenas qdo o usuário altera e caso seja uma inclusão permitir, coloque o comando abaixo:

if (Table1.State = dsEdit) and
(....)


GOSTEI 0
Franck.c

Franck.c

16/02/2004

Em meu form FOSRetira tenho um campo chamado Dt_saida que está no DBEdit47, que o mesmo só é preenchido na hora que sai o produto da loja. Quando chega o produto, é criado uma Ficha. Quando o produto é consertado, é colocado nessa ficha as peças que foram utilizadas nesse produto, logo, resta esperar o produto sair da loja. Quando o cliente vier buscar é entrado nessa ficha e colocado a data de saída. O que eu quero fazer é o seguinte, depois que o funcionário preencher este campo de saída, o sistema não deixa o funcionário modificar a ficha que está preenchido a data de saída. Seria tipo uma verificação se o campo estiver preenchido, não deixa fazer qualquer modificação no registro.
Entendeu?


GOSTEI 0
Vinicius2k

Vinicius2k

16/02/2004

Franck,
vejamos então... supondo que a O.S é selecionada num DBGrid e o usuário clica num botão para fazer a edição...

no evento AfterEdit da Table1 vc vai fazer algo baseado nesta idéia :
procedure TForm1.Table1AfterEdit(DataSet: TDataSet);
begin
 if not Table1.FieldByName(´Dt_saida´).IsNull then
  begin
   Application.MessageBox(´Esta O.S já está fechada e não pode ser modificada.´,´Erro´,mb_iconhand+mb_ok);
   Table1.Cancel;
  end;
end;

a rotina testa se o campo data de saída é nulo e caso não seja ela avisa ao usuário e cancela a edição... se sua edição estiver sendo feita num outro form, vc pode, inclusive, fechar o form depois do ´Cancel´...

veja se é isto, mesmo e qq coisa poste aqui novamente...

espero ter ajudado...


GOSTEI 0
Franck.c

Franck.c

16/02/2004

ok, seu certo, vlw kra.


GOSTEI 0
POSTAR