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 13-07-2012
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Excel - Salto de Hoja

Hola, tengo reportes excel, realizados en delphi, hasta aqui todo bien... Pero me estan pidiendo que controle, por cada salto de hoja, que en el encabezado a la derecha se lea la palabra "Anexo". No encuentro como detectar el salto de hoja para escribir la leyenda. Gracias.
Responder Con Cita
  #2  
Antiguo 15-07-2012
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Para poder ayudarte bien, necesitamos mas informacion....por ejemplo:

Q componentes utilizas para leer los datos?
Q componentes utilizas para exportar los datos a Excel?
Estas utilizando plantillas de excel para exportar los datos?

De entrada te puedo decir q tu problema se puede resolver talvez usando una plantilla, a la cual la configuras desde Excel, el encabezado que necesitas....si meterte al control de páginas desde delphi, eso dejaselo a Excel q lo haga por ti.

Lo anterior q te comento es porque yo he exportado datos a Excel usando plantillas con un diseño especifico, colores, bordes, etc, etc.

Saludos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #3  
Antiguo 16-07-2012
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Excel -Salto de pagina

Hola primero gracias por responder, utilizo delphi 7 con mysql, no uso plantilla. Genero desde unos datos de la base, un listado de pagos que cambia en cantidad de registros todos los meses, en el cual con el CreateOleObject, genero el excel con el titulo, columnas, fonts hasta ahi todo perfecto. Lo unico que no se que me estan solicitando es que cuando salte de hoja el listado agregue al principio de cada hoja la palabra "ANEXO".
Responder Con Cita
  #4  
Antiguo 16-07-2012
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Excel - Salto de Hoja.

Me olvide de comentar algo.

Hola primero gracias por responder, utilizo delphi 7 con mysql, no uso plantilla. Genero desde unos datos de la base, un listado de pagos que cambia en cantidad de registros todos los meses, en el cual con el CreateOleObject, genero el excel con el titulo, columnas, fonts,bordes.. hasta ahi todo perfecto. Ademas genero desde el OleObject, solapas dentro del excel, porque hago dentro de un mismo reporte tantas hojas de calculo como empresas tenga para ese mes, o sea dentro de una hoja la empresa con el nombre en la hoja (en la solapa) y sus pagos con la sumatoria.

Lo unico que no se que me estan solicitando es que cuando salte de hoja el listado agregue al principio de cada hoja la palabra "ANEXO".
Responder Con Cita
  #5  
Antiguo 17-07-2012
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Excel - Salto de Hoja...

Cita:
Empezado por shoulder Ver Mensaje
Me olvide de comentar algo.

Hola primero gracias por responder, utilizo delphi 7 con mysql, no uso plantilla. Genero desde unos datos de la base, un listado de pagos que cambia en cantidad de registros todos los meses, en el cual con el CreateOleObject, genero el excel con el titulo, columnas, fonts,bordes.. hasta ahi todo perfecto. Ademas genero desde el OleObject, solapas dentro del excel, porque hago dentro de un mismo reporte tantas hojas de calculo como empresas tenga para ese mes, o sea dentro de una hoja la empresa con el nombre en la hoja (en la solapa) y sus pagos con la sumatoria.

Lo unico que no se que me estan solicitando es que cuando salte de hoja el listado agregue al principio de cada hoja la palabra "ANEXO".
Buenas tardes Shoulder. Ya con lo que me comentas, te puedo sugerir lo siguiente, el archivo es exportado a formato de Excel, entonces solamente haria falta lo siguiente.

En este codigo te defino al momento de dar click en un boton, haria esto:
Código Delphi [-]
procedure TfrmExportar2.btnAplicarClick(Sender: TObject);
var
   XLS                           : TXLSFile;
   Lin,c,l,Bandera,nHoja,xDia,nMes,nMes2,nLec1, nLec2,nAnio, nTipoContr1, nTipoContr2 : integer;
   cMes, cFichero,cProducto       : String;
   AA,MM,DD,dDia,dMes,dAnio      : Word;
   dFecha1, dFecha2, dFecha3     : TDateTime;
   Dias : Array[1..31] of integer;
begin
   //Asignanos a una variable la clase TXLSFile para crear el archivo de Excel;
   cProducto:=cbxProducto.KeyValue+' '+cbxProducto.Text;
   ModDatos.qryPas.Close;
   ModDatos.qryPas.Open;
   try
       nHoja:=0;
       XLS:=TXLSFile.Create;
.
.
.
.

(los puntos significa mas código, que para el caso de ejemplo no lo pongo ya que no es necesario)

