PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile 2024 → Re: Automartion OpenOffice
Re: Automartion OpenOffice
Started by Yves UN, Sep., 24 2010 5:09 PM - No answer
Posted on September, 24 2010 - 5:09 PM
Bon j'avance c'est cool.
Voilà mon bout de code

Clic sur le bouton Save
// Variables locales
MNoArgs est un tableau de 0 Variant
sNomDocument1,sNomDocument2,CheminComplet sont des chaînes
// Y-a-t-il un document actif
SI EstOuvert()=Faux ALORS
Erreur("Aucun document OpenOffice Writer n'est ouvert.","L'enregistrement est impossible.")
sNomDocument1 = ""
SINON
SI CheminComplet <> "" ALORS
sNomDocument1 = CheminComplet
SINON
sNomDocument1 = fSélecteur(SAI_ChMailCréé, "", "Enregistrer sous...", "Document HTML (*.html)"+TAB+"*.HTML","*.html", fselCrée)
FIN

SI sNomDocument1 <> "" ALORS
// Formatage du chemin du fichier
sNomDocument2 = "file:///"+Remplace(sNomDocument1,"\","/")

// Enregistrement du document
oODocument>>storeToURL(sNomDocument2, MNoArgs)
FIN
FIN



Procédure EstOuvert()
Procedure VIRTUELLE EstOuvert()

QUAND EXCEPTION DANS
//Tentative d'accès à la feuille active du document
oODocument>>CurrentController>>ViewCursor()
RENVOYER Vrai
FAIRE
ExceptionActive()
Libérer oODocument
RENVOYER Faux
FIN


C'est une solution qui fonctionne pour enregistrer des document au format .Odt ou txt. si on veut enregistrer dans un autre format, HTML par exemple, il faut utiliser des filtres et c'est là que je bloque...

source ici : http://www.oooforum.org/forum/viewtopic.phtml…

Quand j'essaie de donner des valeurs au tableau de variant "MnoArgs" ça plante...
MNoArgs[1] = MakePropertyValue("FilterName", "HTML (StarWriter)")


Procedure MakePropertyValue(PropName est une chaîne,PropValue est un Variant)
tabRESULT est un objet OLE dynamique

tabRESULT = oOServiceManager>>Bridge_GetStruct("com.sun.star.beans.PropertyValue")
tabRESULT>>Name = PropName
tabRESULT>>Value= PropValue

RENVOYER tabRESULT


l'erreur que j'obtiens c'est :

Erreur à la ligne 50 du traitement Clic sur BTN_Save.
La dimension 1 du tableau possède 0 élément(s) et vous tentez d'accéder à l'élément 1.