Beschreibung der COM Interfaces
Product line
Standard
|Expert
Operating mode
CLOUD ABO
|ON-PREMISES
Modules
Services & CRM
Budget & Phases
Purchases
Resource Planning
Business Intelligence
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.
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: 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 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.
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 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. |
||||||||||||||||||||||
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 eigene Interfaces definiert, welche von IVtcObject/VtcObjectProxy erben, d.h. die Eigenschaften und Funktionen von IVtcObject/VtcObjectProxy sind auch auf den Objekt-Interfaces vorhanden.
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 |
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") |
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 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") |
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) |
Zusatzfelds mit dem entsprechenden Namen als Variant. Kann für alle Zusatzfeld-Typen verwendet werden. Setzt den Wert desBei 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. 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 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 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 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.
Interface | Methoden |
---|---|
IAktivitaet / AktivitaetProxy | SetPfad |
ITimAuslage / TimAuslageProxy | MakeOffen, MakeVerrechnet |
ITimBearbeiter / TimBearbeiterProxy | StartTimer, StopTimer |
ITimLeistung / TimLeistungProxy | MakeOffen, MakeVerrechnet, UpdateSatz |
ITimRechnung / TimRechnungProxy | Buchen, CreateBeleg, ImportZahlungen, MakeOffen, MakeVerrechnet, ManipulateToOriginalState, ManipulateToTotalBetrag, SetTotal, Stornieren |
ITimSpesen / TimSpesenProxy | MakeOffen, MakeVerrechnet |
ITimWaehrung / TimWaehrungProxy | GetKursTo |
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:
Ü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.