Cita:
Empezado por marco3k
|
Tenias razón marcos utilizando el Componente ADO la exportación fue en dos pestañazos
.
Esto fué lo que implementé Gracias a ustedes:
Código Delphi
[-]
procedure EmiteInformeVentas2(FechaVentasI, FechaVentasF: TDate); var
I, fila: Integer;
ExcelApp, ExcelLibro, ExcelHoja: OleVariant;
RutaExcel, FechaInfo: String;
begin
with dmReportes.qInformeVentaNombreClientes do
begin
ParamByName('FECHAINI').AsDate := FechaVentasI;
ParamByName('FECHAFIN').AsDate := FechaVentasF;
ExecSQL;
end;
if dmReportes.cdsInformeVentaNombreCliente.Active = True then
begin
dmReportes.cdsInformeVentaNombreCliente.EmptyDataSet;
dmReportes.cdsInformeVentaNombreCliente.Active := False;
end;
dmReportes.cdsInformeVentaNombreCliente.Active := True;
TotalRegistroData := dmReportes.cdsInformeVentaNombreCliente.RecordCount;
dmReportes.ADODataSetInforme.FieldDefs.Assign
(dmReportes.cdsInformeVentaNombreCliente.FieldDefs);
dmReportes.ADODataSetInforme.CreateDataSet;
try
dmReportes.cdsInformeVentaNombreCliente.DisableControls;
dmReportes.ADODataSetInforme.DisableControls;
dmReportes.cdsInformeVentaNombreCliente.First;
while not dmReportes.cdsInformeVentaNombreCliente.Eof do
begin
dmReportes.ADODataSetInforme.Insert;
for I := 0 to dmReportes.cdsInformeVentaNombreCliente.FieldCount - 1 do
begin
dmReportes.ADODataSetInforme.Fields[i].Value :=
dmReportes.cdsInformeVentaNombreCliente.Fields[i].Value;
end;
dmReportes.cdsInformeVentaNombreCliente.Next;
end;
FechaInfo := StringReplace(DateToStr(Now), '/', '', [rfReplaceAll]);
RutaExcel := ExtractFilePath(Application.ExeName) + 'Informe' + FechaInfo;
finally
dmReportes.ADODataSetInforme.EnableControls;
dmReportes.cdsInformeVentaNombreCliente.EnableControls;
end;
ExcelApp := CreateOleObject('Excel.Application');
try
ExcelLibro := ExcelApp.Workbooks.Add();
ExcelHoja := ExcelLibro.Worksheets.Add();
ExcelHoja.Range['A2'].CopyFromRecordset
(dmReportes.ADODataSetInforme.Recordset); MessageDLG('¡Se exportó correctamente!', mtInformation, [mbOk], 0);
ExcelApp.Visible := True;
except
ExcelApp.Quit;
dmReportes.ADODataSetInforme.EnableControls;
Showmessage('No se pudo crear el Archivo Excel.');
raise;
end;
end;
como coloque en el comentario: "No he logrado poner los encabezado" de la tabla
igual está funcional mejoraré y al términar pondré el código final.
Saludos;
novato_erick