#1 Fri 07 April 2000 13:28
- Frédéric Férant
- Invité
[ArcView 3.x] Numéroter un champ ID
rehello.
encore moi !
J'ai un petit probleme (1 de +) :
Comment creer une colonne Id (nombre identifiant) dans laquelle la premiere valeur est 1 et la derniere 5667 ?
J'ai deja cree le champ (field !) Id dans la table , mais il faut le remplir.
a merci.
defre
ps: p'tetre une ? pour toi Christof' B
#2 Fri 07 April 2000 13:31
- William Huber
- Invité
Re: [ArcView 3.x] Numéroter un champ ID
Bonjour,
L'expression rec , dans le texte du field calculator , sera substituee par 0, puis 1, 2, etc.
Ainsi, rec 1 sert a creer la suite 1, 2, ..., 5667. Il ne faut pas utiliser un script pour cela.
A plus,
Bill Huber
www.quantdec.com
#3 Fri 07 April 2000 13:32
- Jenny Dupuy
- Invité
Re: [ArcView 3.x] Numéroter un champ ID
Bonjour,
Voici un script qui permet de faire ce que tu veux. Charge le script en piece jointe ou recopies ce qui suit dans un script (a compiler) :
J'espere que ca peux t'aider.
Code:
'Permet de numeroter chaque enregistrement 'Auteur : Jenny Dupuy 'Date : 07/04/00 'Precisions : '************ 'Il faut entrer le nom exact de la table attributaire et le premier chiffre de la serie 'Quand l'execution du script est terminee, sauvegarder les changements (Stop editing) theProject = av.GetProject theNomTable = msgBox.Input( Entrer le nom de la table: , , Attributes of ) theNom = theNomTable.asString theTable = theProject.FindDoc(theNom) if (theTable = nil) then msgbox.warning( Cette table n'existe pas , ) else theVTab = theTable.GetVTab theFieldID = theVTab.FindField( ID ) if (theFieldID = nil) then msgbox.Warning( Il faut creer le champ ID , ) else theVTab.SetEditable(true) theNumber = msgBox.Input( Entrer le premier chiffre: , , 1 ) theNumber = theNumber.asNumber for each rec in theVTab theVTab.SetValue(theFieldID,rec,theNumber) theNumber = theNumber 1 end msgBox.Info( Execution terminee , ) end end
#4 Fri 07 April 2000 13:32
- Claude MONTEIL
- Invité
Re: [ArcView 3.x] Numéroter un champ ID
Vous pouvez utiliser le script suivant (qui suppose preselectionnee la table) :
Code:
maTable = av.GetActiveDoc maVTab = maTable.GetVTab monChamp = maVTab.FindField( Id ) i = 0 for each element in maVTab i = i + 1 maVTab.SetValue(monChamp, element, i ) end