Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Don Pasquale am 06.06.03 - 12:22:29

Titel: Embedded View
Beitrag von: Don Pasquale am 06.06.03 - 12:22:29
Hallo Leute,

ist es vielleicht möglich in einer eingebetteten Ansicht
mit den angezeigten Dokumenten mehr zu machen,
als das aktuell angewählte Dokument zu öffnen ?

Wenn ich z.B. ein bestimmtes Dokument
mittels einer "einfachen Aktion "
als ungelesen markieren möchte, bekommen
ich die Fehlermeldung, dass das Dokument
zuvor gespeichert werden muß.

Gruß

Don Pasquale
Titel: Re:Embedded View
Beitrag von: meichhorner am 06.06.03 - 16:57:01
Hmm, da gab es doch schon mal einen Thread dazu aber der war glaube ich zu R5. ::)

Cu
Martin
Titel: Re:Embedded View
Beitrag von: LordMacBee am 14.06.03 - 17:43:23
Du kannst leider mit den Dokumenten einer embedded view nicht viel anfangen. DocCollections etc (via db.unprocesseddocuments) kriegst du nur leer zurück. Man hätte eigentlich erwarten können, dass das in der jetztigen Version behoben wäre. (gleiches gilt für framesets).

Das einzige was du machen kannst, ist dir im Target link event (single click) die Unique id in ins .ini oder ins profil schreiben und dir das Ding dann via action oder so wieder auszulesen.
Titel: Re:Embedded View
Beitrag von: cpo am 16.06.03 - 13:04:06
Stimmt doch gar nicht! Man kann mit den Actions in der embeddedView (fast) alles machen. Da bekommt man auch sehr schöne unprocessed collections zurück...
CPO
Titel: Re:Embedded View
Beitrag von: LordMacBee am 16.06.03 - 16:29:59
*probier*
Titel: Re:Embedded View
Beitrag von: LordMacBee am 16.06.03 - 16:40:25
@cpo

hmm. habe kleinen test gefahren. Embedded view in einer Page (vielleicht liegts daran, tut der ganzen Sache aber keinen Abbruch)

Billig script hinter action button:

                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
      Msgbox Doc.Form(0)
      Set Doc = Collection.getNextDocument (doc)
   Wend

ich habe die property 'show selection margin' an und habe einige dokumente markiert. Kriege aber nie was anderes als 0 zurück im collection.count.

Was denkst du, dass ich falsch mache. Villeicht kannst du mal ne variant die funzt posten
Titel: Re:Embedded View
Beitrag von: Hoodlum am 21.06.03 - 13:41:54
Hallo!

Also, man kann über einen kleinen Trick in einer EmbeddedView fast alles mit dem selektierten Dokument machen. Es stimmt schon, dass die "unprocessedDocuments" immer 0 zurückgeben; der Trick besteht darin, dass man versucht, das Dokument zu löschen und zuvor über eine oder mehrere Environment-Variablen seine wirkliche Absicht speichert und das eigentliche Löschen über das "QueryDocumentDelete"-Event verhindert und in diesem - mittels der Environment-Variablen - dann entsprechend agiert... und btw. das ganze funktioniert übrigens auch schon unter R5

