Formel für Feldberechnung

Hallo,

betrifft ArcGIS 10

Ich möchte in einer Attributtabelle ein (Text-)Feld automatisch berechnen lassen, teilweise sollen hierzu Werte aus anderen Attributfeldern verwendet werden.

Das Ergebnis soll so aussehen: JJ-UUUUU-SSS

hierin sind:
JJ-: neuvorangestellter Text, in diesem Fall "11-"
UUUUU: die letzten 5 Ziffern aus einem numerischen Attributfeld
-: verbindendes Textzeichen, also "-"
SSS:Ausdruck aus einem nummerischen Attributfeld, wobei teilweise führende Nullen vorangestellt werden sollen, da Ursprungsattribut teils nur 1- oder 2-ziffrig

Ich hatte mal ´ne ähnliche Problemstellung vor Jahren im ArcView und habe versucht es daraus wie folgt analog abzuleiten, haut aber so leider nicht hin:

"11-"+[UNr].right(5).asstring+"-"+"000".left(3-[SN r].asstring.count)+[SNr].asstring

Ich hab von Programmiersprache nicht die geringste Ahnung und es wäre am Schönsten, wenn mir jemand mit einem fertigen Ausdruck den ich nur noch reinkopieren muss, weiterhelfen könnte.


Es ist egal was ich bisher auch schrittweise versuche habe, momentan kann ich nichtmals ein Zahlenfeld in Text umwandeln - mir erscheint auch wenn ich eine Feldberechnung in dieser Richtung ausführen will, immer ein Dialogfenster "Feldberechnung" mit folgender Fehlermeldung: "Bei der Verarbeitung ist ein Fehler aufgetreten, Einzelheiten finden Sie im Fenster mit Geoverarbeitungsergebnissen"
Leider habe ich um der Sache nachzugehen bisher nichtmals das Fenster "Geoverarbeitungsergebnisse" finden können und den Hilfefunktionen kam ich auch nicht weiter.

Ist nicht brandeilig - bin erst am Montag wieder im Büro, sag aber schon mal herzlichen Dank und wünsche schönes Wochenende

LG Marina
Hallo Marina,
da ich mit dem 9er ArcGIS lange nicht mehr gearbeitet habe und mich jetzt in das 10er einarbeite, hab ich mal probiert, verstehe das aber mit den teilweise führenden Nullen nicht. Das kann ja nur mit einer if-Abfrage funktionieren?

"11-" & right([UNr],5) & "-" & "000" & left([SNr],3)

Ich denke das ist nicht ganz richtig so. Auf jeden fall kannst Du hier den Code für die Left/Right-Geschichte ablesen und statt dem "+" musst Du ein "&" verwenden bei Text. Zahl in Text umwandeln brauchst Du offenbar nicht, bei meinem Test hat er die Zahl einfach so angehängt.

Vielleicht hilft Dir das ja schon weiter. Viel Erfolg!

Gruß,
Melanie
Hallo Marina,
ich habe zwar auch schon ArcGIS 10, aber die folgende Formel sollte in 9.3 funktionieren:

"11-" + right([UNr],5) + "-" + right("000" & [SNr],3)

Bei mir war es egal, ob ich das "+" oder ein "&" verwendet habe.

Viel Erfolg!
Gigi
In ArcGIS 10 hat man ja die Wahl zwischen VB-Script und Python. Mit dem VB-Script-Parser sollte folgendes funktionieren:

String: "11-"
String concatenation: &
Right: Right(string, length)
Left: Left(string, length)
Count: Len(string)

Macht zusammen:

"11-" & Right ( [UNr], 5 ) & "-" & Left( "000", 3-Len ([SNr])) & [SNr]

Die fallabhängige Kürzung der vorangestellten Nullen bekommt man über die Len-Funktion geregelt.
ich hab gerade den Ausdruck von Maxilla ausprobiert (wegen der vorangestellten Nullen) und es klappte im zweiten Anlauf perfekt - herzlichen Dank.

Eine abschließende Frage: ich habe im ersten Anlauf die Leerzeichen im Ausdruck weggelassen und alles direkt hintereinander geschrieben und bekam prompt wieder die schon oben beschriebene Fehlermeldung - liegt's daran? Und wo finde ich nun eigentlich diese besagten Geoverarbeitungsergebnisse?

Danke für Eure Mühen.
Bei den Leerzeichen sind die Parser bei ArcGIS schon immer etwas empfindlich gewesen. Ganz sicher geht man, wenn man überall welche einfügt.

Die Geoverarbeitungsergebnisse findest du im Menü Geoprocessing unter Results (dürfte bei der deutschen Version dann wohl "Geoverarbeitung - Ergebnisse" heißen :)
Danke, hab's gefunden
Programm bemeckert, dass er die Feldnamen nicht zuordnen kann - dürfte dann ja wohl an den Leerzeichen liegen