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 19-09-2011
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
ayuda para exportar query a excel

hola quiero exportar el contenido de una consulta maestro detalle a una hoja de excel y lo hago mediante el siguiente codigo pero no logro imprimir el detalle de cada registro de maestro.


Código Delphi [-]
procedure TForm_requerimiento.btn2Click(Sender: TObject);
var Excel,libro:Variant;
i,i_det:Integer;
begin
   Excel:=CreateOleObject('Excel.Application');
   Excel.WorkBooks.Add (-4167);
   Excel.WorkBooks[1].WorkSheets[1].Name := 'Reporte';
   Libro := Excel.WorkBooks[1].WorkSheets['Reporte'];
   with Qry_resumen do
    begin
      First;
      i:=i+1;
      while not Qry_resumen.Eof do
        begin
          i:=i+1;
          Libro.Cells [1,1] := 'Licitación';
          Libro.Cells [1,2] := 'Zona';
          Libro.Cells [1,3] := 'Gpo';
          Libro.Cells [1,4] := 'Gen';
          Libro.Cells [1,5] := 'Esp';
          Libro.Cells [1,6] := 'dif';
          Libro.Cells [1,7] := 'Var';

          Libro.Cells [i,1] :=Qry_resumen.FieldByName ('licitacion').AsString;
          Libro.Cells [i,2] :=Qry_resumen.FieldByName ('zona').AsString;
          libro.Cells [i,3] :=Qry_resumen.FieldByName ('gpo').AsString;
          Libro.Cells [i,4] :=Qry_resumen.FieldByName ('gen').AsString;
          Libro.Cells [i,5] :=Qry_resumen.FieldByName ('esp').AsString;
          Libro.Cells [i,6] :=Qry_resumen.FieldByName ('dif').AsString;
          Libro.Cells [i,7] :=Qry_resumen.FieldByName ('var').AsString;
          with Qry_detalle do
            begin
             First;
             while not Qry_detalle.Eof do
              begin
               Libro.Cells [9,1] :=Qry_detalle.FieldByName ('licitante').AsString;
               Next;
              end;  
            end;
          Next;
        end;
          Excel.visible:=True; 
    end;

la consulta maestro tiene 4 registros y a su vez cada registro de maestro tiene 5 0 6 registros detalle lo que quiero en la hoja de excel seria

registro query maestro 1

y todos los registros detalle

celda en blanco

registro query maestro 2

y todos sus registros detalle


y asi hasta que termine con los registros de la consulta maestro.

alguna idea, de antemano muchas gracias
Responder Con Cita
  #2  
Antiguo 19-09-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
y exactamente cual es el problema?
no lo hace como tu quieres?
que esta mostrando?
muestra alguna cabecera, algun detalle?

me parece que el problema es que no estas chequeando bien tus begins y tus end
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 19-09-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.732
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Sin saber cual es tu problema creo haber visto un posible error:

Creo que te falta incrementar la variable i cuando recorres el detalle.
Código Delphi [-]
procedure TForm_requerimiento.btn2Click(Sender: TObject);
var Excel,libro:Variant;
i,i_det:Integer;
begin
   Excel:=CreateOleObject('Excel.Application');
   Excel.WorkBooks.Add (-4167);
   Excel.WorkBooks[1].WorkSheets[1].Name := 'Reporte';
   Libro := Excel.WorkBooks[1].WorkSheets['Reporte'];

   // Esto se escribe en la primera linea
   // Son los titulos
   i := 1;
   Libro.Cells [i,1] := 'Licitación';
   Libro.Cells [i,2] := 'Zona';
   Libro.Cells [i,3] := 'Gpo';
   Libro.Cells [i,4] := 'Gen';
   Libro.Cells [i,5] := 'Esp';
   Libro.Cells [i,6] := 'dif';
   Libro.Cells [i,7] := 'Var';
   with Qry_resumen do
    begin
      First;
      while not Qry_resumen.Eof do
        begin
          // Incremente el numero de linea antes de escribir estos datos
          // Son los datos de cabecera
          i:=i+1;
          Libro.Cells [i,1] :=Qry_resumen.FieldByName ('licitacion').AsString;
          Libro.Cells [i,2] :=Qry_resumen.FieldByName ('zona').AsString;
          libro.Cells [i,3] :=Qry_resumen.FieldByName ('gpo').AsString;
          Libro.Cells [i,4] :=Qry_resumen.FieldByName ('gen').AsString;
          Libro.Cells [i,5] :=Qry_resumen.FieldByName ('esp').AsString;
          Libro.Cells [i,6] :=Qry_resumen.FieldByName ('dif').AsString;
          Libro.Cells [i,7] :=Qry_resumen.FieldByName ('var').AsString;
          with Qry_detalle do
            begin
             First;
             while not Qry_detalle.Eof do
              begin
               // Incremente el numero de linea antes de escribir cada linea de detalle
               // Son los datos de detalle
               i:=i+1;
               Libro.Cells [i,1] :=Qry_detalle.FieldByName ('licitante').AsString;
               Next;
              end;  
            end;
          Next;
        end;
          Excel.visible:=True; 
    end;
Responder Con Cita
  #4  
Antiguo 19-09-2011
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
gracias amigo afortunadamen tenias razon el problema era el que muestras que no recorria todo el detalle ahora la pregunta es la siguiente
el dato que tengo guardaro en la base de datos es 060, sin embargo al exportarlo po pone solo 60, alguna sugerencia para ello?
Responder Con Cita
  #5  
Antiguo 19-09-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.732
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Eso es porque Excel es muuuuy inteligente y cree que pones un número.
Si es un string, prueba a poner una comilla simle ' antes.
Código Delphi [-]
while not Qry_detalle.Eof do
              begin
               // Incremente el numero de linea antes de escribir cada linea de detalle
               // Son los datos de detalle
               i:=i+1;
               Libro.Cells [i,1] := '''' + Qry_detalle.FieldByName ('licitante').AsString;
               Next;
              end;

Tembién puedes probar entrecomillando todo el string:

Código Delphi [-]
while not Qry_detalle.Eof do
              begin
               // Incremente el numero de linea antes de escribir cada linea de detalle
               // Son los datos de detalle
               i:=i+1;
               Libro.Cells [i,1] := '"' + Qry_detalle.FieldByName ('licitante').AsString + '"';
               Next;
              end;
Responder Con Cita
  #6  
Antiguo 19-09-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
tambien fijate en esta opcion

Código Delphi [-]
 
WorkSheet.cells[i, 1].NumberFormat := '@';
para que el dato lo considere como caracter
__________________
Dulce Regalo que Satanas manda para mi.....
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
Componente para exportar a Excel en Delphi 2007 Bertifox2008 Internet 3 21-08-2008 17:39:19
ayuda con query para Mysql fecha. vroa74 Conexión con bases de datos 11 06-06-2008 16:56:00
Ayuda por favor para correr un query en Delphi a una base de datos en Mysql charlyfitlh MySQL 10 01-11-2007 21:28:49
Necesito un componente para Exportar a Excel,Word,Pdf y HTML!! Maxsteel73 Impresión 1 24-04-2006 02:57:56
Exportar Datos de un Query a Excel JamesBond_Mx Servers 1 26-03-2004 01:39:00


La franja horaria es GMT +2. Ahora son las 14:49:21.


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