Metainformationen zur Seite
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
speedy:30_modules:script [2023/07/12 19:01] – speedy | speedy:30_modules:script [2024/01/17 09:02] (aktuell) – [File-Ereignisse] speedy | ||
---|---|---|---|
Zeile 19: | Zeile 19: | ||
- | ==== Ereignisroutinen ==== | + | ===== Ereignisroutinen |
Die Ereignisroutinen haben, wenn nicht anders beschrieben, | Die Ereignisroutinen haben, wenn nicht anders beschrieben, | ||
< | < | ||
Zeile 27: | Zeile 27: | ||
| handling | | handling | ||
| dictionary | | dictionary | ||
- | \\ | ||
- | === Konstanten === | + | ==== Konstanten |
Der Parameter **timing** gibt an zu welcher Zeit das Ereignis ausgeführt wird. | Der Parameter **timing** gibt an zu welcher Zeit das Ereignis ausgeführt wird. | ||
Zeile 85: | Zeile 84: | ||
Gibt den Root Path, wie in der dwKernel.ini eingestellt, | Gibt den Root Path, wie in der dwKernel.ini eingestellt, | ||
\\ | \\ | ||
+ | |||
=== Application.GetVaultCount === | === Application.GetVaultCount === | ||
Gibt die Anzahl der Vault datenbank zurück. \\ | Gibt die Anzahl der Vault datenbank zurück. \\ | ||
\\ | \\ | ||
+ | |||
=== Application.GetVaultDbAt(iIndex) === | === Application.GetVaultDbAt(iIndex) === | ||
Gibt das ADODB.Connection Object der entsprechenden Vault Datenbank zurück. \\ | Gibt das ADODB.Connection Object der entsprechenden Vault Datenbank zurück. \\ | ||
\\ | \\ | ||
+ | |||
=== Application.GetVaultNameAt(iIndex) === | === Application.GetVaultNameAt(iIndex) === | ||
Gibt den Namen der Vault Datenbank zurück. \\ | Gibt den Namen der Vault Datenbank zurück. \\ | ||
\\ | \\ | ||
+ | |||
=== Application.GetTempFileName === | === Application.GetTempFileName === | ||
Gibt einen temporären Dateinamen im aktuellen Temp-Verzeichnis zurück. \\ | Gibt einen temporären Dateinamen im aktuellen Temp-Verzeichnis zurück. \\ | ||
\\ | \\ | ||
+ | |||
=== Application.GetTempPath === | === Application.GetTempPath === | ||
Gibt das aktuelle Temp-Verzeichnis zurück. \\ | Gibt das aktuelle Temp-Verzeichnis zurück. \\ | ||
\\ | \\ | ||
+ | |||
=== Application.GetAppPath === | === Application.GetAppPath === | ||
Gibt das Installationsverzeichnis der Anwendung zurück. \\ | Gibt das Installationsverzeichnis der Anwendung zurück. \\ | ||
\\ | \\ | ||
+ | |||
=== Application.ProgressStart(lMin, | === Application.ProgressStart(lMin, | ||
Beginnt einen Dialog mit Fortschrittsanzeige. \\ | Beginnt einen Dialog mit Fortschrittsanzeige. \\ | ||
\\ | \\ | ||
+ | |||
=== Application.ProgressStop === | === Application.ProgressStop === | ||
Stoppt die Fortschrittsanzeige. \\ | Stoppt die Fortschrittsanzeige. \\ | ||
\\ | \\ | ||
+ | |||
=== Application.ProgressText(sText) === | === Application.ProgressText(sText) === | ||
Setzt den Text in der Fortschrittsanzeige. \\ | Setzt den Text in der Fortschrittsanzeige. \\ | ||
\\ | \\ | ||
+ | |||
=== Application.ProgressStep === | === Application.ProgressStep === | ||
Führt einen Schritt in der Fortschrittsanzeige aus. \\ | Führt einen Schritt in der Fortschrittsanzeige aus. \\ | ||
\\ | \\ | ||
+ | |||
=== Application.Log(lSeverity, | === Application.Log(lSeverity, | ||
Protokolliert einen Text in der aktuellen Log-Datei. \\ | Protokolliert einen Text in der aktuellen Log-Datei. \\ | ||
\\ | \\ | ||
+ | |||
=== Application.InvokeCommand(sCallBack, | === Application.InvokeCommand(sCallBack, | ||
Ruft einen speedy Zusatzbefehl auf. \\ | Ruft einen speedy Zusatzbefehl auf. \\ | ||
\\ | \\ | ||
+ | |||
=== Application.HasCommand(sCallBack) === | === Application.HasCommand(sCallBack) === | ||
Überprüft, | Überprüft, | ||
\\ | \\ | ||
+ | |||
=== Application.ConsoleExecute(sCmd, | === Application.ConsoleExecute(sCmd, | ||
Führt ein Programm/ | Führt ein Programm/ | ||
Zeile 161: | Zeile 174: | ||
=== Application.GetDocumentPath(DocNo) === | === Application.GetDocumentPath(DocNo) === | ||
Gibt den Ablagepfad des Dokuments zurück.\\ | Gibt den Ablagepfad des Dokuments zurück.\\ | ||
+ | < | ||
\\ | \\ | ||
Zeile 169: | Zeile 183: | ||
Die Funktion gibt 0 zurück, wenn kein Fehler vorliegt. \\ | Die Funktion gibt 0 zurück, wenn kein Fehler vorliegt. \\ | ||
Die Funktion liefert kein Ergebnis aus dem SQL-Statement zurück. \\ | Die Funktion liefert kein Ergebnis aus dem SQL-Statement zurück. \\ | ||
- | < | + | < |
+ | Call DbExecute("", | ||
+ | </ | ||
+ | \\ | ||
=== Application.DbQuery(ByRef Result, Connection, Statement) === | === Application.DbQuery(ByRef Result, Connection, Statement) === | ||
Führt das SQL-Abfrage auf der benannten Datenbankverbindung aus. \\ | Führt das SQL-Abfrage auf der benannten Datenbankverbindung aus. \\ | ||
Wird keine Verbindung (Connection) angegeben, wird die Datenbank der Session verwendet. \\ | Wird keine Verbindung (Connection) angegeben, wird die Datenbank der Session verwendet. \\ | ||
+ | Rückgabewert: | ||
+ | |||
In Multi-Vault-Umgebungen kann der Name des Vault angegeben werden, um die Datenbank des Vault zu verwenden. \\ | In Multi-Vault-Umgebungen kann der Name des Vault angegeben werden, um die Datenbank des Vault zu verwenden. \\ | ||
- | Die Funktion liefert die Werte der in der Abfrage definierten Felder in einem Array zurück. | + | Die Funktion liefert die Werte der in der Abfrage definierten Felder in einem Array zurück. |
- | < | + | Beispiel: |
+ | < | ||
+ | Call DbQuery(result, | ||
Ergebnis: | Ergebnis: | ||
Zeile 186: | Zeile 207: | ||
5 5 " | 5 5 " | ||
</ | </ | ||
+ | Beispiel: | ||
+ | < | ||
+ | Dim sql, result | ||
+ | sql = " | ||
+ | result = Null | ||
+ | if Application.DbQuery(result, | ||
+ | | ||
+ | | ||
+ | end if | ||
+ | </ | ||
+ | \\ | ||
=== Application.DbLookup(ByRef Result, Connection, Expression, Domain, Criteria) === | === Application.DbLookup(ByRef Result, Connection, Expression, Domain, Criteria) === | ||
Mit der DbLookup-Funktion können Sie den Wert eines bestimmten Feldes (Expression) aus einer bestimmten Datensatzgruppe (einer Domäne) abrufen.\\ | Mit der DbLookup-Funktion können Sie den Wert eines bestimmten Feldes (Expression) aus einer bestimmten Datensatzgruppe (einer Domäne) abrufen.\\ | ||
- | Mit der Angabe von Criteria definieren Sie ein Suchkriterium.\\ | + | Mit der Angabe von Criteria definieren Sie ein Suchkriterium. \\ |
+ | Wird keine Verbindung (Connection) angegeben, wird die Datenbank der Session verwendet. \\ | ||
+ | Rückgabewert: | ||
In de Praxis werden die 3 Werte zu einem SQL-Statement zusammengesetzt und der erste gefundene Wert ist das Ergebnis der Suche: \\ | In de Praxis werden die 3 Werte zu einem SQL-Statement zusammengesetzt und der erste gefundene Wert ist das Ergebnis der Suche: \\ | ||
< | < | ||
Zeile 196: | Zeile 231: | ||
Call DbLookup(result, | Call DbLookup(result, | ||
</ | </ | ||
+ | \\ | ||
=== Application.Sleep(Milliseconds) === | === Application.Sleep(Milliseconds) === | ||
Hält die Ausführung der Anwendung an, bis das Timeout-Intervall abgelaufen ist. | Hält die Ausführung der Anwendung an, bis das Timeout-Intervall abgelaufen ist. | ||
+ | < | ||
+ | \\ | ||
=== Application.GetSetting(Key) === | === Application.GetSetting(Key) === | ||
Gibt den Wert einer Einstellung zurück. \\ | Gibt den Wert einer Einstellung zurück. \\ | ||
+ | < | ||
+ | \\ | ||
=== Application.SetSetting(Key, | === Application.SetSetting(Key, | ||
Setzt den Wert einer Einstellung. \\ | Setzt den Wert einer Einstellung. \\ | ||
+ | < | ||
+ | \\ | ||
=== Application.GetDocumentProperty(DocNo, | === Application.GetDocumentProperty(DocNo, | ||
Gibt eine Dokumenteigenschaft des Dokuments zurück. \\ | Gibt eine Dokumenteigenschaft des Dokuments zurück. \\ | ||
- | Mit der Methode GetDocumentProperty können alle Dokumenteigenschaften | + | Mit der Methode GetDocumentProperty können alle Dokument-Eigenschaften |
< | < | ||
s = Application.GetDocumentProperty(dictionary.item(" | s = Application.GetDocumentProperty(dictionary.item(" | ||
</ | </ | ||
+ | \\ | ||
==== Clipboard - Objekt ==== | ==== Clipboard - Objekt ==== | ||
Zeile 218: | Zeile 261: | ||
Leert die Zwischenablage | Leert die Zwischenablage | ||
\\ | \\ | ||
+ | |||
=== Clipboard.Copy(Text) === | === Clipboard.Copy(Text) === | ||
Kopiert den Text in die Zwischenablage | Kopiert den Text in die Zwischenablage | ||
\\ | \\ | ||
+ | |||
=== Clipboard.Paste === | === Clipboard.Paste === | ||
Gibt den aktuellen Text in der Zwischenablage zurück. | Gibt den aktuellen Text in der Zwischenablage zurück. | ||
Zeile 226: | Zeile 271: | ||
\\ | \\ | ||
\\ | \\ | ||
- | \\ | + | |
===== speedy.* ===== | ===== speedy.* ===== | ||
Zeile 526: | Zeile 571: | ||
< | < | ||
^ Eigenschaft ^ Beschreibung ^ | ^ Eigenschaft ^ Beschreibung ^ | ||
- | |"source"| Eigenschaften des Quell Dokuments. | | + | |source | Eigenschaften des Quell Dokuments. | |
- | |"target"| Eigenschaften des Ziel Dokuments. | | + | |target | Eigenschaften des Ziel Dokuments. | |
- | |dictionary | Eigenschafen des Dokuments. | | + | |dictionary | Allgemeine Eigenschaften und evtl. Rückgabewert. | |
+ | Es kann sowohl vor der Kopier-Operation als auch nach dem Kopieren reagiert werden (timing). \\ | ||
+ | Wenn bei einem kopierten Dokument Daten geändert werden sollen (timing=kAfter) muss dies direkt auf der Datenbank erfolgen. | ||
+ | Damit diese Änderung vom System erkannt wird müssen folgende Rückgaben erfolgen: | ||
+ | < | ||
+ | handling = kEventHandled | ||
+ | DocumentOperations_onCopyDocument = 0 | ||
+ | dictionary.item(" | ||
+ | </ | ||
+ | |||
+ | Das nachfolgende Beispiel ändert den " | ||
+ | In der Tabelle [dm_setting] muss zuvor ein Eintrag für " | ||
+ | < | ||
+ | Function DocumentOperations_onCopyDocument(timing, | ||
+ | On Error Resume Next | ||
+ | Dim docno | ||
+ | Dim doctype | ||
+ | Dim dtype_proptable | ||
+ | Dim zaehler | ||
+ | Dim sql | ||
+ | | ||
+ | if timing = kAfter then | ||
+ | docno = target.item(" | ||
+ | doctype = target.item(" | ||
+ | ' | ||
+ | | ||
+ | if DbLookup(dtype_proptable, | ||
+ | if CStr(dtype_proptable) = " | ||
+ | if DbLookup(zaehler, | ||
+ | zaehler = CLng(zaehler) + 1 | ||
+ | |||
+ | sql = " | ||
+ | ' | ||
+ | Call DbExecute("", | ||
+ | | ||
+ | sql = " | ||
+ | "inner join dm_version v on d.doc_did=v.ver_did and d.doc_rev=v.ver_major and d.doc_ver=v.ver_minor " & _ | ||
+ | "inner join dm_prop_cad p on v.ver_vid=p.prop_did " & _ | ||
+ | "set p.LAGERORT='" | ||
+ | "WHERE d.doc_docno='" | ||
+ | ' | ||
+ | Call DbExecute("", | ||
+ | | ||
+ | handling = kEventHandled | ||
+ | DocumentOperations_onCopyDocument = 0 | ||
+ | dictionary.item(" | ||
+ | end if | ||
+ | end if | ||
+ | end if | ||
+ | end if | ||
+ | End Function | ||
+ | </ | ||
\\ | \\ | ||
Zeile 552: | Zeile 648: | ||
==== Nummern-Generator-Ereignisse ==== | ==== Nummern-Generator-Ereignisse ==== | ||
+ | |||
+ | === ParamName_onBuild(timing, | ||
+ | Erstellt eine neue Nummer für ein neues Dokument, eine neue Variante, einen neuen Ordner. \\ | ||
+ | Die Funktion wird immer dann aufgerufen, wenn ein neuer Name/neue Nummer basierend auf der Nummerngenerator-Syntax erstellt werden muss. | ||
+ | |||
+ | ^Eigenschaft^I/ | ||
+ | | | Alle Eigenschaften der Eltern Objekte, um eine neue Nummer zu erstellen. | | ||
+ | |" | ||
+ | |" | ||
+ | |||
+ | Beispiel Dokumentnummer generieren: | ||
+ | < | ||
+ | Function ParamName_onBuild(ByVal timing, handling, dictionary) | ||
+ | On Error Resume Next | ||
+ | Dim conn ' As ADODB.Connection | ||
+ | Dim rs ' As ADODB.Recordset | ||
+ | Dim fld ' As ADODB.Field | ||
+ | Dim sql | ||
+ | Dim myYear | ||
+ | Dim myMonth | ||
+ | Dim myDocno | ||
+ | Dim myMaxnumber | ||
+ | Dim doctypkennung | ||
+ | Dim doctype | ||
+ | |||
+ | If timing = kBefore Then | ||
+ | If dictionary.item(" | ||
+ | ' | ||
+ | | ||
+ | ' | ||
+ | myYear = DatePart(" | ||
+ | ' | ||
+ | myDocno = 0 | ||
+ | myMaxnumber = 0 | ||
+ | Set conn = dictionary.Item(" | ||
+ | Set rs = CreateObject(" | ||
+ | sql = " | ||
+ | | ||
+ | rs.Open sql, conn, adOpenForwardOnly, | ||
+ | If rs.State = adStateOpen and Not rs.EOF Then | ||
+ | for each fld in rs.Fields | ||
+ | myMaxnumber = fld.Value | ||
+ | next | ||
+ | End if | ||
+ | |||
+ | If IsNull(myMaxnumber) Then | ||
+ | myMaxnumber = 0 | ||
+ | End if | ||
+ | myMaxnumber = CLng(myMaxnumber) + 1 | ||
+ | | ||
+ | Select case dictionary.item(" | ||
+ | case " | ||
+ | | ||
+ | case " | ||
+ | | ||
+ | case " | ||
+ | | ||
+ | case " | ||
+ | | ||
+ | case " | ||
+ | | ||
+ | case " | ||
+ | | ||
+ | case " | ||
+ | | ||
+ | case " | ||
+ | | ||
+ | case " | ||
+ | | ||
+ | case " | ||
+ | | ||
+ | case " | ||
+ | | ||
+ | case " | ||
+ | | ||
+ | case else | ||
+ | | ||
+ | End select | ||
+ | | ||
+ | myDocno = Right(myYear, | ||
+ | ' | ||
+ | | ||
+ | doctype = dictionary.item(" | ||
+ | ' | ||
+ | dictionary.Removeall | ||
+ | dictionary.add " | ||
+ | | ||
+ | handling = kEventHandled | ||
+ | ParamName_onBuild = true | ||
+ | |||
+ | End if | ||
+ | End if | ||
+ | End Function | ||
+ | </ | ||
+ | |||
=== ParamName_onGetClass(timing, | === ParamName_onGetClass(timing, | ||
Zeile 590: | Zeile 781: | ||
=== FileOperations_onFileSaveAs(timing, | === FileOperations_onFileSaveAs(timing, | ||
+ | Ereignis-Routine wird von der Zusatzfunktion " | ||
+ | Damit kann bei den von " | ||
+ | Wird mit einem Skript auf ein Dateiformat reagiert ist darauf zu achten, dass das Scripting-Modul (modScript7.dll) vor den CAD-Modulen (mod< | ||
+ | | ||
^ Eigenschaft ^ Beschreibung ^ | ^ Eigenschaft ^ Beschreibung ^ | ||
- | |filename|Übergibt den Datei-Pfad| | + | |filename | Übergibt den Datei-Pfad | |
- | |target|Übergibt den Zielpfad| | + | |target | Übergibt den Zielpfad | |
- | |pages|Übergibt ob alle Seiten gespeichert wird oder nur die erste| | + | |pages | Übergibt ob alle Seiten gespeichert wird oder nur die erste | |
\\ | \\ | ||
Zeile 600: | Zeile 795: | ||
=== FileOperations_onFileExport(timing, | === FileOperations_onFileExport(timing, | ||
- | ^ Eigenschaft ^ Beschreibung ^ | + | Ereignis-Routine wird beim Exportieren einer Datei aufgerufen. \\ |
+ | ^Dictionary-Eigenschaft ^ Beschreibung ^ | ||
|source| Dateiname inkl. Pfad der Quelldatei. | | |source| Dateiname inkl. Pfad der Quelldatei. | | ||
|target| Dateiname inkl. Pfad der Zieldatei. | | |target| Dateiname inkl. Pfad der Zieldatei. | | ||
- | Das dictionary | + | Das Dictionary |
+ | Wenn das timing-Argument den Wert kUpdateUI hat kann der Dictionary Eintrag für den " | ||
< | < | ||
Public Function FileOperations_onFileExport(ByVal timing, handling, dictionary) | Public Function FileOperations_onFileExport(ByVal timing, handling, dictionary) | ||
Zeile 621: | Zeile 818: | ||
</ | </ | ||
+ | <note important> | ||
\\ | \\ | ||
Zeile 764: | Zeile 962: | ||
Wird durch betätigen der Schaltfläche rechts neben der Dokumentnummer aufgerufen | Wird durch betätigen der Schaltfläche rechts neben der Dokumentnummer aufgerufen | ||
^Parameter^Beschreibung^ | ^Parameter^Beschreibung^ | ||
- | |kBefore|Zeitpunkt wann die Aktion ausgeführt werden soll(Hier unrelevant)| | + | |kBefore|Zeitpunkt wann die Aktion ausgeführt werden soll (hier unrelevant)| |
|dictionary|Übergibt das Dictionary Objekt| | |dictionary|Übergibt das Dictionary Objekt| | ||
**Rückgabe: | **Rückgabe: | ||
Zeile 774: | Zeile 972: | ||
OnBrowse = True | OnBrowse = True | ||
ElseIf dictionary.Item(" | ElseIf dictionary.Item(" | ||
- | ' z.B. Dictionary mit Eigenschaften befüllen, die im Eigenschafte-Dialog zu übernehmen sind | + | ' z.B. Dictionary mit Eigenschaften befüllen, die im Eigenschaften-Dialog zu übernehmen sind |
OnBrowse = True | OnBrowse = True | ||
End If | End If | ||
End Function | End Function | ||
</ | </ | ||
- | \\ \\ | + | \\ |
=== OnValidate(kBefore, | === OnValidate(kBefore, | ||
Wird beim Bestätigen des Neu-Dialogs vor dem Erstellen eines neuen Dokuments aufgerufen | Wird beim Bestätigen des Neu-Dialogs vor dem Erstellen eines neuen Dokuments aufgerufen | ||
^Parameter^Beschreibung^ | ^Parameter^Beschreibung^ | ||
- | |kBefore|Zeitpunkt wann die Aktion ausgeführt werden soll(Hier unrelevant)| | + | |kBefore|Zeitpunkt wann die Aktion ausgeführt werden soll (hier unrelevant)| |
|dictionary|Übergibt das Dictionary Objekt| | |dictionary|Übergibt das Dictionary Objekt| | ||
**Rückgabe: | **Rückgabe: | ||
Zeile 798: | Zeile 996: | ||
|dictionary | Übergibt das Dictionary Objekt | | |dictionary | Übergibt das Dictionary Objekt | | ||
**Rückgabe: | **Rückgabe: | ||
- | \\ \\ \\ | + | \\ \\ |
+ | |||
+ | === OnPopulateNew(kBefore, | ||
+ | Wird beim Öffnen des Neu-Dialogs vor dem Erstellen eines neuen Dokuments aufgerufen | ||
+ | ^Parameter^Beschreibung^ | ||
+ | |kBefore | Zeitpunkt wann die Aktion ausgeführt wird (hier unrelevant) | | ||
+ | |dictionary | Übergibt das Dictionary Objekt | | ||
+ | **Rückgabe: | ||
+ | |||
+ | \\ \\ | ||
===== container.* ===== | ===== container.* ===== |