mercredi 2 septembre 2015

De nouvelles formules dans le champ tableur de Windev

Le nouveau champ tableur est très utile, mais il peut vous manquer des fonctions mathématiques assez vitales car le nombre de fonctions disponibles par rapport à Excel est enceore limité pour l'instant.

Voici une méthode assez rapide pour ne pas être bloqué.

- Se rendre sur la page du projet math.net, et télécharger le package.

- Dans votre projet Windev, clic droit sur assemblages.net et choisir utiliser un assemblage.net dans le projet. Venir choisir le ficher dll concerné comme ci dessous.



 Créer une procédure globale avec les fonctions que vous souhaitez utiliser comme ci dessous :

PROCEDURE pochisq(df, x sont des numériques)
pclOStats est un "MathNet.Numerics.Distributions.ChiSquared" dynamique

pclOStats=ChiSquared::InvCDF(df,x)

RENVOYER(pclOStats.ToString())

Consultez bien la documentation de la fonction sur le site de math.net pour avoir le détail.
Dans ce cas présent, on utilise une fonction inverse du test du Khi2. La procédure windev ne sert qu'a faire le lien avec la fonction .net, et renvoie la réponse en passant la valeur et le nombre de degrés de liberté.

Vous pouvez utilisez ensuite créer des fonctions utilisables dans vos champs tableurs, par exemple  comme ceci :

PROCEDURE poissoninf(valeur est un numérique)
xAmini est un numérique

SELON valeur
   
CAS <=3
   
    RENVOYER 0   
   
AUTRE CAS
     xAmini=(pochisq((valeur-1)*2+2,0.025))
     RENVOYER xAmini/2
           
FIN

Pensez à rajouter dans le code de la fenêtre contenant votre champ tableur la ligne suivante :

//autorisation des fonctions internes
    TableurAutoriseProcédure(TBLR_FP,"poissoninf"+RC+"poissonsup"+RC+"sensidossier"+RC+"surfacelot"+RC+"volumepreleve"+RC+"incertitudevolume"+RC+"smoyennegrille")

TBLR_FP est le nom de votre champ tableur, et les données entre guillemets "poissoninf" sont les fonctions rendues disponibles dans ce tableur pour vos utilisateurs. Sans cette ligne, vos fonctions ne seront pas disponibles lorsque vous écrivez vos formules dans le tableur.


Ici, dans cette exemple, j'ai créé une fonction poissoninf, qui utilise la fonction pochisq qui elle même appelle une fonction .net. En utilisant cette librairie, tout est réalisable ! c'est très fourni et vous pouvez créer des tableaux de calculs très complexes pour vos utilisateurs !