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
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
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von Maxilla am Fr., 24.06.2005 - 09:56
PermalinktheVTab.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
Gespeichert von Gast am Fr., 24.06.2005 - 11:17
PermalinkNUR (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
Gespeichert von uwelangehh am Fr., 24.06.2005 - 13:31
PermalinkHier 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
Gespeichert von Maxilla am Fr., 24.06.2005 - 13:45
PermalinktheVTab.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.
Gespeichert von Gast am Mo., 27.06.2005 - 08:38
Permalink(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
Gespeichert von Maxilla am Mo., 27.06.2005 - 09:13
PermalinkIm 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,"")
Gespeichert von Gast am Mo., 27.06.2005 - 09:44
Permalinkdu 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