VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "mEpl" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = False Option Explicit Public eplan As EPLAPILib.Generic Public trans As EPLAPILib.Transaction Public hEplan As EplHandle Public session As EplSession Public h_command As EplHandle Public ret As EplHandle Dim h_c As EplHandle Dim Err As EplHandle Dim LastErr As EplHandle ' ' Diese Modul dient als Klassenmodul für die Bearbeitung der API-Funktionen ' von EPLAN 21. Hier wird EPLAN initializiert. Der Benutzer wird eingeloggt ' und die API-Funktionen werden lizensiert. ' ' Vorteil als Klassenmodul: Aufruf als Objekt und dadurch wird die Terminate- ' Funktion immer, wenn das Programm beendet wird bearbeitet, wodurch alle Datenbanken ' die in der Sitzung geöffnet worden sind wieder geschlossen werden. ' Private Sub Class_Initialize() Dim h_ret As EplHandle ' Öffnen der Log-Datei. Hier werden alle Tätigkeiten der API eingetragen. ' ' Die beiden Objekte zur API-Verarbeitung werden geöffnet. Set eplan = CreateObject("EplApi.Generic") Set trans = CreateObject("EplApi.Transaction") ' ' das EPLAN-Handle wird auf den Fehler-Code gesetzt um kontrollieren zu können ' ob die EPLAN-Initialisierung erfolgreich war. hEplan = -1 ' ' EPLAN wird initialisiert hEplan = eplan.Initialize ret = eplan.LastError ' ' Die Transaktion wird gestartet. Dadurch wird die Performance ' der API gesteigert. trans.Start 0 ' ' Die Session wird gebildet. session = eplan.createSession ' ' Das Kommando zur EPLAN Lizensierung h_command = eplan.createCommand(session, "EPLAN.EPLAN21.LICENSE") ret = eplan.SetParam(session, h_command, PARAM_LICENSE_USERNAME, "Hier euer Name", 0) ret = eplan.SetParam(session, h_command, PARAM_LICENSE_USERNUMBER, "Hier eure Codenummer", 0) ret = eplan.executeCommand(session, h_command) ret = eplan.closeObject(session, h_command) ' ' Das Kommando zum einloggen in EPLAN h_command = eplan.createCommand(session, "EPLAN.EPLAN21.LOGIN") ret = eplan.SetParam(session, h_command, PARAM_LOGIN_ROLEID, "2", 0) ret = eplan.SetParam(session, h_command, PARAM_LOGIN_PASSWORD, "eplan21", 0) ret = eplan.executeCommand(session, h_command) ret = eplan.closeObject(session, h_command) ' End Sub Private Sub Class_Terminate() ' ' Statusanzeige am Monitor ' ' Falls die Datenbank noch ein gültiges Handle besitzt (größer -1) ' wird diese geschloßen. If h_database <> -1 Then ' ' Das Kommando zum schließen einer Datenbank h_command = eplan.createCommand(session, "EPLAN.EPLAN21.DATABASE.CLOSE") eplan.SetParam session, h_command, PARAM_CLOSEDB_DBNAME, _ eplan.getProperty(session, h_database, PROPERTY_GENE_NAME) eplan.executeCommand session, h_command eplan.closeObject session, h_command ' End If ' ' Das Komando zum Loggout: es wird das Login-Command benutzt. Jedoch ' sind Benutzername und ID gelöscht. h_command = eplan.createCommand(session, "EPLAN.EPLAN21.LOGIN") ret = eplan.SetParam(session, h_command, PARAM_LOGIN_ROLEID, "0", 0) ret = eplan.SetParam(session, h_command, PARAM_LOGIN_PASSWORD, "", 0) ret = eplan.executeCommand(session, h_command) ' ' Alle Handles werden geschloßen. Achtung!!! Diesen Befehl nur hier verwenden, ' da auch das Eplan-Handle und das Database-Handle verloren gehen! eplan.clearAllHandles session ' Die Session wird beendet. eplan.destroySession session ' Transaktion wird geschlossen trans.commit ' EPLAN 21 wird deinitialisert. hEplan = eplan.deinitialize ' das Objekt eplan wird gelöscht. Set eplan = Nothing 'Set trans = Nothing ' Die Log-Datei wird geschlossen. Close #datnr End Sub