So, hier die Beschreibung (die gibt es übrigens auch auf notes.net:
http://www-10.lotus.com/ldd/46dom.nsf/0/0454a2d12be2533785256932001f2016?OpenDocument)


1. Button oder Outline (ich glaube mich zu erinnern, dass Outlines am besten funktionieren, da diese nicht den fokus von dem Dokument "wegholen")
REM "Hier legen wir fest, was wir eigentlich machen wollen"
@SetEnvironment("ViewAction";"setUnread");

REM "der folgende Agent versucht das doc zu löschen.."
@Command([ToolsRunMacro];"IsEmbeddedView")

2. isEmbeddedView-Agent
Sub Initialize
Dim s As New NotesSession
Dim ws As New NotesUIWorkspace
Dim uiview As notesuiview
Set uiview=ws.currentview
'check to see if cursor is in the embedded view
If Not (uiview Is Nothing) Then
Call ws.currentdocument.clear
End If
End Sub

3. QueryDocumentDelete Code
Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
Dim s As New NotesSession
Dim doc As NotesDocument
Dim ViewAction as String
ViewAction = s.GetEnvironmentString("ViewAction")

if ViewAction <> "" then
Set doc = source.documents.getfirstdocument 'DAS IST DAS SELEKTIERTE DOKUMENT!!!!

if ViewAction = "setUnread"
'do something
else
'do something else and so on...
end if

'verhindert das löschen
continue = False

'ViewAction zurücksetzen
s.SetEnvironmentVar("ViewAction","")

End If
End Sub

Für mich funktioniert das wunderbar!! Angehängt eine Abbildung, wie wir das ganze einsetzen...


Titel: Re:Embedded View
Beitrag von: HaPe am 23.06.03 - 08:20:31
ich habe die property 'show selection margin' an und habe einige dokumente markiert. Kriege aber nie was anderes als 0 zurück im collection.count.

Hast du auch das Flag "show action bar" bei dem embbedet view gesetzt und deinen Kode in eine Action des views gesetzt?

Dann geht es.

Gruß HaPe
Titel: Re:Embedded View
Beitrag von: LordMacBee am 23.06.03 - 09:02:19
Hallo,

Das ist schon richtig, dass man über die environment variablen beinahe alles mit einem dokument machen kann. Meine Kritik an dem Konzept der embedded view war, dass sie nicht wie eine normale View funktionniert und man sich eben mit dirty tricks behelfen muss. Ausserdem gibt es situationen, in welcher man eben doch mehere dokumente gleichzeitig bearbeiten muss, also eine collection braucht. (Sprich: der Benutzer hat null Schnall, dass es sich bei der entsprechenden View um eine 'embedded' view handelt und dass da seine Feautres nicht funktionnieren.

Falls jemand eine Möglichkeit gefunden hat, mehrere dokumente auf obige Art zu bearbeiten, möge dies hier kundtun :-)

Danke für die Beiträge

Macbee
Titel: Re:Embedded View
Beitrag von: harkpabst_meliantrop am 23.06.03 - 11:01:49
Man sollte vielleicht einfach akzeptieren, dass Embedded Views keinesfalls dazu gedacht sind, herkömmliche Views zu ersetzen, sondern einfach ganz andere neue Möglichkeiten bieten.

Ganz besonders auch im Browser.
Titel: Re:Embedded View
Beitrag von: LordMacBee am 23.06.03 - 11:10:02
Finde ich unbefriedigend, weil der einzige vorteil an embedded views ist ja die restrict to categories funktion.
Das funktionniert gerade im web auch mit nwormalen views, denen kann man nämlich die kategorie über die URL mitgeben.

Ich sehe das ganze immer auch an aus der sicht des users. Die normalen und embedded views sehen sich derart ähnlich, dass man als user erwarten kann, dass alle features funktionnieren (z.B expand und collapse all). Das tun sie aber nicht, daher mühsam.

made my point - i shut up now  :-X

Macbee
Titel: Re:Embedded View
Beitrag von: cpo am 23.06.03 - 14:56:22
Sorry für nicht-antworten, war im Urlaub...

Also der Trick ist, wie von LordMcBee beschrieben, dass der Code in einer Action in der View liegt. Dann embedded man die View und lässt die Action mit anzeigen - das funzt!

Macht auch Sinn, weil ich in meinen Anwendungen häufig eine View sowohl als ganz normale View wie auch embedded mit singleCategory nutze. Die Action funktioniert in beiden Fällen.

CPO

Öhem, wie schon mal beschrieben, funktioniert bei MIR allerdings das deselektieren von Dokumenten nicht ordentlich - liegt aber vielleicht am Release...