Pages: 1
- Sujet précédent - [Programmation Arcgis 9] Récupérer valeurs diférentes d'un champs - Sujet suivant
#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 ....
Hors ligne
Pages: 1
- Sujet précédent - [Programmation Arcgis 9] Récupérer valeurs diférentes d'un champs - Sujet suivant