Problema con Excel

Problema con Excel

Postby jllinas » Sun Oct 12, 2008 8:34 pm

Hola a todos,

Solo quiero trabajar desde mi aplicacion con un archivo de excel, el cual, si no existe, lo creo en blanco (sin datos), para luego grabarlo en una carpeta debajo donde estan mis archivos de datos. El codigo es como sigue:

Code: Select all  Expand view
STATIC FUNCTION Excel_( cInvid )
LOCAL lFound
LOCAL MyXlsFil := Mpath+ "XLS\" + ltrim( cInvid ) + ".xls"
LOCAL oExcel, oWorkBook

   IF !FILE( Mpath+"XLS\" )
      lMkDir( Mpath+"XLS" )
   ENDIF

   TRY
      oExcel := GetActiveObject( "Excel.Application" )

   CATCH
      TRY
         oExcel := CreateObject( "Excel.Application" )
      CATCH
         MsgAlert( "Excel no instalado" )
         return NIL
      END

   END

   TRY
      IF (lFound := FILE( MyXlsFil ))
         oWorkBook := oExcel:Workbooks:Open( MyXlsFil, 3 )
         oSheet    := oExcel:ActiveSheet
      ELSE
         oWorkBook := oExcel:Workbooks:Add()
         oSheet    := oExcel:ActiveSheet
         oWorkBook:Saveas( MyXlsFil,-4143 )
      ENDIF

      oExcel:Visible = .T.

   CATCH oError
      MsgStop(oError:Operation+CRLF+oError:Description,"Falla al cargar MS-Excel")
   END

RETURN NIL


Pues aqui va lo raro. En mi notebook tengo Vista y Office 2007. Me funciona de maravillas, pero en otras maquinas no.

Lo proble con otro desktop de la oficina (Vista y Office 2007), accesando por red al servidor de archivos, y NO funciona.

Lo probe ejecutandolo en el mismo servidor de archivos (Windows XP y Office 2003) y NO funciona....

Me estoy volviendo loco.... ¿Que pasa aqui?

Gracias anticipadas,
Julio Llinás
Visita mi Blog en http://mangucybernetico.blogspot.com/
xHarbour 1.1.0 + FWH810 + Borland 5.5.1
User avatar
jllinas
 
Posts: 189
Joined: Fri Oct 14, 2005 12:33 am
Location: Santo Domingo, Dominican Republic

Postby jllinas » Wed Oct 15, 2008 11:10 pm

Dios Mio !!!

Nadie me dice nada ?

Es que hay algo incorrecto en mi codigo ?

Otra manera de hacer esto ?

Por favor.... alguna alma piadosa !!!! :cry:
Julio Llinás
Visita mi Blog en http://mangucybernetico.blogspot.com/
xHarbour 1.1.0 + FWH810 + Borland 5.5.1
User avatar
jllinas
 
Posts: 189
Joined: Fri Oct 14, 2005 12:33 am
Location: Santo Domingo, Dominican Republic

Postby Daniel Garcia-Gil » Thu Oct 16, 2008 12:33 am

puedes mostrar el error que genera? o que es lo que no funciona?, no abre el archivo, no lo crea, no crea el directorio, seria util manejar esa informacion para ver como podemos ayudar
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Postby jllinas » Thu Oct 16, 2008 4:27 am

El error en un MsgInfo que se puede ver en el CATCH, y dice:

"Error al Cargar MS-Excel"
OPEN
DISP_E_BADPARAMCOUNT

No se interpretar eso, pero ocurre al ejecutar la instruccion

Code: Select all  Expand view
oWorkBook := oExcel:Workbooks:Open( MyXlsFil, 3 )


He verificado, y este archivo XLS existe ciertamente

Gracias anticipadas....
Julio Llinás
Visita mi Blog en http://mangucybernetico.blogspot.com/
xHarbour 1.1.0 + FWH810 + Borland 5.5.1
User avatar
jllinas
 
Posts: 189
Joined: Fri Oct 14, 2005 12:33 am
Location: Santo Domingo, Dominican Republic

Postby Antonio Linares » Thu Oct 16, 2008 8:00 am

Julio,

Que significa el parámetro 3 ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby jllinas » Thu Oct 16, 2008 6:23 pm

Pues la verdad que no se....

Lo ví de un ejemplo que Publico Rafa (Thefull) aquí en el foro, pero no se qué es...

Lo mismo para el "saveas", que tiene un parametro -4143, que tampoco sé de que se trata.

Ojala y me pueda alguien apoyar, pues dependo de esto para entregar un proyecto.

Abrazos,
Julio Llinás
Visita mi Blog en http://mangucybernetico.blogspot.com/
xHarbour 1.1.0 + FWH810 + Borland 5.5.1
User avatar
jllinas
 
Posts: 189
Joined: Fri Oct 14, 2005 12:33 am
Location: Santo Domingo, Dominican Republic

Postby horacio » Thu Oct 16, 2008 8:12 pm

si estás usando excel via ole se me ocurre que no estas usando la misma versión en la portátil que en los otros equipos. Serìa cuestión de verificar
saludos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Postby jllinas » Fri Oct 17, 2008 2:28 am

Vamos a ver, que ya me contesto a mí mismo.

Lo que pasa, en pocas palabras es que el MS-Excel es BRUTO, BRUTO... hay que decirle TODO con mucho detalle:

El archivo que debía abrir lo estaba llamando como "\SSP\72.XLS", pero con este nombre te "escupe a la cara" un error que realmente no se entiende. Hay que decirle que el archivo se llama "E:\SSP\72.XLS", y eso es todo !

Asi, que para otros, la rutina quedo así:

Code: Select all  Expand view
STATIC FUNCTION Excel_( cInvid )
LOCAL lFound
LOCAL cDrive   := LEFT(GetModuleFileName(GetInstance()),2)
LOCAL MyXlsFil := cDrive + Mpath+ "XLS\" + ltrim( cInvid ) + ".xls"  // Carajo hay que decirle TODO el camino
LOCAL oExcel, oWorkBook

   IF !FILE( Mpath+"XLS\" )
      lMkDir( Mpath+"XLS" )
   ENDIF

   TRY
      oExcel := GetActiveObject( "Excel.Application" )

   CATCH
      TRY
         oExcel := CreateObject( "Excel.Application" )
      CATCH
         MsgAlert( "Excel no instalado" )
         return NIL
      END

   END

   TRY
      IF (lFound := FILE( MyXlsFil ))
         oExcel:Workbooks:Open( MyXlsFil )
      ELSE
         oBook := oExcel:Workbooks:Add()
         oBook:Saveas( MyXlsFil )
      ENDIF

      oExcel:Visible = .T.


   CATCH oError
      MsgStop(oError:Operation+CRLF+oError:Description,"Falla al cargar MS-Excel")
   END

RETURN NIL


Y ahora un regalito mas: Como parte de la misma aplicacion, el cliente estaba interesado en tambien almacenar los planos de los articulos que estaba fabricando, en formato de AutoCad, y esa rutina quedo como sigue:

Code: Select all  Expand view
STATIC FUNCTION Dwg_( cInvid )
LOCAL lFound
LOCAL MyDwgFil := Mpath+ "DWG\" + ltrim( cInvid ) + ".dwg"
LOCAL oCad, oSheet

   IF !FILE( Mpath+"DWG\" )
      lMkDir( Mpath+"DWG" )
   ENDIF

   TRY

      oCad := TOleAuto():New( "AutoCAD.Application" )

      IF (lFound := FILE( MyDwgFil ))
         oCaddwg := oCad:Application:Documents:Open( MyDwgFil )
      ELSE
         oCaddwg := oCad:Application:Documents:Add()
         oCaddwg:SaveAs( MyDwgFil )
      ENDIF

      oCad:Visible = .T.

   CATCH oError
      MsgStop(oError:Operation+CRLF+oError:Description,"Falla al cargar AutoCad")

   END

RETURN NIL


Les reporto que AMBAS funcionan perfectamente.

Gracias de corazón a todos los que apoyaron con sus opiniones.

Abrazos,
Julio Llinás
Visita mi Blog en http://mangucybernetico.blogspot.com/
xHarbour 1.1.0 + FWH810 + Borland 5.5.1
User avatar
jllinas
 
Posts: 189
Joined: Fri Oct 14, 2005 12:33 am
Location: Santo Domingo, Dominican Republic


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 51 guests