Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-06-2011
AlbertoG AlbertoG is offline
Registrado
NULL
 
Registrado: may 2011
Posts: 5
Poder: 0
AlbertoG Va por buen camino
Unhappy Exportando a Excel desde Quickreport 5

Hola a todos y gracias por sus respuestas

Uso D7 y QuickReport 5, el cual tiene un componente qrexcelfilter que me exporta mis reportes a excel y hasta ahí todo ok, el problema es que los reportes exportados luego aparecen todos descuadrados en excel y no como los tengo previamente mostrados en los reportes quick report, he buscado durante semanas sobre todos los comentarios al respecto pero no veo que alguien haya tratado el tema.

Me pregunto como haría entre otras cosas, para indicar en el reporte exportado el ancho de las columnas por ejemplo, el componente trExcelFilter no trae ninguna propiedad personalizable y quisiera saber si alguien ha tenido experiencia con eso como hacerlo a través de código, como se llama al componente y se le indican los parametros de ancho de columna, o que no incluya columnas vacías entre los datos como lo está haciendo actualmente, lo cual no sucede con el preview del quick report.

Muchas gracias.
AlbertoG
Responder Con Cita
  #2  
Antiguo 21-06-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
pues me pasaba lo mismo y opte por hacer mi propia rutina de migracion basandose en algun query activo

algo asi
Código Delphi [-]
 
Procedure TfrmReporteConsumo.ExportarToExcel(fName: string);
const
  xlWBATworksheet = -4167;
var  // definicion de variables
  Excel, WorkBook, WorkSheet: OleVariant;
begin
  _FilaTitulos := 6;
  Excel := CreateOleObject('Excel.Application');
  Excel.DisplayAlerts := False;
  WorkBook := Excel.Workbooks.Add(xlWBATWorksheet);
  WorkSheet := WorkBook.WorkSheets[1];
  WorkSheet.Name := 'Hoja1';
  WorkSheet.Cells[1,1].font.Bold := True;
  WorkSheet.Cells[1,1] := 'Nombre de la empresa';
  WorkSheet.Cells[3,1] := 'Reporte Consolidado de Consumos (Facturacion)';
  WorkSheet.Cells[4,1] :=  'Periodo : '  + FormatDateTime ('dd/mm/yyyy', dtFechaIni.date) + ' Al ' + FormatDateTime ('dd/mm/yyyy', dtFechaFin.date);
  worksheet.range['A3:J5'].HorizontalAlignment := xlHAlignCenterAcrossSelection;
  WorkSheet.cells[_FilaTitulos,1] := 'Codigo';
  WorkSheet.cells[_FilaTitulos,2] := 'Trabajador';
  WorkSheet.cells[_FilaTitulos,3] := 'Fecha Solicitada';
  WorkSheet.cells[_FilaTitulos,4] := 'Monto hasta la fecha';
  WorkSheet.cells[_FilaTitulos,5] := 'Dcto.Trabajador';
  WorkSheet.cells[_FilaTitulos,6] := 'Dcto.Empresa';
  WorkSheet.cells[_FilaTitulos,7] := 'Importe Cesado';
  WorkSheet.cells[_FilaTitulos,8] := 'Total';
  WorkSheet.cells[_FilaTitulos,9] := 'Cant.Empresa';
  WorkSheet.cells[_FilaTitulos,10] := 'Cant. Subvencionada al 100%';
  i:= _FilaTitulos + 1;
  qryConsumos.First;
  while not qryConsumos.Eof do
  begin
        WorkSheet.cells[i,1].NumberFormat := '@';
        WorkSheet.cells[i,1] := _Ccos;
        WorkSheet.cells[i,2] := qryConsumosDescripcion.AsString;
...
...
         qryConsumos.Next;
   end;
  WorkSheet.Cells.Columns.AutoFit;
  WorkBook.SaveAs(fname);
  WorkBook.Close(fName);
  Excel.Quit;
