Mostrar información de un objeto en un archivo de Calc

From Apache OpenOffice Wiki
< ES‎ | Manuales‎ | GuiaAOO‎ | TemasAvanzados‎ | Macros‎ | StarBasic‎ | Apendices
Revision as of 01:32, 5 November 2012 by Salva (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
 Sub ObtenerDatos( Objeto As Object )
 Dim sRuta As String
 Dim oDoc As Object
 Dim mArg()
 Dim a1() As String, a2() As String
 Dim co1 As Integer, sTmp As String
 
     sRuta = "private:factory/scalc"
     oDoc = StarDesktop.LoadComponentFromURL( sRuta,"_default",0,mArg )
 
     a1 = Split( Objeto.DBG_Properties, ":" )
     a2 = Split( Trim(a1(1)), ";" ) 
     oDoc.Sheets().getByIndex(0).getCellByPosition( 0, 0 ).setString( a1(0) )
     For co1 = LBound( a2 ) To UBound( a2 )
         sTmp = Trim(a2(co1))
         If Left( sTmp, 1) = Chr(10) Then sTmp = Right( sTmp, Len(sTmp)-1 )
         oDoc.Sheets().getByIndex(0).getCellByPosition( 0, co1+1 ).setString( sTmp )
     Next co1
     If Right( sTmp, 1) = Chr(10) Then sTmp = Left( sTmp, Len(sTmp)-1 )
     oDoc.Sheets().getByIndex(0).getCellByPosition( 0, co1 ).setString( sTmp )
 
     a1 = Split( Objeto.DBG_Methods, ":" )
     a2 = Split( Trim(a1(1)), ";" )
     oDoc.Sheets().getByIndex(0).getCellByPosition( 1, 0 ).setString( a1(0) 
     For co1 = LBound( a2 ) To UBound( a2 )
         sTmp = Trim(a2(co1))
         If Left( sTmp, 1) = Chr(10) Then sTmp = Right( sTmp, Len(sTmp)-1 )
         oDoc.Sheets().getByIndex(0).getCellByPosition( 1, co1+1 ).setString( sTmp )
     Next co1
     If Right( sTmp, 1) = Chr(10) Then sTmp = Left( sTmp, Len(sTmp)-1 )
     oDoc.Sheets().getByIndex(0).getCellByPosition( 1, co1 ).setString( sTmp )
 
     a1 = Split( Objeto.DBG_SupportedInterfaces, ":" )
     a2 = Split( Trim(a1(1)), Chr(10) )
     oDoc.Sheets().getByIndex(0).getCellByPosition( 2, 0 ).setString( a1(0) )
     For co1 = LBound( a2 ) To UBound( a2 )
         sTmp = Trim(a2(co1))
         If Left( sTmp, 1) = Chr(10) Then sTmp = Right( sTmp, Len(sTmp)-1 )
         oDoc.Sheets().getByIndex(0).getCellByPosition( 2, co1 ).setString( sTmp )
     Next co1
 
 End Sub


Asegúrate de pasarle como parámetro una variable de objeto; si el objeto no implementa métodos, la macro te dará un error y se detendrá, pero te creará el archivo con al menos las propiedades que implementa.


 Sub Pruebas
 Dim obj As Object
 
     obj = ThisComponent
 
     Call ObtenerDatos ( obj )
 
 End Sub



ES.Plantillas.Logo foro es.png
Si tienes dudas acerca de lo aquí explicado, tienes algún problema con AOO,
o quieres ampliar la información, no dudes en dirigirte al

Foro Oficial en español de Apache OpenOffice para Macros y API UNO

Personal tools