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 !



2 commentaires:

  1. Très bon sujet.
    Ce champ tableur est pas mal, mais il faudrait que les formules (si autorisés) écrites dans les cellules par l'utilisateur final puisse être définitives et ne pas s'effacer chaque fois que l'on relance l'appli, c'est dommage, les seules qui restent sont celles écrités sous l'éditeur de contenu aà moins qu'il n'y ai une solution pour que les formules écrites sur une feuille du tableur, puissent être conservées?

    RépondreSupprimer
    Réponses
    1. Oui, entièrement d'accord avec vous. Il reste encore des choses au niveau fonctionnel. Personnellement, je voue beaucoup avec TableurSauve, Tableur RecalculeTout. Ce qui me manque le plus a l'heure actuelle c'est la protection des cellules.

      Supprimer

Bonjour, vous pouvez laisser un commentaire, je vous répondrais rapidement.