Moin zusammen,
ich habe eine externe iLogic Regel welche ich per klick über ein globales Formular auslöse.
Das Formular startet sobald ich eine IDW öfffne..
Wenn ich nun die Regel ausführe klappt alles (Erstellungsdatum wird auf heute gesetzt),
sofern ich aber eine 2. IDW öffne die aktiv im Vorgrund ist, wird dennoch auf die 1. IDW zugegriffen.
Dies kann ich nur umgehen, wenn ich die Regel über den iLogicbaum ausführe oder aber das Formular schließe und erneut öffne.
Das möchte ich allerdinges gern alles umgehen.
Jemand ne Idee was ich ändern müsste, damit die Regel nicht auf das "falsche" Dokument zugreift?
Hier nun die Regel:
' iLogic-Regel: Beim Speichern fragen, ob "Erstellungsdatum" auf heute gesetzt werden soll.
' Erweiterung: prüft, ob es sich um eine .idw handelt
If ThisDoc.Document.DocumentType <> kDrawingDocumentObject Then
MsgBox("Dies ist keine Zeichnung (.idw).", vbExclamation, "iLogic – Hinweis")
Return
End If
Dim fileName As String = ThisDoc.FileName(True) ' mit Endung
If Not fileName.ToLower().EndsWith(".idw") Then
MsgBox("Dies ist zwar eine Zeichnung, aber keine .idw-Datei." & vbCrLf & _
"Aktuelle Datei: " & fileName, vbExclamation, "iLogic – Hinweis")
Return
End If
Try
Dim antwort As MsgBoxResult
antwort = MsgBox("Erstellungsdatum auf heutiges Datum setzen?", vbYesNo + vbQuestion, "iLogic – Erstellungsdatum")
If antwort = vbYes Then
Dim heute As String = Now.ToString("dd.MM.yyyy")
Dim setOk As Boolean = False
Dim props As Object() = New Object() {
New String() {"Project", "Creation Date"}
}
For Each kv In props
Try
iProperties.Value(kv(0), kv(1)) = heute
setOk = True
Exit For
Catch
' ignorieren
End Try
Next
If setOk Then
ThisDoc.Document.Update()
ThisDoc.Document.Save()
MsgBox("Erstellungsdatum wurde auf " & heute & " gesetzt und die Zeichnung gespeichert.", vbInformation, "iLogic")
Else
MsgBox("Konnte das iProperty nicht setzen. Prüfe iProperty-Namen oder lege ein benutzerdefiniertes Property an.", vbExclamation, "iLogic")
End If
End If
Catch ex As Exception
MsgBox("Fehler in der iLogic-Regel: " & ex.Message, vbCritical, "iLogic Fehler")
End Try
------------------
MfG Timo
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP