ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Forum AtoutFox : Re: Passer une array du objects a libreoffice/openoffice   

Sujet

rss Flux RSS des derniers messages

Vous devez vous identifier pour pouvoir poser une question ou répondre.

dim. 01 octobre 2017, 22h15

janflorijn
Pays-Bas Pays-Bas

atoutfox.public.association

Re: Passer une array du objects a libreoffice/openoffice

Bonsuir, Jean,

1) J'ai beaucoup essayé, mais cela ne fonctionne pas. De plus, en combinaison avec votre point 2 COMARRAY, cela ne fonctionne pas. Quand je regarde la variable tbstps avec Xray, OO ne voit vraiment que le premier élément.

J'ai regardé COMARRAY à nouveau. OpenOffice fonctionne avec des tableaux basés sur 0. Vous devriez alors travailler avec 0.10.1000 ou 1010. Ostyle à 10 dans un cas et 0 dans l'autre cas. Je les ai tous essayés, mais cela ne fait aucune différence.

Est-ce que je voudrais dire que les variables passées avec @ sont par référence et d'autres par valeur?

J'ai suivi vos autres conseils. Le résultat est présenté ci-dessous.

*Declaration variables
PUBLIC loOfcMgr, loDesktop, loCoreReflection, loDocument, loCursor, loText, args(2), loPropertyValue
PUBLIC tbstps(3), tbstp, oStyle, oStyles

*Create servicemanager
Thisformset.Baseform12.Lofuncties1.ooogetservicemanager
COMARRAY(loOfcMgr,10)

*Create Desktop
Thisformset.Baseform12.Lofuncties1.ooogetdesktop
COMARRAY(loDesktop,10)

*Open empty document
loCoreReflection = loOfcMgr.createInstance("com.sun.star.reflection.CoreReflection" )
COMARRAY(loCoreReflection,0)
loPropertyValue = CREATEOBJECT("Empty")
loCoreReflection.forName( "com.sun.star.beans.PropertyValue").createobject(@loPropertyValue)
args(1)=loPropertyValue
args(1).name="ReadOnly"
args(1).value=.f.
args(2)=loPropertyValue
args(2).name="MacroExecutionMode"
args(2).value=4
fnm="file:///";+STRTRAN(thuispad, "\","/")+"/LIBRARY/Default_A5.ott"
loDocument = loDesktop.loadComponentFromURL(fnm,"_blank", 0, @args)
COMARRAY(loDocument,10)

*Make it possible to put text in it
loText=loDocument.getText() && Create text object
COMARRAY(loText,10)

* Create Cursor
loCursor= loText.createTextCursor()
COMARRAY(loCursor,10)

*Now tabs
oStyle = loDocument.createInstance("com.sun.star.style.ParagraphStyle")
COMARRAY(oStyle,0)
tbstps(1)=Thisform.lofuncties1.ooocreatestruct("com.sun.star.style.TabStop")
tbstps(2)=Thisform.lofuncties1.ooocreatestruct("com.sun.star.style.TabStop")
tbstps(3)=Thisform.lofuncties1.ooocreatestruct("com.sun.star.style.TabStop")
tbstp=tbstps(1)
WITH tbstp
  .Alignment = 0
  .DecimalChar = 44
  .FillChar = 32
  .Position = 500
ENDWITH
tbstps(1)=tbstp
tbstp=tbstps(2)
WITH tbstp
  .Alignment = 0
  .DecimalChar = 44
  .FillChar = 32
  .Position = 6250
ENDWITH
tbstps(2)=tbstp
tbstp=tbstps(3)
WITH tbstp
  .Alignment = 0
  .DecimalChar = 44
  .FillChar = 32
  .Position = 7750
ENDWITH
tbstps(3)=tbstp
*oStyle.SetPropertyValue("ParaTabStops",@tbstps) && Passing array by reference
oStyle.ParaTabStops=tbstps && Passing array by value
Thisform.lofuncties1.call_xray(oStyle) &&This function calls xray in openoffice. It gives a xray of the properties and methods wich are possible.



Bonsoir,


Jan Flikweert

Permalink : http://www.atoutfox.org/nntp.asp?ID=0000018469
18 453 messages dans le forum • Liste complète des messages

Publicité

Les pubs en cours :

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2017.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0