Traitée récupération de données depuis une liste avec visual studio

  • jeudi 9 août 2012 11:44
     
     

    Bonjour,

    s'il vous plait j'ai besoin de savoir comment faire pour, 

    récupérer quelques lignes d'une liste qui n'est pas celle attaché au WorkFlow crée.

    Par exemple , 

    j'ai une varibale nommé V1=Valeur

    je veux avoir les enregistrement ou se trouve "Valeur" dans le champ C1 (tout les enregistrement) alors que cette liste n'est pas celle attaché au WF comme j'ai déjà mentionné ^^

    quelqu'un pourrai-t-il m'aider ? :)

    Merci d'avance

Toutes les réponses

  • jeudi 9 août 2012 13:09
     
     

    Bonjour,

    s'il vous plait j'aimerai savoir comment accéder à une liste sharepoint pour y récupérer quelques valeurs en sachant que ce n'est pas la liste attaché au WorKflow.

    Merci à vous

  • jeudi 9 août 2012 13:48
     
      A du code

    Bonjour

    est-ce qu'il s'agit bien de la même question que celle ci : http://social.technet.microsoft.com/Forums/fr-FR/sharepointfr/thread/2033e3b1-525d-466f-ac66-c88dd48ef9d7  ?

    Comment souhaitez vous accéder aux données ? code côté serveur ? côté client ? à quel moment ? dans quel process ? ... donnez nous votre contexte plus précisement afin que la réponse soit la plus pertinente possible !

    Pour un 1er début de réponse, le plus simple est quelque chose du genre :

    using(SPSite site = new SPSite(SPContext.Current.Web.Url))
    {
       using(SPWeb web = site.OpenWeb())
       {
          SPList lst=web.Lists["Le_Nom_De_Votre_Liste"];
          SPListItem laligne = lst.Items.GetByID(LE_ID_DE_LITEM);
          object lavaleur = laligne["LE_NOM_DE_LA_COLONNE"];
       }
    }

    en remplaçant bien sûr Le_Nom_De_Votre_Liste, LE_ID_DE_LITEM et LE_NOM_DE_LA_COLONNE par les valeurs adéquates dans votre cas...


    Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel

  • jeudi 9 août 2012 14:37
     
     

    Bonjour,

    Tout d'abord je vous remercie pour votre interet,

    oui il s'agit presque de la meme question, car je me suis dis que je pouvais le faire avec deux façon différents.

    Donc voila pour être plus précis,

    j'ai 3 listes :

    Liste 1 :

    Enregistrement :

    -G1,I1

    -G1,I2

    -G2,I3

    Liste 2 (liste de tâches):

    Création d'une tâche:

    -Titre,G1,Assigné à

    aprés la création de cette tâche je devrais avoir automatiquement 2 enregistrements dans la 3éme liste 

    qui sont :

    G1,I1,Valeur(à remplir par la suite)

    G1,I2,Valeur(à remplir par la suite)

    Voila, je boss sur SP Designer 2010 ,Visual Studio 2010 ^^ 

  • jeudi 9 août 2012 15:01
     
     
    J'ai réussi à récuperé la valeur G1 dans un WF sur Visual Studio , maintenant je dois faire une recherche dans une autre liste (non celle attaché au WF) et trouver tout les enregistrement qui ont G1 pour les récuperer, aprés on verra comment les copier dans une autre liste ^^
  • vendredi 10 août 2012 07:09
     
     Traitée A du code

    Bonjour

    C'est la même idée que ma 1er réponse sauf que pour des raisons de performances il est préférable de ne pas parcourir toutes les lignes de la liste en regardant à chaque fois si la colonne Col1 est égale à G1 par exemple...

    Il faut utiliser une SPQuery avec une requette en CAML qui va permettre de filtrer les données qui sont remontées de la BDD par SharePoint afin d'avoir directement le jeux de lignes qui vous interresse.

    ça donnerai un truc de ce genre là :

    using (SPSite site = new SPSite("http://Monsite/SousSite/"))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        SPQuery query = new SPQuery();
                        query.Query = "<Where><Eq><FieldRef Name='Col1'><Value Type='Text'>G1</Value></Eq></Where>";
                        SPList lst = web.Lists["Titre_Liste"];
                        SPListItemCollection collec = lst.GetItems(query);
                        foreach(SPListItem item in collec)
                        {
                            string value2 = item["Col2"].ToString();
                        }
                    }
                }

    Bon apprentissage ! :)


    Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel

    • Proposé comme réponse lionel limozinMVP vendredi 10 août 2012 07:09
    • Marqué comme réponse Catarssis vendredi 10 août 2012 13:38
    •  
  • vendredi 10 août 2012 09:16
     
     
    Ah, d'accord j'essai ça et je te tiens au courant, merci beaucoup beaucoup :) .
  • vendredi 10 août 2012 10:17
     
      A du code

    Rebonjour,

    je trouve un problème au niveau de la collection,

    SPListItemCollection collec = lst.GetItems(query);
                        foreach(SPListItem item in collec)[ICI]
                        {
                            string value2 = item["Col2"].ToString();
                        }

    on m'affiche sur l'espion : Collec  {Microsoft.SharePoint.SPListItemCollection} en rouge je ne sais pas si c'est au niveau de la requette ou pas ^^.

  • vendredi 10 août 2012 10:58
     
     
    Voila j'ai un résultat mais il me retourne toutes les lignes , j'ai testé la requette sur U2U CAML Query Builder ça marche, mais sur VS il me retourne tout , c'est curieux ...
  • vendredi 10 août 2012 11:24
     
     

    c'est bon ,j'ai mes champs :) , maintenant je dois créer des enregistrement dans une autre liste , un enregistrement pour chaque champs et biensure quelques champs de plus ^^ .

    y'a-t-il une méthode simple pour le faire ?

  • vendredi 10 août 2012 12:35
     
     Traitée A du code

    Tout d'abord félicitations pour cette première étape ! :)

    Merci de marquer ma réponse précédente comme réponse puisque celle ci vous a aidé.

    Pour ce qui est de la création d'item c'est assez simple, il vous faut récupérer une instance de SPList (un peu comme pour le parcours) et ensuite faire un code de ce genre :

    SPList lst = web.Lists["LaDernierList"];
    SPListItem newItem = lst.Items.Add();
    newItem["Col1"] = "value1";
    newItem["Col2"] = 42;
    newItem["Col3"] = "value3";
    //etc....
    
    //pour sauvegarder en base :
    newItem.Update();


    Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel

    • Proposé comme réponse lionel limozinMVP vendredi 10 août 2012 13:21
    • Marqué comme réponse Catarssis vendredi 10 août 2012 13:38
    •  
  • vendredi 10 août 2012 13:18
     
     
    ça maaarche , je vous remercie infiniment, vous m'avez beaucoup aidé :).
  • vendredi 10 août 2012 13:25
     
     

    Tant mieux ! :)

    Merci en échange de marquer mes réponses comme "Réponses" afin de le mettre en avant de ce thread...


    Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel