Eigenschaften-Thema

Guten Morgen,
ich habe aus einem Thema eine Auswahl getroffen und in myList schreiben lassen.
Nun möchte ich diese myList an die "Eigenschaften-Thema" übergeben und nur diese Auswahl im View angezeigt bekommen.
Wie mach ich das in Avenue ??
Im voraus meinen Dank
Klaus
Du musst die Auswahl (theSelBitmap) als definition-bitmap setzen:

theVTab.SetDefBitmap(theSelBitmap)

Übrigens gibt's da ein wunderschönes Skript von Nick Seigal, das genau das macht:

' Name: "Red Rover, Red Rover"
' Description: Hides or shows shapes based on the current selection
' Use as a click script on a button in the view and/or
' GUIs.
' Author: Nick Seigal, Copyright 1999 nick@crit.com
' Permissions: Use with my blessings, but please acknowledge me if
' you include this functionality in an application.
'
'=======================================

theDoc = av.GetActiveDoc
theVTab = nil

if (theDoc.GetClass.GetClassName = "View") then

theView = theDoc
theThemes = theView.GetActiveThemes
for each thm in theThemes
if (thm.GetClass.GetClassName = "FTheme" ) then
theVTab = thm.GetFTab
break
end
end
if (theVTab = nil) then
return nil
end
elseif ( theDoc.GetClass.GetClassName = "Table" ) then
theTable = theDoc
theVTab = theTable.GetVTab
else
return nil
end

theSelBitmap = theVTab.GetSelection
theDefBitmap = theVTab.GetDefBitmap
if (theSelBitmap = theDefBitmap) then
theAllBitmap = theSelBitmap.Clone
theAllBitmap.SetAll
theDefBitmap = theVTab.SetDefBitmap(theAllBitmap)
theVTab.UpdateDefBitmap
else
theVTab.SetDefBitmap(theSelBitmap)
theVTab.UpdateDefBitmap
end

if (theDoc.Is(View)) then
theDisplay = theDoc.GetDisplay
theDisplay.Flush
theDoc.Draw(theDisplay)
end
Danke Maxilla,
NUR (wahrscheinlich mache ich wieder zu komplizierte Umwege)
ich komme mit SetDefBitmap nicht zurecht und wenn man das
schöne Script vom Herrn Seigal laufen läßt, haut das einem alle
Datensätze aus der Tabelle.. Ich füge mal einen Ausschnitt aus
meinem Script an.
For each rec in theVTab
Landkreis = theVTab. ReturnValue(KFZ_Zeichen, rec)
Wert = theVTab.ReturnValue(Sp_Stand, rec)
If ((Landkreis = Lkr) and (Wert = Stand)) then
einVerfahren = theVTab.ReturnValue(Verfahren, rec)
myList.Add(einVerfahren)
end
end
Hier schreibt er also meine Auswahl in myList
UND DIE möchte ich gern als Auswahl den
Eigenschaften-Thema übergeben
Kannst Du Dich nochmal bemühen ?
NochNKlaus
Hallo Klaus2,

Hier schreibt er also meine Auswahl in myList UND DIE möchte ich gern als Auswahl den Eigenschaften-Thema übergeben

moechtest du die in der If-Bedingung definierte Auswahl auf dein Thema anwenden? Dann hilft dir meines Erachtens eine Abfrage mit Avenue weiter:

aVTab.Query (aQueryString, aBitmap, aSelType), wobei:

aQueryString = "(([Lkrfeld] = ""LKRXYZ"") and ([Wertfeld] = ""StandXYZ""))"
aBitMap = aVTab.GetSelection
aSelType = #VTAB_SELTYPE_NEW

Ich hoffe, dass darin keine Tippfhler enthalten sind.

Gruss und schoenes Wochenende

Uwe(dot)Lange(at)Lange-is(dot)de
Was den Vorteil hätte, dass du den von Uwe gesetzten Querystring auch direkt in eine definition-bitmap schreiben könntest...

theVTab.SetDefinition(theQString)

...wodurch im View (und natürlich auch in der Tablelle) auch nur diese Datensätze dargestellt würden.

Oder du erstellst VOR deiner Schleife eine Bitmap...

theBitMap = aVTab.GetSelection
theBitMap.ClearAll

... und füllst diese dann durch deine Selektion auf indem du in der Schleife hinter "myList.Add(dingsbums)" eine Zeile einfügst...

theBitmap.Set(rec)

...die du hinterher über...

theVTab.SetDefBitmap(theBitmap)
theVTab.UpdateDefBitmap

...als definition-bitmap setzt (wenn du weißt was ich meine :)

PS: Eine definition-query oder eine definition-bitmap ist nicht mit der puren "gelben" Selektion gleichzusetzen. Datensätze, die nicht in der Definition enthalten sind werden "aus der Datequelle" heraus einfach nicht dargestellt. Wenn du deine Query (oder eben deine Bitmap) als definition setzt, werden eben nur die Datensätze deiner Abfrage (oder deiner Selektion) dargestellt.
Hallo Maxilla - Hallo Uwe,
(inzwischen war Wochenende - deshalb kommt mein Dank verspätet)
Danke - mit den prima Tips bin ich weitergekommen und gleichzeitig in eine Falle
getappt: DefBitmap sind für mich was neues und sind - wie in meinem Fall - was
nützliches. ABER einmal auf ne VTab angewandt, verhält sich die VTab recht
eigenartig. Frage : WIE stelle ich den Normalzustand der VTab wieder her ?
((Spricht mal wieder alles für ein Avenue-Seminar in Bayern bzw. Süddoitschland,
ich zumindest wär in jedem Fall dabei...))
NochNKlaus
>>"WIE stelle ich den Normalzustand der VTab wieder her"

Im oben geposteten Skript wird das ja so gemacht:

theSelBitmap = theVTab.GetSelection
theAllBitmap = theSelBitmap.Clone
theAllBitmap.SetAll
theDefBitmap = theVTab.SetDefBitmap(theAllBitmap)
theVTab.UpdateDefBitmap


Wenn eine "definition-query" dahintersteckt, kannst du's auch über folgende Zeile machen:

theVTab.SetDefinition ("")

Die Definitionsabfrage anschauen kannst du über:

MsgBox.Info(theVTab.GetDefinition,"")
DANKE Maxilla,
du hast mir sehr geholfen, weil ich nun mit dieser DefBitmap nochn andres Programm verbessern kann, das mit der SelBitmap zwar auch ganz fein läuft aber besser ausfällt und genauer Auskunft gibt als z.Zt.
NochNKlaus