'/** ' * Parameter zur Steuerung des Verhalten des Iterators ' * Die einzelnen Parameter sind mit + kombinierbar ' */ Public Enum itParams itNone = 0 'Kein Parameter hat gültigkeit itNothingAsEmptyList = 2 ^ 0 'Leerer String, Nothing, Empty, Null wird als leere Liste akzeptiert und wirft kein Fehler itListNextNoParamsAsToNext = 2 ^ 1 'Wenn bei listNext keine Parameter angeben werden, einfach eins vorrücken. itErrorAtEmptyList = 2 ^ 2 'Fehler generieren, wenn die iListe leer ist itDaoValue = 2 ^ 3 'Field-Value anstelle von Field ausgeben itIndexInsteadKey = 2 ^ 4 'Gibt bei den toX() Funktionen den Index anstelle des Keys zurück itDefault = itNothingAsEmptyList + itListNextNoParamsAsToNext [_LAST] = 4 End Enum
Die Eigenschaften der Klasse.
r steht für Readable, w für writable
Diese Properties sind die Einzeilzuordnungen zu itparams
Diese Funktionen dienesn dazu, dass die Klasse wie eine Collection genutzt werden kann.
http://msdn.microsoft.com/en-us/library/aa262338%28v=vs.60%29.aspx
'/** ' * Der NewEnum wird für die For Each.. Next Schleife verwendet ' * ' * Diese Funktion hat das Attribut "'Attribute NewEnum.VB_UserMemId = -4" ' * !! Diese Iterierung hat keinen Einfluss auf die aktuelle Position !! ' * ' * @return Das nächste element ' */ Public Function NewEnum() As IUnknown
'/** ' * Entspricht dem item()-Befehl der Listenobjekte ' * Alle 3 Propert-Funktionen aben das versteckte Attribut "Attribute item.VB_UserMemId = 0" ' * Dadurch kann mittels it(1), it("MyFeild"), it!MyField etc darauf zugegriffen werden. ' * ' * !! Das Verhalten dieser Funktion ist NICHT standartisiert. Sie entspricht dem entsprechenden Verhalten der Source !! ' * ' * @param Variant Index/Key ' * @return Variant ' */ Public Property Get item(ByVal iIndex As Variant) As Variant
'/** ' * Initialisuert den Iterator ' * @param Variant Die Liste, über welche Iteriert werden soll ' * @param itParams Parameters ' * @return Boolean true: iList ist eine Liste und hat Werte ' */ Public Static Function initialize( _ ByRef iList As Variant, _ Optional ByVal iParams As itParams = itDefault _ ) As Boolean
Die Parameters findest du hier. Sie sind mit + kombinierbar.
'/** ' * Analog zu initialze. Erstellt aber direkt ein Recordset aus einem SQL ' * @param String SLQ String ' * @param itParams Parameters ' * @return Boolean true: iList ist eine Liste und hat Werte ' */ Public Static Function initializeRs( _ ByVal iSql As String, _ Optional ByVal iParams As itParams = itDefault _ ) As Boolean
'/** ' * Geht zum nächsten Datensatz. Der Key und er Datensatz werden als Parameter zurückgegeben, EOF als Return-Value ' * @param Variant Key oder pos des Items ' * @param Variant Das Item himself ' * @return Boolean EOF Public Function toNext( _ Optional ByRef oKey As Variant = Null, _ Optional ByRef oItem As Variant = Null _ ) As Boolean
'/** ' * Geht zum nächsten Datensatz. Der Key und er Datensatz werden als Parameter zurückgegeben, EOF als Return-Value ' * @param Variant Key oder pos des Items ' * @param Variant Das Item himself ' * @return Boolean EOF Public Function toPrev( _ Optional ByRef oKey As Variant = Null, _ Optional ByRef oItem As Variant = Null _ ) As Boolean
'/** ' * Geht zum ersten Datensatz. ' * Vorsicht, während reset() eins vor den ersten Datensatz geht, geht toFirst() bereits auf den ersten Datensatz ' * Somit ists das eigentlich reset()+toNext() ' * @param Variant Key oder pos des Items ' * @param Variant Das Item himself ' * @return Boolean EOF Public Function toFirst( _ Optional ByRef oKey As Variant = Null, _ Optional ByRef oItem As Variant = Null _ ) As Boolean
'/** ' * Geht zum nächsten Datensatz. Der Key und er Datensatz werden als Parameter zurückgegeben, EOF als Return-Value ' * @param Variant Key oder pos des Items ' * @param Variant Das Item himself ' * @return Boolean EOF Public Function toLast( _ Optional ByRef oKey As Variant = Null, _ Optional ByRef oItem As Variant = Null _ ) As Boolean
'/** ' * Geht zum nächsten Datensatz. Der Key und er Datensatz werden als Parameter zurückgegeben, EOF als Return-Value ' * @param Long Absolute Position. Zwischen 0 und Count-1 ' * @param Variant Key oder index des Items ' * @param Variant Das Item himself ' * @return Boolean EOF Public Function toPosition( _ ByVal iAbsolutPosition As Long, _ Optional ByRef oKey As Variant = Null, _ Optional ByRef oItem As Variant = Null _ ) As Boolean
Siehe auch [VBA] list()
'/** ' * Rückt den Zeiger um Eins vor und gibt die Elemente einer Unterliste aus. ' * @paramArray Variant Auflistung der Variablen, die abgefüllt werden ' * @return EOF ' */ Public Function listNext( _ ParamArray oParams() As Variant _ ) As Boolean
Siehe auch [VBA] list()
'/** ' * Ggibt die Elemente der aktuellen Unterliste aus. ' * @paramArray Variant Auflistung der Variablen, die abgefüllt werden ' * @return EOF & BOF ' */ Public Function list( _ ParamArray oParams() As Variant _ ) As Boolean
'/** ' * Setzt den pos auf den Start-1 zurück, so dass bei einem toNext() der erste Datensatz kommt ' */ Public Sub reset()
Wenn das Current-Objekt selber wieder iterierbar ist, kann mit dieser Methode direkt ein Iterator für das Objekt erstellt werden.
'/** ' * Gibt current als Iterator zurück ' * @return Iterator ' */ Public Property Get subIterator() As Iterator
Die folgenden Datentypen werden vom Iterator als Liste erkannt und können iteriert werden