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/09/19 14:55] – [Application - Objekt] 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 195: Zeile 194:
  
 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 205: Zeile 206:
 4 4 "Im Bau" 4 4 "Im Bau"
 5 5 "Fertig" 5 5 "Fertig"
 +</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> </code>
 \\ \\
Zeile 250: 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 258: Zeile 271:
 \\ \\
 \\ \\
-\\+
  
 ===== speedy.* ===== ===== speedy.* =====
Zeile 558: 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 732: Zeile 796:
 === FileOperations_onFileExport(timing, handling, dictionary) === === FileOperations_onFileExport(timing, handling, dictionary) ===
 Ereignis-Routine wird beim Exportieren einer Datei aufgerufen. \\  Ereignis-Routine wird beim Exportieren einer Datei aufgerufen. \\ 
-^ Eigenschaft ^ Beschreibung ^+^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 753: 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 896: 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 906: 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 930: 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.* =====