cancelar modificação do registro
Como cancelar a modificação de um registro se o campo Data_saida estiver preenchido.
Franck.c
Curtidas 0
Respostas
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+
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
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
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+
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
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
(....)
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
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?
Entendeu?
GOSTEI 0
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 :
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...
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
16/02/2004
ok, seu certo, vlw kra.
GOSTEI 0