Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-03-2007
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 19
Espartaco Va por buen camino
Problemas al exportar a excel con FireSoft

Hola de nuevo amigos, tengo otro pequeño problema que supongo será una tontería.
Resulta que estoy usando los componentes de FireSoft para exportar a Excel, y me funcionaban perfectamente, pero no sé porqué resulta que ahora cuando ejecuto el programa me dice que no encuentra el archivo DataExport.pas. Lo he buscado donde tengo los archivos de FireSoft y sólo existe el DataExport.dcu. El DataExport.pas no existe en mi disco duro y sin embargo antes me funcionaba. Puede alguien decirme que está ocurriendo.

Utilizo Delphi 5. He desinstalado los componentes y los he vuelto a instalar pero sigue pidiendome el pas.

Gracias por anticipado. Un saludo.
Responder Con Cita
  #2  
Antiguo 12-03-2007
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 19
Espartaco Va por buen camino
Soy yo otra vez, compañeros. Solo añadir al post anterior, que uso lo mismo en otra forma del programa para hacer otra exportación y me va bien. He mirado y esta todo igual incluidas las uses de las dos formas.

Espero que me podais ayudar.
Muchas gracias.
Responder Con Cita
  #3  
Antiguo 12-03-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Los archivos DCU no son mas que los PAS compilados, por lo que si tu proyecto encuentra el DCU podrías evitar el problema. De todos modos de mi página tambien puedes bajar la versión con código, donde puedes encontrar el querido: "DataExport.pas".

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 13-03-2007
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 19
Espartaco Va por buen camino
Gracias por tu respuesta Delphi.com.ar. He descargado el dichoso archivo .pas y lo he colocado en su sitio, pero ahora me da el siguiente error que te pongo para que lo veas.
Código Delphi [-]
        if not ACancel then
        begin
          WriteRecord;
          Inc(FRecNo);
          if Assigned(FAfterWriteRecord) then
            FAfterWriteRecord(Self);
        end;
        FDataSet.Next;
      end;
    finally //AQUI SE PARA EL DEBUGER DE DELPHI CUANDO DA EL ERROR
      if FPreserveBookmark then
        FDataSet.Bookmark := Bookmark;
    end;
  finally
    FDataSet.EnableControls;
  end;
end;
procedure TDataExport.SetDataSet(const Value: TDataSet);
begin
  FDataSet := Value;

Nota: Este codigo es parte del DataExport.pas

Ya sabia que el dcu es el compilado del pas, incluso he borrado el dcu del path pero aun asi sigue igual.

Lo que me extraña mucho, es que antes funcionaba perfectamente, pero ahora solo me funciona en una de las formas del programa y en otra no. Es lo que no entiendo, pues lo pongo todo igual.

La verdad estoy un poco desesperado porque el cliente me esta apretando. He probado desinstalar los componentes y volverlos a instalar, pero nada.

Gracias por tu apoyo y a ver si ves algo raro en todo esto.

Última edición por Espartaco fecha: 13-03-2007 a las 12:52:27.
Responder Con Cita
  #5  
Antiguo 13-03-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Sería bueno que nos digas que error es que da!. Por otro lado, por lo que cuentas sospecho que el error pueda venir del tipo de cursor que estes abriendo, por ejemplo que sea unidireccional.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #6  
Antiguo 13-03-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Tu componente no trabaja con unidireccionales? ¿Cuál sería la restricción?

// Saludos
Responder Con Cita
  #7  
Antiguo 14-03-2007
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 19
Espartaco Va por buen camino
El mensaje de error es que no puede crear el archivo.

Por otro lado no sé a qué os referís con lo de unidireccional, a lo mejor sé lo que es pero dicho así no sé a qué se refiere. Os agradecería si pudierais explicarme un poco.

Lo que sí he descubierto tras varios intentos son dos cosas:

- Si realizo la operación de exportar desde otra ficha nueva, empieza a funcionar bien hasta que a partir de un momento determinado empieza a fallar otra vez. No sé en qué momento exactamente.

- Yo utilizo otra ficha con un DirectoryListBox para decidir el nombre del archivo y la carpeta donde se va a colocar.
Para obtener el nombre del archivo abro la ficha así

Código Delphi [-]
        Ficha1:=TExportExcel.Create(Self);
        Ficha1.ShowModal;
        Ficha1.Free;

y Utilizo una variable pública

Código Delphi [-]
DestinoC :string;

y luego cuando cierro la ficha anterior, una vez añadido a la variable la extensión XLS, creo el archivo de esta manera

Código Delphi [-]
DataToXLS1.SaveToFile(DestinoC);

Bien pues si en vez de hacer esto, le pongo directamente el nombre del archivo sí funciona, de esta manera

Código Delphi [-]
DataToXLS1.SaveToFile('c:\fichmaq\DestinoC.xls');

pero ojo, en la otra ficha que comenté anteriormente, lo hago igual y funciona perfectamente.

La verdad no entiendo qué puede estar pasando.

Gracias por vuestro interés.
Responder Con Cita
  #8  
Antiguo 14-03-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
La variable DestinoC, ¿dónde está declarada?

// Saludos
Responder Con Cita
  #9  
