Tabellenfelder auslesen

Mein Problem besteht darin, dass ich aus einer Tabelle einzelne spezifische Felder (Textfeld Bsp. Ortsname, Info zum Ort etc.) auslesen und in einer Messagebox darstellen lassen will. Leider bekomme ich mit den scripts nur alle Feldeinträge hintereinander ausgelesen.

Hat jemand mal ein Beispielscript mit funktionierenden IDs parat?
Wäre nett,wenn jemand helfen könnte, obwohls einfach sein müsste bekomm ich es nicht hin...
Hallo auch,

Leider bekomme ich mit den scripts nur alle Feldeinträge hintereinander ausgelesen.
Welches Script? Der Code waere hilfreich.

Gruss

Uwe
Beispiel 17:
theview=av.getactivedoc
Thema=theview.getactivethemes.get(0)
theFtab=Thema.getftab
NameFeld=theftab.findfield("Name")
for each rec in theftab 'durchlaufe jeden Datensatz (rec) der Tabelle
DerName=theftab.returnvalue(NameFeld,rec) 'gib mir das, was im Namenfeld des Datensatzes steht
msgbox.info(DerName,"Name der Fläche"++rec.asstring) 'Namen als Info ausgeben
end

Dieses Script von Jürgen Evert (Homepage, Beispiel 17) scheint mir das einzig sinnvolle zu sein, da ich lediglich genau diese Angabe einer Zelle haben möchte.
Ich weiss auch, dass ID Felder benötigt werden, um nun an eine einzelne Zelle "ranzukommen", aber ich hab es bisher nicht geschafft dies zu implementieren.
(Also mein Avenue-Verständnis bewegt sich immer noch im "Anfängerbereich")
Ich weiß nicht genau, wie du die gewünschte Zelle finden willst, entnehme deinen Ausführungen aber, dass Du die Datensätze über eine ID identifizieren kannst...

Probier's mal damit:

theView=av.getActiveDoc
theThm = theView.getActiveThemes.get(0)

theVTab = theThm.getFTab
theIdFeld = theVTab.findfield("ID")
NameFeld = theVTab.findfield("Name")

theIDList = List.Make

for each rec in theVTab
theIDList.Add(theVTab.ReturnValueString(theIdFeld, rec))
end

theSelIDList = MsgBox.MultiListAsString(theIDList,"Waehle alle Werte fuer Namensinfo:"," ID-Auswahl")

if ((theSelIDList = NIL) or (theSelIDList.count = 0)) then
return NIL
end

theBitmap = theVTab.GetSelection
theBitmap.ClearAll

a = ""+nl
for each sel in theSelIDList
for each rec in theVTab
theRecVal = theVTab.ReturnValueString(theIdFeld, rec)
if (theRecVal.asstring = Sel.asstring) then
theBitmap.Set(rec)
a = a + Sel.asstring+" : "+theVTab.ReturnValueString(NameFeld, rec)+nl
end
end
end

MsgBox.Report(a," Report")
Vielen Dank schon im Voraus...

ich werde das austesten und da hab ich gleich mal ein Script an dem ich weiter meine Avenue-Lernerfolge testen kann...
So... nochmal eine Frage zum Thema. Hab mich jetzt mal registriert, damit ich hier nicht als Gast rumrenne.

Erstmal Danke für das Script - das klappt in etwa wie ich mir das vorgestellt habe.

Eine ganz blöde Frage dazu:
Wie stelle ich die Pfadangabe auf eine bestimmte Tabelle her (im Projekt vorhanden)

theView=av.getActiveDoc
theThm = theView.getActiveThemes.get(0)
theVTab = theThm.getFTab

Diese Zeilen lesen ja nun die Tabelle des aktiven Themas aus - ich benötige allerdings den Zugriff auf andere Tabelle.
Einfach Pfadangabe reinsetzen hat bei mir so nicht funktioniert. (?)
Wenn die Tabelle im Projekt geladen ist:

theProject = av.GetProject
yourTab = theProject.FindDoc("MeineTabelle.dbf")

oder

yourTab = av.FindDoc("MeineTabelle.dbf")

dann evtl. noch

yourVTab = yourTab.GetVTab
oder aber:
theVTab = VTab.Make ("C:\temp\irgendein.dbf", false, false)
sorry, war falsch

theVTab = VTab.Make ("C:\temp\irgendein.dbf".AsFilename, false, false)
Und noch ein "oder" (wenn die Tabelle aktives Doc ist):

theTable = av.GetActiveDoc
theVTab = myTable.GetVTab
Danke vielmals!

Das die Tabelle aktives Doc sein muss will ich eigentlich verhindern...
Irgendwie find ich diese Scriptsprache verwirrend.

Wie "lernt" man Avenue eigentlich am besten?
Learning by doing! Das geht mit Avenue besonders gut. Sehr schön z.B. ist die Möglichkeit, immer schauen zu können, wie andere (etwa die ESRI-Coder) etwas gemacht haben. Die Standard-Systemscripte sind alle unverschlüsselt und bei vielen Extensions ist es genauso.

In meiner Avenue-Anfängerzeit hab ich oft darauf zurückgegriffen: Erstmal überlegen, wie man "zu Fuß" vorgehen würde, z.B. muss man sich, wenn der erste Schritt des Vorgehens das Anlegen eines neuen Shapes ist, ja nicht selber ausdenken wie man das in Avenue macht. Wenn du nämlich einen Doppelklick auf die Tool-Leiste machst, öffnet sich der "Anpassen"-Dialog, und da steht unter "View | Neues Thema...", wie das Systemscript dazu heißt. Dazuladen, nach den eigenen Vorstellungen modifiziern, kompilieren (hier beginnt's dann richtig Spaß zu machen) und dann den nächsten "zu Fuß" Schritt überdenken. Irgendwelche Beispiele oder Hinweise in anderen Skripten findet man als Anfänger immer (naja, meistens)...

Sehr schön - u.A. - auch die Hilfe in ArcView, die einem alle Requests zu allen Klassen auflistet und erklärt.

Natürlich gibt's auch ein paar Bücher dazu. Ich kenne allerdings nur das "Using Avenue", hab aber auch das nie groß benutzt.