Mas adelante en este mismo código, defino lo siguiente:
Código Delphi [-]
              XLS.OpenFile(ExtractFilePath(Application.ExeName)+'\plantillas\fluida_2010.xlt');
              Bar.Step:=1;
              Bar.Max:=qryVentasDiarias.RecordCount;
              cMes:=cbxMes.Items[cbxMes.itemindex];
              // LLENAR EL ENCABEZADO DEL ARCHIVO DE EXCEL Y DATOS GLOBALES
              With xls.Workbook.Sheets[nHoja] do
              begin
                  Cells[1,1].Value  :='Empresa:'+ModDatos.qryEmpresa.fieldbyname('DESCRIPCION').AsString;
                  Cells[3,1].Value  :='Comportamiento Estadistico Mensual de Ventas correspondiente a: '+cMes+'-'+mskAnio.Text+'.';
                  Cells[4,1].Value  :='Dias de venta';
                  Cells[4,2].Value  :=qryExportar.FieldByName('DIAS_HABILES').AsString;
                  Cells[5,237].Value:='T O T A L   LITROS MES DE '+cMes+' DEL '+mskAnio.Text;
                  Cells[7,9].Value  :='('+qryExportar.FieldByName('DIAS_DISTRIBUCION').AsString+' DIAS DIST).';
                  Cells[8,9].Value  :='('+qryExportar.FieldByName('DIAS_HABILES').AsString+ ' DIAS VENTA).';
                  Cells[8,10].Value :=IntToStr(cbxMes.ItemIndex+1)+'/'+mskAnio.Text;
              end;

En esta parte defino en el encabezado, lo que necesito. Aqui podria quedar lo q tu quieras. Ahora, TU PROBLEMA RADICA en como AGREGAR LA PALABRA "ANEXO" EN CADA PAGINA.....solamente definelo como en el codigo anterior, talvez asi:
Código Delphi [-]
.
      Cells[1,237].Values:='ANEXO';
y en la parte de impresión pudieras dejárselo al usuario, es decir que el seleccione el encabezado y el rango de impresión.

Por otra parte ignoro, si los usuarios no quieres hacer nada....es decir solo abrir e imprimir...si es asi, entonces lo q te sugiero no te va a servir de mucho.

Por cierto el componente q utilizo es "TXLSFile", tú estas utilizando el que trae Delphi de la paleta de Servers.

Espero haberte ayudado u orientado.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #6  
Antiguo 17-07-2012
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Excel -Salto de pagina

Primero de todo, muchisimas gracias por tu tiempo y tu respuesta. Pregunte quieren que el usuario no haga nada... por eso estaba buscando una funcion que sea encabezado de pagina del excel. Probe como me has dicho pero me lo hace una sola vez cuando define la Hoja.
Responder Con Cita
  #7  
Antiguo 18-07-2012
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Excel -Salto de pagina

Hola ya lo resolviii!!
Código Delphi [-]
//Encabezado
Excel.WorkBooks[1].WorkSheets[y].PageSetup.RightHeader := 'Anexo';
...
Excel.WorkBooks[1].WorkSheets[y].PageSetup.RightMargin := 10 ;
Excel.WorkBooks[1].WorkSheets[y].PageSetup.LeftMargin := 16 ;
Excel.WorkBooks[1].WorkSheets[y].PageSetup.HeaderMargin := 18;
Excel.WorkBooks[1].WorkSheets[y].PageSetup.TopMargin := 136;
//Repito titulos en todas las hojas
Excel.WorkBooks[1].WorkSheets[y].PageSetup.PrintTitleRows := '$3:$7';

//Ordeno la solapa dos por empresa y fecha
Rango : OleVariant;
...
Rango := Excel.WorkBooks[1].WorkSheets[2].Range['A8:F8200'];
Rango.Sort(Excel.WorkBooks[1].WorkSheets[2].Range['E1'],EmptyParam,xlAscending,Excel.WorkBooks[1].WorkSheets[2].Range['B1'], xlAscending);

Última edición por Casimiro Notevi fecha: 18-07-2012 a las 22:26:54.
Responder Con Cita
  #8  
Antiguo 21-07-2012
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por shoulder Ver Mensaje
Hola ya lo resolviii!!
Código Delphi [-]
//Encabezado
Excel.WorkBooks[1].WorkSheets[y].PageSetup.RightHeader := 'Anexo';
...
Excel.WorkBooks[1].WorkSheets[y].PageSetup.RightMargin := 10 ;
Excel.WorkBooks[1].WorkSheets[y].PageSetup.LeftMargin := 16 ;
Excel.WorkBooks[1].WorkSheets[y].PageSetup.HeaderMargin := 18;
Excel.WorkBooks[1].WorkSheets[y].PageSetup.TopMargin := 136;
//Repito titulos en todas las hojas
Excel.WorkBooks[1].WorkSheets[y].PageSetup.PrintTitleRows := '$3:$7';

//Ordeno la solapa dos por empresa y fecha
Rango : OleVariant;
...
Rango := Excel.WorkBooks[1].WorkSheets[2].Range['A8:F8200'];
Rango.Sort(Excel.WorkBooks[1].WorkSheets[2].Range['E1'],EmptyParam,xlAscending,Excel.WorkBooks[1].WorkSheets[2].Range['B1'], xlAscending);
Excelente felicidades ! Shoulder....que bueno q lo resolviste. Y gracias por agregar el código de solución.

Saludos !!
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
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 con ADO y Hoja Excel mariofur Conexión con bases de datos 3 18-06-2008 16:58:10
Hoja Excel via web Nbull Varios 0 02-02-2006 11:11:36
Excel Y Salto De Página nax C++ Builder 7 29-01-2006 20:20:27
Exportar a excel con mas de 1 hoja Perio Varios 6 25-01-2006 17:03:48
Formateando una hoja excel xerkan Servers 7 27-10-2003 16:38:47


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


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