Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: olma am 18.11.04 - 09:52:37
-
Hi,
dieses Skript liegt auf einer SENDEN Schaltfläche. Ich benötige eine zusätzliche Funktion in dem Skript, dass vor dem senden eine Rechtschreibprüfung auf das Dokument stattfindet.
Sub Click(Source As Button)
On Error Goto ErrorHandling
Dim workspace As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim maildoc As NotesDocument
Dim item As NotesItem
Dim bodyRT As NotesRichtextItem, grussRT As NotesRichtextItem
Dim UNIDFeld As Variant
Dim MailAdrFeld As Variant
Dim zieldoc As NotesDocument
Dim mainkonfdoc As NotesDocument
Dim neudoc As NotesDocument
Dim k As Integer
Dim resDB As NotesDatabase
Dim resdoc As NotesDocument
Dim em As String
Dim EMess As String
Set uidoc = workspace.CurrentDocument
Set db = session.CurrentDatabase
If GetKonfigDB ( "", "profilServer", "profilFile", resDB, EMess ) = False Then Error 15010, EMess
If HoleRessourcenDoc ( GetAbbreviateUserName ( Session.UserName ), resDB, resdoc , EMess ) = False Then Error 15010, EMess
Set mainkonfdoc = GetConfigDoc("MAIN")
If mainkonfdoc Is Nothing Then
Msgbox "No main configuration available ?!?"
Exit Sub
End If
Call uidoc.FieldSetText( "MailStatus", "2" )
Call uidoc.FieldSetText("DokStatus", "3")
Call uidoc.save
Set doc = uidoc.Document
Set maildoc = db.CreateDocument
maildoc.Subject = doc.Subject(0)
Set item = doc.GetfirstItem("Body")
Call item.CopyItemToDocument(maildoc, "")
maildoc.from = doc.From(0)
maildoc.SendTo = doc.SendTo
maildoc.CopyTo = Evaluate("CopyTo : AKMCopyTo", doc)
maildoc.BlindCopyTo = doc.BlindCopyTo
maildoc.DeliveryPriority = doc.DeliveryPriority
maildoc.ReturnReceipt = doc.ReturnReceipt
maildoc.DeliveryReport = doc.DeliveryReport
Call maildoc.send(False)
Messagebox " Mail was sent! ", MB_IconInformation, "Mail dispatching"
Print("Mail transferred for delivery")
UNIDFeld = doc.AKMRef
MailAdrFeld = doc.AKMCopyTo
anz = Ubound(UNIDFeld) 'fängt bei Null an!!
If anz = 0 Then
If UNIDFeld(0) = "" Then Exit Sub
End If
Print("Create mail references")
For k = 0 To anz
Set zieldoc = db.GetDocumentByUNID(UNIDFeld(k))
If zieldoc Is Nothing Then
Messagebox "The mail reference could not be created:" + Chr$(10) + MailAdrFeld(k)
Else
If ErzeugeMailReferenz ( db, resdoc, zieldoc, doc, 2, mainkonfdoc.f_MailReferenzen ( 0 ), neudoc, mainkonfdoc, EMess ) = False Then Error 15010, EMess
If neudoc.Save( True, False, True ) = False Then Error 1010, "The mail reference for document " & Cstr ( zieldoc.UniversalID ) & Chr ( 10 ) & _
"could not be saved in AKM !"
End If
Next
Print("Mail references created")
Exit Sub
ErrorHandling:
ErrorNr = Err
Select Case ErrorNr
Case 4091
Set zieldoc = Nothing
Resume Next
Case Else
End Select
Messagebox Error$ & "(" & Cstr(ErrorNr) & ") [Zeile " & Cstr ( Erl ) & "]", 16, "Error:"
Exit Sub
End Sub
In der Designer Hilfe habe ich nur eine Funktion gefunden (@Command( [ToolsSpellCheck] )) die mir aber in diesem Fall nicht nuzt.
Kann mir jemand das Skript ergänzen?
Gruss
Olli
-
Laut Designer-Hilfe :
Syntax
Call notesUIDocument.SpellCheck()
Usage
The UI document must be in Edit mode before this method is called.
-
erstmal danke, kannst du mir bitte sagen wo ich dein Skript einfügen muß? ich kann leider kein Lotus Skript ??? noch net ;)
-
Genau soetwas habe ich befürchtet: Ein fragliches Ansinnen (ich kann kein LotusScript, aber ich möchte ...) und dann kommt prompt die falsche Antwort, und der Fragestellende hat keinen Peil, warum das Gefrickelte nun nicht funktioniert.
Direkt vom dem maildoc.Send sind die Messen für die Rechtschreibprüfung längst gelesen.
Bernhard
-
Ich schließe mich Bernhard an, wenn man sich mit Script nicht wenigstens ein bißchen auskennt, ist das nicht die richtige Aufgabe.
Ich helfe zwar gerne, aber ich befürchte, daß Dir das nicht viel bringen wird, denn beim nächsten Problem stehst Du wie der Ochs vorm Berg und weißt nicht weiter.
Wenn man sich an Scripte heranwagt, dann sollte man sich auf jeden Fall vorher intensiv mit dem Thema beschäftigt haben. Man kann nicht alles wissen, aber ein Grundverständnis ist absolutes Minimum.
Aber um Dir weiterzuhelfen, probier folgendes aus. Pack den Code vor das "Call uidoc.Save".
Dann wird vorm Speichern des aktuellen Dokuments der Spellcheck gestartet und wenn der User damit fertig ist, wird gespeichert und das Script läuft weiter ab.
Wichtig ist dabei, daß das UIDoc im Bearbeitenmodus sein muß. Das mußt Du auf jeden Fall sicherstellen.
-
es tut mir ja leid, aber mein chef setzt das voraus. ich komme eigentlich aus der microsoft admin schiene und muss mich jetzt mit domino servern rumschlagen. die posts sind nicht sachen die ich mir wahllos ausgesucht habe sondern aufgaben von meinen chef, die schnell erledigt werden müssen.
ich denke das ich in einen halben jahr soweit bin, dass auch anderen leuten helfen kann.
gruss
olli
-
achja und danke für eure schnelle antwort
-
Aber was sollte uns bewegen, den Geldbeutel Deines Chefs zu sparen ? Auf die Idee, einen Kraftfahrer nicht nur ohne Führerschein, sondern sogar ohne Autofahrkenntnisse einzustellen, würde der wohl niemals kommen.
Auf dem Wege Deiner Notes / Domino-Weiterbildung helfen wir Dir gerne, aber sowas ...
Bernhard
-
Noch was: Derartige Doppelpostings
http://www.dominoforum.de/modules/newbb/viewtopic.php?topic_id=5841&forum=5&post_id=29358&PHPSESSID=edef9e82efc889d0b877fe0b2a260725#forumpost29358
sind äusserst kontraproduktiv. Wenigestens darauf hinweisen sollte man - und Lösungsvorschläge vom einen dann auch im anderen Forum bekanntgeben. Darauf hat im Dominoforum ja auch schon jemand in Deinem Thread hingewiesen.
Und dort ist genau das passiert, was ich prophezeit habe - mit Null Ahnung (das ist ja durchaus erklärbar und nicht schändlich) tippst Du irgendetwas ab und wunderst Dich dann, dass es nicht funktioniert.
Wer (noch) überhaupt keinen Plan von einer Sache hat, sollte davon tunlichst die Finger lassen. Die Forderungen Deines Chefs gehen dabei sowohl den Kollegen vom Dominoforum als auch uns hier bei AtNotes völlig am Hinterteil vorbei.
Wie ich es vorhin schon gesagt habe: Wenn wir Dir helfen können beim Erlernen von LotusScript oder @functions - immer gerne, wenn Du dabei über zunächst unerklärliche Phänomene stolperst. Wenn wir Dir (oder besser Deinem Chef) Arbeiten für lau abnehmen sollen: Nein. Holt Euch dann lieber einen Spezialisten 'ran, der solcherart Arbeiten in einem Bruchteil der Zeit erledigt, die Du momentan (mit wahrscheinlich vagem Ausgang) verbraten würdest. Du schreibst ja selbst, dass Du Dich bemühen willst, in einem halben Jahr durch entsprechende Ausbildung / Selbststudium deutlich weiter zu sein.
Bernhard
PS: Vielleicht spendiert Dir Dein Chef ja auch ein gutes "Training on the job" ... Das bringt meist die grössten Erfolge (die sofort sichtbar sind)
-
junge, junge wusste ja net das du gleich so angepisst bist. ich sagte doch schon das ich ein Anfänger bin. Das mit der spellchecker Funktion hätte auch klappen können, oder nicht?!
-
junge, junge wusste ja net das du gleich so angepisst bist. ich sagte doch schon das ich ein Anfänger bin. Das mit der spellchecker Funktion hätte auch klappen können, oder nicht?!
Wieso sollte ich "angepisst" gewesen sein ? ;D
Ich habe meine Meinung zu dieser Problematik gesagt. Nicht mehr, und auch nicht weniger. Und damit solltest Du Dich auseinandersetzen, oder es eben einfach nur zur Kenntnis nehmen (ich muss ja nicht Recht haben).
Das "hätte ja auch klappen können": Nein, das hätte es nicht, weil Du (noch) nicht weisst, was Du dann gemacht hast - ein Blindflug mit Passagieren ohne Instrumentenlandeverfahren.
Bernhard
-
Bernhard hat recht, persönlich helfen ja, aber deinem Chef beim Geldsparen helfen, nein. Das ist für dich und für viele andere die mit diesem Thema ihre Brötchen verdienen kontraproduktiv.
Thomas