end;

espero te sirva
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 21-06-2011
AlbertoG AlbertoG is offline
Registrado
NULL
 
Registrado: may 2011
Posts: 5
Poder: 0
AlbertoG Va por buen camino
Smile

Oscarac
Muchas gracias por tu pronta respuesta

Algo similar a lo que muestras lo había hecho antes cuando no tenía QR5 sino el que viene con delphi7 que creo que es la versión 3 pero entonces el problema que tenía era que no podía hacer que aparecieran bandas de subtotales entre los registros, es decir, es un reporte de venta de productos organizado por proveedor en un período de tiempo, de forma que cada que finalizan los productos vendidos de un proveedor se totaliza esa parte y a continuación vienen los productos de otro proveedor y así sucesivamente hasta que termina el reporte, bueno, eso no lo podía hacer con código, por lo que opté por la solución de instalar QR5 y ahora si puedo exportar directamente con el componente QRexcelfilter toda la data que necesito pero éste no respeta los anchos de las columnas e incluso coloca columnas vacias en excel entre los datos, por eso necesito saber como indicarle al componente (principalmente) los anchos que debe tener cada columna en excel y no veo como establecer comunicación con el componente a través de código, actualmente lo que hago es colocar el componente en el reporte y éste genera entonces la opción de que lo guarde en formato xls y ya, pero no sé como tratarlo a través de código.

Espero tu comentario al respecto, gracias
Responder Con Cita
  #4  
Antiguo 21-06-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
me parece que en ese componente no hay mucho que configurar... auqnue veo que yo uso el Qr 4.06
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #5  
Antiguo 21-06-2011
AlbertoG AlbertoG is offline
Registrado
NULL
 
Registrado: may 2011
Posts: 5
Poder: 0
AlbertoG Va por buen camino
eso es lo que yo creo, pero entonces de ser así sabrías como puedo insertar esas bandas de subtotales en excel a través de código, es decir, las bandas "group footer" por ejemplo? de forma que pueda mostrar subtotales entre el reporte y no solo al final de éste, gracias
Responder Con Cita
  #6  
Antiguo 21-06-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
mmm eso me parece que tendrias que hacerlo en fomra manual
mas o menos el pseudocodigo seria asi

Código Delphi [-]
qryEjemplo.first
vCuenta := qryEjemploCuenta.asstring;
While not qryEjemplo.eof do
Begin
   While vCuenta = qryEjemploCuenta.Asstring do
   Begin
     ... instrucciones
   End
   // cuando la cuenta termine diferente coloco los totales y blanqueo las variables
   worksheet.cells [x,y] := 'Totales';
   vCuenta := qryEjemploCuenta.asstring;
end

y asi sucesivamente
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #7  
Antiguo 21-06-2011
AlbertoG AlbertoG is offline
Registrado
NULL
 
Registrado: may 2011
Posts: 5
Poder: 0
AlbertoG Va por buen camino
Muy bien, pondré en práctica lo que me muestras, muchas gracias nuevamente y si encuentro la manera en base a tu pseudocódigo te dejo saber por un privado, gracias por tu tiempo.

AlbertoG
Responder Con Cita
  #8  
Antiguo 21-06-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
no al privado...
mejor por aqui
__________________
Dulce Regalo que Satanas manda para mi.....
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema exportando a Excel 2007 rolandoj Servers 4 22-04-2010 19:13:24
Caso curioso exportando a excel desde una rejilla. marcoszorrilla Varios 12 04-03-2009 22:02:22
Exportando a Excel celdas con Formato ruedabeat2003 Varios 2 12-08-2008 23:46:21
Exportando a Excel con DBGridExcelExport BlueSteel Varios 5 07-02-2008 18:11:30
Ajuste de líneas exportando a Excel Alexis7788 Varios 0 11-12-2007 10:57:38


La franja horaria es GMT +2. Ahora son las 10:43:32.


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