7 messages in org.openoffice.fr.progRe: [prog] Fonction Calc et javascript
FromSent OnAttachments
BobNov 8, 2007 2:05 am 
Laurent GodardNov 8, 2007 2:15 am 
BobNov 8, 2007 3:14 am 
BobNov 8, 2007 7:10 am 
BobNov 8, 2007 10:55 am 
Bernard MarcellyNov 9, 2007 5:37 am 
BobNov 9, 2007 5:40 pm 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] Fonction Calc et javascriptActions...
From:Bernard Marcelly (marc@club-internet.fr)
Date:Nov 9, 2007 5:37:58 am
List:org.openoffice.fr.prog

Bonjour,

Message de Bob date 2007-11-08 19:55 :

Le problème sur lequel je bloque maintenant est : *Comment charger la librairie Javascript automaiquement ?*

En fait, le problème n'est pas lié au chargement de la librairie javascript. Le problème ne se produit qu'au chargement du document !

Je pense que ce doit être une limitation de l'implémentation actuelle des scripts. Par contre on peut appeler (via Basic) une fonction JavaScript de "Mes macros".

Le renvoi d'une valeur par une fonction JavaScript est d'ailleurs plus simple que ton exemple. On récupère la dernière valeur évaluée par la fonction ! Voici une fonction JavaScript renvoyant le produit du premier argument avec un nombre aléatoire entre 0 et 1. Une seule ligne suffit:

ARGUMENTS[0]*Math.random();

Créons cette fonction sous le nom de zozo dans la bibliothèque Javascript BibliEssai créée dans Mes macros. La fonction Basic intermédiaire s'appellera versZozo :

Function versZozo(s as Double) as Double Dim oDocScriptProvider as Object Dim monScript as Object, mspf as object

oDocScriptProvider = ThisComponent.getScriptProvider() monScript = oDocScriptProvider.getScript("vnd.sun.star.script:BibliEssai.zozo.js?language=JavaScript&location=user")

versZozo = monScript.Invoke(Array(s), Array(1), Array()) End Function

Il ne reste plus qu'à l'appeler dans une cellule, par exemple: =VERSZOZO(5) formater la cellule avec plusieurs décimales pour voir le résultat.

Je ferme complètement le document et OpenOffice. A chaque réouverture du document la cellule contient une nouvelle valeur, donc la fonction est bien appelée, sans erreur.

______ Bernard