Funtkion mit Wertübergabe (2 Werte)

Hallo.

Gibt es in Avenue eine Funktion bei der man 2 Werte (string und integer) übergeben kann ? Habe leider im Handbuch nix gefunden.In VB oder C ist sowas ja ganz einfach möglich.

MFG

Sebastian
Das geht mit Listen, ObjectTags oder globalen Variablen... Wohin willst du die Werte denn übergeben?
Danke für deine Antwort :

Ich möchte aus einem externen Programm (Access) 2 Werte an eine Funktion übergeben,die anhang von 2 Attributen in Attributtabelle mir eine Polygonfläche anzeigt.Ist das möglich ?

Das habe ich bisher :

theview=av.getactivedoc
thetheme=theview.findtheme("Friedhof")
thetab=av.getproject.finddoc("Attribute von Friedhof")
thetheme.editTable
theTable = av.GetActiveDoc
thevtab=thetable.getvtab


theBitmap = theVTab.GetSelection

'Das was jetzt kommt am besten in eine Funktion wo ich die beiden Werte übergeben kann

searchgrab = "1".quote
searchfeld = "A"

theQuery = "([feld] = " +searchfeld.quote+") AND ([grabid]="+searchgrab+")"

'query and apply selection
theVTab.Query(theQuery, theBitmap, #VTAB_SELTYPE_NEW)
theVTab.UpdateSelection

av.GetProject.SetModified(true)

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
thewindow = theview.getwin
thewindow.open
if(thetab<>NIL)then
thetab.getwin.close
end

theview=av.GetActiveDoc
thetheme.setactive(true)[b][/b]
Die Abfrage ist doch an sich gut und sollte auch funktionieren - vielleicht bis auf die quotierte Grab-ID, s.u.

Dein Handling von Thema und Tabelle ist allerdings recht umständlich. Ich würde das eher so schreiben:

theview=av.getactivedoc
thetheme=theview.findtheme("Friedhof")
thevtab=thetheme.GetFTab

theBitmap = theVTab.GetSelection

searchgrab = "1" ' wenn [grabid] ein Zahlenfeld ist, muss die Quotierung weg!
searchfeld = "A"

theQuery = "([feld] = " +searchfeld.quote+") AND ([grabid]="+searchgrab+")"

'query and apply selection
theVTab.Query(theQuery, theBitmap, #VTAB_SELTYPE_NEW)
theVTab.UpdateSelection

av.GetProject.SetModified(true)

r = Rect.MakeEmpty
if (thetheme.CanSelect) then
r = r.UnionWith(thetheme.GetSelectedExtent)
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
Ach so, und wenn du die Werte per Nutzereingabe definieren willst, kannst du das am besten mit einer MultiInput-Box machen, z.B. so:

theview=av.getactivedoc
thetheme=theview.findtheme("Friedhof")
thevtab=thetheme.GetFTab

theBitmap = theVTab.GetSelection

theLabs = {"Grab-ID:","Feld:"}
theDefs = {"1","A"} ' = Defaultwerte

theCrit = MsgBox.MultiInput("Suchkriterien:"," Suche...",theLabs,theDefs)

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

searchgrab = theCrit.Get(0)
searchfeld = theCrit.Get(1)

theQuery = "([feld] = " +searchfeld.quote+") AND ([grabid]="+searchgrab+")"

'query and apply selection
theVTab.Query(theQuery, theBitmap, #VTAB_SELTYPE_NEW)
theVTab.UpdateSelection

av.GetProject.SetModified(true)

r = Rect.MakeEmpty
if (thetheme.CanSelect) then
r = r.UnionWith(thetheme.GetSelectedExtent)
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
Vielen Dank für deine beiden Antworten. Super !!!