Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: MadMetzger am 02.04.03 - 10:25:18

Titel: Script: aktuell ausgewähltes Dok über Aktion
Beitrag 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?
Titel: Re:Script: aktuell ausgewähltes Dok über Aktion
Beitrag von: Rob Green am 02.04.03 - 10:37:01
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
Titel: Re:Script: aktuell ausgewähltes Dok über Aktion
Beitrag von: MadMetzger am 02.04.03 - 11:05:25
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?
Titel: Re:Script: aktuell ausgewähltes Dok über Aktion
Beitrag von: Axel am 02.04.03 - 11:15:59
Hi,

mit der Methode UnprocessedDocuments aus der NotesDatabase-Klasse bekommst du alle markierten Dokumente in einer Ansicht.

Axel
Titel: Re:Script: aktuell ausgewähltes Dok über Aktion
Beitrag von: MadMetzger am 02.04.03 - 11:24:10
sorry war mein fehler, ihr habt recht. hatte eine kategorisierte zeile ausgewählt...
klappt so...
Titel: Re:Script: aktuell ausgewähltes Dok über Aktion
Beitrag von: MadMetzger am 02.04.03 - 11:42:18
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?
Titel: Re:Script: aktuell ausgewähltes Dok über Aktion
Beitrag von: Axel am 02.04.03 - 11:53:08
Hi,

es kommt darauf an was du den User wählen lassen willst.

Schau dir mal die Prompt-Methode aus NotesUIWorkspace an.


Axel
Titel: Re:Script: aktuell ausgewähltes Dok über Aktion
Beitrag von: MadMetzger am 02.04.03 - 12:00:20
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
Titel: Re:Script: aktuell ausgewähltes Dok über Aktion
Beitrag von: Axel am 02.04.03 - 12:12:08
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

Titel: Re:Script: aktuell ausgewähltes Dok über Aktion
Beitrag von: MadMetzger am 02.04.03 - 12:18:41
gibt es in r4 kein uiworkspace.prompt? finde es nicht in der hilfe!

gibt alternativen? mit evaluate eventuell?
Titel: Re:Script: aktuell ausgewähltes Dok über Aktion
Beitrag von: eknori am 02.04.03 - 12:21:29
für deine Anforderung, schau dir das http://www.eknori.de/tips/update.htm mal an.

Sollte auch in R4 laufen

eknori
Titel: Re:Script: aktuell ausgewähltes Dok über Aktion
Beitrag von: Axel am 02.04.03 - 12:28:45
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
Titel: Re:Script: aktuell ausgewähltes Dok über Aktion
Beitrag von: MadMetzger am 02.04.03 - 12:33:09
was haben die vier zeilen vor dem sub zu bedeuten?
Titel: Re:Script: aktuell ausgewähltes Dok über Aktion
Beitrag von: eknori am 02.04.03 - 12:36:10
uups, mein Fehler. die gehören da nicht hin. ...  ;D welche 4 Zeilen  ??? ;D
Titel: Re:Script: aktuell ausgewähltes Dok über Aktion
Beitrag von: MadMetzger am 02.04.03 - 12:55:37
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?
Titel: Re:Script: aktuell ausgewähltes Dok über Aktion
Beitrag von: eknori am 02.04.03 - 13:05:22
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.
Titel: Re:Script: aktuell ausgewähltes Dok über Aktion
Beitrag von: MadMetzger am 02.04.03 - 13:10:10
kann das mit den hidewhen-formeln zusammen hängen? dann müsste ich doch für die änderung eine maske ohne hidewhens erstellen, oder?
Titel: Re:Script: aktuell ausgewähltes Dok über Aktion
Beitrag von: MadMetzger am 04.04.03 - 11:35:17
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!