Metainformationen zur Seite
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
speedy:30_modules:script [2023/08/21 14:33] speedyspeedy: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, immer die gleichen Aufrufparameter.  Die Ereignisroutinen haben, wenn nicht anders beschrieben, immer die gleichen Aufrufparameter. 
 <code>Event_Function_Name(timing, handling, dictionary)</code>  <code>Event_Function_Name(timing, handling, dictionary)</code> 
Zeile 27: Zeile 27:
 | handling    | HandlingCodeEnum    | Rückgabewert, ob die Ereignisroutine das Ereignis behandelt hat und damit evtl. keine weitere Arbeit durch das System zu erfolgen hat. | | handling    | HandlingCodeEnum    | Rückgabewert, ob die Ereignisroutine das Ereignis behandelt hat und damit evtl. keine weitere Arbeit durch das System zu erfolgen hat. |
 | dictionary  | Dictionary - Object | Scripting.Dictionary aus der Scripting Runtime Library. Der Inhalt des Dictionaries kann variieren. | | dictionary  | Dictionary - Object | Scripting.Dictionary aus der Scripting Runtime Library. Der Inhalt des Dictionaries kann variieren. |
-\\ 
  
-=== 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, zurück. \\ Gibt den Root Path, wie in der dwKernel.ini eingestellt, zurück. \\
 \\ \\
 +
 === 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, lMax, sTitle, sMessage) === === Application.ProgressStart(lMin, lMax, sTitle, sMessage) ===
 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, sMessage) === === Application.Log(lSeverity, sMessage) ===
 Protokolliert einen Text in der aktuellen Log-Datei. \\ Protokolliert einen Text in der aktuellen Log-Datei. \\
 \\ \\
 +
 === Application.InvokeCommand(sCallBack, wParam, lParam) === === Application.InvokeCommand(sCallBack, wParam, lParam) ===
 Ruft einen speedy Zusatzbefehl auf. \\ Ruft einen speedy Zusatzbefehl auf. \\
 \\ \\
 +
 === Application.HasCommand(sCallBack) === === Application.HasCommand(sCallBack) ===
 Überprüft, ob der Zusatzbefehl vorhanden ist. \\ Überprüft, ob der Zusatzbefehl vorhanden ist. \\
 \\ \\
 +
 === Application.ConsoleExecute(sCmd, sDirectory, lWait) === === Application.ConsoleExecute(sCmd, sDirectory, lWait) ===
 Führt ein Programm/Aufruf auf der Konsole aus. \\ Führt ein Programm/Aufruf auf der Konsole aus. \\
Zeile 161: Zeile 174:
 === Application.GetDocumentPath(DocNo) ===  === Application.GetDocumentPath(DocNo) === 
 Gibt den Ablagepfad des Dokuments zurück.\\ Gibt den Ablagepfad des Dokuments zurück.\\
 +<code>doc_path = Application.GetDocumentPath(dictionary.item("dm_docno"))</code>
 \\  \\ 
  
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. \\
-<code>Call DbExecute("", "UPDATE dm_document d 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.NORM = 'DIN 931' WHERE d.doc_docno = 'BS01516';")</code>+<code> 
 +Call DbExecute("", "UPDATE dm_document d 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.NORM = 'DIN 931' WHERE d.doc_docno = 'BS01516';") 
 +</code> 
 +\\
  
 === 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: 0:=Kein Fehler, Sonst Fehler-Code \\
 +
 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. \\ 
