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 18-11-2021
kainchu3102 kainchu3102 is offline
Miembro
 
Registrado: jul 2021
Posts: 79
Poder: 3
kainchu3102 Va por buen camino
Multiseleccion en DGBRID

Buenas tardes Gente...como siempre agradezco a todos los que se detienen a leer la consulta y aportan por que de eso de tra ayudarnos entre todos, muchas gracias desde ya mi consulta es:

Multiseleccion de filas en un dbgrid y luego insertar en un tabla.
FDTturnos = es la tabla que quiere seleccion
FDTresultados = es la tabla donde quiere insertar los datos dni, nombre, apellido

teniendo en cuenta que en ese dbgrid uso un fdquery

por favor si alguien tendria un codigo para ir probando por la verdad estoy mareado. muchas gracias amigos


.

Última edición por Casimiro Notevi fecha: 18-11-2021 a las 22:39:29. Razón: Guía de estilo.
Responder Con Cita
  #2  
Antiguo 18-11-2021
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.

Un código de ejemplo:
Código Delphi [-]
// Activar multiselección en el DBGrid
procedure TForm1.FormCreate(Sender: TObject);
begin
  DBGrid1.Options := DBGrid1.Options + [dgMultiSelect];
end;

// Insertar filas seleccionadas del DBGrid en la tabla DESTINO
procedure InsertSelected(grd: TDBGrid; des: TFDQuery);
var
  i: Integer;
begin
  if grd.SelectedRows.Count = 0 then Exit;
  for i := 0 to grd.SelectedRows.Count-1 do
  begin
    grd.DataSource.DataSet.GotoBookmark(TBookmark(grd.SelectedRows.Items[i]));
    des.SQL.Clear;
    des.SQL.Add('INSERT INTO DESTINO (NAME, CAPITAL)');
    des.SQL.Add('VALUES(:NAME, :CAPITAL)');
    des.ParamByName('NAME').Value    := grd.DataSource.DataSet.FieldByName('NAME').Value;
    des.ParamByName('CAPITAL').Value := grd.DataSource.DataSet.FieldByName('CAPITAL').Value;
    des.ExecSQL;
  end;
end;

// Ejemplo de llamada
procedure TForm1.btnInsertarClick(Sender: TObject);
begin
  InsertSelected(DBGrid1, FDQueryDestino);
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 20-11-2021
kainchu3102 kainchu3102 is offline
Miembro
 
Registrado: jul 2021
Posts: 79
Poder: 3
kainchu3102 Va por buen camino
Muchas gracias ecfisa

Me sirvio de mucho tu codigo solo lo modifique un poco,y me oriento bastante. lo dejo para que alguien le sirva.
procedure TFORMSELECT1.BitBtn4Click(Sender: TObject);
var
i: Integer;

begin
if DBGSELECT1.SelectedRows.Count = 0 then
begin
Exit;
end
else
begin
for i := 0 to DBGSELECT1.SelectedRows.Count-1 do
begin
DBGSELECT1.DataSource.DataSet.GotoBookmark(TBookmark(DBGSELECT1.SelectedRows.Items[i]));
DataModule1.FDQINS_RES2.SQL.Clear;
DataModule1.FDQINS_RES2.SQL.Add('INSERT INTO resultados(id_tur_res, fec_res)');
DataModule1.FDQINS_RES2.SQL.Add('VALUES(:ID_TUR_RES, :FEC_RES)');
DataModule1.FDQINS_RES2.ParamByName('ID_TUR_RES').Value := DBGSELECT1.DataSource.DataSet.FieldByName('id_tur').Value;
DataModule1.FDQINS_RES2.ParamByName('FEC_RES').Value := DBGSELECT1.DataSource.DataSet.FieldByName('fec_tur').Value;
DataModule1.FDQINS_RES2.ExecSQL;
end;
end;

end;
Responder Con Cita
  #4  
Antiguo 20-11-2021
kainchu3102 kainchu3102 is offline
Miembro
 
Registrado: jul 2021
Posts: 79
Poder: 3
kainchu3102 Va por buen camino
Nueva consulta

Como podria hacer para que me encuentro un registro que ya e pasado a la otra tabla, y digo que hay un registro seleccionado que ya se encuentra que no se puede realizar el procedimiento: muchas gracias desde ya.
Responder Con Cita
  #5  
Antiguo 21-11-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por kainchu3102 Ver Mensaje
Me sirvio de mucho tu codigo solo lo modifique un poco,y me oriento bastante. lo dejo para que alguien le sirva.
procedure TFORMSELECT1.BitBtn4Click(Sender: TObject);
var
i: Integer;

begin
if DBGSELECT1.SelectedRows.Count = 0 then
begin
Exit;
end
else
begin
for i := 0 to DBGSELECT1.SelectedRows.Count-1 do
begin
DBGSELECT1.DataSource.DataSet.GotoBookmark(TBookmark(DBGSELECT1.SelectedRows.Items[i]));
DataModule1.FDQINS_RES2.SQL.Clear;
DataModule1.FDQINS_RES2.SQL.Add('INSERT INTO resultados(id_tur_res, fec_res)');
DataModule1.FDQINS_RES2.SQL.Add('VALUES(:ID_TUR_RES, :FEC_RES)');
DataModule1.FDQINS_RES2.ParamByName('ID_TUR_RES').Value := DBGSELECT1.DataSource.DataSet.FieldByName('id_tur').Value;
DataModule1.FDQINS_RES2.ParamByName('FEC_RES').Value := DBGSELECT1.DataSource.DataSet.FieldByName('fec_tur').Value;
DataModule1.FDQINS_RES2.ExecSQL;
end;
end;

end;

No olvides usar las etiquetas para código:



Código Delphi [-]

procedure TFORMSELECT1.BitBtn4Click(Sender: TObject);
  var
  i: Integer;

begin
  if DBGSELECT1.SelectedRows.Count = 0 then
  begin
   Exit;
  end
  else
  begin
   for i := 0 to DBGSELECT1.SelectedRows.Count-1 do
   begin
     DBGSELECT1.DataSource.DataSet.GotoBookmark(TBookmark(DBGSELECT1.SelectedRows.Items[i]));
     DataModule1.FDQINS_RES2.SQL.Clear;
     DataModule1.FDQINS_RES2.SQL.Add('INSERT INTO resultados(id_tur_res, fec_res)');
     DataModule1.FDQINS_RES2.SQL.Add('VALUES(:ID_TUR_RES, :FEC_RES)');
     DataModule1.FDQINS_RES2.ParamByName('ID_TUR_RES').Value    := DBGSELECT1.DataSource.DataSet.FieldByName('id_tur').Value;
     DataModule1.FDQINS_RES2.ParamByName('FEC_RES').Value := DBGSELECT1.DataSource.DataSet.FieldByName('fec_tur').Value;
     DataModule1.FDQINS_RES2.ExecSQL;
   end;
  end;
end;
Responder Con Cita
  #6  
Antiguo 21-11-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por kainchu3102 Ver Mensaje
Como podria hacer para que me encuentro un registro que ya e pasado a la otra tabla, y digo que hay un registro seleccionado que ya se encuentra que no se puede realizar el procedimiento: muchas gracias desde ya.
Preguntas distintas en hilos distintos, no olvides nuestra guía de estilo, gracias.
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
Saber si el registro de un dgbrid tiene algun campo vacio Vales08 Varios 9 17-11-2011 14:40:29
Multiseleccion en un DBCtrlGrid johurgi Varios 0 25-08-2006 12:29:29
multiseleccion con TTreeView jymy788 Varios 1 05-01-2005 19:29:33
MonthCalendar MultiSeleccion EITB OOP 2 08-10-2004 23:43:56
multiseleccion en listview NuncaMas Varios 5 20-02-2004 12:07:52


La franja horaria es GMT +2. Ahora son las 21:09:33.


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