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

jQuery Discussion :

Compter combien de mot dans une list Sharepoint


Sujet :

jQuery

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Points : 39
    Points
    39
    Par défaut Compter combien de mot dans une list Sharepoint
    Bonjour,

    Je cherche un script qui me permettrait de compter le nombre d'action ('une plan d'action) dans SharePoint en fonction de son statut.
    Dans la colonne "STATUS" de la liste "LISTE", je souhaiterais compter combien d'action ont le status :
    "En cours" et "terminé".

    Idéalement je souhaiterais avoir une variable par status qui contient le nombre de status pour les placer dans un tableau html du type :

    | EN COURS | TERMINE |
    -------------------------------
    | xxx | yyy |

    D'après les infos que j'ai trouvé sur le web, il faut pour cela le faire grace à script que je mettrais dans le script editor.
    Mais comme je ne sais pas coder en JavaScript, je cherche une ame charitable qui aurait la réponse

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    ce n'est pas aussi simple que cela, même pour quelqu'un qui connait parfaitement js ...

    Il faut savoir comment tu interroges la liste en question, sur la page de liste elle même? à partir d'une autre page ? , ( avec l'api search ? du camel query? avec CSOM ou JSOM ?)

    Si c'est sur la page de la liste ou un affichage de la laits il faudra en effet insérer un composant script sur la page et étudier la structure du code html -DOM) afin de récupérer les éléments souhaites.
    Si c'est par requête à partir d'une autre page, il faudra selon le retour parser le résultat pour dénombrer ce que tu souhaites
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Points : 39
    Points
    39
    Par défaut
    Oui je pense que ce n'est pas si simple.

    Je ne sais pas si avec ma pauvre connaissance je vais pouvoir te donner les infos relatives à tes questions, mais je peux te dire ce que j'ai déjà en place :

    - La liste est dans une page
    - Dans la page il y a aussi un editeur de script.
    - Via cet éditeur, j'ai deja un script qui me permet de faire du format conditionnel :
    --> Les lignes de la liste passent en vert quand le status de l'action est "Implémentée"
    --> Les lignes de la liste passent en gris quand le status de l'action est "Non retenue"

    Je me dis que si le script arrive a trouver la ligne grace au status, je me dis qu'il est aussi capable de compter et de stocker l'info dans une variable que je peux reprendre pour la mettre en forme. Je ne sais pas si c'est possible.

    Voici le script deja en place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script> 
    <script>
     
     
     
        $(document).ready(function(){
     
            $Text = $("td .ms-vb2:contains('Implémentée')").filter(function() {
      return $(this).text() == "Implémentée";})
            $Text.parent().css("background-color", "#5fc54d");
     
            $Text = $("td .ms-vb2:contains('Non retenue')");
            $Text.parent().css("background-color", "#999999");
     
     
        }); </script>

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      $Text = $("td .ms-vb2:contains('Implémentée')").filter(function() {
      return $(this).text() == "Implémentée";})
    curieux de faire un filter sur le :contains ...



    Nous sommes donc sur une seule et même page et le script en place procède par parsage du DOM (assez maladroitement d'ailleurs au vu du doublonnage du filter )
    Il suffit selon moi de remplacer le code en place dans l'editeur de script par celui ci
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     $(document).ready(function(){
         $Cells = $("td .ms-vb2");
         $Impl=$Cells.filter(function() {return $(this).text() == "Implémentée";});
         NbrImpl= $Impl.length;
         $Impl.parent().css("background-color", "#5fc54d");
     
         $Ref= $Cells.filter(function() { return $(this).text() == "Non retenue";});
         NbrRef=$Ref.length
         $Ref.parent().css("background-color", "#999999");
     
        }); </script>

    les deux variables MbrImpl et NbrRef sont respectivement le nombre d'implémentations et de refus
    A toi des les utiliser comme tu veux par exemple en les injectant après le tableau dans des spans
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Points : 39
    Points
    39
    Par défaut
    Excellent !
    C'était donc un si petit bout de code

    Merci beaucoup de ton aide !

    Je profite de ce post pour exprimer ma nulité et de te demander si tu aurais un exemple de code a ajouter pour afficher le resultat dans la page actuelle ?

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Tout dépend d'où tu souhaites l'afficher.

    Crée un élement du DOM n'est pas compliqué.
    Ce qui l'est plus est de l'insérer dans la page quand tu ne sais pas comment la page est faite ...

    Je peux créer un div et le mettre après le tableau en partant du selecteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $("td .ms-vb2:contains('Implémentée')")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $("td .ms-vb2:contains('Implémentée')").parents('table:eq(0))
    me donne le tableau contenant les textes ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Points : 39
    Points
    39
    Par défaut
    Merci beaucoup pour ta réponse, mais dans le genre nul, je suis nul.

    Je ne suis pas certain de bien avoir compris.
    J'ai fait quelques testes mais je n'arrive pas à avoir le resultat attendu.

    Voici le dernier code que j'ai testé et je ne vois pas de tableau avec le nombre de "implémentée" qui s'affiche :

    Est-ce que tu pourrais me dire ce qui me manque ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script> 
    <script>
     
     
     
        $(document).ready(function(){
     
         $Cells = $("td .ms-vb2");
         $Impl=$Cells.filter(function() {return $(this).text() == "Implémentée";});
         NbrImpl= $Impl.length;
         $Impl.parent().css("background-color", "#5fc54d");
     
         $Ref= $Cells.filter(function() { return $(this).text() == "Non retenue";});
         NbrRef=$Ref.length
         $Ref.parent().css("background-color", "#999999");
         $("td .ms-vb2:contains('Implémentée')").parents('table:eq(0));
     
        }); </script>

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      $("td .ms-vb2:contains('Implémentée')").parents('table:eq(0));
    ben déja une quote fermante ...

    Mais même avec je ne vois pas ce que tu cherches à faire ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Points : 39
    Points
    39
    Par défaut
    maintenant que j'ai grace a ton code une méthode pour compter combien de ligne contient le mot "Implémentée", maintenant j'aimerais afficher le résultat dans un tableau div ou td qui se trouve sur cette meme page.

    Merci pour ta patience SpaceFrog

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //on créé un div avec le bon texte dedasn
    $div=($('<div/>').html('Implémenté : '+NbrImpl+'</br/>Non Retenus : '+NbrRef);
    //on pointe sur le tableau et on colle el div après 
      $("td .ms-vb2:contains('Implémentée')").parents('table:eq(0)').After($div);
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Points : 39
    Points
    39
    Par défaut
    Donc ca donne ca ?
    J'ai copié/collé le code ci-dessous et pour le moment je n'ai pas de resultats

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script> 
    <script>
     
     
     
        $(document).ready(function(){
     
         $Cells = $("td .ms-vb2");
         $Impl=$Cells.filter(function() {return $(this).text() == "Implémentée";});
         NbrImpl= $Impl.length;
         $Impl.parent().css("background-color", "#5fc54d");
     
         $Ref= $Cells.filter(function() { return $(this).text() == "Non retenue";});
         NbrRef=$Ref.length
         $Ref.parent().css("background-color", "#999999");
     
    //on créé un div avec le bon texte dedasn
    $div=($('<div/>').html('Implémenté : '+NbrImpl+'</br/>Non Retenus : '+NbrRef);
    //on pointe sur le tableau et on colle el div après 
      $("td .ms-vb2:contains('Implémentée')").parents('table:eq(0)').After($div);
     
        }); </script>

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    cela devrait insérer un div en dessous du tableau ...
    regarde dans le code source en console voir si le div est bien inséré.
    Après c'est peut être aussi un souci d'affichage (ovreflow)
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Points : 39
    Points
    39
    Par défaut
    Je viens de regarder la console.

    Avec les deux lignes qui permettent d'afficher le tableau avec le résultats du nombre "implémenté" à savoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script> 
    <script>
     
     
     
        $(document).ready(function(){
     
         $Cells = $("td .ms-vb2");
         $Impl=$Cells.filter(function() {return $(this).text() == "Implémentée";});
         NbrImpl= $Impl.length;
         $Impl.parent().css("background-color", "#5fc54d");
     
         $Ref= $Cells.filter(function() { return $(this).text() == "Non retenue";});
         NbrRef=$Ref.length
         $Ref.parent().css("background-color", "#999999");
     
    //on créé un div avec le bon texte dedasn
    $div=($('<div/>').html('Implémenté : '+NbrImpl+'</br/>Non Retenus : '+NbrRef);
    //on pointe sur le tableau et on colle el div après 
      $("td .ms-vb2:contains('Implémentée')").parents('table:eq(0)').After($div);
     
        }); </script>
    Le script ne se lance pas et le div ne se crée pas. La formatage conditionnel qui permettait de coloré les lignes ne fonctionne plus également.

    Quand j'enlève les 2 lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
         $Ref= $Cells.filter(function() { return $(this).text() == "Non retenue";});
         NbrRef=$Ref.length
         $Ref.parent().css("background-color", "#999999");
    Les couleurs du tableau reviennent.

    As tu une idée qui pourrait résoudre le problème ?

    Merci pour ton support

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script> 
    <script type="text/html">
     $(function(){
     
         $Cells = $("td .ms-vb2");
         $Impl=$Cells.filter(function() {return $(this).text() == "Implémentée";});
         NbrImpl= $Impl.length;
         console.log(NbrImpl);
         $Impl.parent().css("background-color", "#5fc54d");
     
         $Ref= $Cells.filter(function() { return $(this).text() == "Non retenue";});
         NbrRef=$Ref.length;
         console.log(NbrRef);
         $Ref.parent().css("background-color", "#999999");
     
    //on créé un div avec le bon texte dedans
    $div=($('<div/>').html('Implémenté : '+NbrImpl+'</br/>Non Retenus : '+NbrRef);
    console.log($div.html());
    //on pointe sur le tableau et on colle le div après 
      $("td .ms-vb2").parents('table:eq(0)').After($div);
     
        }); </script>
    Que donne le script ci dessus en console ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Compter nombre de mots dans une cellule Excel
    Par nkhalidy dans le forum Excel
    Réponses: 6
    Dernier message: 12/07/2017, 21h12
  2. Problème de format dans une liste SharePoint
    Par tipierre76 dans le forum SharePoint
    Réponses: 1
    Dernier message: 05/06/2008, 20h21
  3. clé unique dans une liste sharepoint
    Par makinda dans le forum SharePoint
    Réponses: 1
    Dernier message: 14/05/2008, 08h35
  4. Déposer un fichier automatiquement dans une list sharepoint
    Par nico18987 dans le forum SharePoint
    Réponses: 7
    Dernier message: 22/12/2007, 12h19
  5. Compter nombre de mots dans une chaîne.
    Par xVINCEx dans le forum C++
    Réponses: 22
    Dernier message: 24/11/2004, 13h33

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