|
ABES/Objects COM-Server |
Der AOComServer erlaubt einen uneingeschränkten Zugriff auf das Klassenmodell, die Geschäftslogik und die Datenobjekte von ABES/Objects.
Er steht in zwei Varianten zur Verfügung:
AOComServer | Zur Entwicklung von
Browser-basierten Internetanwendungen: Es wird nur eine einzige Instanz dieses Objektes erzeugt, mit der sich beliebig viele Clients verbinden können, die alle den gleichen Datenbestand nutzen. |
|
AOComLocalServer | Zur Entwicklung von lokalen
Anwendungen: Für jeden Client wird eine eigene Instanz dieses Objektes erzeugt, die jeweils mit einer anderen Datenbank verbunden werden kann. |
Die Verwendung des AOComServers ist mit jedem Entwicklungssystem möglich, das Com/ActiveX-Komponenten importieren kann.
Mit dem AOComServer erstellte Anwendungen sind nicht an eine bestimmte Version von ABES/Objects gebunden. Die Investitionen in solche Anwendungen sind damit optimal geschützt.
Durch die mit
objektorientierten Systemen mögliche Polymorphie kommt der AOComServer mit sehr
wenigen Komponenten aus: Ein Datenobjekt ist immer vom Typ AOObject, gleich ob
es sich um einen Kurs, einen Teilnehmer oder einen Unterrichtsvertrag handelt.
Damit ist der Lernaufwand sehr gering und der erstellte Programmcode sehr
kompakt und kurz.
Der AOComServer
benötigt eine vorhandene Version von ABES/Objects.
Download und
Installation der AOCom-Bibliothek hier...
Das
Installationsprogramm registriert den AOComServer automatisch.
Der Name der
Bibliothek ist AOCom.dll
Installationsort
ist der Ordner C:\AO (Falls nicht von Ihnen anders angegeben)
Eine komfortablere
Nutzung (Typisierung, Code-Vervollständigung) erreichen Sie, wenn Sie die
Bibliothek in Ihrem Entwicklungssystem registrieren.
Hier ein VBA-Beispiel:
Dim AServer As Variant
:Rem Möglichkeit A: Nicht typisierte Nutzung
- oder -
Dim AServer As ACCom.AOComServer
:Rem Möglichkeit B: Typisierte Einbindung -> besser
Abb.1: AOComServer im Objektkatalog von Visual Basic
Code-Beispiele
Die aufgeführten Code-Beispiele wurden mit
Visual Basic for Applications (VBA) mit der Anwendung MS Excel erstellt.
Dieses Entwicklungssystem ist in jeder MS Office Version enthalten. Sie können also die Beispiele leicht an Ihrem Rechner nachvollziehen.
Dies bedeutet jedoch
nicht, dass Visual Basic ein in irgendeiner Weise bevorzugtes Entwicklungssystem
ist oder sich die Nutzung des ComServers auf VB beschränkt. Sie können den
ComServer mit jedem Entwicklungssystem verwenden, das Com/ActiveX-Komponenten
einbinden kann.
Zur besseren Übersicht sind komplexere Beispiele teilweise nicht vollständig
codiert.
Sie erkennen dies an dem Eintrag '...'
im Programmcode.
Vollständig codierte Beispiele zu typischen Aufgabenstellungen finden Sie im Forum zum AOComServer.
Logische
Werte
Der Datentyp Boolean (True oder False)
ist in der Definition der Windows-Com-Schnittstelle nicht vorgesehen.
Logische Werte werden deshalb mit dem Datentyp Integer und dem
Wertebereich 0 und 1 repräsentiert.
Dabei gilt: True entspricht 1 und false entspricht 0
Beispiel:
Statt If AOAnmeldungen.hitbottom
then ... schreiben Sie If
AOAnmeldungen.hitbottom = 1 then ...
Namenspfade
Der Zugriff auf bestimmte Eigenschaften eines
Datenobjektes erfolgt über sogenannte Namenspfade.
Beispiel:
AOAnmeldung ist
ein Datenobjekt vom Typ "Anmeldung".
Sie benötigen den
Klassenraum des Kurses zu dem die Anmeldung gehört. Die Anmeldung ist
verknüpft mit dem zugehörigen Kurs und der Kurs wiederum mit dem
entsprechenden Raum. Der entsprechende Namenspfad lautet also "Anmeldung.Kurs.Raum.Name"
Die entsprechende Eigenschaft können Sie also wie folgt von dem Objekt AOAnmeldung
erhalten:
Dim AProp As AOCom.AOProperty
Set AProp = AOAnmeldung.PropertyOfName("Kurs.Raum.Name")
Die Werte für die korrekte Formulierung der Namenspfade können Sie leicht über den Klassenmodell-Browser in ABES/Objects ermitteln:
Um den Klassenmodell-Browser aufzurufen starten
Sie ABES/Objects, gehen Sie in die entsprechende Ansicht (hier
"Anmeldungen") und legen Sie beispielsweise eine neues Spaltenset an.
Navigieren Sie in der
Baumstruktur (links) bis zur der gewünschten Eigenschaft und übernehmen Sie
diese dann in die Auswahlliste (rechts). Verwenden Sie den entsprechenden Pfad
dann in Ihrem Programmcode.
Hinweis: Der Klassenmodel-Browser wird zeitnah als eigenständiges Tool zur
Verfügung stehen, das Sie unabhängig von ABES/Objects verwenden können. Das
Tool wird Ihnen ermöglichen, den Namenspfad der gewünschten Eigenschaft in
die Zwischenablage zu kopieren und dann darüber in den Programmcode
einzufügen.
Hinweis
zur Mehrsprachigkeit
ABES/Objects wird in der Zukunft mehrsprachig
werden. Trotzdem sind die mit dem ComServer entwickelten Anwendungen unabhängig
von der Sprachumgebung lauffähig, da für alle Eigenschaften intern
mehrere Bezeichnungsebenen verwendet werden:
Jedes Daten-Objekt und jede Eigenschaft eines Objektes hat intern folgende Bezeichnungsebenen:
Name, PropertyName - Intern verwendete Bezeichnung
DisplayName - Angezeigte Bezeichnung in Beschriftungen (Masken, Tabellenköpfe, Variable für Reports und Word-Dokumente)
ComName - Bezeichnung für Namenspfade zur Verwendung mit dem ComServer
Die Mehrsprachigkeit
wird nur über die Bezeichnungsebene DisplayName abgebildet. Der Wert für ComName
ist statisch und bleibt immer gleich.
Mit dem ComServer verwenden Sie immer die Bezeichnungsebene ComName. Ihre
Anwendung wird also immer laufen und es spielt keine Rolle, welche Spracheinstellung das Zielsystem verwendet.
Groß-/Kleinschreibung
Die Gross- und Kleinschreibung wird bei der
Angabe von Text-Parametern und Namenspfaden
ignoriert.
AOComServer, AOComLocalServer |
Übersicht: AOClasses, DatabaseIP, DatabasePort, DatabasePath, SessionCount, CreateSession, cleanupCache, Disconnect |
Objekt-Fabrik von ABES/Objects.
Erstellt die Verbindung zu einer Datenbank und erzeugt Sessions für die
einzelnen Client-Anwendungen.
Beide Objekte sind funktional identisch und unterscheiden sich nur intern durch die Art der Instanziierung:
AOComServer:
Für dieses Objekt wird immer nur eine einzige Instanz erstellt, mit der sich
mehrere Clients verbinden können. Das Objekt ist vorzugsweise für
Web-Anwendungen zu verwenden, da eine beliebig große Zahl von Clients mit einer
einzigen Objekt-Fabrik verbunden werden und der Bedarf an Arbeitsspeicher auf
dem Server gering bleibt. Alle Clients müssen daher die gleiche Datenbank
verwenden.
AOComLocal Server:
Für dieses Objekt wird pro Client immer eine eigene Instanz erstellt. Dieses
Objekt sollte verwendet werden, um lokale Anwendungen mit Visual Basic oder
anderen Entwicklungssystemen zu erstellen, die nicht als Web-Anwendung
konzipiert sind. Jede lokale Anwendung kann dabei eine andere Datenbank
verwenden.
Erzeugung
Der AOComServer muss als einziges Element direkt vom Entwicklungssystem erzeugt werden:
Beispiel in VB:
Set AOServer = CreateObject("AOCom.AOComLocalServer")
Beispiel in Delphi:
try
AOServer := getActiveOleObject('AOCom.AOComServer');
except
AOServer := createOleObject('AOCom.AOComServer');
end;
Eigenschaftenproperty AOClasses Typ IAOClasses, readonly
Element von AOCom.AOComServer, AOCom.AOComLocalServerBedeutung
Liefert ein IAOClasses-Objekt zurück.
AOClasses enthält eine Liste der Klassen aller vorhandenen Datenobjekte von ABES/Objects.Beispiel:
Dim AOComServer As AOCom.AOComLocalServerSet AOComServer = createObject("AOCom.AOComLocalServer")
ListBox1.text = AOComServer.AOClasses.AsCommaList
property DatabaseIP Typ WideString, readwrite
Element von AOCom.AOSession
Bedeutung
IP-Adresse des DatenbankServers für den Remote-Zugriff.Beispiel: siehe DatabasePath
property DatabasePort Typ WideString, readwrite
Element von AOCom.AOComServer, AOCom.AOComLocalServer
Bedeutung
Port-Nummer des DatenbankServers für den Remote-Zugriff.
(In der Regel 2020)Beispiel: siehe DatabasePath
property DatabasePath Typ WideString, readwrite
Element von AOCom.AOComServer, AOCom.AOComLocalServer
Bedeutung
UNC-Pfad oder NamensPfad der zu verwendenden Datenbank.Beispiel1: Datenbank liegt auf einem Server innerhalb des lokalen Netzwerks
Dim AOComServer As AOCom.AOComServerSet AOComServer = createObject("AOCom.AOComServer")
AOComServer.DatabasePath = "\\MeinServer\daten\db\MusterAkademie"
- oder -
AOComServer.DatabasePath = "P:\db\MusterAkademie"
Beispiel2: Datenbank liegt auf einem Server im Internet
Dim AOComServer As AOCom.AOComServerSet AOComServer = createObject("AOCom.AOComServer")
AOComServer.DatabaseIP = "212.184.19.22" (oder "tn.musterakademie.de")
AOComServer.DatabasePort = "2020"
AOComServer.DatabasePath = "aodb\musterakademie"
Hinweis:
Bei AOComServer kann diese Eigenschaft nur gesetzt werden, wenn aktuell keine Sessions aktiv sind.
Deshalb ggf. vorab auf SessionCount = 0 prüfen.
property SessionCount Typ Integer, readonly
Element von AOCom.AOComServer, AOCom.AOComLocalServer
Bedeutung
Abfrage der Anzahl aktiver Sessions.
Beispiel:
Dim AOComServer As AOCom.AOComServer
Dim ANewDBPath As StringSet AOComServer = createObject("AOCom.AOComServer")
ANewDBPath = "\\MeinServer\daten\db\MusterAkademie"
if AOComServer.DatabasePath <> ANewDBPath then
if AOComServer.SessionCount = 0 then
AOComServer.DatabasePath = ANewDBPath
end if
end if
Methoden
function CreateSession (const LoginName: WideString, const PassWord: WideString) Rückgabe IAOSession
Element von AOCom.AOComServer, AOCom.AOComLocalServerParameter
LoginName - Name (LoginName) des zu verwendenden AnwenderKontos
PassWord - Passwort des zu verwendenden AnwenderKontos
Bedeutung
Liefert ein neues Session-Objekt zurück. Ist das angegebene Anwenderkonto nicht vorhanden, wird eine Fehlermeldung ausgegeben.
Beispiel:
Dim AOComServer As AOCom.AOComLocalServer
Dim AOSession As AOCom.AOSessionSet AOComServer = createObject("AOCom.AOComLocalServer")
AOComServer.DatabasePath = "\\MeinServer\daten\db\MusterAkademie"
Set AOSession = AOComServer.createSession("ADMIN","geheim123")
procedure cleanupCache
Element von AOCom.AOComServer, AOCom.AOComLocalServerParameter keine
Bedeutung
Reduzierung des Speicherbedarfs durch Freigabe von nicht mehr referenzierten Datenobjekten (AOObject).
Sollte in größeren Schleifenoperationen gelegentlich aufgerufen werden.Beispiel:
Dim AOComServer As AOCom.AOComLocalServer
Dim AOSession As AOCom.AOSessionSet AOComServer = createObject("AOCom.AOComLocalServer")
AOComServer.DatabasePath = "..."
Set AOSession = AOComServer.createSession("ADMIN","geheim123")
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")
AOAnmeldungen.Open
AOAnmeldungen.first
i = 0
Do While AOAnmeldungen.hitbottom = 0i = i + 1
Set AObject = AOAnmeldungen.AOItem
...
AOAnmeldungen.Next
AOComServer.cleanupCache
Loop
AOAnmeldungen.Close
procedure Disconnect
Element von AOCom.AOComServer, AOCom.AOComLocalServerParameter keine
Bedeutung
Trennt die Verbindung zu einer Datenbank und gibt die entsprechende Instanz des AOComServer frei.
Hinweise:
Rufen Sie immer Disconnect auf, bevor die Variable, die den Verweis auf den AOComServer enthält dereferenziert wird..Beispiel:
Dim AOComServer As AOCom.AOComLocalServer
Set AOComServer = createObject("AOCom.AOComLocalServer")
...(Programmcode der Anwendung/Funktion)
AOComServer.Disconnect
Set AOComServer = nothing
AOSession | Übersicht: DatabaseName, DatabaseIP, DatabasePort, CreateDataSetOfClassName, LookUpAOItem, |
Das AOSession-Objekt verwaltet die Verbindung (Session="Sitzung") eines Clients mit einem AOCOMServer.
Erzeugung
Ein AOSession-Objekt muss von einem bestehenden AOComServer-Objekt erzeugt werden:
Beispiel in VB:
...
Set AOSession = AOServer.CreateSession("ADMIN","geheim123")
...
Eigenschaften
property DatabaseName Typ WideString, readonly
Element von AOCom.AOSession
Bedeutung
Namen der aktuell verwendeten Datenbank.Beispiel:
Dim AOComServer As AOCom.AOComServer
Dim AOSession As AOCom.AOSessionSet AOComServer = createObject("AOCom.AOComServer")
AOComServer.DatabasePath = "\\MeinServer\daten\db\MusterAkademie"
Set AOSession = AOComServer.createSession("ADMIN","geheim123")
UserForm1.Caption = AOSession.DatabaseName
Methoden
function CreateDataSetOfClassName(const AClassName: WideString) Rückgabe IAODataSet
Element von AOCom.AOSessionParameter
AClassName - Klassenname als Text. Die verfügbaren Klassennamen können Sie mit AOComServer.AOClasses ermitteln
Bedeutung
Erzeugt eine neue Datenmenge des angegebenen Typs und liefert die Schnittstelle zu einem AODataSet-Objekt zurück.
Beispiel:
Dim AODataSet As AOCom.AODataSet
Dim AObject As AOCom.AOObject
Dim i, n As Integer
Dim ASheet As Excel.Worksheet
Set ASheet = Application.ActiveSheet
Set AODataSet = AOSession.CreateDataSetOfClassName("Anmeldung")
AODataSet.Open
AODataSet.first
n = AODataSet.Count
For i = 1 to n
Set AObject = AODataSet.AOItem
ASheet.Cells(i, 1).Value = AObject.PropertyOfName("Teilnehmer.NameVorname").AsString
AODataSet.Next
Next
AODataSet.Close
function LookupAOItem(const AClassName: WideString, AOID:WideString) Rückgabe IAOObject
Element von AOCom.AOSessionParameter
AClassName - Klassenname als Text. Die verfügbaren Klassennamen können Sie mit AOComServer.AOClasses ermitteln.
AOID - Primärschlüssel (OID= Object Identifier) eines ABES-Datenobjektes.
Bedeutung
Findet ein ABES-Datenobjekt des angegebenen Typs mit der angegebenen OID und liefert dieses als IAOObject zurück.
Beispiel:
...Dim AObject As AOCom.AOObject
Dim AClassName As String
Dim AOID As String
AClassName = "Anmeldung"
AOID = "AEsDQ2ESf/2QklmNEAA"
If IsObject(AOSession) Then
Set AObject = AOSession.LookupAOItem(AClassName, AOID)
CommandButton5.Caption = AObject.PropertyOfName("Teilnehmer.NameVorname").AsString
End If
...
function ImportItem(AClassName: WideString, ImportKey:WideString, MinKeyLength:Integer,
var AOItem:IAOObject, NewItem:Integer, Message:WideString) Rückgabe Integer
Element von AOCom.AOSessionParameter
AClassName - Klassenname als Text. Die verfügbaren Klassennamen können Sie mit AOComServer.AOClasses ermitteln.
ImportKey - Eindeutiger Ausdruck zur Identifizierung eines individuellen Datenobjektes.
MinKeyLength - Mindestlänge für einen gültigen ImportKey. Datensätze, die diese Bedingung nicht erfüllen, werden nicht importiert.
AOItem - Datenobjekt des in AClassName angegebenen Typs, dem nachfolgend die entsprechenden Werte zugewiesen werden können
NewItem - Wert 1: Es wurde ein neues AOObject angelegt, Wert 0: Ein Datenobjekt mit diesem ImportKey war bereits vorhanden.
Überprüfen Sie diesen Flag, wenn Sie beim Import differenzieren möchten, ob nur neue Daten importiert oder auch vorhandenen überschrieben werden sollen.Message - Text einer Fehlermeldung.
Rückgabe - Wert 1: Ok, Wert 0: Fehler
Bedeutung
Mit dieser Funktion können Sie Daten in ABES/Objects importieren. Sie erhalten ein AOObject zurück, dem Sie anschliessend über PropertyOfName("<Name der Eigenschaft>") die gewünschten Werte zuweisen können.
Wenn Sie den ImportKey sauber definieren, ist sichergestellt, dass bei einem wiederholten Import keine doppelten Datenobjekte in ABES/Objects entstehen.
Beispiel:
...Set AOServer = CreateObject("AOCom.AOComLocalServer")
AOServer.DatabasePath = "\\Server\Volume\Dirextory"
Set AOSession = AOServer.CreateSession("ADMIN","geheim123")
Set Sheet = ActiveSheet
Row = 1Do While Sheet.Cells(Row, 1) <> ""
If AOSession.ImportItem("Kurs", Sheet.Cells(Row, 1), 4, AKurs, IsNewItem, Msg) = 1 Then
AKurs.PropertyOfName("Kuerzel").AsString = Sheet.Cells(Row, 1)
AKurs.PropertyOfName("von").AsString = Sheet.Cells(Row, 3)
AKurs.PropertyOfName("Bis").AsString = Sheet.Cells(Row, 4)
End If
Row = Row + 1
AOServer.cleanupCache
Loop
AOServer.Disconnect
End Function
AODataSet | Übersicht: AOItem, AOItemClassName, close,count, createFilterItem, first, hitbottom, hittop, last, new, next, open, Order, previous, SQLExpression |
AODataset repräsentiert eine Menge von ABES-Datenobjekten eines bestimmten Typs.
Das Objekt stellt Methoden und Eigenschaften zum Navigieren (first, last, next, previous etc.), zum Zugriff auf die enthaltenen Elemente, sowie zum Neuanlegen und Löschen von Objekten bereit.
Zusätzlich ist auch das Filtern und Sortieren der Datenmenge möglich.
Erzeugung
Ein AODataSet-Objekt muss über ein vorhandenes AOSession-Objekt erzeugt werden:
Beispiel in VB:
...
Set AODataSet = AOSession.CreateDataSetOfClassName("Anmeldung")
...
Eigenschaften
property AOItem Typ IAOObject, readonly
Element von AOCom.AODataSetBedeutung
Liefert das aktuelle Element einer geöffneten Datenmenge als Interface IAOObject zurück.
Beispiel:
...
Dim AOSession As AOCom.AOSession
Dim AOAnmeldungen As AOCom.AODataSetDim AObject As AOCom.AOObject
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")
AOAnmeldungen.Open
AOAnmeldungen.First
Set AObject = AOAnmeldungen.AOItem
edit1.text = AObject.PropertyOfName("Teilnehmer.NameVorname")
AOAnmeldungen.close
property Order Typ IAOOrder, readonly
Element von AOCom.AODataSetBedeutung
Zugriff auf ein AOOrder-Objekt zur Definition von Sortierreihenfolgen für ein AODataSet.
Beispiel:
Dim AAnmeldungen As AOCom.AODataSet
...
Set AAnmeldungen = ASession.CreateDataSetOfClassName("Anmeldung")AAnmeldungen.Order.Clear
AAnmeldungen.Order.AddOrder "Teilnehmer.Name", "up"
AAnmeldungen.Order.AddOrder "Teilnehmer.VorName", "up"
AAnmeldungen.Open...
property SQLExpression Typ WideString, readonly
Element von AOCom.AODataSetBedeutung
Liefert für Kontrollzwecke den Text der dem AODataSet zugrunde liegenden SQL-Abfrage zurück.
Zur Abfrage des SQL-Statements muss erst die Methode open aufgerufen werden, da die SQL-Abfrage erst dann dymanisch generiert wird.
Hinweis:
Alle SQL-Abfragen werden automatisch von der Objekt-Fabrik aus dem Klassenmodell abgeleitet und generiert.
Sie müssen bei der Verwendung des AOComServers niemals manuell SQL-Abfragen formulieren.
Die Eigenschaft SQLExpression dient lediglich zum Debuggen Ihrer Anwendungen.Beispiel:
Dim AAnmeldungen As AOCom.AODataSet
...
Set AAnmeldungen = ASession.CreateDataSetOfClassName("Anmeldung")AAnmeldungen.Open
...
TextBox1.Text = AAnmeldungen.SQLExpression
...
Methoden
function AOItemClassName Rückgabe WideString
Element von AOCom.AODataSetParameter keine
Bedeutung
Liefert den Klassennamen des Elementtyps einer Datenmenge zurück.
Beispiel:
...
Dim AOSession As AOCom.AOSession
...
Dim AOAnmeldungen As AOCom.AODataSet
...
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")
...Label1.caption = AOAnmeldungen.AOItemClassName
function createFilterItem (const AndOr, PropertyComNamePath, Operator:WideString) Rückgabe IAOFilterItem
Element von AOCom.AODataSetParameter
AndOr Legt fest, ob dieser Filter mit einer 'und'- oder 'oder'-Verknüpfung verwendet werden soll.
Erlaubte Werte: 'and' oder 'or'PropertyComNamePath Namenspfad der betreffenden Eigenschaft. Operator Textwert für den Operator des Filters:
Textwert Bedeutung "=" gleich ">" größer ">=" größer oder gleich "<" kleiner "<=" kleiner oder gleich "<>" ungleich "in" enthalten in einer Aufzählung "like" enthalten in einem Text "equal" gleich "greater" größer "greaterEqual" größer oder gleich "smaller" kleiner "smallerEqual" kleiner oder gleich "notEqual" ungleich "empty" leer "notEmpty" nicht leer
BedeutungErzeuge ein AOFilterItem um die Datenmenge einzuschränken.
Die können beliebig viele AOFilterItems erzeugen und als "und"- oder "oder"-Verknüpfung zusammenfassen.
Beispiel:
Rem Filtere alle Anmeldungen, deren Kurskürzel in der Liste B 574,B 575,B 576
Rem enthalten ist:
...
Dim AAnmeldungen As AOCom.AODataSet
Dim AFilterItem As AOCom.AOFilterItem
...
Set AAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")Set AFilterItem = AAnmeldungen.createFilterItem("and", "Kurs.Kuerzel", "in")
AFilterItem.Value.AsString = "B 574,B 575,B 576"
AAnmeldungen.Open
...
procedure close
Element von AOCom.AODataSetParameter keine
Bedeutung
Schliesst eine geöffnete Datenmenge.
Beispiel:
...
Dim AOSession As AOCom.AOSession
...
Dim AOAnmeldungen As AOCom.AODataSet
...
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")
...AOAnmeldungen.close
function Count Rückgabe Integer
Element von AOCom.AODataSetParameter keine
Bedeutung
Liefert die Anzahl der enthaltenen Elemente.
Beispiel:
...
Dim AOSession As AOCom.AOSession
...
Dim AOAnmeldungen As AOCom.AODataSet
...
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")
...
Dim Anzahl As IntegerAnzahl = AOAnmeldungen.count
procedure first
Element von AOCom.AODataSetParameter keine
Bedeutung
Wählt das erste Element einer Datenmenge.
Beispiel:
...
Dim AOSession As AOCom.AOSession
...
Dim AOAnmeldungen As AOCom.AODataSet
...
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")
...AOAnmeldungen.first
function hitbottom Rückgabe Integer
Element von AOCom.AODataSetParameter keine
Bedeutung
Die Funktion liefert als Rückgabewert 1 wenn versucht wird, über das Ende einer Datenmenge hinaus zu blättern. Sonst ist der Rückgabewert 0
Beispiel:
...
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")AOAnmeldungen.Open
AOAnmeldungen.first
i = 0
Do While AOAnmeldungen.hitbottom = 0i = i + 1
Set AObject = AOAnmeldungen.AOItem
Set AProp = AObject.PropertyOfName("Teilnehmer.NameVorname")
ASheet.Cells(i + 1, 1).Value = AProp.AsStringAOAnmeldungen.Next
Loop
AOAnmeldungen.Close
function hittop Rückgabe Integer
Element von AOCom.AODataSetParameter keine
Bedeutung
Die Funktion liefert als Rückgabewert 1 wenn versucht wird, über das erste Element einer Datenmenge hinaus zurück zu blättern. Sonst ist der Rückgabewert 0
Beispiel:
...
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")AOAnmeldungen.Open
AOAnmeldungen.last
i = 0
Do While AOAnmeldungen.hittop = 0i = i + 1
Set AObject = AOAnmeldungen.AOItem
Set AProp = AObject.PropertyOfName("Teilnehmer.NameVorname")
ASheet.Cells(i + 1, 1).Value = AProp.AsStringAOAnmeldungen.previous
Loop
AOAnmeldungen.Close
procedure last
Element von AOCom.AODataSetParameter keine
Bedeutung
Wählt das letzte Element einer Datenmenge.
Beispiel:
...
Dim AOSession As AOCom.AOSession
...
Dim AOAnmeldungen As AOCom.AODataSet
...
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")
...AOAnmeldungen.last
function new Rückgabe IAOObject
Element von AOCom.AODataSetParameter keine
Bedeutung
Erzeugt ein neues ABES-Datenobjekt des entsprechenden Typs liefert dieses als IAOObject zurück.
Beispiel:
...
Dim AOAnmeldungen As AOCom.AODataSet
Dim ANewAnmeldung As AOCom.AOObject
...
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")
...Set ANewAnmeldung = AOAnmeldungen.new
procedure next
Element von AOCom.AODataSetParameter keine
Bedeutung
Wählt das nächste Element einer Datenmenge.
Beispiel:
...
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")AOAnmeldungen.Open
AOAnmeldungen.first
i = 0
Do While AOAnmeldungen.hitbottom = 0i = i + 1
Set AObject = AOAnmeldungen.AOItem
Set AProp = AObject.PropertyOfName("Teilnehmer.NameVorname")
ASheet.Cells(i + 1, 1).Value = AProp.AsStringAOAnmeldungen.Next
Loop
AOAnmeldungen.Close
procedure open
Element von AOCom.AODataSetParameter keine
Bedeutung
Öffnet eine Datenmenge.
Beispiel:
...
Dim AOSession As AOCom.AOSession
...
Dim AOAnmeldungen As AOCom.AODataSet
...
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")
...AOAnmeldungen.Open
procedure previous
Element von AOCom.AODataSetParameter keine
Bedeutung
Wählt das vorhergehende Element einer Datenmenge.
Beispiel:
...
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")AOAnmeldungen.Open
AOAnmeldungen.last
i = 0
Do While AOAnmeldungen.hittop = 0i = i + 1
Set AObject = AOAnmeldungen.AOItem
Set AProp = AObject.PropertyOfName("Teilnehmer.NameVorname")
ASheet.Cells(i + 1, 1).Value = AProp.AsStringAOAnmeldungen.previous
Loop
AOAnmeldungen.Close
AOItemSet | Übersicht: AOItems, count |
AOItemSet repräsentiert eine Sammlung von ABES-Datenobjekten. Die Elemente der Sammlung können unterschiedlichen Typs sein.
Das Objekt ermöglicht das Zusammenstellen von Sammlungen von AOObjects-Instanzen.
Eigenschaften
- keine -
Methoden
function AOItems(const AItemIndex:Integer) Rückgabe IAOObject
Element von AOCom.AOItemSetParameter
AItemIndex - Index des Elementes in der Liste. Das erste Element hat den Index 0.
Bedeutung
Ermöglicht den Zugriff auf die enthaltenen Elemente.
Beispiel:
...Dim ASet As AOCom.AOItemSet
Dim n,i As Integer
...n = ASet.count-1
for i = 0 to n
ASheet.Cells(i + 1, 1).Value = ASet.AOItems(i).DisplayName
next
function Count Rückgabe Integer
Element von AOCom.AOItemSetParameter keine
Bedeutung
Liefert die Anzahl der enthaltenen Elemente.
Beispiel:
...Dim ASet As AOCom.AOItemSet
Dim n,i As Integer
...n = ASet.count-1
for i = 0 to n
ASheet.Cells(i + 1, 1).Value = ASet.AOItems(i).DisplayName
next
AOClasses | Übersicht: AsCommaList, ClassNames, count |
Das AOClasses-Object stellt ihnen den Zugriff auf eine Liste aller im Datenmodell von ABES/Objects enthaltenen Objektklassen ("Teilnehmer", "Firmen", "Debitoren" etc.) zur Verfügung.
Erzeugung
Das AOClasses-Objekt ist eine Eigenschaft eines AOComServer-Objektes:
Beispiel in VB:
...
ListBox1.Text = AOServer.AOClasses.AsCommaList
...
Eigenschaften
property AsCommaList Typ WideString, readonly
Element von AOCom.AOClasses
BedeutungLiefert die Namen aller im Klassenmodell von ABES/Objects enthaltenen Objekt-Klassen als Komma-separierte Liste (CSV) zurück.
Beispiel:
Dim AOComServer As AOCom.AOComLocalServerSet AOComServer = createObject("AOCom.AOComLocalServer")
ListBox1.text = AOComServer.AOClasses.AsCommaList
Methoden
function ClassNames(const AItemIndex:Integer) Rückgabe WideString
Element von AOCom.AOClassesParameter
AItemIndex - Index des Elementes in der Liste. Das erste Element hat den Index 0.
Bedeutung
Liefert den Klassennamen der Klasse mit dem angegebenen Index zurück.
Beispiel:
...
Dim AOServer As AOCom.AOComLocalServer
Dim AOClasses As AOCom.AOClasses
Dim i, n As Integer
Dim ASheet As Excel.Worksheet
Set AOServer = createObject("AOCom.AOComLocalServer")
Set AOClasses = AOServer.AOClassesSet ASheet = Application.ActiveSheet
n = AOClasses.count-1
for i = 0 to n
ASheet.Cells(i + 1, 1).Value = AOClasses.ClassNames(i)
next
function Count Rückgabe Integer
Element von AOCom.AOClassesParameter keine
Bedeutung
Liefert die Anzahl der im Datenmodell von ABES/Objects enthaltenen Klassen.
Beispiel:
...
Dim AOServer As AOCom.AOComLocalServer
Dim AOClasses As AOCom.AOClasses
Dim i, n As Integer
Dim ASheet As Excel.Worksheet
Set AOServer = createObject("AOCom.AOComLocalServer")
Set AOClasses = AOServer.AOClassesSet ASheet = Application.ActiveSheet
n = AOClasses.count-1
for i = 0 to n
ASheet.Cells(i + 1, 1).Value = AOClasses.ClassNames(i)
next
AOObject | Übersicht: AssociationOfName, ClassName, CollectionOfName, DisplayName, OID, Original, PropertyOfName |
AOObject repräsentiert ein einzelnes ABES/Objects-Datenobjekt beliebigen Typs und veröffentlicht alle für den Zugriff auf dessen Eigenschaften, dessen Assoziationen (1:0..1-Beziehungen) und dessen Kollektionen (1:0..n-Beziehungen) benötigten Methoden.
Erzeugung
Ein AOObjekt wird von allen Objekten zurückgegeben, die einzelne oder Mengen von Datenobjekten verwalten (AODataSet, AOItemSet, AOAssociation, AOCollection etc.):
Beispiel in VB:
Dim AAnmeldung As AOCom.AOObject
Dim AAnmeldungen As AOCom.AODataSet
...
Set AAnmeldung = AAnmeldungen.AOItem
...
Eigenschaften
property ClassName Typ WideString, readonly
Element von AOCom.AOObjectBedeutung
Enthält den Namen der Klasse des Datenobjektes.
Beispiel:
...
Dim AOSession As AOCom.AOSession
Dim AOAnmeldungen As AOCom.AODataSetDim AObject As AOCom.AOObject
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")
AOAnmeldungen.Open
AOAnmeldungen.First
Set AObject = AOAnmeldungen.AOItem
edit1.text = AObject.ClassName
AOAnmeldungen.close
property DisplayName Typ WideString, readonly
Element von AOCom.AOObjectBedeutung
Enthält die Beschriftung eines Datenobjektes. Für ein Objekt des Typs "Person" wäre beispielsweise der Wert "Klaus Müller" enthalten.
Beispiel:
Dim AObject As AOCom.AOObject
...
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")AOAnmeldungen.Open
AOAnmeldungen.first
i = 0
Do While AOAnmeldungen.hitBottom = 0i = i + 1
Set AObject = AOAnmeldungen.AOItem
ASheet.Cells(i + 1, 1).Value = AObject.DisplayNameAOAnmeldungen.next
Loop
AOAnmeldungen.Close
property OID Typ WideString, readonly
Element von AOCom.AOObjectBedeutung
Enthält den global eindeutigen Primärschlüssel eines Datenobjektes als Zeichenkette. Die OID eines Datenobjektes identifiziert ein bestimmtes Objekt eindeutig. Es ist dabei sichergestellt, dass eine bestimmte OID niemals ein zweites Mal vorkommen kann.
Beispiel:
Dim AObject As AOCom.AOObject
...
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")AOAnmeldungen.Open
AOAnmeldungen.first
i = 0
Do While AOAnmeldungen.hitBottom = 0i = i + 1
Set AObject = AOAnmeldungen.AOItem
ASheet.Cells(i + 1, 1).Value = AObject.OID
ASheet.Cells(i + 1, 2).Value = AObject.DisplayNameAOAnmeldungen.next
Loop
AOAnmeldungen.Close
property Original Typ Integer, readonly
Element von AOCom.AOObjectBedeutung
Die Eigenschaft Original enthält den Wert 1, wenn Sie im Besitz des Originals des Datenobjektes sind. Handelt es sich bei einem Objekt um eine über den Replikator erhaltene Objektkopie, so hat die Eigenschaft den Wert 0.
Beispiel:
Dim AObject As AOCom.AOObject
...
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")AOAnmeldungen.Open
AOAnmeldungen.first
i = 0
Do While AOAnmeldungen.hitBottom = 0i = i + 1
Set AObject = AOAnmeldungen.AOItem
ASheet.Cells(i + 1, 1).Value = AObject.DisplayNameif AObject.Original = 1 then
ASheet.Cells(i + 1, 2).Value = "Original"
else
ASheet.Cells(i + 1, 2).Value = "Kopie"
end if
AOAnmeldungen.next
Loop
AOAnmeldungen.Close
property Order Typ IAOOrder, readonly
Element von AOCom.AODataSetBedeutung
Zugriff auf ein AOOrder-Objekt zur Definition von Sortierreihenfolgen für einer Kollektion:
Beispiel:
Dim AOKurs As AOCom.AOObjectDim AAnmeldungen As AOCom.AOCollection
...
Set AKurs = ...
...
Set AAnmeldungen = AKurs.CollectionOfName("Anmeldung")AAnmeldungen.Order.Clear
AAnmeldungen.Order.AddOrder "Teilnehmer.Name", "up"
AAnmeldungen.Order.AddOrder "Teilnehmer.VorName", "up"
AAnmeldungen.Open...
Methoden
function PropertyOfName(const ANamePath:WideString) Rückgabe IAOProperty
Element von AOCom.AOObjectParameter
ANamePath - Namenspfad der gewünschten Eigenschaft als Text.
Bedeutung
Ermöglicht den Zugriff auf eine beliebige Eigenschaft eines ABES/Objects-Datenobjektes und liefert diese zurück.
Beispiel:
Dim AOAnmeldungen As AOCom.AODataSet
Dim AObject As AOCom.AOObject
Dim AProp As AOCom.AOProperty
...
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")AOAnmeldungen.Open
AOAnmeldungen.first
i = 0
Do While AOAnmeldungen.hitbottom = 0i = i + 1
Set AObject = AOAnmeldungen.AOItemSet AProp = AObject.PropertyOfName("Teilnehmer.NameVorname")
ASheet.Cells(i + 1, 1).Value = AProp.AsString
AOAnmeldungen.Next
Loop
function AssociationOfName(const ANamePath:WideString) Rückgabe IAOAssociation
Element von AOCom.AOObjectParameter
ANamePath - Namenspfad der gewünschten Assoziation als Text.
Bedeutung
Ermöglicht den Zugriff auf eine beliebige Eigenschaft eines ABES/Objects-Datenobjektes und liefert diese zurück.
Beispiel:
Dim AOAnmeldungen As AOCom.AODataSet
Dim AObject As AOCom.AOObject
Dim AAssociation As AOCom.AOAssociation
...
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")AOAnmeldungen.Open
AOAnmeldungen.first
i = 0
Do While AOAnmeldungen.hitbottom = 0i = i + 1
Set AObject = AOAnmeldungen.AOItemSet AAssociation = AObject.AssociationOfName("Teilnehmer.Debitor")
ASheet.Cells(i + 1, 1).Value = AAssociation.AOItem.DisplayName
AOAnmeldungen.Next
Loop
function CollectionOfName(const ANamePath:WideString) Rückgabe IAOCollection
Element von AOCom.AOObjectParameter
ANamePath - Namenspfad der gewünschten Kollektion als Text.
Bedeutung
Ermöglicht den Zugriff auf eine beliebige Eigenschaft eines ABES/Objects-Datenobjektes und liefert diese zurück.
Beispiel:
Dim AOKurs As AOCom.AOObject
Dim AOAnmeldungen As AOCom.AOCollection
Dim AOAnmeldung As AOCom.AOObject
Dim i,n As Integer
...
Set AOKurs = ...
...
Set AOAnmeldungen = AOKurs.CollectionOfName("Anmeldung")AOAnmeldungen.Open
AOAnmeldungen.first
i = 0
Do While AOAnmeldungen.hitbottom = 0i = i + 1
Set AOAnmeldung = AOAnmeldungen.AOItemASheet.Cells(i + 1, 1).Value = AOAnmeldung.DisplayName
AOAnmeldungen.Next
Loop
AOProperty | Übersicht: AsBlobFile, AsBool, AsDate, AsDateTime, AsFloat, AsInteger, AsString, AsTextFile, AsTime, clear, digits, ExtendedKind, isCalc, isEmpty, isReadOnly, Kind, length |
AOProperty repräsentiert eine einzelne Eigenschaft eines ABES/Objects-Datenobjektes und ermöglicht das Lesen und Schreiben von Werten.
Erzeugung
Ein AOProperty-Objekt wird über die Abfrage einer Eigenschaft eines Datenobjektes vom Typ AOObject erzeugt:
Beispiel in VB:
Dim AODataSet As AOCom.AODataSet
Dim AObject As AOCom.AOObjectDim AProp As AOCom.AOProperty
...Set AODataSet = AOSession.CreateDataSetOfClassName("Person")
Set AObject = AODataSet.newSet AProp = AObject.PropertyOfName("Name")
...
Eigenschaften
property AsString Typ WideString, readwrite
Element von AOCom.AOPropertyBedeutung
Lesen und Setzen des Wertes einer Eigenschaft als Text. Falls sich sich bei der Eigenschaft selbst nicht um einen Textwert handelt (Datum, Zahl etc.) wird der Wert intern automatisch konvertiert.
Das Zuweisen eines Wertes löst die im Klassenmodell von ABES/Objects definierten Ereignisse aus.
Falls eine Eigenschaft im Klassenmodell als ReadOnly definiert ist, wird die Zuweisung eines anderen Wertes ignoriert.Hinweise zur Formatierung der verschiedenen Datentypen als String:
Typ
Format
Integer
"99999999" - "123004"
Real
"999999,99" - "123,45"
Date
"dd.mm.yycc" - "28.05.1963"
Time
"hhmm" - "0930"
Boolean
"JA" oder "NEIN"
SEX
"HERR" oder "FRAU"
Picture
- nicht unterstützt -
Binary
- nicht unterstützt -
Entsprechend AsString stehen auch die Eigenschaften AsReal, AsInteger, AsFloat, AsBool, AsDate, AsDateTime und AsTime zur Verfügung.Für den Zugriff auf anonyme, binäre Daten werden die Eigenschaften AsBlobFile und AsTextFile verwendet.
Beispiel:
...
Dim AOAnmeldungen As AOCom.AODataSet
Dim AObject As AOCom.AOObject
Dim AProp As AOCom.AOProperty
...
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")AOAnmeldungen.Open
AOAnmeldungen.first
i = 0
Do While AOAnmeldungen.hitbottom = 0i = i + 1
Set AObject = AOAnmeldungen.AOItemSet AProp = AObject.PropertyOfName("Teilnehmer.NameVorname")
ASheet.Cells(i + 1, 1).Value = AProp.AsString
AOAnmeldungen.Next
LoopAOAnmeldungen.close
Methoden
- keine -
AOAssociation | Übersicht: AOItem |
AOAssociation repräsentiert eine einzelne Verknüpfung eines ABES/Objects-Datenobjektes mit einem anderen Datenobjekt und ermöglicht das Abfragen des aktuell verknüpften Daten-Objektes und das Zuweisen eines anderen.
Ein Daten-Objekt von Typ "Anmeldung" enthält beispielsweise eine Assoziation (=Verknüpfung) zu einem Datenobjekt "Kurs"
Erzeugung
Ein AOAssociation-Objekt wird über die Abfrage einer Assoziation eines Datenobjektes vom Typ AOObject erzeugt:
Beispiel in VB:
Dim AODataSet As AOCom.AODataSet
Dim AObject As AOCom.AOObjectDim AAssAdresse As AOCom.AOAssociation
...Set AODataSet = AOSession.CreateDataSetOfClassName("Person")
Set AObject = AODataSet.newSet AAssAdresse = AObject.AssociationOfName("Adresse")
...
Eigenschaften
property AOItem Typ IAOObject, readwrite
Element von AOCom.AOAssociationBedeutung
Enthält das aktuell zugeordnete Datenobjekt und erlaubt die Zuweisung eines Datenobjektes.
Das Zuweisen eines Objektes löst die im Klassenmodell von ABES/Objects definierten Ereignisse aus.
Falls eine Assoziation im Klassenmodell als ReadOnly definiert ist, wird die Zuweisung eines anderen Objektes ignoriert.Beispiel:
...
Dim AOSession As AOCom.AOSession
Dim AOAnmeldungen As AOCom.AODataSetDim AObject As AOCom.AOObject
Set AOAnmeldungen = AOSession.CreateDataSetOfClassName("Anmeldung")
AOAnmeldungen.Open
AOAnmeldungen.First
Set AObject = AOAnmeldungen.AOItem
edit1.text = AObject.PropertyOfName("Teilnehmer.NameVorname")
AOAnmeldungen.close
Methoden
- keine -
AOCollection | Übersicht: AOItem, close, count, createFilterItem, first, hitbottom, hittop, last, add, next, open, Order, Owner, previous, SQLExpression |
AOCollection enthält eine Menge von ABES/Objects-Datenobjekten, die dem Besitzer der Kollektion zugeordnet sind und ermöglicht die Navigation in dieser Menge, sowie den Zugriff auf die einzelnen Elemente.
Ein Daten-Objekt von Typ "Kurs" besitzt beispielsweise eine Kollektion von Datenobjekten des Typs "Anmeldung". Die Kollektion "Anmeldung" eines Kurses enthält also die Anmeldungen aller Teilnehmer, die diesem Kurs zugeordnet sind.
Erzeugung
Ein AOCollection-Objekt wird über die Abfrage einer Kollektion eines Datenobjektes vom Typ AOObject erzeugt:
Beispiel in VB:
Dim AODataSet As AOCom.AODataSet
Dim AOKurs As AOCom.AOObjectDim AAnmeldungen As AOCom.AOCollection
...Set AODataSet = AOSession.CreateDataSetOfClassName("Kurs")
...
Set AOKurs = AODataSet.AOItemSet AAnmeldungen = AOKurs.CollectionOfName("Anmeldung")
...
Eigenschaften
property AOItem Typ IAOObject, readonly
Element von AOCom.AOCollectionBedeutung
Enthält das aktuelle Element der Kollektion.
Beispiel:
...
Dim AOKurs As AOCom.AOObject
Dim AOAnmeldungen As AOCom.AOCollection
Dim AOAnmeldung As AOCom.AOObject
Dim i,n As Integer
...
Set AOKurs = ...
...
Set AOAnmeldungen = AOKurs.CollectionOfName("Anmeldung")AOAnmeldungen.Open
AOAnmeldungen.first
i = 0
Do While AOAnmeldungen.hitbottom = 0i = i + 1
Set AOAnmeldung = AOAnmeldungen.AOItemASheet.Cells(i + 1, 1).Value = AOAnmeldung.DisplayName
AOAnmeldungen.Next
LoopAOAnmeldungen.Close
property Order Typ IAOOrder, readonly
Element von AOCom.AOCollectionBedeutung
Zugriff auf ein AOOrder-Objekt zur Definition von Sortierreihenfolgen für eine Kollektion.
Beispiel:
...
Dim AOKurs As AOCom.AOObject
Dim AOAnmeldungen As AOCom.AOCollection
...
Set AOKurs = ...
...
Set AOAnmeldungen = AOKurs.CollectionOfName("Anmeldung")AOAnmeldungen.Order.Clear
AOAnmeldungen.Order.AddOrder "Teilnehmer.Name", "up"
AOAnmeldungen.Order.AddOrder "Teilnehmer.VorName", "up"
AOAnmeldungen.Open
...
property Owner Typ IAOObject, readonly
Element von AOCom.AOCollectionBedeutung
Enthält den Besitzer einer Kollektion.
Beispiel:
...
Dim AOKurs As AOCom.AOObject
Dim AOAnmeldungen As AOCom.AOCollection
Dim AOAnmeldung As AOCom.AOObject
Dim AObject As AOCom.AOObject
Dim i,n As Integer
...
Set AOKurs = ...
...
Set AOAnmeldungen = AOKurs.CollectionOfName("Anmeldung")
...Set AObject = AOAnmeldungen.Owner
REM AOKurs und AObject Referenzieren damit das gleiche Datenobjekt !
property SQLExpression Typ WideString, readonly
Element von AOCom.AOCollectionBedeutung
Liefert für Kontrollzwecke den Text der einer AOCollection zugrunde liegenden SQL-Abfrage zurück.
Zur Abfrage des SQL-Statements muss erst die Methode open aufgerufen werden, da die SQL-Abfrage erst dann dynamisch generiert wird.
Hinweis:
Alle SQL-Abfragen werden automatisch von der Objekt-Fabrik aus dem Klassenmodell abgeleitet und generiert.
Sie müssen bei der Verwendung des AOComServers niemals manuell SQL-Abfragen formulieren.
Die Eigenschaft SQLExpression dient lediglich zum Debuggen Ihrer Anwendungen.Beispiel:
...
Dim AOKurs As AOCom.AOObject
Dim AOAnmeldungen As AOCom.AOCollection
Dim AOAnmeldung As AOCom.AOObject
Dim AObject As AOCom.AOObject
Dim i,n As Integer
...
Set AOKurs = ...
...
Set AOAnmeldungen = AOKurs.CollectionOfName("Anmeldung")
...AOAnmeldungen.Open
TextBox1.Text = AOAnmeldungen.SQLExpression
...
Methoden
function createFilterItem(const AndOr, PropertyComNamePath, Operator:WideString) Rückgabe IAOFilterItem
Element von AOCom.AOCollectionParameter
AndOr Legt fest, ob dieser Filter mit einer 'und'- oder 'oder'-Verknüpfung verwendet werden soll.
Erlaubte Werte: 'and' oder 'or'PropertyComNamePath Namenspfad der betreffenden Eigenschaft. Operator Textwert für den Operator des Filters:
Textwert Bedeutung "=" gleich ">" größer ">=" größer oder gleich "<" kleiner "<=" kleiner oder gleich "<>" ungleich "in" enthalten in einer Komma-getrennten Aufzählung "like" enthalten in einem Text "equal" gleich "greater" größer "greaterEqual" größer oder gleich "smaller" kleiner "smallerEqual" kleiner oder gleich "notEqual" ungleich "empty" leer "notEmpty" nicht leer
BedeutungErzeugt ein AOFilterItem-Objekt zur Einschränkung der Datenmenge.
Die können beliebig viele AOFilterItems erzeugen und als "und"- oder "oder"-Verknüpfung zusammenfassen.
Beispiel:
Rem Filtere alle Anmeldungen einer Klasse, die verspätet eingestiegen sind:
...
Dim AKurs As AOCom.AOObject
Dim AAnmeldungen As AOCom.AOCollection
Dim AFilterItem As AOCom.AOFilterItem
...
Set AKurs = ...
...
Set AAnmeldungen = AKurs.CollectionOfName("Anmeldung")Set AFilterItem = AAnmeldungen.createFilterItem("and", "von", "greater")
AFilterItem.Value.AsDate = AKurs.PropertyOfName("Von").AsDate
AAnmeldungen.Open
...
procedure close
Element von AOCom.AOCollectionParameter keine
Bedeutung
Schliesst die geöffnete Datenmenge einer Kollektion.
Beispiel:
...
Dim AOKurs As AOCom.AOObject
Dim AOAnmeldungen As AOCom.AOCollection
...
Set AOKurs = ...
...
Set AOAnmeldungen = AOKurs.CollectionOfName("Anmeldung")AOAnmeldungen.Open
Do While AOAnmeldungen.hitbottom = 0
...AOAnmeldungen.Next
LoopAOAnmeldungen.Close
function Count Rückgabe Integer
Element von AOCom.AOCollectionParameter keine
Bedeutung
Liefert die Anzahl der Elemente einer Kollektion.
Beispiel:
Dim AOKurs As AOCom.AOObject
Dim AOAnmeldungen As AOCom.AOCollection
Dim Anzahl As Integer
...
Set AOKurs = ...
...
Set AOAnmeldungen = AOKurs.CollectionOfName("Anmeldung")Anzahl = AOAnmeldungen.count
procedure first
Element von AOCom.AOCollectionParameter keine
Bedeutung
Wählt das erste Element einer Kollektion.
Beispiel:
...
Dim AOKurs As AOCom.AOObject
Dim AOAnmeldungen As AOCom.AOCollection
...
Set AOKurs = ...
...
Set AOAnmeldungen = AOKurs.CollectionOfName("Anmeldung")AOAnmeldungen.open
AOAnmeldungen.first
Do While AOAnmeldungen.hitbottom = 0
...AOAnmeldungen.Next
LoopAOAnmeldungen.Close
function hitbottom Rückgabe Integer
Element von AOCom.AOCollectionParameter keine
Bedeutung
Die Funktion liefert als Rückgabewert 1 wenn versucht wird, über das Ende einer Datenmenge einer Kollektion hinaus zu blättern. Sonst ist der Rückgabewert 0
Beispiel:
...
Dim AOKurs As AOCom.AOObject
Dim AOAnmeldungen As AOCom.AOCollection
...
Set AOKurs = ...
...
Set AOAnmeldungen = AOKurs.CollectionOfName("Anmeldung")AOAnmeldungen.open
AOAnmeldungen.first
Do While AOAnmeldungen.hitbottom = 0
...AOAnmeldungen.Next
LoopAOAnmeldungen.Close
function hittop Rückgabe Integer
Element von AOCom.AOCollectionParameter keine
Bedeutung
Die Funktion liefert als Rückgabewert 1 wenn versucht wird, über das erste Element einer Datenmenge hinaus zurück zu blättern. Sonst ist der Rückgabewert 0
Beispiel:
...
Dim AOKurs As AOCom.AOObject
Dim AOAnmeldungen As AOCom.AOCollection
...
Set AOKurs = ...
...
Set AOAnmeldungen = AOKurs.CollectionOfName("Anmeldung")AOAnmeldungen.Open
AOAnmeldungen.last
Do While AOAnmeldungen.hittop = 0...
AOAnmeldungen.previous
Loop
AOAnmeldungen.Close
procedure last
Element von AOCom.AOCollectionParameter keine
Bedeutung
Wählt das letzte Element einer Datenmenge einer Kollektion.
Beispiel:
...
Dim AOKurs As AOCom.AOObject
Dim AOAnmeldungen As AOCom.AOCollection
...
Set AOKurs = ...
...
Set AOAnmeldungen = AOKurs.CollectionOfName("Anmeldung")AOAnmeldungen.Open
AOAnmeldungen.last
Do While AOAnmeldungen.hittop = 0...
AOAnmeldungen.previous
Loop
AOAnmeldungen.Close
function add Rückgabe IAOObject
Element von AOCom.AOCollectionParameter keine
Bedeutung
Erzeugt ein neues Element einer Kollektion als ABES-Datenobjekt des entsprechenden Typs.
Das Erzeugen eines neuen Elementes einer Kollektion löst die im Klassenmodell von ABES/Object ggf. definierten Ereignisse aus.
Falls die Kollektion im Klassenmodell als Readonly definiert wurde, wird kein neues Element erzeugt.Beispiel:
...
Dim AOKurs As AOCom.AOObject
Dim AOAnmeldungen As AOCom.AOCollection
...
Set AOKurs = ...
...
Set AOAnmeldungen = AOKurs.CollectionOfName("Anmeldung")
...Set ANewAnmeldung = AOAnmeldungen.add
procedure next
Element von AOCom.AOCollectionParameter keine
Bedeutung
Wählt das nächste Element einer Datenmenge.
Beispiel:
...
Dim AOKurs As AOCom.AOObject
Dim AOAnmeldungen As AOCom.AOCollection
...
Set AOKurs = ...
...
Set AOAnmeldungen = AOKurs.CollectionOfName("Anmeldung")AOAnmeldungen.open
AOAnmeldungen.first
Do While AOAnmeldungen.hitbottom = 0
...AOAnmeldungen.Next
LoopAOAnmeldungen.Close
procedure open
Element von AOCom.AOCollectionParameter keine
Bedeutung
Öffnet eine Datenmenge.
Beispiel:
...
Dim AOKurs As AOCom.AOObject
Dim AOAnmeldungen As AOCom.AOCollection
...
Set AOKurs = ...
...
Set AOAnmeldungen = AOKurs.CollectionOfName("Anmeldung")AOAnmeldungen.open
AOAnmeldungen.first
Do While AOAnmeldungen.hitbottom = 0
...AOAnmeldungen.Next
LoopAOAnmeldungen.Close
procedure previous
Element von AOCom.AOCollectionParameter keine
Bedeutung
Wählt das vorhergehende Element der Datenmenge einer Kollektion.
Beispiel:
...
Dim AOKurs As AOCom.AOObject
Dim AOAnmeldungen As AOCom.AOCollection
...
Set AOKurs = ...
...
Set AOAnmeldungen = AOKurs.CollectionOfName("Anmeldung")AOAnmeldungen.Open
AOAnmeldungen.last
Do While AOAnmeldungen.hittop = 0...
AOAnmeldungen.previous
Loop
AOAnmeldungen.Close
AOFilterItem | Übersicht: PropertyName, Value |
Ein AOFilterItem ermöglicht die Definiton von Filtern für alle Komponenten (AODataSet, AOCollection), die Datenmengen (=Objektmengen) verwalten. Die Anzahl der AOFilterItems pro Datenmenge ist nicht beschränkt.
ErzeugungEin AOFilterItem erhalten Sie von einem AODataSet- oder einem AOCollection-Objekt:
Beispiel in VB:
Dim AFilterItem As AOCom.AOFilterItem
Dim AOKurs As AOCom.AOObject
Dim AAnmeldungen As AOCom.AOCollection
...
Set AKurs = ...
...
Set AAnmeldungen = AKurs.CollectionOfName("Anmeldung")
Set AFilterItem = AAnmeldungen.createFilterItem("and", "Teilnehmer.Adresse.Ort", "equal")
AFilterItem.Value.AsString = "Hamburg"
...
Eigenschaften
AOOrder | Übersicht: AddOrder, clear |
Das AOOrder-Objekt erlaubt die Definition von Sortierreihenfolgen für Datenmengen (AODataSet, AOCollection).
Die gewünschte Sortierreihenfolge muss definiert werden, bevor die Datenmenge geöffnet wird.
Erzeugung
Ein AOOrder-Objekt erhalten Sie als Eigenschaft eines AODataSet- oder AOCollection-Objektes:
Beispiel in VB:
Dim AOKurs As AOCom.AOObject
Dim AAnmeldungen As AOCom.AOCollection
...
Set AKurs = ...
...
Set AAnmeldungen = AKurs.CollectionOfName("Anmeldung")AAnmeldungen.Order.Clear
AAnmeldungen.Order.AddOrder "Teilnehmer.Name", "up"
AAnmeldungen.Order.AddOrder "Teilnehmer.VorName", "up"
AAnmeldungen.Open...
Eigenschaften
- keine -
- leer -