Ver Mensaje Individual
  #5  
Antiguo 17-07-2012
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 646
Reputación: 23
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