Cita:
Empezado por _CALI
gracias por responder!!!
me refiero a los item al nro de linea que voy ingresando al detalle
ejm:
01
02
03
---
nLinea
//************
por otro lado yo quiero ingrsar los datos directamente en la grilla,
en que evento del campo coloco el locate o hago el rrecorrido????
Gracias denuevo
|
Hola de nuevo Cali, si ingresas directamente los datos en el DBGrid, tienes que hacer muchos controles. El evento que debes utilizar es el OnBeforePost del CLientDataSet, que se da antes de hacer el Post, pero si pones el Locate o el recorrido de la tabla sobre ese ClientDataSet dentro de ese evento, vas a tener problemas, como no se ha hecho el Post todavía va entrar en un ciclo hasta que te de un mensaje de Stack Overflow. Lo que se me ocurre para solucionar eso, es que hagas un clon de tu ClientDataset y hacer la busqueda ahí, tu codigo quedaría así:
Código Delphi
[-]
procedure TForm1.ClientDataSet1BeforePost(DataSet: TDataSet);
var
ClientDataSetAux : TClientDataSet;
begin
Try
ClientDataSetAux := TClientDataSet.Create(Nil);
ClientDataSetAux.CloneCursor(ClientDataSet1, True);
if dataSet.State = dsInsert then
if ClientDataSetAux.Locate('campo', DataSet.fieldbyname('campo').AsString, [loCaseInsensitive]) then
begin
DataSet.Cancel;
Abort;
end;
Finally
FreeAndNil(ClientDataSetAux);
end;
end;
Para que insertes al final utiliza ClientDataSet1.Append
Saluditos