-<code>Call DbQuery(result, "", "SELECT lst_idx,lst_name,lst_desc FROM lng_lst WHERE lst_typ='PROJEKTSTATUS';"+Beispiel:  
 +<code> 
 +Call DbQuery(result, "", "SELECT lst_idx,lst_name,lst_desc FROM lng_lst WHERE lst_typ='PROJEKTSTATUS';"
  
 Ergebnis: Ergebnis:
Zeile 186: Zeile 207:
 5 5 "Fertig" 5 5 "Fertig"
 </code> </code>
 +Beispiel: 
 +<code>
 +Dim sql, result
 +sql = "SELECT lst_name,lst_desc FROM lng_lst WHERE lst_typ='bomtype'"
 +result = Null
 +if Application.DbQuery(result, "", sql) = 0 And not IsNull(result) Then
 +   MsgBox result(0, 0)
 +   MsgBox result(0, 1)
 +end if
 +</code>
 +\\
  
 === 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: 0:=Kein Fehler, Sonst Fehler-Code \\ 
 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: \\
 <code>SELECT <Expression> FROM <Domain> WHERE Criteria</code> <code>SELECT <Expression> FROM <Domain> WHERE Criteria</code>
Zeile 196: Zeile 231:
 Call DbLookup(result, "", "sett_value", "dm_setting", "sett_key='bom.autosorted'" - Liefert den Einstellungswert des Konfigurationsparameters [bom.autosorted] Call DbLookup(result, "", "sett_value", "dm_setting", "sett_key='bom.autosorted'" - Liefert den Einstellungswert des Konfigurationsparameters [bom.autosorted]
 </code> </code>
 +\\
  
 === 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. 
 +<code>Call Application.Sleep(1000)</code>
 +\\
  
 === Application.GetSetting(Key) === === Application.GetSetting(Key) ===
 Gibt den Wert einer Einstellung zurück. \\ Gibt den Wert einer Einstellung zurück. \\
 +<code>archive_path = Application.GetSetting("session.path.archive")</code>
 +\\
  
 === Application.SetSetting(Key, Value) === === Application.SetSetting(Key, Value) ===
 Setzt den Wert einer Einstellung. \\ Setzt den Wert einer Einstellung. \\
 +<code>Call Application.SetSetting("document.new.docno.zaehler", 4711)</code>
 +\\
  
 === Application.GetDocumentProperty(DocNo, Property) === === Application.GetDocumentProperty(DocNo, Property) ===
 Gibt eine Dokumenteigenschaft des Dokuments zurück. \\ Gibt eine Dokumenteigenschaft des Dokuments zurück. \\
-Mit der Methode GetDocumentProperty können alle Dokumenteigenschaften oder auch Struktureigenschaften abgefragt werden besonders dann wenn diese nicht im dictionary enthalten sind. \\+Mit der Methode GetDocumentProperty können alle Dokument-Eigenschaften oder auch Struktur-Eigenschaften abgefragt werden besonders dann wenn diese nicht im dictionary enthalten sind. \\
 <code> <code>
 s = Application.GetDocumentProperty(dictionary.item("dm_docno"), “projectcontainer.PROJECTMANAGER“) s = Application.GetDocumentProperty(dictionary.item("dm_docno"), “projectcontainer.PROJECTMANAGER“)
 </code> </code>
 +\\
  
 ==== 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:
 <code>Function DocumentOperations_onCopyDocument(timing, handling, source, target, dictionary)</code> <code>Function DocumentOperations_onCopyDocument(timing, handling, source, target, dictionary)</code>
 ^ 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:
 +<code>
 +handling = kEventHandled
 +DocumentOperations_onCopyDocument = 0
 +dictionary.item("target.refresh") = True
 +</code>
 +
 +Das nachfolgende Beispiel ändert den "LAGERORT" in dem kopierten Dokument und vergibt eine neue Nummer. \\
 +In der Tabelle [dm_setting] muss zuvor ein Eintrag für "document.new.docno.zaehler" erstellt werden. 
 +<code>
 +Function DocumentOperations_onCopyDocument(timing, handling, source, target, dictionary)
 +    On Error Resume Next
 +    Dim docno
 +    Dim doctype
 +    Dim dtype_proptable
 +    Dim zaehler
 +    Dim sql
 +    
 +    if timing = kAfter then
 +        docno = target.item("dm_docno")
 +        doctype = target.item("dm_doctype")
 +        'MsgBox "DocumentOperations_onCopyDocument:=" & docno
 +        
 +        if DbLookup(dtype_proptable, "", "dtype_proptable", "dm_doctype", "dtype_name='" & doctype & "'") = 0 then
 +            if CStr(dtype_proptable) = "dm_prop_cad" then
 +                if DbLookup(zaehler, "", "sett_value", "dm_setting", "sett_key='document.new.docno.zaehler'") = 0 then
 +                    zaehler = CLng(zaehler) + 1
 +
 +                    sql = "UPDATE dm_setting SET sett_value ='" & Cstr(zaehler) & "' where sett_key ='document.new.docno.zaehler'"
 +                    'MsgBox sql
 +                    Call DbExecute("", sql) 
 +                    
 +                    sql = "UPDATE dm_document d " & _
 +                        "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='" & Cstr(zaehler) & "' " & _
 +                        "WHERE d.doc_docno='" & docno & "'"
 +                    'MsgBox sql
 +                    Call DbExecute("", sql)
 +                    
 +                    handling = kEventHandled
 +                    DocumentOperations_onCopyDocument = 0
 +                    dictionary.item("target.refresh") = True
 +                end if
 +            end if
 +        end if
 +    end if
 +End Function
 +</code>
 \\ \\
  
Zeile 699: Zeile 795:
  
 === FileOperations_onFileExport(timing, handling, dictionary) === === FileOperations_onFileExport(timing, handling, dictionary) ===
-^ 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 enthält zusätzlich die Eigenschaften des Dokuments. \\ Wenn das timing-Argument den Wert kUpdateUI hat kann der Dictionary Eintrag für den "target" durch einen neuen Dateinamen inkl. Pfadangabe ersetzt werden. Wurde das Exportziel "target" verändert muss das Argument handling den Wert kEventHandled erhalten. \\ z.B.: \\+Das Dictionary enthält die Eigenschaften des Dokuments sowie die Eigenschaften des Dateiobjekts. \\ Die internen Eigenschaften Dateiobjekts beginnen mit "file_" Die zusätzlichen Eigenschaften des Dateiobjekts beginnen mit "file." damit keine Überschneidung mit den Zusatzeigenschaften des Dokuments bestehen. \\  
 +Wenn das timing-Argument den Wert kUpdateUI hat kann der Dictionary Eintrag für den "target" durch einen neuen Dateinamen inkl. Pfadangabe ersetzt werden. Wurde das Exportziel "target" verändert muss das Argument handling den Wert kEventHandled erhalten. \\ z.B.: \\
 <code  VBScript> <code  VBScript>
 Public Function FileOperations_onFileExport(ByVal timing, handling, dictionary) Public Function FileOperations_onFileExport(ByVal timing, handling, dictionary)
Zeile 720: Zeile 818:
 </code> </code>
  
 +<note important>Damit die Ereignis-Routine auch beim Drag&Drop aufgerufen wird muss der Konfigurationsparameter [session.export.hasfileexportevent] aktiviert sein. </note>
 \\ \\
  
Zeile 863: 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:** true oder 1 := Das Dictionary enthält Eigenschaften, die in den Dialog zu übernehmen sind. **Rückgabe:** true oder 1 := Das Dictionary enthält Eigenschaften, die in den Dialog zu übernehmen sind.
Zeile 873: Zeile 972:
     OnBrowse = True     OnBrowse = True
   ElseIf dictionary.Item("dlgmode") = "edit" Then   ElseIf dictionary.Item("dlgmode") = "edit" Then
-    ' 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
 </code> </code>
-\\ \\+\\ 
  
 === OnValidate(kBefore, dictionary) === === OnValidate(kBefore, dictionary) ===
 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:** 1 := Das Dictionary enthält Eigenschaften, die in den Dialog zu übernehmen sind. **Rückgabe:** 1 := Das Dictionary enthält Eigenschaften, die in den Dialog zu übernehmen sind.
Zeile 897: Zeile 996:
 |dictionary | Übergibt das Dictionary Objekt | |dictionary | Übergibt das Dictionary Objekt |
 **Rückgabe:** 1  :=  Das Dictionary enthält Eigenschaften, die in den Dialog zu übernehmen sind. **Rückgabe:** 1  :=  Das Dictionary enthält Eigenschaften, die in den Dialog zu übernehmen sind.
-\\ \\ \\+\\ \\ 
 + 
 +=== OnPopulateNew(kBefore, dictionary) === 
 +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:** 1 := Das Dictionary enthält Eigenschaften, die in den Dialog zu übernehmen sind. 
 + 
 +\\ \\
  
 ===== container.* ===== ===== container.* =====