Estos ejemplos estan probados y aunque Fox no me marca ningun error y el programa hace todo lo que quiero, se que pudieran surgir algunos errores que no he notado. Como les comento estos ejemplos corren usando VFP9 version en Ingles y StarOffice 7 en Español para Windows.
Dado que estos son los unicos recursos con los que cuento, no he podido hacer mas pruebas; asi que cualquier correccion y comentario lo agradeceria ampliamente.
Por ultimo, el codigo que se muestra, contiene los comandos MAS BASICOS tanto para el procesador de Textos como para la Hoja de Calculo, excepto el insertado de imagenes, si alguien llegase a desarrollar tal codigo creo que seria bueno que lo anotase aqui a fin de darle una mayor continuidad.
De antemano agradesco la información obtenida de entre otras fuentes a:
PortalFox, FoxPress y OpenOffice.org
*###################################* * * **** EJEMPLO 1 STAROFFICE WRITER **** * * *###################################* LOCAL ARRAY laPropertyValue[1] LOCAL loManager, loDesktop, loDocument, loCursor, PaginaPre, EstilosPagina, FormaObjetoGrafico loManager = CREATEOBJECT( "com.sun.star.ServiceManager" ) loDesktop = loManager.createInstance( "com.sun.star.frame.Desktop" ) comarray( loDesktop, 10 ) loReflection = loManager.createInstance("com.sun.star.reflection.CoreReflection" ) comarray( loReflection, 10 ) laPropertyValue[1] = createStruct( @loReflection,"com.sun.star.beans.PropertyValue" ) laPropertyValue[1].NAME = "ReadOnly" laPropertyValue[1].VALUE = .F. loDocument = loDesktop.LoadComponentFromUrl( "STAROFFICE.factory:swriter","_blank", 0, @laPropertyValue ) comarray( loDocument, 10 ) loCursor= loDocument.TEXT.CreateTextCursor() loDocument.text.insertString(loCursor, "Esta es la primera linea del texto.", .f.) loDocument.text.insertControlCharacter( loCursor, 0, .f.) loCursor.text.insertString(loCursor, "Esta es la segunda linea", .f.) loDocument.text.insertControlCharacter( loCursor, 0, .f.) Tabla= loDocument.createInstance( "com.sun.star.text.TextTable") Tabla.initialize(4, 4) loCursor.text.insertTextContent(loCursor, Tabla, .f.) objRows= Tabla.getRows ColumnaT= objRows.getByIndex( 0) Tabla.setPropertyValue("BackTransparent", .f.) Tabla.setPropertyValue("BackColor", 13421823) ColumnaT.setPropertyValue( "BackTransparent", .f.) ColumnaT.setPropertyValue( "BackColor", 6710932) insertIntoCell ("A1","FirstColumn", Tabla ) insertIntoCell ("B1","SecondColumn", Tabla ) insertIntoCell ("C1","ThirdColumn", Tabla ) insertIntoCell ("D1","SUM", Tabla ) var1=2 var2=48 var3=4 Tabla.getCellByName("A2").setValue(var1) Tabla.getCellByName("B2").setValue(var2) Tabla.getCellByName("C2").setValue(var3) Tabla.getCellByName("D2").setFormula ((var1*var2)/var3) Tabla.getCellByName("A3").setValue(21.5) Tabla.getCellByName("B3").setValue(615.3) Tabla.getCellByName("C3").setValue(-315.7) Tabla.getCellByName("D3").setFormula ("sum ") Tabla.getCellByName("A4").setValue (121.5) Tabla.getCellByName("B4").setValue (-615.3) Tabla.getCellByName("C4").setValue (415.7) Tabla.getCellByName("D4").setPropertyValue( "BackColor", 16700000) Tabla.getCellByName("D4").setFormula("sum") loCursor.setPropertyValue ("CharColor", 255) loCursor.text.insertControlCharacter (loCursor, 0 , .f.) loDocument.text.insertString (loCursor, " Texto de Color" , .f.) loCursor.setPropertyValue ("CharShadowed", .t.) loDocument.text.insertString (loCursor, " - texto con sombra" , .f.) loCursor.setPropertyValue ("CharShadowed", .f.) loDocument.text.insertControlCharacter( loCursor, 0, .f.) loDocumentFrame= loDocument.createInstance("com.sun.star.text.TextFrame") objSize= createStruct(@loReflection, "com.sun.star.awt.Size") objSize.Width= 15000 objSize.Height= 400 loDocumentFrame.setSize( objSize) loDocumentFrame.setPropertyValue("AnchorType", 1) loDocument.text.insertTextContent(loCursor, loDocumentFrame, .f.) objFrameText= loDocumentFrame.getText objFrameTextCursor= objFrameText.createTextCursor objFrameTextCursor.setPropertyValue ("CharHeight", 10) objFrameText.insertString(objFrameTextCursor, "Primera linea dentro del marco.", .f.) objFrameText.insertControlCharacter(objFrameTextCursor, 0, .f.) objFrameText.insertString(objFrameTextCursor, "Otra linea dentro del marco.", .f.) loDocument.text.insertControlCharacter( loCursor, 0, .f.) loCursor.setPropertyValue ("CharColor", 65536) loCursor.setPropertyValue ("CharFontName", 'Arial') loDocument.text.insertString (loCursor, "Cambio de letra a Arial", .f.) loDocument.text.insertControlCharacter( loCursor, 0, .f.) loDocument.text.insertControlCharacter( loCursor, 0, .f.) loCursor.setPropertyValue ("CharWeight", 150) loCursor.text.insertString(loCursor, "Negritas ", .f.) loCursor.setPropertyValue ("CharWeight", 100) loCursor.setPropertyValue ("CharPosture", 50) loCursor.text.insertString(loCursor, "Cursiva ", .f.) loCursor.setPropertyValue ("CharPosture", 0) loDocument.text.insertControlCharacter( loCursor, 0, .f.) loDocument.text.insertControlCharacter( loCursor, 0, .f.) loDocument.text.insertString (loCursor, "Texto Normal" ,.f.) loCursor.setPropertyValue ("CharEscapement", 65) loCursor.setPropertyValue ("CharHeight", 5) loDocument.text.insertString (loCursor, " Superíndice" ,.f.) loCursor.setPropertyValue ("CharEscapement", 0) loCursor.setPropertyValue ("CharHeight", 10) loDocument.text.insertString (loCursor, " Texto Normal" ,.f.) loCursor.setPropertyValue ("CharHeight", 5) loCursor.setPropertyValue ("CharEscapement", -35) loDocument.text.insertString (loCursor, " Subíndice" ,.f.) loCursor.setPropertyValue ("CharEscapement", 0) loCursor.setPropertyValue ("CharHeight", 10) loDocument.text.insertControlCharacter( loCursor, 0, .f.) loDocument.text.insertControlCharacter( loCursor, 0, .f.) loCursor.setPropertyValue ("CharUnderline", 1) loDocument.text.insertString (loCursor, "Subrayado" ,.f.) loCursor.setPropertyValue ("CharUnderline", 0) loCursor.setPropertyValue ("CharFlash", .t.) loDocument.text.insertString (loCursor, " Parpadeando" ,.f.) loCursor.setPropertyValue ("CharFlash", .f.) loDocument.text.insertControlCharacter( loCursor, 0, .f.) loDocument.text.insertControlCharacter( loCursor, 0, .f.) loCursor.setPropertyValue ("CharHeight", 8) loCursor.setPropertyValue ("CharFontName", 'Arial Black') loCursor.setPropertyValue ("CharColor", 14500) loDocument.text.insertString (loCursor, "Color 1,4500" ,.f.) loCursor.setPropertyValue ("CharColor", 18500) loDocument.text.insertString (loCursor, CHR(9)+"Color 18,500" ,.f.) loCursor.setPropertyValue ("CharColor", 20500) loDocument.text.insertString (loCursor, CHR(9)+"Color 20,500" ,.f.) loDocument.text.insertControlCharacter( loCursor, 0, .f.) loCursor.setPropertyValue ("ParaAdjust", 3) loDocument.text.insertString (loCursor, "Color 13,459,998 AAAAAAAAAAAAAAAAAAAAAAAAAA BBBBBBBBBBBBBBB" ; +" CCCCCC DDDDDD EEEEEEE F F F FFFF GGGGGGG HHHH" ,.f.) loDocument.text.insertControlCharacter( loCursor, 0, .f.) loCursor.setPropertyValue ("ParaAdjust", 0) loDocument.text.insertString (loCursor, "Color 16,711,680 AAAAAAAAAAAAAAAAAAAAAAAAAA BBBBBBBBBBBBBBB" ; +" CCCCCC DDDDDD EEEEEEE F F F FFFF GGGGGGG HHHH" ,.f.) loDocument.text.insertControlCharacter( loCursor, 0, .f.) loCursor.setPropertyValue ("ParaAdjust", 2) loCursor.setPropertyValue ("CharColor", 9603696) loDocument.text.insertString (loCursor, "Color 9,603,696 AAAAAAAAAAAAAAAAAAAAAAAAAA BBBBBBBBBBBBBBB" ; +" CCCCCC DDDDDD EEEEEEE F F F FFFF GGGGGGG HHHH" ,.f.) loDocument.text.insertControlCharacter( loCursor, 0, .f.) loCursor.setPropertyValue ("ParaAdjust", 1) loCursor.setPropertyValue ("CharColor", 8355711) loDocument.text.insertString (loCursor, "Color 8,355,711 AAAAAAAAAAAAAAAAAAAAAAAAAA BBBBBBBBBBBBBBB" ; +" CCCCCC DDDDDD EEEEEEE F F F FFFF GGGGGGG HHHH" ,.f.) loDocument.text.insertControlCharacter( loCursor, 0, .f.) loCursor.setPropertyValue ("CharColor", RGB(0,0,255)) loDocument.text.insertString (loCursor, "Color 8,355,711 AAAAAAAAAAAAAAAAAAAAAAAAAA BBBBBBBBBBBBBBB" ; +" CCCCCC DDDDDD EEEEEEE F F F FFFF GGGGGGG HHHH " ,.f.) loDocument.text.insertControlCharacter( loCursor, 0, .f.) or_url="file:///c:/test.sxw" laPropertyValue[1].NAME= "Overwrite" laPropertyValue[1].VALUE= .T. loDocument.storeAsURL( or_url, @laPropertyValue )