Hola apreciados Chicos una pregunta:
Cree una Tabla temporal utilizando el ClientDataSet en el que agrego registro de consultas a una tabla, esta me trae ejemplo productos mostrándome los datos en un DBGRID.
la interrogante es:
trato de buscar el campo en el debrid haciendo esto pero no me está eliminando dicho registro lo que hace es eliminarme es el último registro:
Código Delphi
[-]
procedure TfrmDevuelveProducto.btnDevuelveProductoClick(Sender: TObject);
var
codigoP: String;
begin
codigoP := Trim(eCodigoProducto.Text);
frmFacturacionprincipal.dbgVentas.DataSource.DataSet.DisableControls;
frmFacturacionprincipal.dbgVentas.DataSource.DataSet.First;
while not frmFacturacionprincipal.dbgVentas.DataSource.DataSet.Eof do
begin
if frmFacturacionprincipal.dbgVentas.DataSource.DataSet
['cdsTempArtVentaCOD_BARRA'] = codigoP then
frmFacturacionprincipal.dbgVentas.SelectedRows.CurrentRowSelected := True;
frmFacturacionprincipal.dbgVentas.DataSource.DataSet.Next;
end;
frmFacturacionprincipal.dbgVentas.DataSource.DataSet.EnableControls;
frmFacturacionprincipal.dbgVentas.DataSource.DataSet.Delete;
end;
espero poder lograr hacer esto en primera instancia.
la otra interrogante de este hilo es: si al borrar en el DBGRID me borrará el registro tambien del ClientDataSet que me almacena en momoria los datos? o tendría que hacer esto tambien:
Código Delphi
[-]
procedure TfrmDevuelveProducto.btnDevuelveProductoClick(Sender: TObject);
var
codigoP: String;
begin
codigoP := Trim(eCodigoProducto.Text);
frmFacturacionprincipal.dbgVentas.DataSource.DataSet.DisableControls;
frmFacturacionprincipal.dbgVentas.DataSource.DataSet.First;
while not frmFacturacionprincipal.dbgVentas.DataSource.DataSet.Eof do
begin
if frmFacturacionprincipal.dbgVentas.DataSource.DataSet
['cdsTempArtVentaCOD_BARRA'] = codigoP then
frmFacturacionprincipal.dbgVentas.SelectedRows.CurrentRowSelected := True;
frmFacturacionprincipal.dbgVentas.DataSource.DataSet.Next;
end;
frmFacturacionprincipal.dbgVentas.DataSource.DataSet.EnableControls;
frmFacturacionprincipal.dbgVentas.DataSource.DataSet.Delete;
dmlogicaventa.cdsTempArtVenta.First;
while not dmlogicaventa.cdsTempArtVenta.Eof do
begin
if dmlogicaventa.cdsTempArtVenta.FieldByName('cdsTempArtVentaCOD_BARRA')
.AsString = codigoP then
dmlogicaventa.cdsTempArtVenta.Delete;
dmlogicaventa.cdsTempArtVenta.Next;
end;
Close;
end;
end;
end;
saludos sres
novato_erick