Ich arbeite gerade daran, die Signatur- Funktion für einen Kunden aufzubohren und bin ERSCHROCKEN, wie schlecht die Code- Qualität des ganze Dings ist. Nur so als Warnung, wenn sich mal jemand dran macht...
Das schlimme: Die meisten Bugs wirken sich erst dann aus, wenn man was am Code macht, weil sie zufälligerweise in der Konstellation nicht "weh" tun... Trotzdem hier mal eine Liste dessen, was ich gefunden habe
1. Gemeinsame Aktion "removeSignature": Sinnlose Zeile nach If
Sub Click(Source As Button)
Dim uiw As New notesuiworkspace
Dim s As New NotesSession
If s.GetEnvironmentValue("SigState") <> "3" Then
s.GetEnvironmentValue("SigState") <> "3"
Call s.SetEnvironmentVar ("SigState","3")
Call cMemoObject.RemoveSignature
Call uiw.ViewRefresh
End If
End Sub
s.GetEnvironmentValue("SigState") <> "3" gehört da nicht hin, tut aber auch nicht weh
2. Gemeinsame Aktionen "Vorgabesignatur" , "removeSignature" und "Neue Signatur aus Datei"
s.GetEnvironmentValue("SigState") <> "1"
Sieht auf den ersten Blick gut aus, vergleicht aber Äpfel mit Birnen: GetEnvironmentValue liefert einen NUMERISCHEN Variant. Der wird mit einem String verglichen. Funktioniert zufällig, weil es sich bei beiden Werten um Zahlen handelt... Ich wollte hier "1_1" reinschreibern und habe mich gewundert, warum immer "1" zurückkam... Da gehört überall GetEnvironmentString hin (oder als Vergleich eben auch eine Zahl)
3. Die Info, ob in einem Dokument bereits eine Signatur eingefügt wurde, wird über die Environment- Variable "SigState" geregelt... Macht doch mal zwei Mails auf und spielt ein wenig mit den Signature- Buttons... Da kommen witzige Ergebnisse raus... Wie kann man einen Dokumenten- Status über eine zentrale ini- Variable steuern...
4. CoreEmailClasses_de-DE, InsertSignature- Sub der UIMemoDocument- Klasse, ab Zeile 1023:
If Me.m_nSignatureOption = 2 Then
Me.m_nSignatureOption = 2 'get imported file from Preferences
End If
Kein Fehler, aber absolut Sinnloser Code... was sollte da wirklich rein? vielleicht was wichtiges...
5. Über solche Zeilen sage ich lieber nichts... Ist das einfach effizienter code, oder Faulheit?
resetSigOption = Evaluate(|@getprofilefield("CalendarProfile"; "SignatureOption")|)
resetSignature = Evaluate(|@getprofilefield("CalendarProfile"; "Signature")|)
Das ist ganz schön harter Toback...