Domino 9 und frühere Versionen > ND6: Entwicklung

Feldwerte aller Dokumente per Eingabe setzen

<< < (2/3) > >>

TMC:
@Catrex:
So wie ich das sehe, soll der Anwender nur 1 bestimmtes Feld über mehrere Doks ändern dürfen.
Nutz doch das gleich mal als Auslöser, dies in LotusScript umzusetzen.

Hier ein Gerüst, das so schon funktioniert:

--- Code: --- On Error Goto ErrorHandler

Const FIELDNAME_TOCHANGE$ = "Titel"

Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim strNewValue As String
Dim strMsg As String
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument


strMsg = "Sie haben " & collection.Count & " Dokumente ausgewählt. Bitte neuen Wert eingeben:"
strNewValue = Trim$(Inputbox$(strMsg , "Feldwert ändern..."))

If strNewValue = "" Then
Msgbox "Sie haben <Abbrechen> betätigt oder keinen neuen Feldwert eingegeben.", 64, "Aktion abgebrochen"
Exit Sub
End If

While Not(doc Is Nothing)
Call doc.ReplaceItemValue(FIELDNAME_TOCHANGE, strNewValue)
Call doc.Save(False, False)
Set doc = collection.GetNextDocument(doc)
Wend

Msgbox "Es wurden " & collection.Count & " Dokumente erfolgreich abgearbeitet.", 64, db.Title

goOut:
Exit Sub

ErrorHandler:
Msgbox "Fehler: " & Err & " - " & Error$ & Chr(10) _
& "in Zeile: " & Erl, 48, "Es ist ein Fehler aufgetreten"
Resume goOut
--- Ende Code ---

Ist allerdings noch nicht sauber !

Was Du z.B. noch alles einbauen könntest:
[*]Fehler abfangen, wenn der Anwender keine Schreibrechte hat
[*]Überprüfen des Feldes FIELDNAME_TOCHANGE (also z.B. den Typ des Items. Wenn kein Textfeld, dann brichst Du mit einer Fehlermeldung ab)
[*]etc.
[/list]

koehlerbv:
Hm, hier haben wir wieder das Problem, dass das nur mit Textfeldern funktioniert ... Tut das nooot ?

Bernhard

TMC:

--- Zitat von: koehlerbv am 16.12.04 - 21:06:09 ---Hm, hier haben wir wieder das Problem, dass das nur mit Textfeldern funktioniert ... Tut das nooot ?
--- Ende Zitat ---

Nein, aber ich bin ja auch nicht der Fragesteller  ;)

Wie oben schon erwähnt: Ein guter Anlass für eine saubere Scriptumsetzung, imho auch einsteigerfreundlich.
Catrex kann das schön erweitern und dabei lernen.
Daher von mir auch keine "Komplettlösung".

koehlerbv:
Volle Zustimmung, Matthias. Das ganze ist auch eine schöne Aufgabe, bei der sich die Spreu vom Weizen trennt.
Wenn Sebastian allerdings nur einmalig (vielleicht ist er ja nur ein armer Aushilfsadmin) eine solche Lösung bieten muss und das nur für skalare Textfelder, dann reicht sicherlich die Lösung via zweier Formula-Agents (wie von Thomas schon beschrieben).

Bernhard

PS: Sebastian - was meinst Du ?

Catrex:
Da habe ich ja eine richtige Diskussion in gange gebracht, wie ? ;)

Also ich habe ja wie schon gesagt das Script von enori ausprobiert welches eigentlich schon ok gewesen wäre. Nun habe ich das noch mal mit den beiden Agenten ausprobiert die die Variable in die notes.ini schreiben und ich muss sagen das klappt auch wunderbar. Das Einzige was ich noch nicht hinbekommen habe ist. dass ich die Variable anschliessend wieder lösche. Welche Befehl nutze ich denn da, oder reicht es die dann wieder auf " " zu setzen ?

Das andere Skript mit der "Teillösung" habe ich mir erstmal in einer Textdatei abgespeichert. ;) Das muss ich mir nochmal in Ruhe anschauen. Das finde ich ja auch super das man hier keine fertigen Sachen bekommt, weil das bringt mich persönlich ja nicht weiter. Das kannte ich ja auch schon aus meiner Praxissemesterzeit in im vergangenen Sommer. Dort wurden mir in dem R5-Forum hier auch nur Lösungsansätze gegeben. Das hat dann meistens auch schon gereicht.

Naja ich denke schon das ich das hier an der ein oder anderen Stelle hoffentlich noch öfter gebrauchen kann weil mich das schon auch später beruflich interessieren würde. Von daher versuche ich, wenn die Zeit es hergibt, soviel wie möglich mitzunehmen.

mfg

Sebastian

P.S.: Ich habe dieses Forum auch lobend in meinem Praxissemesterbericht erwähnt ;)

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln