Fórum cancelar modificação do registro #214655

16/02/2004

0

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


Franck.c

Franck.c

Responder

Posts

16/02/2004

Vinicius2k

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+


Responder

Gostei + 0

16/02/2004

Franck.c

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


Responder

Gostei + 0

17/02/2004

Vinicius2k

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


Responder

Gostei + 0

17/02/2004

Adilsond

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
(....)


Responder

Gostei + 0

17/02/2004

Franck.c

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?


Responder

Gostei + 0

17/02/2004

Vinicius2k

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...


Responder

Gostei + 0

17/02/2004

Franck.c

ok, seu certo, vlw kra.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar