Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-12-2017
Tcmn Tcmn is offline
Miembro
 
Registrado: sep 2004
Posts: 152
Poder: 20
Tcmn Va por buen camino
Question Hacer multiseleccion a placer en DbGrid por codigo

Hola qué tal? Espero todos bien. Les comento mi situación, estoy programando en una Compu con Windows XP profesional, Delphi 6 enterprise y firebird 2.1. Tengo una tabla llamada pagos que contiene registros con el monto de cada pago y el cliente desea poder especificar una cantidad por ejemplo 1,000 y que el programa automáticamente haga una suma de los pagos que equivalgan a esa cantidad lo más cercano posible pero que además se resalten en la rejilla los registros sumados.

En la parte de la suma es sencillo y ya tengo un ciclo que recorre tabla sumando pagos hasta que sumen la cantidad que pide el cliente pero sin pasarse el problema es que no se como hacer para que se queden seleccionados los registros que se han sumado. Ya habilite en la rejilla la opción MULTISELECT y trate de acomodar una sugerencia que dio Marcos zorrilla en este hilo pero solo me selecciona el último registro seleccionado. Busque en otros hilos pero no he podido encontrar alguno que me ayude a solucionar el problema. Gracias anticipadas por compartir su tiempo, conocimiento y experiencia.
__________________
Salu2
Responder Con Cita
  #2  
Antiguo 08-12-2017
Tcmn Tcmn is offline
Miembro
 
Registrado: sep 2004
Posts: 152
Poder: 20
Tcmn Va por buen camino
Olvide mencionar que para conexión uso componentes de pestaña Interbase y DataAccess
__________________
Salu2
Responder Con Cita
  #3  
Antiguo 08-12-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Si te entedí bién podrías hacer:
Código Delphi [-]
procedure SelectRowsUntil(gr:TDBGrid; Monto: Double);
var
  ds : TDataSet;
  sum: Double;
begin
  sum := 0;
  ds := gr.DataSource.DataSet;
  ds.DisableControls;
  try
    while not ds.Eof and (sum <= Monto) do
    begin
      sum := sum + ds.FieldByName('MONTO_DEL_PAGO').AsFloat;
      if sum <= Monto then
        gr.SelectedRows.CurrentRowSelected := True;
      ds.Next;
    end;
  finally
    ds.EnableControls;
  end;
end;

Ejemplo de uso:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  SelectRowsUntil(DBGrid1, 100);
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 08-12-2017
bitbow bitbow is offline
Miembro
 
Registrado: jul 2006
Posts: 366
Poder: 18
bitbow Va camino a la fama
Creo que tu problema podria ser el barrido de tu dataset, la seleccion la tendrias que realizar posterior al calculo ya que de otra forma estas navegando y te tomara el ultimo registros unicamente.

Saludos.
__________________
¡Ni como ayudarte Niño!!
bitbow
Responder Con Cita
  #5  
Antiguo 08-12-2017
Tcmn Tcmn is offline
Miembro
 
Registrado: sep 2004
Posts: 152
Poder: 20
Tcmn Va por buen camino
Mil gracias a ambos. Probare sugerencias y les aviso
__________________
Salu2
Responder Con Cita
  #6  
Antiguo 10-12-2017
Tcmn Tcmn is offline
Miembro
 
Registrado: sep 2004
Posts: 152
Poder: 20
Tcmn Va por buen camino
Pues ya use la sugerencia de ecfisa y me ayudo a por fin solucionar mi problema. Solo añadí al final código para que el cursor regresara dos registros para que quedara en el último registro que se seleccionaba pero de ahí en más lo dejé todo igual. Mil gracias por su tan valiosa ayuda. Buen día.
__________________
Salu2
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Poner columna de checkbox dentro de dbgrid para hacer multiseleccion juscar Varios 19 12-01-2016 23:39:02
Drag&Drop entre dos DBGrid con multiselección agustibaldo Varios 0 26-11-2009 16:37:45
multiseleccion y boton derecho raton en dbgrid alfnisus Varios 0 15-05-2008 19:16:38
¿Programas por placer o por obligación? DarkByte Debates 29 08-03-2007 02:55:08
validacion de multiseleccion en un dbgrid armando Varios 3 25-03-2004 18:27:24


La franja horaria es GMT +2. Ahora son las 17:06:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi