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

Windows Forms Discussion :

Récupérer les enregistrements d'un sorteddictionary sur clé partielle


Sujet :

Windows Forms

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut Récupérer les enregistrements d'un sorteddictionary sur clé partielle
    Bonjour,

    J'ai un sorteddictionary basé sur la structure suivante :
    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
     
        Friend Structure RecordArticleDonnees
            Dim OrdrePsgEst As String
            Dim GroupePSGEst As String
            Dim Code_art As String
            Dim Description_art As String
     
            Dim YearWeek As String
            Dim StockInitial As Long
            Dim DispoLot As Long
            Dim BesoinBrut As Long
            Dim Stockmin As Long
            Dim StockMax As Long
     
            Dim Donnees As Records_DonneesCalcul
     
            Dim KeySort As String     ' clé de TRI formée de OrdrePsgEst & Code_art
     
        End Structure
    Vous aurez compris que le champ KeySort correspond à la clé d'accès.
    En fait, la clé est composé d'un code de regroupement d'articles et d'un code article.
    Je cherche à récupérer tous les enregistrements appartement à un même code de regroupement.
    Est-ce possible ? je n'est rien trouvé dans mes recherches, ni d'exemples m'apportant une solution.

    Je vous remercie de votre aide.

    Cordialement,

    Joël

  2. #2
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    Bonjour,

    Je ne sais pas comment t'a pu composé la clé de tri et je ne suis pas vraiment doué dans les collections comme SortedDictionnary, mais quand même je vouderais savoir et sachant que la classe SortedDictionnary effectue un mélange entre un dictionnaire de type Hashtable et une liste
    standard vous donnant accès aux données via un index, ç-à-d quand peut accéder à des informations via un index comme on peux le faire via des clés, est-il possible de créer une classe (Dictionnary par exemple ou autre apparetenant au namespace Collections) où tu vas mettre comme clé l'index de la classe SortedDictionnary et comme valeur le code de regroupement.
    Comme ça, tu peux à l'aide d'un code de regroupement récupérer l'index, et à l'aide de ce dernier tu peux récupérer les informations stockées dans la classe SortedDictionnary (KeySort et enregistrement) ?!!

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut
    Merci Redouane.

    Si je comprend bien, tu me propose de faire un autre SortedDictionary avec comme clé la même et comme donnée mon code de regroupement.

    Ensuite de récupérer les clés en faisant une recherche sur la valeur.

    Cordialement,
    Joël

  4. #4
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    En fait, lorsqu'on parle de SortedDictionary, on parle d'un type de dictionnaire où on peux stocker des informations
    en associant une clé à une valeur (comme Hashtable) et dans ton cas, si je comprend bien:
    - la clé c'est KeySort (composé d'un code de regroupement d'articles et d'un code article comme t'a dis)
    - la valeur c'est des enregistrements (données)

    en plus de ça (parmi les avantages de SortedDictionary), tu peux accéder à des informations via un index numérique (à part possibilité d'y accéder
    à l'aide de la clé).
    et il y a une méthode dans la classe SortedDictionary qui permet d'accéder aux valeurs du dictionnaire soit par une clé, soit par un index
    numérique (c'est la méthode Item).

    moi je dis et avec ces informations, pourquoi pas créer un autre dictionnaire, avec comme clé (pas index) l'index numérique de la classe
    SortedDictionary et comme valeur le code de regroupement, il y aura surement liaison dans ce cas entre SortedDictionary et ta nouvelle
    classe (dicionnaire) que t'a crée.

    bah, la vérité, j'ai jamais fais ça, mais en voyant les avantages de ta classe (SortedDictionary), je pense que ci faisable, reste juste de voir
    la performance.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut
    Bonjour Redouane,

    Je te remercie pour cette précision, toutefois, je ne pense pas qu'elle fonctionne pour la raison suivante :

    Lorsque j'ajoute un élément dans mon SortedDictionary, ce dernier est re-trié en fonction de sa clé, donc les index risquent d'être perturbés, et mémoriser ces derniers serait inutile.

    Cordialement,
    Joël

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Je pense que la question à se poser est : "pourquoi as tu besoin d'un sorted dictionnary" ?

    Dans la mesure où tu ne nous donne pas d'infos sur le contexte fonctionnel, est ce que une autre solution du type utilisation d'une liste interrogée via des requêtes Linq ne serait pas plus simple et plus adaptée ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut
    Bonjour Bluedeep,

    Ah, le contexte !

    Bon, je vais tenter de l'expliquer simplement :

    Je reçois un fichier contenant les informations suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Friend Structure RecordArticle
            Dim OrdrePsgEst As String          'Ordre d'affichage du groupement article
            Dim GroupePSGEst As String       'groupement article
            Dim Code_art As String              'code article
            Dim Description_art As String      'libellé article
     
            Dim YearWeek As String             'année-semaine
            Dim StockInitial As Long             'stock initial pour cette semaine
            Dim DispoLot As Long                'lots disponibles pour cette semaine
            Dim BesoinBrut As Long              'besoins bruts pour cette semaine
            Dim Stockmin As Long                'stock minimal
            Dim StockMax As Long               'stock maximal
    End Structure
    A ce niveau, il existe "une clé d'unicité" formée de Code_art et de YearWeek .
    Les informations "OrdrePsgEst ", "GroupePSGEst " et "Description_art" proviennent de notre base articles et sont donc identiques pour un même Code_Art.

    Pour tous les enregistrements, j'ai la garantie de recevoir toujours la même plage de semaine (avec des données éventuellement à zéro)

    Dans mon fichier je n'ai aucune certitude sur le tri des informations, et je dois sortir un report trié sur :
    1) OrdrePsgEst
    2) Code_art
    où les semaines (et leurs données) seront affichées en ligne

    avec une rupture sur changement de regroupement article (donc sur l'ordre d'affichage)

    Donc, la solution qui m'a sauté aux yeux est l'utilisation d'un sorteddictionary pour avoir mes infos triées sur sur l'ordre défini ci-dessus.

    Pour générer les totaux, j'ai besoin de retrouver tous les enregistrements correspondant à un groupement articles (qui correspond aux 4 premiers caractères de ma clé).

    Vu le contexte, j'ai résolu mon problème qui était :
    sur rupture du regroupement article, retrouver les articles correspondant au regroupement précédent pour calculer ses totaux.
    en alimentant une table (code article| ordre de tri) qui me permet de reconstituer les clés d'accès et en réinitialisant celle-ci après calcul des totaux.

    J'espère avoir été assez clair, sinon, merci de me demander des précisions.

    Encore merci à vous deux, principalement à Redouane qui m'a ouvert les yeux sur cette piste.

    Cordialement,
    Joël

    PS: Si vous avez une autre solution plus performante ou plus simple à mettre en oeuvre (pour un autre projet du même type), n'hésitez pas à m'en faire aprt.

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

Discussions similaires

  1. Récupérer les enregistrements des 3 derniers mois
    Par cmoiscrat dans le forum Requêtes
    Réponses: 2
    Dernier message: 19/07/2006, 09h39
  2. Réponses: 7
    Dernier message: 30/05/2006, 11h00
  3. Réponses: 3
    Dernier message: 22/03/2006, 09h47
  4. [MySQL] Récupérer les enregistrements affectés : possible ?
    Par Seth77 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 23/02/2006, 21h32
  5. [Envoi mails]Récupérer les enregistrements MX d'un domaine
    Par streetpc dans le forum Développement
    Réponses: 7
    Dernier message: 09/06/2004, 20h00

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