Ver Mensaje Individual
  #1  
Antiguo 12-04-2014
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Reputación: 14
novato_erick Va por buen camino
borrar registro de un temporal ClientDataSet y dbgrid

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);

//Borramos en el DBGRID campo que busco pero en realidad no lo hace 
  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;

//Se borra en el ClientDataSet temporal cosa que no se si se hace haciendo solamente la eliminación del registro en el dbgrid
  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
Responder Con Cita