IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

InfoPath .NET Discussion :

Somme champ extensible


Sujet :

InfoPath .NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 44
    Points : 31
    Points
    31
    Par défaut Somme champ extensible
    Bonjour petite question

    Situation : formulaire de demande de congés. Chaque formulaire, une fois validé indique un nombre de jour de congé, qui est extrait dans SharePoint.

    Je récupère dans le form via une connection ce "champ extensible" nb de Jour de SharePoint (qui comprend tout les nb dejours, par ex si on l'affiche au format liste déroulante, on peut tous les voir)

    J'ai besoin de la somme de ces chiffres pour afficher le nombre de jour de congés disponible.

    J'ai essaiyé avec Eval mais ca ne marche pas

    Si quelqu'un à la solution
    Cordialement,
    Frédéric

  2. #2
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Pas de mp pour des question technique, y a pas de première ou de dernière fois...

    Je ne comprends pas bien le calcul que tu veux faire désolé peux-tu réexpliquer:

    C'est la diffèrence entre deux date que tu veux calculer ?

    ou c'est faire un total avec des nombres dans un tableau répétitif?
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 44
    Points : 31
    Points
    31
    Par défaut
    Oui, désolé. Je détaille.

    Je pense que ca correspond effectivement à faire la somme des élements d'un tableau répétitif, puisque j'ai pu afficher les chiffres dans une section extensible, même si je ne suis pas sur du terme.

    Pour reformuler la situation, sous sharepoint, j'ai une bibiothèque de formulaire qui extrait dudit formulaire un nombre de jours de congé. Et j'aimerais faire la somme de ces jours si ils sont validés (filtre aux niveau de la connection ca ok) pour indiquer combien il reste de jours disponibles.

    Cordialement,
    Frédéric

  4. #4
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Je crois qu'il faut que tu illustre car pour toi c'est claire mais ca ne l'est pas pour moi.

    Comment tu sais si un jour a été accepté?
    C'est par rapport a la date du jour que tu calcul ton terme?

    Je pense que tu trouveras sur ces trois liens comment faire:
    http://blogs.msdn.com/infopath/archi...hout-code.aspx

    http://blogs.msdn.com/infopath/archi...me-values.aspx

    http://blogs.msdn.com/infopath/archi...ng-totals.aspx
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 44
    Points : 31
    Points
    31
    Par défaut
    A partir de sharepoint je récupère le nombre de jour, l'état de la demande, le nom du demandeur. Je filtre si nom (connection) = nom (Application... en cours). Je filtre si l'état est "Validé". Et je veut faire la somme des jours.

    Pour le calcul, et les convertions c'est bon j'ai déja résolu mon problème.

    J'avais déja tenté d'utilisé eval, mais ca renvoyait tout le temps NaN (vide?)

    Je vais retravailler la formule avec eval
    Merci quand même.

    J'ai un formulaire de demande de congé, publié sur sharepoint, avec des colonnes promues, comme nb de jour. Ce que j'aimerais c'est que dans ce même formulaire, on puisse récupérer le nombre de jour déja demandés si il y en a.

    Je peut pas faire plus clair :o
    edit :

    Voilà je t'ai présenté ma source d'information, mode apercu et création, sachant que j'ai du directement afficher ca à partir des données secondaire. (impossible de faire une section extensible et de la remplir correctement pour avoir le même resultat :o)

    Si ca peut t'aider malgré cà je n'arrive pas à renvoyer quelque chose de correct avec eval (j'ai fait un test somme totale sans filtre, sans resultat)

  6. #6
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Bon j'ai plus ou moins compris maintenant ...

    Regarde les liens que je t'ai donnée surtout le dernier il t'auidera peut-être a comprendre ton erreur.


    Si j'ai bien compris c'est sum() que tu dois utiliser et pas eval().
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 44
    Points : 31
    Points
    31
    Par défaut
    les deux ... mais ca ne marche pas (encore) ..
    ><
    Je posterait le resultat si je trouve quand même

    edit : j'ai mit

    somme( éval(<source de connection secondaire>, "<Champ>"))

    Mais ca me sort une erreur, j'ai testé en remplacant source par champ et champ par "..", ca me met "NaN" vide.

    j'ai aussi testé
    somme( éval(<source de connection secondaire>, '<Champ>'))
    et infopath remplace <champ> automatiquement par son expression. Mais il refuse d'ouvrir le formulaire en aperçu.

    Est-ce que tu as une idée sur ce qui ne va pas ? Je suppose que j'utilise mal cet 'eval'

    Qui plus est la syntaxe diffère entre infopath office en ligne etc
    http://office.microsoft.com/en-us/in...391033.aspx#44
    Si je copie à la lettre ca me sert une erreur logique, puisque la somme n'est pas une expression xpath valide.
    ..

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 44
    Points : 31
    Points
    31
    Par défaut
    Je n'y arrive pas !#fu<.

    ...
    Je doit le faire mais là je sêche, et cette méthode me semblait la seule possible pour arriver à traiter les compteur de jours restants.

    help

    comment on se sert de eval "en pratique", j'ai essayé en fonction des ex mais ca les formules n'étaient pas valides ...

  9. #9
    Membre du Club Avatar de cocosql
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 82
    Points : 59
    Points
    59
    Par défaut
    Regarde ici et aussi

    Il donne quelques explication en ce qui concerne les tableaux extensibles, ici il concatène les champs du tableau, ptet que ca marche avec sum ...

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 44
    Points : 31
    Points
    31
    Par défaut
    Merci j'ai déja lu à peu près 120 posts/tutaux dans le genre(yeah presque 2 jours que je fait çà 'happy stage'), ils disent tous la même chose, et sur les versions anglaises j'ai pu trouver quelques infos concernant des problèmes potentiels avec les sources secondaires mais rien d'impossible 'normalement'.

    Sauf que dans mon form infopath refuse de s'ouvrir, avec la seule syntaxe qu'il accepte de prendre. Si j'enleve la fonction je peut faire l'affichage de la source secondaire sans problèmes dans une repeating section/table
    et si je fait un sum(champ) ca m'affiche 'NaN'@champ vide

    'démon quand tu nous tient'


    somme(éval(Demandes_de_Congés; 'xdXDocument:GetDOM("Nb de jour pris")/dfs:myFields/dfs:dataFields/dfsemandes_de_Congés/@Nb_Jours'))

  11. #11
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Merci j'ai déja lu à peu près 120 posts/tutaux dans le genre(yeah presque 2 jours que je fait çà 'happy stage'),
    y a des jours ou on avance pas c'est un fait et c'est souvent à cause de "connerie". Et c'est pas que avec Infopath que tu auras ce genre d'os.

    Pour ton problème moi je fait comme ca (voir pièce jointe) qu'es-ce qui te convient pas la dedans?

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  12. #12
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 44
    Points : 31
    Points
    31
    Par défaut
    Ouais je sait bien, c'est pour ca que je regarde pour un autre formulaire avec un tableau dynamique (autre sujet à part).

    Euh, le fait que ca vienne pas d'une source de données externes je dirait.

    Quand je fait comme toi, càd une somme simple ca me met NaN comme si il ne pouvait pas faire le calcul.

    Merci quand même

  13. #13
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    encore une fois je vois pas ou est le problème désolé. pour une source de données secondaire c'est exactement la même chose.

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  14. #14
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 44
    Points : 31
    Points
    31
    Par défaut


    Ouais sauf que chez moi ca fait NaN toujours, pourant tu fait çà avec des string, j'ai pensé sur le coup que c'était une erreur de type mais non ...

    Décidément..

  15. #15
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    je sais pas si tu a remarqué mais moi j'utilise pas eval() pour faire mon expression.
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  16. #16
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 44
    Points : 31
    Points
    31
    Par défaut
    Si j'ai vu.
    Ce qui me surprend c'est que chez toi ca marche avec des string, alors que je supposais que mon problème venait de là. Par contre j'abandonne évidemment le eval(). Au moins c'est une avancée. Merci

    edit Je vient de republier mon formulaire, en ayant changé tous les formats.
    et ca marche ...
    Comme quoi je ne cherchait pas du bon coté, puisque je suivait les tutos ><

    edit² : je faisait mes test avec des décimaux! Pour problème j'ai du traduire les demi-journées en 0,5.
    Et je vient de faire le test sur le formulaire que tu m'avais envoyé, ca ne marche plus

    Je vais devoir faire l'addition décimale en code apparement

  17. #17
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 44
    Points : 31
    Points
    31
    Par défaut
    Est-ce que quelqu'un sait s'il y a une possibilité pour faire la somme de décimaux ? Ou s'il y a une solution équivalente, je me vois mal faire la fonction sum, à partir de node répétitives avec mon pauvre c#@form de deux semaines.

    Cordialement

    edit : conversion de sharepoint ><

  18. #18
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    C'est possible d'avoir un récapitulatif car la je sais plus trop ou tu en es?
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  19. #19
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 44
    Points : 31
    Points
    31
    Par défaut
    Ha très très compliqué

    Donc pour résumer, j'ai un champ 'nbjour' rempli par calcul qui renvoie la différence de 2 date selector. Si je le met en double et que ma fonction renvoie un entier ou que j'entre n'importe quoi tout marche.

    Mon problème c'est qu'il y a un cas ou elle renvoie 0.5 et là cà n'est plus accepté. (validation de type : string != double)
    Par contre si je met le champ en string, ca accepte forcément mon 0.5 mais après publication la somme plante si il ya un 0.5 qui traine dans les calcul à faire.

    Le vrai problème c'est insérer dans la node une valeur typée double via fonction, ce que je ne sait pas faire.

    je code en c#, j'ai d'ailleur posté une fois que j'ai îgé ou était le 'vrai' prob : http://www.developpez.net/forums/sho...d.php?t=559561




    extrait concernant la partie 'rebelle'

    double DateDif = 0.0;
    if (MainDataSource.CreateNavigator().SelectSingleNode("/myemandeConge/my:typeJournée", NamespaceManager).Value != "Journée entière")
    DateDif = 0.5;
    else
    DateDif = 1.0;

    XPathNavigator dd = MainDataSource.CreateNavigator().SelectSingleNode("/myemandeConge/my:dd",
    NamespaceManager);
    dd.SetValue(DateDif.ToString());

  20. #20
    Membre du Club Avatar de cocosql
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 82
    Points : 59
    Points
    59
    Par défaut
    Si ca peut t'aider, le C# est un langage qui peut s'introspecter.
    Tu peux déclarer une variable de type object dont tu ne connais pas le type et tester le type avec 'GetType().Name', par exemple :

    Code en C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    object [] TabObj = new object[3];
    TabObj[0] = 1;
    TabObj[1] = "salut";
    TabObj[2] = 1.2f;
     
    foreach (object obj in TabObj)
        Console.WriteLine(obj.GetType().Name);


    va t'afficher :


    De même tu peux tester une variable sur son type, sans forcément le connaître :

    Code en C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (TabObj[i] is Single)
        //Traitement
    else if (TabObj[i] is Int32)
        //Autre Traitement


    n'oublie pas que tu ne peux donner un type à un variable object sans passer par un transtypage comme suit :

    Code en C# : Sélectionner tout - Visualiser dans une fenêtre à part
    TabObj[i] = (Int32) TabObj[i] + 1;

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Numérotation incrémentale d'un champ extensible
    Par Minels dans le forum InfoPath
    Réponses: 5
    Dernier message: 02/03/2009, 11h56
  2. Faire une somme d'un champ extensible
    Par f0nzy dans le forum InfoPath
    Réponses: 14
    Dernier message: 25/09/2008, 13h41
  3. [CR VS 2005] formule somme champ en chaine
    Par ffderennes dans le forum Formules
    Réponses: 2
    Dernier message: 15/07/2008, 16h09
  4. Somme Champs Déjà calculé
    Par adrien.gendre dans le forum IHM
    Réponses: 5
    Dernier message: 26/07/2007, 12h18
  5. somme champs calculés
    Par rasta girl dans le forum IHM
    Réponses: 4
    Dernier message: 29/06/2007, 13h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo