hola nuevamente!
No se si sea correcto continuar aqui pero en caso contrario por favor le solicito a los moderadores que lo muevan.
Lepe, por el momento me "brinque" el procedimiento del OnExit del Edit asi que hago esto con el boton de guardar cambios:
Código Delphi
[-]
procedure TMainFrm.btnPesarClick(Sender: TObject);
begin
btnPesar.Enabled := False;
g_iEntrada := 0;
if (g_strEstado = 'M') then
showmessage('¡La Báscula tiene movimiento ESPERE!')
else if (g_strEstado = 'U') then
showmessage('¡EL PESO ES NEGATIVO!')
else
try
begin
lblPesoCap.Caption := g_strDatos;
frmDatos.MDOEntrada.Append;
frmDatos.MDOEntrada.FieldByName('FOLIO').Value := tmpFolio ;
frmDatos.MDOEntrada.FieldByName('PLACAS').Value := edPlacas.Text ;
frmDatos.MDOEntrada.FieldByName('CLIENTE').Value := dbCliente.Text ;
frmDatos.MDOEntrada.FieldByName('PRODUCTO').Value := dbProducto.Text ;
frmDatos.MDOEntrada.FieldByName('OPERADOR').Value := edOperador.Text ;
frmDatos.MDOEntrada.FieldByName('PESO_ENT').Value := g_strDatos;
frmDatos.MDOEntrada.FieldByName('HF_ENT').Value := Now;
frmDatos.MDOEntrada.Post;
end;
except
on E:Exception do
begin
ShowMessage('¡ERROR al actualizar la base de datos!');
end;
end;
en el OnValidate del TField PLACAS
Código Delphi
[-]
procedure TfrmDatos.MDOEntradaPLACASValidate(Sender: TField);
var
Query: TMDOSQL;
begin
if Trim(MDOEntrada.FieldByName('PLACAS').AsString) <> '' then
begin
Query := TMDOSQL.Create(nil);
try
Query.Database := frmCnx.MDODatabase1 ;
Query.Transaction := frmCnx.MDOTransaction3 ;
Query.SQL.Text := 'SELECT Placas FROM ENTRADA WHERE Placas = :Valor';
Query.ParamByName('Valor').Value :=
MDOEntrada.FieldByName('PLACAS').AsString;
query.ExecQuery ;
try
if Trim(Query.Fields[0].AsString) <> '' then
begin
showmessage('¡Estas Placas estan duplicadas!');
Abort;
end;
finally
query.Close ;
end;
finally
query.Free;
end;
end
else
begin
ShowMessage('El campo placas es necesario');
Abort;
end;
end;
los dos mensaje de advertencia me aparecen si el campo placas esta duplicado o vacio, sin embargo al llenar el edit que contiene ese valor y volver a ejecutar el procedimiento PesarClick la BD me regresa un error
de que el campo placas es null. No entiendo que esta pasando. Se agradece toda la ayuda.
EDITO: uso D7, MDO, FB2.0