Domino 9 und frühere Versionen > Entwicklung
Index einer View
7Stein:
Hallo zusammen,
ich bin noch relativ neu in der Programmierung mit Notes.
Ich habe bisher in delphi auf einer oracle Datenbank programmiert.
Gibt es in Notes die Möglichkeit, den Datensatzzeiger einer View auszulesen?
Hintergrund:
Ich habe ein Formular mit einer Subform, in der Positionen eines Lieferscheines angezeigt werden.
Wenn ich einen Doppelklick auf den Datensatz mache, geht ein neues Formular zum Ändern der Daten auf.
Wenn ich den Datensatz aber nur markiere und über die Action D"Datensatz Ändern" gehe, geht zuerst ein Dialog auf, über den ich den Datensatz auswählen muss.
--- Code: ---
Sub Click(Source As Button)
Dim detail as NotesDocument
Dim view as NotesView
Dim view2 as NotesView
Dim sPos as String
Set view = db.GetView("(Lieferposition)")
Set view2 = db.GetView("(BestellPositionenByKey)")
sPOs = Inputbox("Welche Position bearbeiten?","Position bearbeiten", "1")
If sPos <> "" Then
Call View2.Refresh()
Set detail = view2.GetdocumentByKey(thisdoc.UniversalID+"- "+sPOs)
If detail Is Nothing Then
Messagebox("Position nicht vorhanden")
Exit sub
End if
OK = ws.Dialogbox("LieferPosEdit", True, True, False, False,
False,False, "Bestellposition bearbeiten", detail)
If OK then
Call detail.Save(True, True)
Call view.Refresh()
Call uiDoc.Refresh()
End if
End if
End sub
--- Ende Code ---
Vielleicht kann mir einer helfen.
Wenn ich auf das Ereignis Queryopendocument zugreifen will, welches bei einem Doppelklick ausgelöst wird, funktioniert das nicht.
Gruß 7Stein
TMC:
Wenn ich das richtig verstehe hast Du eine eingebettete View in einer Maske ?
Was genau willst Du nun machen?
Eine saubere Möglichkeit, um per Buttonklick auf das in der embedded View markierten Dokument Zugriff zu erhalten (z.B. die UNID) ist mir nicht bekannt in R5.
Es gibt aber Workarounds:
http://www.atnotes.de/index.php?board=7;action=display;threadid=6473
7Stein:
Ja genau das ist mein Problem.
Aber warum geht das dann mit einem Doppelklick auf den Datensatz?
Kann ich nicht die Funktiion Queryopendocument aufrufen?
Das verstehe ich noch nicht so richtig.
Gruß 7Stein
TMC:
Da Du wohl von der relationalen DB - Seite kommst, kann vielleicht der Link für Dich interessant sein: http://www.nsftools.com/misc/WhatIsNotes.htm
Da wird ein wenig auch die Logik und der Aufbau von Notes erklärt.
Was da aber nicht erklärt wird, ist die Problematik mit embedded Views.
Gerade in R5 sind diese nicht sehr toll (programmatisch) zu bedienen. Ich vermeide die eigentlich auch immer soweit möglich.
Wäre es eine normale View, kommst Du einfach an das gerade ausgewählte Dokument (z.B. via DocumentContext Property der NotesSession-Klasse, also z.B. "Set doc = session.DocumentContext"). Oder alternativ über die UnprocessedDocuments Property der NotesDatabase - Klasse.
Was willst Du denn in dem Queryopendocument-Event machen?
7Stein:
Im Queryopendocument kann ich direkt auf den mit Doppelklick angewählten Datensatz zugreifen, und das würde ich gerne auch über die Click Routine hinbekommen.
--- Code: ---Sub Queryopendocument(Source As Notesuiview, Contnue As Variant)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim view As NotesView
Set uidoc = ws.CurrentDocument
Set collection As Source.Documents
Set doc = collection.GetFirstDocument()
Set view = Source.View
If uidoc.EditMode Then
Ok = ws.DialogBox("LieferPosEdit", True, True, False, False, False, False, "Artikelposition bearbeiten", doc)
If OK then
Call doc.Save(True, True)
Call view.Refresh()
End if
End if
Continue = false
End Sub
--- Ende Code ---
Diese Funktion würde ich halt gerne für die embedded view aus der Hauptmaske aufrufen.
Aber das funktioniert irgendwie nicht.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln