Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-12-2008
MiKloSS MiKloSS is offline
Miembro
 
Registrado: oct 2007
Posts: 27
Poder: 0
MiKloSS Va por buen camino
Ejecutar Archivo en Excel [Solucionado]

Que tal compañeros, mi problema es el siguiente, estoy exportando unos registros a excel y todo perfecto, lo unico que me falta es que se abra el archivo creado en excel cuando se termine la exportacion, a ver si me explique, la exportacion ya la hace bien, lo unico que falta es que se ejecute el excel para poder ver el archivo exportado, espero que alguien me pueda ayudar... salu2

Última edición por MiKloSS fecha: 20-12-2008 a las 17:47:33.
Responder Con Cita
  #2  
Antiguo 19-12-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola, nose como estas exportando a excel, pero si es con los componetes de la paleta server o mediante OLE, ambos tienen la propiedad Visible que si lo pones en True te mostrara el documento de excel creado.

Código Delphi [-]
 
 //paleta server
  ExcelApplication1.Visible[0] := True;
  
 //OLE
  Excel.Visible := True;

o también puedes utilizar ShellExecute:

Código Delphi [-]
 ShellExecute(Handle,nil,PChar('C:\file.xls'),'','',SW_SHOW);

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 19-12-2008
MiKloSS MiKloSS is offline
Miembro
 
Registrado: oct 2007
Posts: 27
Poder: 0
MiKloSS Va por buen camino
Este es el codigo que utilizo para exportar, ya he intentado con :


//paleta server
ExcelApplication1.Visible[0] := True;

//OLE
Excel.Visible := True;

y ninguno me funciono, a lo mejor no puse bien la linea de codigo, podrias decirme en que parte se pone lo de visible... salu2

Código:
procedure TF_CatProductos.Exportar;
var
  Libro,Excel:variant;
  LineNumber, LCID : Integer;
  LineString : string;
  fila, columna: Integer;
  valorCelda: String;
  letra: String;
  arreglo:array[1..40] of integer;
  xband:boolean;
begin
  with SaveDialog1 do
    begin
      FileName :='';
      Filter:= 'Excel files|*.XLS;All Files|*.*';
      DefaultExt := 'XLS';
      Title := 'Exporting to Excel';
      if execute then
      begin
        LineNumber := 0;
        LCID := GetUserDefaultLCID;
        with ExcelApplication1 do
        begin
          connect;
          try
            visible[LCID] := false;
            Workbooks.Add(EmptyParam,LCID);
            with Range['A1','I1']do
            begin
              HorizontalAlignment := xlCENTER;
              VerticalAlignment := xlCENTER;
              Wraptext := false;
              Orientation := 0;
              ShrinkTofit := false;
              MergeCells := false;
              Font.Bold := true;
              FONT.Size:=11;
            end;
            //COLOCO EN ENCABEZADO DE LAS COLUMNAS
            Range['A1','I1'].Value2 := VarArrayOf(['PRODUCTO','CÓDIGO','DESCRIPCION','GRUPO','G.CTRL','EXISTENCIA','P.PRECIO','DESCUENTO','COMISION']);
            RANGE['A1','I1'].ColumnWidth := VarArrayOf([12,10,40,11,10,11,10,11,10]);
            Range['A1','I1'].Font.Bold := True;
            with range ['A1','A3000'] do
            begin
              numberformat:='0';
            end;
            QRY_BSARTICULOS.Close;
              if bandera=false then
                  QRY_BSARTICULOS.sql.text:='select * from articulos where existencia <> 0 order by descripcion';
              if bandera=true then
                 QRY_BSARTICULOS.sql.text:='select * from articulos order by descripcion';

            QRY_BSARTICULOS.Open;


            QRY_BSARTICULOS.First;
            BARRA.Visible:=true;
            barra.Max:=QRY_BSARTICULOS.RecordCount;
            barra.Visible:=true;
            columna:=2;
            // FOR columna:= 2 to QRY_BSARTICULOS.RecordCount-1 do
            while not QRY_BSARTICULOS.Eof do
            begin
              Cells.Item[columna,1].value:=QRY_BSARTICULOSID_ARTICULO.Value;
              cells.Item[columna,2].value:=QRY_BSARTICULOSAMECOP.Value;
              cells.Item[columna,3].value:=QRY_BSARTICULOSDESCRIPCION.Value;
              cells.Item[columna,4].value:=QRY_BSARTICULOSID_LINEA.Value;
              cells.Item[columna,5].value:=QRY_BSARTICULOSGRUPO_C.Value;
              cells.Item[columna,6].value:=QRY_BSARTICULOSEXISTENCIA.Value;
              cells.Item[columna,7].value:=QRY_BSARTICULOSPRECIO_PUBLICO.Value;
              cells.Item[columna,8].value:=QRY_BSARTICULOSDESCUENTO.Value;
              cells.Item[columna,9].value:=QRY_BSARTICULOSCOMISION.Value;
              columna:=columna+1;
              barra.Position:=BARRA.Position+1;
              QRY_BSARTICULOS.Next;
            end;
            ActiveWorkbook.SaveAs(FileName,xlNormal,'','',False,False,xlNoChange,xlUserResolution,False,EmptyParam,EmptyParam,LCID,0);
            Quit;
          finally
            disconnect;
          end;///try
        end;//with ExcelApplication1 do
      end;//if execute then
    end;//with SaveDialog1 do
    barra.Visible:=false;
end;
Responder Con Cita
  #4  
Antiguo 20-12-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola de nuevo, no lo ves porque en tu codigo primero lo ocultas despues llenas en tu documento, lo grabas y lo cierras. Como ya esta grabado puedes utilizar la saegunda forma que te he puesto con ShellExecute.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 20-12-2008
MiKloSS MiKloSS is offline
Miembro
 
Registrado: oct 2007
Posts: 27
Poder: 0
MiKloSS Va por buen camino
Muchas gracias compañer@ Caro, me diste la idea, el problema era que cerraba el documento, lo que hice fue quitar el Quit y ahi puse la linea
Código:
ExcelApplication1.Visible[0] := True;
y ya me funciono tal como keria, ya que me guarda y me muestra el documento en excel , muy agradecido... salu2
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
Ejecutar Excel en Vista acertij022 Varios 2 06-06-2008 15:40:21
¿Ejecutar Archivo? lKinGl Varios 9 16-04-2008 22:40:48
Ejecutar Archivo bat tertuliano Varios 7 12-03-2007 14:04:50
Ejecutar Archivo Diego9 API de Windows 2 24-01-2007 02:47:43
Ejecutar archivo .hlp ¥0n1 API de Windows 1 22-01-2004 18:36:14


La franja horaria es GMT +2. Ahora son las 07:30:11.


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