Antiguo 15-03-2007
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 19
Espartaco Va por buen camino
La tengo declarada en la ficha que inicia el proceso, a continuación pongo un trozo del código de dicha ficha

Código Delphi [-]
    procedure BitBtn2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  DestinoC: String;
implementation
uses ExpExcl, Menu, LAsigFab;
{$R *.DFM}
procedure TForm1.BitBtn3Click(Sender: TObject);
var ficha1: TExportExcel;

Pero reitero, en otra ficha está igual que en esta y funciona perfectamente.

Gracias.
Responder Con Cita
  #10  
Antiguo 15-03-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por roman
¿Tu componente no trabaja con unidireccionales? ¿Cuál sería la restricción?
Si funciona!.. tenía una idea errónea


Cita:
Empezado por Espartaco
El mensaje de error es que no puede crear el archivo.

...

- Si realizo la operación de exportar desde otra ficha nueva, empieza a funcionar bien hasta que a partir de un momento determinado empieza a fallar otra vez. No sé en qué momento exactamente.
¿No será que empieza a fallar en el momento en que tienes el archivo abierto y bloqueado por el Excel?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #11  
Antiguo 16-03-2007
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 19
Espartaco Va por buen camino
No sé donde puediera estar el archivo bloqueado por el Excel, ya que yo no tengo el Excel abierto en el momento de exportar. Además, insisto en que en otra ficha me lo hace bien.

Creo que voy a tirar la toalla y ponerle un nombre de archivo fijo en una carpeta fija Frustrante, no?

Gracias a todos por vuestra ayuda, de todas formas seguiré visitando este hilo por si a alguien le ha pasado lo mismo y lo ha solucionado. También he pensado en usar otro componente similar, lo que pasa es que este funciona muy rápido, muy bien y es muy sencillo.
Responder Con Cita
  #12  
Antiguo 16-03-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Es que algo me dice que el problema no viene propiamente del control, sobre todo por el error que dices que informa. ¿Has probado poner un punto de ruptura sobre el SaveToFile para evaluar el contenido de la variable DestinoC?
Básicamente el control crea un TFileStream y escribe la información en este stream, al igual que muchas clases de la VCL. Dudo que falle en sí el procedimiento, ademas que aparenta ser un clásico error informado por el SO, tal como si hacemos:
Código Delphi [-]
  with TStringList.Create do
    try
      SaveToFile('');
    finally
      Free;
    end;
o
Código Delphi [-]
  with TStringList.Create do
    try
      SaveToFile('c:\?');
    finally
      Free;
    end;
O algún archivo en uso:
Código Delphi [-]
  with TStringList.Create do
    try
      SaveToFile('c:\pagefile.sys');
    finally
      Free;
    end;

¿Solo dice que no se puede crear el archivo?

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #13  
Antiguo 19-03-2007
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 19
Espartaco Va por buen camino
Si eses es el error que da, pero si lo prueba en diseño, me da el error y se queda parado en DataExport.pas en la parte que comentas del TFileStream.

Efectivamente creo que el problema debe estar en la variable, he probado ponerla global en la ficha principal pero hace lo mismo, en cambio si en vez de utilizar la ficha con el DirectoryListBox lo hago con un InputBox, no tengo ningún problema, por tanto debe haber algo raro en eso.

No he probado lo del punto de ruptura porque no estoy muy ducho en el Debug, es mi asignatura pendiente, de todas formas seguiré intentado solucionarlo y si encuentro el problema lo postearé para otros foreros.

Si podeis recomendarme alguna lectura sobre el Debug que sea buena os lo agradecería.

Muchas gracias Delphi.com.ar y Roman por vuestra ayuda.

Un saludo,

Última edición por Espartaco fecha: 19-03-2007 a las 13:49:55.
Responder Con Cita
  #14  
Antiguo 19-03-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Te recomiendo que te bajes el libro "La cara oculta de Delphi 4" que puedes bajar gratuitamente de la página del autor: www.Marteens.com

Igualmente, rápidamente puedes hacer la siguiente prueba, agregando un mensaje antes de intentar crear el archivo:
Código Delphi [-]
  ShowMessageFmt('El archivo que quiero generar es:"%s"', [DestinoC]);
  DataToXLS1.SaveToFile(DestinoC);
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #15  
Antiguo 20-03-2007
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 19
Espartaco Va por buen camino
Tenías razón, me daba el error porque la variable DestinoC estaba vacía. Lo he comprobado con el codigo que me has pasado. El problema era que tenía que poner la variable en la unidad principal y poner en el uses de la ficha que contenía el DirectoryListBox la ficha principal.

Ahora funciona correctamente, muchas gracias por todo.

Foros como este hacen la vida del programador un poco menos solitaria.
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
Problemas al Exportar a Excel JANDREGUE Varios 2 24-12-2006 08:13:43
Exportar a excel m_cuevas Varios 2 28-09-2006 20:34:27
exportar a excel ? Enrique Impresión 2 01-09-2004 00:18:47
Exportar a Excel pruz Varios 8 01-07-2004 15:47:37
QueryPrint (FireSoft) javiermorales OOP 5 10-09-2003 22:23:41


La franja horaria es GMT +2. Ahora son las 01:06:22.


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