Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 11 July 2006 16:41

Coriolan
Participant occasionnel
Date d'inscription: 11 Jul 2006
Messages: 10

[Programmation Arcgis 9] Récupérer valeurs diférentes d'un champs

Bonjour

dans le même projet que pour ma précédentes questions (qui pose toujours problême) je demande de l'aide pour quelque chose à priori plus simple.

J'ai récupéré une Layer Bar et je voudrai récupérer les différentes valeurs prises pour le champ type (snack,café,salon de thé ...).

Je voudrai que cela se fasse de façon automatique car à l'avenir de nouveaux type pourraient être définis et que cela se fasse le plus rapidement possible (pour l'instant j'ai deux boucles fort imbriquées l'une dans l'autre et c'est long).

Merci d'avance....

Hors ligne

 

#2 Tue 18 July 2006 11:51

laurent
Juste Inscrit !
Lieu: Brest
Date d'inscription: 5 Sep 2005
Messages: 8

Re: [Programmation Arcgis 9] Récupérer valeurs diférentes d'un champs

Bonjour,

Vous trouverez ci-dessous une fonction qui fait ça

Cordialement,
Laurent MEAR


'Remplir une collection avec les valeurs d'un champ
    Private Sub RemplirListeValeurs(Byval pTable As ITable,  ByVal VSLT_FIELD As String, ByRef VLOB_COLVAL As Collection)

                Dim pFields As IFields = pTable.Fields

                ' rechercher la position du champ
                Dim VLNN_POSFI As Integer = pFields.FindField(VSLT_FIELD)
                Dim pField As IField = pFields.Field(VLNN_POSFI)
                'remplir la collection de valeur si le champ est de type chaine
                'If pField.Type = esriFieldType.esriFieldTypeString Then
                Dim pTableSort As New TableSort
                With pTableSort
                    .Fields = pField.Name
                    .Ascending(pField.Name) = True
                    .CaseSensitive(pField.Name) = False
                    .QueryFilter = Nothing
                    .Table = pTable
                End With
                pTableSort.Sort(Nothing)
                Dim pCursor As ICursor = pTableSort.Rows
                Dim pDataStatistics As IDataStatistics = New DataStatistics
                pDataStatistics.Field = pField.Name
                pDataStatistics.Cursor = pCursor

                Dim pEnum As System.Collections.IEnumerator
                Dim VLST_VALUE As String
                Try
                    ' lancer le tri des valeurs unique
                    pEnum = pDataStatistics.UniqueValues()
                    ' compter les valeur uniques
                    Dim VLNN_NBVAL As Integer = pDataStatistics.UniqueValueCount
                    If VLNN_NBVAL > VGNN_NBMAXVAL Then
                        VLOB_COLVAL.Add("trop de valeurs")
                    Else
                        While pEnum.MoveNext() = True
                            VLST_VALUE = CStr(pEnum.Current)
                            If Trim(VLST_VALUE).Length > 0 Then ' on ajoute la valeur si elle n'est pas vide
                                VLOB_COLVAL.Add(VLST_VALUE)
                            End If
                        End While
                    End If
                Catch
                    MsgBox(Err.Description)
                End Try
            End If
   End Sub

Laurent MEAR
Direction Informatique et Télécom
Brest métropole océane
Tél: 02.98.34.30.32

Hors ligne

 

#3 Tue 18 July 2006 18:43

Coriolan
Participant occasionnel
Date d'inscription: 11 Jul 2006
Messages: 10

Re: [Programmation Arcgis 9] Récupérer valeurs diférentes d'un champs

Merci pour la fonction je n'ai plus qu'à la trduire en Java .... smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB