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 :

récupérer des information et effectuer des calculs


Sujet :

InfoPath .NET

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut récupérer des information et effectuer des calculs
    Bonjour,

    je dispose d'une liste sharepoint dans laquelle se trouve tous les jours fériés.

    ( ID ANNEE DATE )


    j'ai 2 dates (date1 et date2), j'ai fais la différence entre les deux, j'ai aussi enlevé les weekend mais je n'arrive pas a enlever les jours fériés.

    j'aimerais récupérer chacun des jours fériés, vérifier si ce jour se trouve entre 2 dates:
    si c'est le cas le signaler quelque part pour que je puisse les enlever (je comptais faire une sorte de compteur qui s'incrémenterait. Sinon des champs qui contiendraient 1 si le jour férié est compris entre les 2 dates et 0 sinon et faire la somme de ces champs...)
    sinon, ne rien faire.

    j'ai essayé avec un tableau extensible, mais je n'arrive pas a fixer de condition.

    Si vous avez une idée,
    merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    Qu'appelez vous "à fixer des conditions"?
    Votre méthode semble en effet réalisable, à quelle partir bloquez vous?

    Pour info, une autre approche serait d'appeler des web services disponible sur le net (ou d'en développer un) afin d'obtenir ce genre d'information.

    Cordialement.
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour

    Quand je dis "fixer des conditions" c'est que dans le tableau extensible, je peux afficher une zone d'expression, mais pas une zone de texte (normal puisque qu'il faut le lier à un groupe) or pour avoir des condition du style "si ANNEE = 2011 et DATE comprise entre Date1 et Date2 faire "quelquechose" " je peux pas le faire avec une zone d'expression.

    je peux pas utiliser la zone d'expression car pas de conditions avec.
    je peux pas utiliser de zone de texte car dans un tableau extensible, il doit être lié à un groupe, chose que je n'ai pas réussi à faire.

    celà dit, j'ai quand même fini par trouver une solution, mais je suis prenneur d'une meilleur si il y a mieux, en attendant, ça pourrait aider des personnes dans le même cas que moi =)

    Permet de récupérer le nombre de jours fériés entre 2 dates
    J'ai mis ce bout de code dans les règles des controles de type sélecteur de date (startDate et endDate)
    la règle se déclenche si startDate et endDate ne sont pas vides
    et va attribuer une valeur à un champ qui aura pour valeur ce code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    sum(xdXDocument:GetDOM("Base des jours feriés")/dfs:myFields/dfs:dataFields/dfs:Base_des_jours_feriés/@Année[(. = 2011) and (msxsl:string-compare(number(substring(../@Date, 9, 2)) + floor((153 * (number(substring(../@Date, 6, 2)) + 12 * floor((14 - number(substring(../@Date, 6, 2))) div 12) - 3) + 2) div 5) + (number(substring(../@Date, 1, 4)) + 4800 - floor((14 - number(substring(../@Date, 6, 2))) div 12)) * 365 + floor((number(substring(../@Date, 1, 4)) + 4800 - floor((14 - number(substring(../@Date, 6, 2))) div 12)) div 4) - floor((number(substring(../@Date, 1, 4)) + 4800 - floor((14 - number(substring(../@Date, 6, 2))) div 12)) div 100) + floor((number(substring(../@Date, 1, 4)) + 4800 - floor((14 - number(substring(../@Date, 6, 2))) div 12)) div 400) - 32045, number(substring(xdXDocument:get-DOM()/my:mesChamps/my:endDate, 9, 2)) + floor((153 * (number(substring(xdXDocument:get-DOM()/my:mesChamps/my:endDate, 6, 2)) + 12 * floor((14 - number(substring(xdXDocument:get-DOM()/my:mesChamps/my:endDate, 6, 2))) div 12) - 3) + 2) div 5) + (number(substring(xdXDocument:get-DOM()/my:mesChamps/my:endDate, 1, 4)) + 4800 - floor((14 - number(substring(xdXDocument:get-DOM()/my:mesChamps/my:endDate, 6, 2))) div 12)) * 365 + floor((number(substring(xdXDocument:get-DOM()/my:mesChamps/my:endDate, 1, 4)) + 4800 - floor((14 - number(substring(xdXDocument:get-DOM()/my:mesChamps/my:endDate, 6, 2))) div 12)) div 4) - floor((number(substring(xdXDocument:get-DOM()/my:mesChamps/my:endDate, 1, 4)) + 4800 - floor((14 - number(substring(xdXDocument:get-DOM()/my:mesChamps/my:endDate, 6, 2))) div 12)) div 100) + floor((number(substring(xdXDocument:get-DOM()/my:mesChamps/my:endDate, 1, 4)) + 4800 - floor((14 - number(substring(xdXDocument:get-DOM()/my:mesChamps/my:endDate, 6, 2))) div 12)) div 400) - 32045) <= 0) and (msxsl:string-compare(number(substring(../@Date, 9, 2)) + floor((153 * (number(substring(../@Date, 6, 2)) + 12 * floor((14 - number(substring(../@Date, 6, 2))) div 12) - 3) + 2) div 5) + (number(substring(../@Date, 1, 4)) + 4800 - floor((14 - number(substring(../@Date, 6, 2))) div 12)) * 365 + floor((number(substring(../@Date, 1, 4)) + 4800 - floor((14 - number(substring(../@Date, 6, 2))) div 12)) div 4) - floor((number(substring(../@Date, 1, 4)) + 4800 - floor((14 - number(substring(../@Date, 6, 2))) div 12)) div 100) + floor((number(substring(../@Date, 1, 4)) + 4800 - floor((14 - number(substring(../@Date, 6, 2))) div 12)) div 400) - 32045, number(substring(xdXDocument:get-DOM()/my:mesChamps/my:startDate, 9, 2)) + floor((153 * (number(substring(xdXDocument:get-DOM()/my:mesChamps/my:startDate, 6, 2)) + 12 * floor((14 - number(substring(xdXDocument:get-DOM()/my:mesChamps/my:startDate, 6, 2))) div 12) - 3) + 2) div 5) + (number(substring(xdXDocument:get-DOM()/my:mesChamps/my:startDate, 1, 4)) + 4800 - floor((14 - number(substring(xdXDocument:get-DOM()/my:mesChamps/my:startDate, 6, 2))) div 12)) * 365 + floor((number(substring(xdXDocument:get-DOM()/my:mesChamps/my:startDate, 1, 4)) + 4800 - floor((14 - number(substring(xdXDocument:get-DOM()/my:mesChamps/my:startDate, 6, 2))) div 12)) div 4) - floor((number(substring(xdXDocument:get-DOM()/my:mesChamps/my:startDate, 1, 4)) + 4800 - floor((14 - number(substring(xdXDocument:get-DOM()/my:mesChamps/my:startDate, 6, 2))) div 12)) div 100) + floor((number(substring(xdXDocument:get-DOM()/my:mesChamps/my:startDate, 1, 4)) + 4800 - floor((14 - number(substring(xdXDocument:get-DOM()/my:mesChamps/my:startDate, 6, 2))) div 12)) div 400) - 32045) >= 0)]) div 2011
    il faut cocher le Xpath.

    en simplifié ça donne:
    SOMME ( ANNEE où ANNEE = 2011 et DATE traduite en chiffre <= endDate traduite en chiffre et DATE traduite en chiffre >= startDate traduite en chiffre) divisé par 2011 pour avoir le nombre de fois où c'est vérifié.

    il faudra mettre l'année en cour dans un champ à insérer à la place de 2011 et faire la même chose pour l'année suivante en additionnant les 2 sommes (pour avoir les jour fériés de l'année suivante au cas où l'utilisateur prendrait 2 dates du style 20/12/2011 jusqu'a 10/01/2012).

    je précise que je ne maitrise que moyennement les notions infopath, et pas dutout les webservices ^^"

    Merci d'avoir pris le temps de me répondre

Discussions similaires

  1. Validation des informations saisies dans des TextBox
    Par marwa21 dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 14/05/2011, 00h13
  2. Réponses: 16
    Dernier message: 06/10/2010, 17h21
  3. Réponses: 0
    Dernier message: 19/02/2010, 13h24
  4. Réponses: 2
    Dernier message: 16/05/2008, 17h51
  5. Réponses: 2
    Dernier message: 18/01/2008, 15h59

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