Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: MadMetzger am 02.04.03 - 10:25:18
-
Hi,
wie komme ich in einem Aktionsbutton in einer Ansicht mit Script auf das gerade ausgewählte Dok?
-
dazu gibt es die unprocessed Property..
HELP:
This agent script allows a user to approve multiple requisitions at once by processing the currently selected documents in the Requisitions view. UnprocessedDocuments returns the documents currently selected in the view. The script iterates over each document and, if the Approver item contains the current user's name, it sets the Approved item to "Yes."
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
While Not(doc Is Nothing)
Set item = doc.GetFirstItem( "Approver" )
If item.Contains( session.UserName ) Then
doc.Approved = "Yes"
Call doc.Save( False, True )
End If
Set doc = collection.GetNextDocument(doc)
Wend
End Sub
-
ich dachte das geht über die uiview? mit der eigenschaft documents oder so ähnlich hat man alle gerade ausgewählten doks. aber wie komme ich zur uiview?
zur erklärung: ich habe eine Ansicht, aus der heraus die Nutzer über eine Aktion ein bestimmtes Feld anpassen können, z.B. um einen Status oder so ähnlich zu ändern.
@rob green: bekomme ich damit nicht nur die ungelesenen?
-
Hi,
mit der Methode UnprocessedDocuments aus der NotesDatabase-Klasse bekommst du alle markierten Dokumente in einer Ansicht.
Axel
-
sorry war mein fehler, ihr habt recht. hatte eine kategorisierte zeile ausgewählt...
klappt so...
-
noch eine Frage hierzu: Wenn ich wie beschrieben Feldwerte ändern lassen will, wie kann ich dem User eine Auswahl anbieten, welchen Wert er ändern möchte?
-
Hi,
es kommt darauf an was du den User wählen lassen willst.
Schau dir mal die Prompt-Methode aus NotesUIWorkspace an.
Axel
-
ich möchte den user auswählen lassen, was er im ausgewählten dok ändern möchte (s.o.). anschließend soll dann das entsprechende feld auf einen vom benutzer eingegebenen wert gesetzt werden.
=> Frage: Was soll geändert werden?
- Status
- Vertreter
=> Eingabe neuer Wert
=> Änderung im Dok
-
Hi,
so könnte es aussehen. Du musst nur die Zeilen in deinen Code einfügen und evt. die Variablennamen (doc )anpassen.
...
Dim workspace As NotesUIWorkspace
Dim values(1) As String
Dim wert As String
Dim result As Variant
Dim item As NotesItem
...
values(0) = "Status"
values(1) = "Vertreter"
result = workspace.Prompt(PROMPT_OK, "Titel", "Was soll geändert werden?", "", values)
wert = InputBox$( "Geben Sie bitte den Wert ein"")
Set item = doc.ReplaceItemValue(result(0), wert)
...
Axel
-
gibt es in r4 kein uiworkspace.prompt? finde es nicht in der hilfe!
gibt alternativen? mit evaluate eventuell?
-
für deine Anforderung, schau dir das http://www.eknori.de/tips/update.htm mal an.
Sollte auch in R4 laufen
eknori
-
Hi,
yoo, hast recht, in R4 gab's das noch nicht. Dann bleibt dir nur eknori's Lösung.
Evaluate wäre auch eine Alternative.
Axel
-
was haben die vier zeilen vor dem sub zu bedeuten?
-
uups, mein Fehler. die gehören da nicht hin. ... ;D welche 4 Zeilen ??? ;D
-
das script klappt ja soweit, aber ich kann nichts ändern... bekomme nur das Dok angezeigt mit der Dialogbox, kann aber kein Feld ändern...
macht es vielleicht Sinn das Script so zu modifizieren, das die Änderungserfassung in einer anderen Maske geschieht? Damit würde der Dialog übersichtlicher werden ( Meine Maske ist relativ gross).
Dann müßte "dialogformname" eine Erfassungsmaske sein, die mit den gleichen Feldnamen arbeitet?
-
Also ich verwende den Agenten in sehr vielen DBs ohne Probleme.
Dokumente auswählen, agent starten, neue Feldwerte rein und OK.
Egal wie umfangreich die Maske ist.
-
kann das mit den hidewhen-formeln zusammen hängen? dann müsste ich doch für die änderung eine maske ohne hidewhens erstellen, oder?
-
genauso hab ich es getan...
Hab Dialogmaske mit alten Werten gefüllt und anschließend alles wieder zurückgespeichert. Funktioniert einwandfrei!
Danke für die Hilfe!