Hilfe für Script

Hallo Forum,

ich scheitere grade wiederholt an einem Script für eine Suche:
Aus dem View heraus sollen zwei Felder in einer Attributtabelle nach einzugebenden Texten abgefragt werden.
Sprich: zuerst sollen Eingaben gemacht werden für Ort und Straße, und die sollen dann in der Tabelle gefunden werden (jede Straße gibt es in jedem Ort nur einmal). Anschließend soll auf die Straße gezoomt werden.

Hier mein Code (soweit ich komme):

'find.street
theView = av.getactivedoc
theThemelist = theView.getactivethemes
theTheme = theThemelist.get(0)
theFTab = theTheme.getFTab
aField = theFTab.FindField("Ort","Betextung1")

eingabefelder = {"Ort", "Straße"}
standardwerte = {"",""}

key = MsgBox.MultiInput( "Welche Straße suchen Sie?", "", eingabefelder, standardwerte)


if (key <> Nil) then
rec = theFTab.Find(key)
if (rec = Nil) then
MsgBox.Warning("Keine Treffer.","")
else
b = theFTab.GetVTab.GetSelection
b.ClearAll
b.Set(rec)
theFTab.GetVTab.UpdateSelection
'theFTab.ShowRow(theFTab.ConvertRecordToRow(rec))
end
end

av.GetProject.SetModified(true)
theView = av.GetActiveDoc
r = Rect.MakeEmpty
for each t in theView.GetActiveThemes
if (t.CanSelect) then
r = r.UnionWith(t.GetSelectedExtent)
end
end
if (r.IsEmpty) then
return nil
elseif ( r.ReturnSize = (0@0) ) then
theView.GetDisplay.PanTo(r.ReturnOrigin)
else
theView.GetDisplay.SetExtent(r.Scale(1.1))
end


Ich schätze, ich habe die Übergabe der Eingabe-Werte noch nicht richtig geregelt, kann das aber nicht ausprobieren, weil ich immer die Fehlermeldung "Funktion FIND ist unbekannt" erhalte.

Könnt Ihr mir weiterhelfen?

Danke im Vorraus,
Maggie
Also wenn ich das richtig verstehe versuchst du eine Liste als Ergebniss von MultiInput mit zwei Einträgen an die Funktion Find zu übergeben die aber einen String erwartet. Das kann so nicht funktionieren. An die beiden Einträge in der Liste kommst du mit key.Get(1 bzw. 2).
> aField = theFTab.FindField("Ort","Betextung1")

Die Zeile verstehe ich nicht, lässt sich das bei dir kompilieren?

> key = MsgBox.MultiInput( "Welche Straße suchen Sie?", "", eingabefelder, standardwerte)

MultiInput gibt eine Liste zurück. Auf Ort und Straße kannst du dann so zugreifen

strOrt = key.Get(0)
strStrasse = key.Get(1)

Die Selektion solltest du dann mit einer Query machen (die Feldnamen musst du noch anpassen):

strQuery = "([Ort] = " + strOrt.Quote + ") and ([Strasse] = " + strStrasse.Quote + ")"

theFTab.Query (strQuery,theFTab.GetSelection, #VTAB_SELTYPE_NEW)

Dann kannst du mit dem Zoomen beginnen.

Ich hoffe die Syntax stimmt, ich habe gerade leider kein ArcView 3 zur Hand.
Lieber Gast,
ich DANKE DIR!
Ich wußte, daß irgendein Denkfehler in meinem Script war. Auf Query bin ich einfach nicht gekommen... Bin halt Avenue-Neuling.
Es klappt mit der Query, einfach toll!

Maggie