Der Chatbot hilft Ihnen bei Fragen rund um das Produkt und die Anpassbarkeit der Software. Wie bei allen AI-generierten Daten sollten die Antworten bei kritischen Informationen verifiziert werden. Nehmen Sie dafür gerne Kontakt mit uns auf. Weitere Informationen zur Verarbeitung der Chat-Daten bieten wir auf der Datenschutzseite.
Die besten Antworten liefert der Chatbot, wenn Ihr Input möglichst viele Informationen enthält. Zum Beispiel:
«Welche Apps stehen im Vertec Cloud Abo zur Verfügung?»
Aktualisiert: 13.07.2023
|
SetResourcePlanValue funktioniert nicht mit Planungsbearbeitern
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. Die Verwendung ist jedoch gleich, die aufrufende Applikation muss keine Unterscheidung machen.
Die unten aufgelisteten Interface Namen sind nach dem Schema COM-Name / Proxy-Name.
Alle Beispiele sind in Visual Basic geschrieben.
IVtcSession / ComCoClass
Dies ist das Standard-Interface des Vertec COM Servers. CreateObject("Vertec.App") liefert als Ergebnis eine Session Referenz. Ausgehend von IVtcSession/ComCoClass können andere Objekte angefordert werden.
Dim Vertec As Object
Set Vertec = CreateObject("Vertec.App")
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.
Vorsicht: Eval mit einer OCL-Expression lädt alle zu ihrer Berechnung notwendigen Objekte aus der Datenbank. In gewissen Fällen kann dies zu Performance-Problemen oder grossem Memory-Bedarf führen. Für Abfragen grösserer Mengen gleicher Objekte ist GetWithSQL vorzuziehen.
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:
ExecuteFileReport
(templatepath As String,
rootObj As IVtcObject,
[optarg As IVtcObject],
[filename As String],
[subject As String],
[text As String],
[linkToRoot As Boolean = Falsch], [linkToOptarg As Boolean = Falsch],
[showWord As Boolean = Wahr]) As Object
Diese Funktion kann nur im Betrieb mit der Desktop App verwendet werden. Sie erlaubt es, einen Legacy Office-Bericht aufzurufen.
templatepath: Pfad zur Vorlage.
rootObj: Das Vertec Objekt, für das der Report ausgeführt werden soll.
optarg: Entspricht der optionalen Adresse auf dem Druckdialog. Optionales Argument. Wenn nicht verwendet, Parameter mit nothing angeben.
filename: Speicherpfad des neu erzeugten Dokuments. Optional. Kann absolut als gesamter Pfad oder als Filename angegeben werden (relativ, verwendet als Pfad den Dokpfad des rootObj). Ist nichts angegeben, wird das Dokument nicht gespeichert. Die Parameter linkToRoot und linkToOptarg kann nur erfolgen, wenn das Dokument gespeichert wird.
subject: Entspricht dem Betreff auf dem Druckdialog. Optional.
text: Entspricht dem Kommentar auf dem Druckdialog. Optional.
linkToRoot: Verknüpft das Dokument mit dem Hauptobjekt (Häkchen Auf Hauptobjekt auf dem Druckdialog). Optional. Standard: Nein. Die Verknüpfung kann nur erfolgen, wenn der Bericht gedruckt wird (siehe Parameter filename).
linkToOptarg: Verknüpft das Dokument mit der zugehörigen Adresse (Häkchen Auf Adresse auf dem Druckdialog). Optional. Standard: Nein. Die Verknüpfung kann nur erfolgen, wenn der Bericht gedruckt wird (siehe Parameter filename).
showWord: Öffnet das erstellte Dokument im Word und zeigt es auf dem Bildschirm an. Optional. Standard: Ja.
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 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 in einer 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.
Titel: Der Titel der Inputbox. Soll die Inputbox keinen Titel haben, geben Sie einen Leerstring an.
Prompt: Der Text, der angezeigt werden soll
Default: Der Text, der als Standardantwort im Feld angezeigt werden soll. Möchten Sie das Eingabefeld leer anzeigen, geben Sie hier einen Leerstring an.
Wert = Vertec.InputBox("Vertec", "Wie lautet Ihr Name?", "")
Rückgabewerte:
Wenn der Benutzer OK klickt (oder Enter drückt), wird der Inhalt der Textbox zurückgegeben.
Wenn der Benutzer Abbrechen klickt, wird ein Leerstring zurückgegeben. Es kann also nicht unterschieden werden, ob der Benutzer nichts eingegeben oder abgebrochen hat.
MsgBox (Prompt as String, [Buttons as int], [Titel as String]): integer
Zeigt eine Messagebox an.
Prompt: Die Meldung, die angezeigt werden soll.
Buttons: optional. Standard: 0. Ein Integer-Wert wie folgt:
0
OK
1
OK, Abbrechen
3
Ja, Nein, Abbrechen
4
Ja, Nein
16
Kritische Message: rotes X und OK-Button
48
Warnung: gelbes Ausrufezeichen und OK-Button
64
Information: Blaues i und OK-Button
Titel: optional. Standard: Leer. Titel der Messagebox.
Vertec.MsgBox "Dies ist mein Text.", 1, "Titel"
Der Rückgabewert gibt an, welcher Button geklickt wurde. Dies ist einer der folgenden Integer-Werte:
1
OK
2
Abbrechen
6
Ja
7
Nein
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..
scripttext: Als Scripttext wird der Code übergeben. Dies kann der Text eines in Vertec registrierten Scripts oder ein Codetext sein.
ArgObject: Mit diesem Parameter können Sie das Objekt angeben, auf dem das Script ausgeführt werden soll. Wird dieser Parameter weggelassen, wird das Script auf dem aktuellen Vertec-Objekt aufgerufen.
Dim Script As Object
Dim Scripttext As String
Set Script = Vertec.ArgObject
Scripttext = Script.Member("scripttext")
Vertec.ScriptExecute (Scripttext)
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.
Ermöglicht das Setzen von Ressourcenplanwerten via Script.
bearbeiter: Projektbearbeiter, auf welchem Ressourcen geplant werden. Funktioniert nicht mit Planungsbearbeitern.
projekt: Wenn die Planungsebene auf Projekt eingestellt ist: Das Projekt, auf welches geplant wird. Sonst: Nothing.
phase: Wenn die Planungsebene auf Phase eingestellt ist: Die Projektphase, auf welche geplant wird. Sonst: Nothing.
datum: Es wird die Periode genommen, in welcher sich das Datum befindet.
intervalTyp: Wird ab Vertec 6.6 nicht mehr beachtet, da das Planungsintervall fix ist und immer aus den Systemeinstellungen genommen wird. Vorher: 0 = Tag, 1 = Woche, 2 = Monat.
value: Wert in Minuten
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
Vertec.UpdateDatabase schreibt alle nicht gespeicherten Daten in die Datenbank.
Speichert Änderungen in die Datenbank und validiert neu erstelle Objekte. Diese sind, sofern sie keine Regeln verletzen, danach nicht mehr ungültig.
Dies ist das Standard-Interface für alle Vertec Objekte.
Für gewisse Objekte wie Projekte, Rechnungen etc. sind eigene Interfaces definiert, welche von IVtcObject/VtcObjectProxy erben, d.h. die Eigenschaften und Funktionen von IVtcObject/VtcObjectProxy sind auch auf den Objekt-Interfaces vorhanden.
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
DefaultInterface
Liefert bei Objekten mit speziellen Interfaces dieses, sonst IVtcObject/VtcObjectProxy.
Wird nicht mehr benötigt, da die Objekte selbst als Interface geliefert werden, so dass direkt damit gearbeitet werden kann.
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 (IVtcSession/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")
Language: Der jeweilige Languagecode (DE, DD, FR, IT, EN).
Set Taetigkeit = Leistung.Eval("typ")
Wert = Taetigkeit.GetMLValue("text", "EN")
Die Abfrage via Member (Taetigkeit.Member("text")) liefert den Wert immer in der aktuellen Oberflächensprache zurück.
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.
target: Das Objekt, mit welchem das aktuelle Objekt verknüpft werden soll
rolle: Die gewünschte Rolle kann auf zwei Arten angegeben werden:
Die Bezeichnung der Linkrolle auf dem entsprechenden Linktyp.
Die Eintrag Id des Linktyps, gefolgt von _A oder _B je nach Seite der Linkrolle.
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.
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 IVtcObjectList/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")
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
(membername as string)
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)
Language: Der jeweilige Languagecode (DE, DD, FR, IT, EN).
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 <> Zeichen oder Text muss der String passend für den Feldtyp übergeben (Zahlen "0" bzw. "0.00", Boolean "0" oder "1" etc.) oder SetZusatzfeldAsVariant verwendet werden.
Bei Auswahl-Zusatzfeldern wird der String Wert übergeben.
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: IVtcObject; 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.
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
(zusatzfeldname as string)
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.
IVtcObjectList / VtcObjectListProxy
Alle Listenergebnisse (z.B. Rückgabewerte von Eval, Member etc.) werden durch ein IVtcObjectList/VtcObjectListProxy Interface dargestellt. Dieses hat folgende Eigenschaften und Funktionen:
Eigenschaft / Funktion
Beschreibung
Add(obj As IVtcObject/VtcObjectProxy)
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 IVtcObjectList/VtcObjectListProxy)
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 IVtcObject/VtcObjectProxy) 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 IVtcObject/VtcObjectProxy) 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 Object
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 IVtcObject)
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 Item not in List.
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
Weitere Interfaces
Für gewisse Objekte wie Projekte, Rechnungen etc. sind eigene Interfaces definiert, welche von IVtcObject/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.
Für Einsicht in den Objektkatalog, code completion und compile-time type checking kann die Vertec Type Library in der externen Applikation eingebunden werden. Hier im Beispiel verwenden wir zur Ansicht Microsoft Excel.
Als erstes referenzieren wir die Vertec Type Library. Dies geschieht im Visual Basic Editor über das Menü Extras > Verweise. Es öffnet sich folgendes Fenster:
In den verfügbaren Verweisen aktivieren wir die Vertec Typelibrary.
Nun haben wir Zugriff auf den Objektkatalog:
Objektkatalog
Über das Menü Ansicht > Objektkatalog oder die Funktionstaste F2 öffnet sich der Objektkatalog.
In der Combobox <Alle Bibliotheken> wählen wir Vertec aus. Folgende Ansicht erscheint:
Wird links eine Klasse markiert (hier im Beispiel das IVtcObject), werden rechts die dazugehörigen Methoden (als Symbol die grünen Würfel) und Eigenschaften (als Symbol die Hand) dargestellt.
Wichtig ist, dass nicht die Objekte nicht direkt auf Typen wie z.B. IVtcObject, App etc. deklariert werden. Die Deklaration von Objekten, Objektlisten, Session etc. erfolgt immer auf Object. Also nicht:
Dim Projektbearbeiter as IVtcObject
Sondern:
Dim Projektbearbeiter as Object
Die entsprechenden Interfaces sind im laufenden Betrieb dann vorhanden, sobald das Objekt geladen wird.