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

SharePoint .NET Discussion :

colonne auto incremental sur sharepoint


Sujet :

SharePoint .NET

  1. #1
    Membre actif Avatar de hbennou
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 162
    Points : 205
    Points
    205
    Par défaut colonne auto incremental sur sharepoint
    Bonjour
    j'ai programmé un petit code avec c# pour avoir une colonne auto incremental dans ma liste sharepoint.
    J'ai essayé tout d'abord de faire une connexion à une base qui contenait une colonne auto incremental.je selectionnais le max de cette colonne ensuite j'affecte le resultat à un champ de ma liste sharepoint apres la creation d'un nouvel element. Mon code (Pour la connection,insert et select) marche correctement ; et quand je veux le tester sur sharepoint ca ne marche pas.
    Enfin j'ai essayé avec des fichiers , ça marche mais il m'affiche sur ma liste sharepoint des valeurs bizarres genre {11;19;31.....} malgrés que mon fichier Fichier1.txt contenait 1. Et le probléme c'est quand j'essaie mon code à part ça marche correctemet. Voici mes 2 classes qui sont dans deux projets differents le premier une classLibrary et le deuxieme c'est une consoleApplication:


    using System;
    using System.Collections.Generic;
    using System.Text;
    using Microsoft.SharePoint;
    using System.Data;
    using System.IO;


    namespace ClassLibrary2
    {


    publicclassClass1 : SPItemEventReceiver
    {




    public override void ItemAdded(SPItemEventProperties properties)
    { GenerateID(properties); }


    public override void ItemUpdated(SPItemEventProperties properties)
    { GenerateID(properties); }


    void GenerateID(SPItemEventProperties properties)
    {


    int r = 0;

    string line=null;

    string resultat = null;

    try
    {



    StreamReader sr = null;

    StreamWriter sw = null;

    //myfile.txt est un fichier temporaire

    File.Delete(@"D:\myfile.txt");

    File.Copy(@"D:\Fichier1.txt",@"D:\myfile.txt" );
    sr = new StreamReader("D:\\myfile.txt");
    line = sr.ReadLine();

    r = Int32.Parse(line);
    r = r + 1;

    resultat = Convert.ToString(r);
    sr.Close();


    File.Delete(@"D:\Fichier1.txt");
    sw=newStreamWriter("D:\\Fichier1.txt");
    sw.Write(r);

    sw.Close();


    File.Delete(@"D:\myfile.txt");
    }


    catch (Exception e){ Console.WriteLine(e.Message); }

    SPListItem order = properties.ListItem;
    order["numéro"] =resultat.ToString(); ;
    order.Update();


    }


    }


    }


    _______________________________________________________




    using System;
    using System.Collections.Generic;
    using System.Text;
    using Microsoft.SharePoint;
    namespace

    ConsoleApplication1
    {


    classProgram
    {


    staticvoid Main(string[] args)
    {


    SPSite collection = newSPSite("http://bennour-kbyqxs3:1234");

    SPWeb site = collection.OpenWeb();

    SPList Annexes = site.Lists["Annexes"];

    String asmName = "ClassLibrary2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=79377c6a1b15d1f3";

    String className = "ClassLibrary2.Class1";
    Annexes.EventReceivers.Add(SPEventReceiverType.ItemAdded, asmName, className);
    Annexes.EventReceivers.Add(SPEventReceiverType.ItemUpdated, asmName, className);
    }

    }

    }

    S'il vous plait si quelqu'un peut m'aider j'en ai besoin. Merci infiniment.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 107
    Points : 127
    Points
    127
    Par défaut
    Premierement as-tu essayer de t'attacher au processus, pour voir ce qu'il se passe dans ton code, niveau de l'event? et où ça plante?

    Puis ta méthode me semble un peu lourde. Lecture dans un ficher etc...
    Ne serait-il pas mieux de tout faire avec les listes SharePoint?
    Tu crée une colonne dans ta liste ou même mieux dans une autre liste qui te servira uniquement pour t'indiquer le nombre que tu dois mettre apres dans ta colonne. Du genre :
    Ex:
    la colonne index de ta liste IndexNumber à une valeur par défaut de 1 (du clique sur Sharepoint)
    Puis dans ton event tu récupère cette valeur et tu la met à jour apres, pour toujours avoir le bon nombre. Bien sur cette valeur tu la places dans la colonne utile.

    En espérant que cela t'ai aidé.

  3. #3
    Membre actif Avatar de hbennou
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 162
    Points : 205
    Points
    205
    Par défaut
    merci mais je n'ai pas su comment recuperer des champs d'une liste. Pouvez vous me montrer merci encore.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 107
    Points : 127
    Points
    127
    Par défaut
    Dans pour que ça colle à l'exemple précedent :

    SPWeb web = SPContext.Current.Web;
    SPList list = web.Lists["IndexNumber"]; //sélection de la liste IndexNumber
    SPListItem itemm = list.Items[0]; // 1ere ligne de la liste
    Console.WriteLine("Voici la valeur dans la colonne index "+ item["index"]); // affiche la valeur qu'il y a dans la colonne index, de la première ligne de la liste IndexNumber

    Après il faut faire attention avec les noms dans ton code, car pour si on change les noms via interface, ton code ne marchera plus.
    Tu peux donc passer par les ID par exemple.

  5. #5
    Membre actif Avatar de hbennou
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 162
    Points : 205
    Points
    205
    Par défaut
    J'ai changé ma class library comme cela et ça ne donne tjrs rien:
    using System;
    using System.Collections.Generic;
    using System.Text;
    using Microsoft.SharePoint;
    namespace ClassLibrary2
    {
    public class Class1 : SPItemEventReceiver
    {

    public override void ItemAdded(SPItemEventProperties properties)
    { GenerateID(properties); }
    public override void ItemUpdated(SPItemEventProperties properties)
    { GenerateID(properties); }
    void GenerateID(SPItemEventProperties properties)
    {
    int res =0;
    String resulta = null;
    int i=0;

    SPWeb web = SPContext.Current.Web;
    SPList list = web.Lists["Annexes"];

    SPListItem order = properties.ListItem;
    while (i<list.ItemCount)
    { i++; }
    SPListItem item = list.Items[i];
    resulta=Convert.ToString(item["numero"]);
    res = Int32.Parse (resulta);
    res++;

    order["numero"] = res;
    order.Update();}
    }
    }

    aidez moi merci

  6. #6
    Membre actif Avatar de hbennou
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 162
    Points : 205
    Points
    205
    Par défaut
    J'ai contourné le probléme avec office sharepoint designer.
    voici le lien pour la solution à ce type de probléme:
    http://forums.microsoft.com/msdn/sho...&tf=0&pageid=0
    Merci et si quelqu'un peut m'expliquer pourquoi ma premiere methode n'a pas fonctionné je lui serai reconnaissant.
    Un grand merci pour han75

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Simuler un comportement en auto increment sur une colonne
    Par abc.xyz dans le forum Administration
    Réponses: 18
    Dernier message: 20/08/2015, 15h14
  2. Auto Increment sur champs numérique
    Par Sami Xite dans le forum Access
    Réponses: 19
    Dernier message: 09/02/2007, 16h40
  3. [debutant]Auto incrementation sur sql-server 2000
    Par syl2095 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 18/11/2004, 18h00
  4. COLONNE AUTO INCREMENTE
    Par kanzarih dans le forum Débuter
    Réponses: 2
    Dernier message: 12/10/2004, 10h36
  5. Pb d'auto-incrément sur une table v7
    Par Nivux dans le forum Paradox
    Réponses: 9
    Dernier message: 26/12/2002, 12h05

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