Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-01-2005
ctronx ctronx is offline
Miembro
 
Registrado: jun 2004
Posts: 214
Poder: 20
ctronx Va por buen camino
Unhappy Copiar el contenido de un dbgrid y pegarlo en otro lado

Saludos, como podria Copiar el contenido de un dbgrid y pegarlo en otro lado como por ejemplo excel, podria hacerse de la forma siguiente??
1.-seleccionar las filas del dbgrid (todo el dbgrid)
2.-copiarlas (como edicion copiar ó control-c)
3.-en Excel pegarlas (como edicion pegar ó control-v)

Gracias por la ayuda que puedan darme.
Responder Con Cita
  #2  
Antiguo 25-01-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por ctronx
...como podria Copiar el contenido de un dbgrid y pegarlo en otro lado como por ejemplo excel, podria hacerse de la forma siguiente??
1.-seleccionar las filas del dbgrid (todo el dbgrid)
2.-copiarlas (como edicion copiar ó control-c)
3.-en Excel pegarlas (como edicion pegar ó control-v)
Bueno para poder "pegar" el contenido del DBGrid en Excel, debes "mardar" al portapapeles un string con formato determinado; Para separar las líneas un CRLF y para los campos dentro de una fila un TAB. Con eso conseguirás que en Excel se "pegue" correctamente.

Se trata de recorrer las filas seleccionadas (Bookmarks) y crear un string con los datos.

En el botón de copiar coloca el siguiente código:

Código Delphi [-]
  var
   i, j: Integer;
   s: string;
 begin
   // Hay varias seleccionadas
   if (DBGrid1.SelectedRows.Count > 0) then begin
     with DBGrid1.DataSource.DataSet do
       // Para cada fila seleccioada
       for i:=0 to (DBGrid1.SelectedRows.Count-1) do begin
         // ir a la fila
         GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
         // Para cada columna
         for j := 0 to FieldCount-1 do begin
           // Separador dentro de la fila (TAB)
           if (j>0) then begin
             s:=s + #9;
           end;
            s:=s+Fields[j].AsString;
          end;
           // Separador de fila (CRLF)
           s:=s + #13#10;
       end;
   end;
 
   // Copiar al portapapeles.
   Clipboard.AsText := s;

Añade a la unit la unit Clipbrd;
El DBGrid debe tener las opciones dbRowSelect y dgMultiSelect activadas.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 25-01-2005
ctronx ctronx is offline
Miembro
 
Registrado: jun 2004
Posts: 214
Poder: 20
ctronx Va por buen camino
Thumbs up

Muchas Gracias, tus indicaciones funcionan sin problemas.
Hay manera de seleccionar todas las filas del dbgrid de un solo paso?.
Responder Con Cita
  #4  
Antiguo 25-01-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Sí se puede con una pequeña rutinilla que puedes encontrar en éste hilo.

http://www.clubdelphi.com/foros/showthread.php?t=17292
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 23:08:41.


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