Vertec via COM Proxy von aussen ansprechen
Die Vertec Desktop App und Cloud App können über die Vertec COM Schnittstelle angesprochen und damit von aussen durch eine andere unter Windows lauffähige Software (insbesondere alle lokal installierten Microsoft Office Apps) ferngesteuert werden.
Der Unterschied von Desktop App und Cloud App liegt darin, dass die Cloud App lokal einen COM Server anbietet, obwohl gar keine Business-Logik vorhanden ist. Dies wird mit einem COM Proxy zum eigentlichen COM Server, der auf dem Server in der Vertec Session läuft, simuliert. Der Datenverkehr läuft dabei über die normale Datenverbindung und ist darum nicht geeignet für Datenmigrationen bzw. grössere Datenmengen.
Der Zugriff auf Vertec erfolgt über COM Interfaces. Ein Interface im Sinne von COM beschreibt die Eigenschaften und Funktionen, welche ein COM Objekt zur Verfügung stellt.
Je nachdem, ob via COM die Desktop App (lokaler COM Server) oder die Cloud App (Proxy für die Verbindung zum COM Server) angesprochen wird, heissen die Interfaces unterschiedlich. Da die Desktop App in Zukunft eingestellt wird und ebenfalls über den COM Proxy angesprochen werden kann, werden hier die COM Proxy Interfaces beschrieben. Siehe auch: COM umstellen auf COM Proxy und COM Forwarding.
Alle Beispiele sind in Visual Basic geschrieben.
Dies ist das Standard-Interface des Vertec COM Servers. CreateObject("Vertec.App") liefert als Ergebnis eine Session Referenz.
Dim Vertec As Object
Set Vertec = CreateObject("Vertec.App")
Ausgehend davon können dann die Vertec Objekte angefordert werden.
Die ComCoClass hat folgende Eigenschaften:
| Eigenschaft / Funktion | Beschreibung | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ArgObject |
Liefert das zur Zeit aktuelle Objekt (aktueller Eintrag) in Vertec. Dies ist der Eintrag, welcher im aktiven Fenster von Vertec als Haupteintrag ausgewählt ist. Der Typ des zurückgegebenen Interfaces entspricht dem Typ des aktuellen Objekts. |
||||||||||||||||||||||
BeginSystemContext / EndSystemContext |
Schaltet Vertec innerhalb dieser beiden Befehle auf erweiterte Berechtigungen. Kann via COM nur angewendet werden, wenn Vertec mit dem Parameter /SUPER gestartet wurde und der Administrator eingeloggt ist. Sonst führt der Aufruf zu einem Fehler. |
||||||||||||||||||||||
CreateList(classname as string) |
Erstellt eine neue leere Vertec Liste für Einträge des angegebenen Typs (classname).
Set Projektbearbeiter = Vertec.ArgObject
Set ObjectList = Vertec.CreateList("Projektbearbeiter")
ObjectList.Add Projektbearbeiter
|
||||||||||||||||||||||
CreateObject(classname as string) |
Erzeugt ein neues Objekt in Vertec. Als Parameter muss der Klassenname des Objekts übergeben werden. Als Ergebnis liefert die Funktion eine Interface-Referenz des neu erzeugten Objekts. | ||||||||||||||||||||||
DisableEvents / EnableEvents |
Schaltet das Event-Script System vorübergehend aus. Kann via COM nur angewendet werden, wenn Vertec mit dem Parameter /SUPER gestartet wurde und der Administrator eingeloggt ist. Sonst führt der Aufruf zu einem Fehler. |
||||||||||||||||||||||
Eval(expression as string) |
Diese Funktion wertet eine beliebige OCL-Expression aus. Das Ergebnis wird als Variant zurückgegeben und kann je nach OCL-Expression als String, Integer, Float, Boolean oder Object interpretiert werden. |
||||||||||||||||||||||
EvalToVariable(root as object, expression as string, varname as string) |
Damit können Werte in Variablen geladen werden, die dann in OCL-Expressions verwendet werden können. Zum Beispiel sollen Leistungen ab einem bestimmten Zeitpunkt angezeigt werden. Statt nun die Leistungen in der Art "offeneLeistungen->select(datum >=" & encodeDate(2023, 03, 01) & ") " zusammenzusuchen, kann zuerst eine Variable gesetzt: Vertec.EvalToVariable Vertec.ArgObject, "encodeDate(2023,03,01)", "varVon" und dann in OCL verwendet werden: offeneLeistungen->select(datum >= varVon) Die Expression wird auf dem angegebenen Root-Objekt ausgewertet. Es kann also auch eine Expression der Art: Vertec.EvalToVariable Vertec.ArgObject, "projekt.rechnungen->reject(proforma)", "Rechlist" angegeben werden. |
||||||||||||||||||||||
ExecuteFileReport
|
Diese Funktion kann nur im Betrieb mit der Desktop App verwendet werden. Sie erlaubt es, einen Legacy Office-Bericht aufzurufen.
Beispiel Aufruf mit allen Parametern:
Set Vertec = CreateObject("Vertec.App")
Set Projekt = Vertec.ArgObject
Set Dok = Vertec.ExecuteFileReport("V:\Reports\Brief.dotx", Projekt, Nothing, "Brief.docx", "", "", True, False, True)
Um das Dokument zu drucken, kann Dok.PrintOut aufgerufen werden. |
||||||||||||||||||||||
GetObjectByID(ID: String or int) |
Gibt das Vertec Objekt mit der entsprechenden ID zurück. Als ID muss die Interne Id des Objekts angegeben werden, als String oder als Integer.
Set Obj = Vertec.GetObjectByID(2880)
Set Obj = Vertec.GetObjectByID("2880")
Ist kein Objekt mit dieser ID vorhanden, wird ein Fehler geworfen. |
||||||||||||||||||||||
GetWithSQL(className as String, SQLWhere as String, SQLOrder as String) |
Liefert das Ergebnis einer SQL-Abfrage auf einer bestimmten Vertec Klasse. Das heisst es werden per SQL alle Objekte einer bestimmten Klasse nach den angegebenen Kriterien (SQL Select, Where Clause) ausgewählt und als Liste zurückgegeben. Der ausführende Benutzer muss über Administratorenrechte oder über das SQL Query Recht verfügen. Im Gegensatz zu Eval werden nur die der SQL-Bedingung entsprechenden Objekte aus der Datenbank geladen. Beispiel:
Dim List as Object
Set List = Vertec.GetWithSQL("adresseintrag", "name like 'A%'", "name")
|
||||||||||||||||||||||
InputBox (Titel as String, Prompt as String, Default as String): String |
Zeigt einen Eingabedialog mit Titel, Prompt-Text und Eingabefeld mit Defaultwert an.
Wert = Vertec.InputBox("Vertec", "Wie lautet Ihr Name?", "")
![]() Rückgabewerte:
|
||||||||||||||||||||||
MsgBox (Prompt as String, [Buttons as int], [Titel as String]): integer |
Zeigt eine Messagebox an.
Vertec.MsgBox "Dies ist mein Text.", 1, "Titel" ![]() Der Rückgabewert gibt an, welcher Button geklickt wurde. Dies ist einer der folgenden Integer-Werte:
Wird ein Wert abgefragt, dann muss die Funktion mit einer Klammer aufgerufen werden:
Wert = Vertec.MsgBox ("Dies ist mein Text.", 1, "Vertec")
If Wert = 1 then
...
|
||||||||||||||||||||||
ScriptExecute(scripttext As String, argobject As Object) |
Ermöglicht den Aufruf eines Vertec Scripts. Der ausführende Benutzer muss über Administratorenrechte bzw. über das Recht verfügen, dieses Script auszuführen..
Dim Script As Object
Dim Bearbeiter As Object
Dim Scripttext As String
Set Bearbeiter = Vertec.User
Set Script = Vertec.ArgObject
Scripttext = Script.Member("scripttext")
Vertec.ScriptExecute (Scripttext, Bearbeiter)
|
||||||||||||||||||||||
SetObjVariable(Variablenname, Wert) |
Setzt eine Objektvariable in OCL. Beispiel: Vertec.SetObjVariable "myProjekt", proj Auf diese kann anschliessend in OCL-Expressions via Variablenname zugegriffen werden: offeneLeistungen->select(projekt=myProjekt)->size Der Unterschied zu EvalToVariable (siehe oben) besteht darin, dass hier einfach ein Objekt übergeben wird, ohne Auswertung einer Expression. |
||||||||||||||||||||||
SetResourcePlanValue(bearbeiter, projekt, phase, datum, intervalTyp, value) |
Ermöglicht das Setzen von Ressourcenplanwerten via Script.
Set Projektbearbeiter = Vertec.User
Set Projekt = Vertec.ArgObject
Vertec.SetResourcePlanValue Projektbearbeiter, Projekt, Nothing, Vertec.Eval("encodeDate(2023,04,24)"), 0, 540
|
||||||||||||||||||||||
ShowForm(obj As Object) |
Methode zum Aufrufen des Detailfensters des als Argument übergebenen Vertec Objekts. Zu beachten ist, dass sich damit das ArgObject, also das aktuelle Objekt in Vertec, ändert. Vertec.ShowForm Projekt |
||||||||||||||||||||||
Translate(text As String) As String |
Übersetzt einen Text in die aktuelle Oberflächensprache.
Wert = Vertec.Translate("Projektbearbeiter")
|
||||||||||||||||||||||
UpdateDatabase |
Speichert Änderungen in die Datenbank und validiert neu erstelle Objekte. Diese sind, sofern sie keine Regeln verletzen, danach nicht mehr ungültig. |
||||||||||||||||||||||
User |
Gibt den aktuell eingeloggten Benutzer zurück. |
Dies ist das Standard-Interface für alle Vertec Objekte.
Für gewisse Objekte wie Projekte, Rechnungen etc. sind zusätzlich eigene Interfaces definiert, welche von VtcObjectProxy erben (die Eigenschaften und Funktionen von VtcObjectProxy sind auch dort vorhanden) und dieses um separate Eigenschaften erweitern.
| Eigenschaft / Funktion | Beschreibung |
|---|---|
AddTag(Tagname as String) |
Fügt dem Objekt einen Tag hinzu. Set Projektbearbeiter = Vertec.User Projektbearbeiter.AddTag "mytag" Kann mit RemoveTag(Name) wieder entfernt werden. |
AsString |
Liefert die Standardanzeige des Objekts als String. Set Projektbearbeiter = Vertec.User Debug.Print Projektbearbeiter.AsString -> Christoph Keller |
ClassName |
Liefert den Klassennamen des Objekts als String. Set Projektbearbeiter = Vertec.User Debug.Print Projektbearbeiter.ClassName -> Projektbearbeiter |
Delete |
Löscht das Objekt in Vertec. Liefert einen Fehler, wenn der eingeloggte Benutzer keine Berechtigung zum Löschen hat. Set Obj = Vertec.ArgObject Obj.Delete |
Eval(expression as string) |
Wertet eine OCL-Expression auf dem Objekt aus. Im Unterschied zu Eval, welches auf der Session (ComCoClass) aufgerufen wird, wird hier die Expression direkt auf das Objekt angewendet.
Dim Projektbearbeiter as Object
Dim Projektliste as Object
Set Projektbearbeiter = Vertec.User
Set Projektliste = Projektbearbeiter.Eval("eigProjekte")
|
EvalAsString(expression as string) |
Dasselbe wie Eval, es wird aber direkt die String Representation des Ergebnisses geliefert.
Dim Projektbearbeiter as Object
Dim Wert as String
Set Projektbearbeiter = Vertec.User
Wert = Projektbearbeiter.EvalAsString("stufe")
|
GetMLValue(Index, Language As String) As String |
Sind auf dem Objekt Texte als Multi-Language Strings (MLStrings) vorhanden, können sie mit dieser Methode in den anderen Sprachen abgefragt werden.
Set Taetigkeit = Leistung.Eval("typ")
Wert = Taetigkeit.GetMLValue("text", "EN")
Die Abfrage via Member ( Gesetzt werden die MLStrings via SetMLValue. |
HasTag(tag As String) As Boolean |
Fragt ab, ob ein bestimmter Tag auf dem Objekt existiert.
If Projektbearbeiter.HasTag("mytag") Then
'Do Something
End If
Der Rückgabewert ist 1 (True) oder 0 (False). |
IsOfType(typeName As String) As Boolean |
Gibt an, ob das Objekt vom angegebenen Typ (Klassenname) ist. Beispiel:
Set Obj = Vertec.ArgObject
If Obj.IsOfType("Adresseintrag") Then
Debug.Print "Ist ein Adresseintrag"
End If
If Obj.IsOfType("Person") Then
Debug.Print "Ist sogar eine Person"
End If
Wie im Beispiel zu sehen, wird der gesamte Baum beachtet, also auch die Basisklassen. |
LinkTo(target As Object, rolle As String) |
Macht eine Verknüpfung (via Custom-Link-Typ) vom Objekt zum Ziel-Objekt (target) mit der angegebenen Rolle.
![]() Set Person = Vertec.GetObjectById(3045) Set Firma = Vertec.GetObjectById(3174) Person.LinkTo Firma, "VR-Mandate" 'oder Person.LinkTo Firma, "vrlinktyp_A" Mit Unlink kann die Verknüpfung wieder gelöst werden. Detaillierte Informationen dazu finden Sie im Artikel Operatoren und Methoden für Links. |
Member(membername: string) |
Lesezugriff auf das Member mit dem angegebenen Namen. Dies kann sowohl ein Attribut als auch ein Link (Objekt oder Objektliste) sein.
Set Projekt = Vertec.ArgObject
Set Kunde = Projekt.Member("kunde")
Nummer = Kunde.Member("standardtelefon")
Für den Schreibzugriff wird SetMember verwendet. |
MemberCount (As Long) |
Liefert die Anzahl Members eines Vertec Objekts. |
MemberWithSQL(membName As String, sqlWhere As String, sqlOrder As String) As VtcObjectListProxy |
Erlaubt es, bei persistenten Multilink Members mittels SQL Filter nur eine Auswahl der verknüpften Objekte zu laden. Der ausführende Benutzer muss über Administratorenrechte oder über das SQL Query Recht verfügen.
Dim Projekt As Object
Dim Rechlist As Object
Set Projekt = Vertec.Argobject
Set Rechlist = Projekt.MemberWithSQL("rechnungen", "datum between '01.01.2023' and '31.03.2023'", "nummer")
|
RemoveTag(Tagname as String) |
Entfernt einen Tag vom Objekt. Set Projektbearbeiter = Vertec.User Projektbearbeiter.RemoveTag "mytag" Tags können mit AddTag(Name) hinzugefügt werden. |
SetKeyValue(key As String, Value) |
Setzt einen Key-Value auf dem Objekt. Set Projektbearbeiter = Vertec.User Projektbearbeiter.SetKeyValue "Datum", Date Projektbearbeiter.SetKeyValue "Checked", True Für die Abfrage von Key-Values gibt es keine eigene Methode, sondern erfolgt via OCL:
Dim Datum As Date
Dim Checked As Boolean
Datum = Projektbearbeiter.Eval("keydate('Datum')")
Checked = Projektbearbeiter.Eval("keybool('Checked')")
Das Entfernen eines Key-Values geschieht über das Setzen des entsprechenden Keys mit Projektbearbeiter.SetKeyValue "Datum", Nothing Projektbearbeiter.SetKeyValue "Checked", "" |
SetMember(membername, wert) |
Schreibt den übergebenen Wert in das Member des angegebenen Namens. Der Wert kann sowohl ein Attribut als auch ein Link (Objekt) sein. Set Projektbearbeiter = Vertec.User Set Adresse = Vertec.ArgObject Adresse.SetMember "betreuer", Projektbearbeiter Adresse.SetMember "bemerkung", "Betreuer hinzugefügt" Für den Lesezugriff wird Member(Name) verwendet. |
SetMemberOutOfDate
|
Die Methode setzt ein bestimmtes Member "out of date", so dass bei dem nächsten Zugriff erneut auf die Datenbank zugegriffen wird und so der aktuelle Wert drin steht. Anwendungsfall: bei selbstgebauten Nummergeneratoren vor dem Zugriff auf ein Member "SetMemberOutOfDate" aufrufen, dann z.B. eins hochzählen, dann sofort "UpdataDatabase" aufrufen, so ist die Wahrscheinlichkeit klein, dass 2x die gleiche Nummer vergeben wird. Die Methode kann auch auf derived Attributen benutzt und damit eine erneute Berechnung ausgelöst werden, ohne dass sich etwas geändert hat (wie das sonst bei derived Attributen der Fall ist). |
SetMLValue(Index, Value As String, Language As String) |
Setzt Texte als Multi-Language Strings (MLStrings) in den verschiedenen Sprachen.
Taetigkeit.SetMLValue("text", "Vacanze", "IT")
Abgefragt werden die MLStrings via GetMLValue. |
SetZusatzfeld(Name As String, Value As String) |
Setzt den Wert des Zusatzfelds mit dem entsprechenden Namen als String. Kann nicht für Objekt-Zusatzfelder verwendet werden. Bei Feldtypen <> Bei Auswahl-Zusatzfeldern wird der String Wert übergeben. Set Adresse = Vertec.ArgObject Adresse.SetZusatzfeld "Druckoption", "Alles" Adresse.SetZusatzfeld "Checked", "1" Adresse.SetZusatzfeld "Anmerkungen", "Kontrolliert" Abgefragt werden die Zusatzfelder via Zusatzfeld(Name) oder ZusatzfeldAsVariant(Name). |
SetZusatzfeldAsVariant(Name As String, Value) |
Setzt den Wert des Zusatzfelds mit dem entsprechenden Namen als Variant. Kann für alle Zusatzfeld-Typen verwendet werden. Bei Auswahl-Zusatzfeldern kann der Wert als String oder als Integer übergeben werden. Set Adresse = Vertec.GetObjectById(3174) Adresse.SetZusatzfeldAsVariant "Druckoption", 1 Adresse.SetZusatzfeldAsVariant "Checked", True Adresse.SetZusatzfeldAsVariant "Anmerkungen", "Kontrolliert" Set Bericht = Vertec.GetObjectById(51371) Adresse.SetZusatzfeldAsVariant "Adressbericht", Bericht Abgefragt werden die Zusatzfelder via Zusatzfeld(Name) oder ZusatzfeldAsVariant(Name). |
Unlink(target: Object; rolle: String) |
Entfernt eine Verknüpfung zum übergebenen Objekt mit der angegebenen Rolle. Set Person = Vertec.GetObjectById(3045) Set Firma = Vertec.GetObjectById(3174) Person.Unlink Firma, "VR-Mandate" Hinweis für Custom-Links: Ist darauf die Löschweitergabe konfiguriert, dann kann der Link nicht mit dieser Methode aufgelöst werden. Die Auflösung eines solchen Links ist nur durch Löschen eines der Linkpartner-Objekte möglich. Mit LinkTo können Verknüpfungen erstellt werden. Detaillierte Informationen dazu finden Sie im Artikel Operatoren und Methoden für Links. |
UnloadObject |
Entfernt das Objekt aus dem Vertec Objektspeicher. Muss mit Vorsicht verwendet werden, da anschliessende Zugriffe auf das entladene Objekt zu Fehlern führen können. |
Zusatzfeld(zusatzfeldname as string) |
Lesezugriff auf das Zusatzfeld. Gibt den Wert typunabhängig als String zurück (entspricht der OCL-Abfrage zusatzfeldasstring). Falls ein Zusatzfeld den Wert NULL hat, wird ein Leerstring geliefert. Bei Auswahlzusatzfeldern wird der String Wert geliefert.
Dim Druckoption As String
Dim Checked As String
Dim Anmerkung As String
Dim Bericht As String
Druckoption = Adresse.Zusatzfeld("Druckoption")
Checked = Adresse.Zusatzfeld("Checked")
Anmerkung = Adresse.Zusatzfeld("Anmerkungen")
Bericht = Adresse.Zusatzfeld("Adressbericht")
Geschrieben werden Zusatzfelder mit SetZusatzfeld oder SetZusatzfeldAsVariant. |
ZusatzfeldAsVariant
|
Lesezugriff auf das Zusatzfeld. Gibt den Wert abhängig vom Typ zurück. Falls ein Zusatzfeld den Wert NULL hat, so wird der Defaultwert für den Feldtyp geliefert (Zahlen 0 bzw. 0.00, String ""). Bei Auswahlzusatzfeldern wird der Integer Wert geliefert.
Dim Druckoption As Integer
Dim Checked As Boolean
Dim Anmerkung As String
Dim Bericht As Object
Druckoption = Adresse.ZusatzfeldAsVariant("Druckoption")
Checked = Adresse.ZusatzfeldAsVariant("Checked")
Anmerkung = Adresse.ZusatzfeldAsVariant("Anmerkungen")
Set Bericht = Adresse.ZusatzfeldAsVariant("Adressbericht")
Geschrieben werden Zusatzfelder mit SetZusatzfeld oder SetZusatzfeldAsVariant. |
Alle Listenergebnisse (z.B. Rückgabewerte von Eval, Member etc.) werden durch ein VtcObjectListProxy Interface dargestellt. Dieses hat folgende Eigenschaften:
| Eigenschaft / Funktion | Beschreibung |
|---|---|
Add(obj As Object) |
Fügt ein Objekt in die Liste ein:
Set Projektbearbeiter = Vertec.User
Set Bearbeiterlist = Vertec.CreateList("Projektbearbeiter")
Bearbeiterlist.Add Projektbearbeiter
Falls es sich bei der Liste um ein Link-Member eines Vertec Objekts handelt, dann wird effektiv eine neue Verknüpfung erzeugt:
Set Benutzergruppe = Vertec.ArgObject
Set Bearbeiterlist = Benutzergruppe.Eval("benutzer")
Bearbeiterlist.Add Projektbearbeiter
|
AddList(list As Object) |
Fügt die übergebene Liste der aktuellen Liste hinzu.
Set Benutzergruppe = Vertec.ArgObject
Set Benutzerlist = Benutzergruppe.Eval("benutzer")
Set Bearbeiterlist = Vertec.GetWithSQL("projektbearbeiter", "bold_id IN (Select Projektleiter FROM Projekt)", "name")
Benutzerlist.AddList Bearbeiterlist
|
Count As Long |
Anzahl Objekte in der Liste. |
Eval(expression As String) |
Wertet die angegebene OCL Expression auf der Liste aus.
Set Projektbearbeiter = Vertec.User
Set Leistlist = Projektbearbeiter.Eval("offeneLeistungen")
Vertec.SetObjVariable "aktBearb", Projektbearbeiter
Set Projektliste = Leistlist.Eval("self->select(projekt.projektleiter=aktBearb)")
|
EvalAsString(expression As String) As String |
Gleich wie Eval, das Ergebnis wird als String zurückgegeben. |
Includes(item As Object) As Boolean |
Gibt an, ob ein Objekt in der Liste vorhanden ist.
Set Projektbearbeiter = Vertec.User
Set Benutzergruppe = Vertec.ArgObject
Set Benutzerlist = Benutzergruppe.Eval("benutzer")
If Benutzerlist.Includes(Projektbearbeiter) Then
...
|
IndexOf(item As Object) As Long |
Gibt die Position des angegebenen Objekts in der Liste an. 0-basiert. Falls nicht enthalten: -1.
Set Projektbearbeiter = Vertec.User
Set Benutzergruppe = Vertec.ArgObject
Set Benutzerlist = Benutzergruppe.Eval("benutzer")
i = Benutzerlist.IndexOf(Projektbearbeiter)
|
Objects(Index As Long) As VtcObjectProxy |
Liefert unter Angabe eines Index ein Objekt aus der Liste. 0-basiert.
Set Projektliste = Projektbearbeiter.Eval("eigProjekte")
For i = 0 To Projektliste.Count - 1
Set Projekt = Projektliste.Objects(i)
Projekt.SetMember "code", UCase(Projekt.Member("code"))
Next i
|
Remove(obj As Object) |
Entfernt ein Objekt aus der Liste. Falls es sich bei der Liste um ein Link-Member eines Vertec Objekts handelt, wird effektiv eine Verknüpfung gelöscht. Es muss geprüft werden, ob sich das zu entfernende Objekt wirklich in der Liste befindet, sonst erscheint der Fehler
Set Projektbearbeiter = Vertec.User
Set Benutzergruppe = Vertec.Argobject
Set Benutzerlist = Benutzergruppe.Eval("benutzer")
If Benutzerlist.Includes(Projektbearbeiter) Then
Benutzerlist.Remove Projektbearbeiter
End If
|
RemoveByIndex(Index As Long) |
Entfernt ein Element aus der Liste aufgrund seines Indexes. 0-basiert. Falls es sich bei der Liste um ein Link-Member eines Vertec Objekts handelt, wird effektiv eine Verknüpfung gelöscht. Dabei muss beachtet werden, dass sich die Indizes der verbleibenden Objekte in der Liste ändern. Werden Elemente aufgrund der Indizes entfernt, empfehlen wir, dies in der Reihenfolge rückwärts zu tun.
Set Benutzergruppe = Vertec.ArgObject
Set Benutzerlist = Benutzergruppe.Eval("benutzer")
For i = Benutzerlist.Count - 1 To 0 Step -1
Benutzerlist.RemoveByIndex (i)
Next i
|
Für gewisse Objekte wie Projekte, Rechnungen etc. sind eigene Interfaces definiert, welche von VtcObjectProxy erben. Zusätzlich dazu verfügen diese Interfaces noch über eigene Funktionen, welche nur darauf zur Verfügung stehen, z.B. bei Rechnungen das Verbuchen oder Stornieren.
| Interface | Methoden |
|---|---|
| AktivitaetProxy | SetPfad |
| TimAuslageProxy | MakeOffen, MakeVerrechnet |
| TimBearbeiterProxy | StartTimer, StopTimer |
| TimLeistungProxy | MakeOffen, MakeVerrechnet, UpdateSatz |
| TimRechnungProxy | Buchen, CreateBeleg, ImportZahlungen, MakeOffen, MakeVerrechnet, ManipulateToOriginalState, ManipulateToTotalBetrag, SetTotal, Stornieren |
| TimSpesenProxy | MakeOffen, MakeVerrechnet |
| TimWaehrungProxy | GetKursTo |