Autor Thema: selektieren des gerade erzeugten dokumentes in der view  (Gelesen 15534 mal)

Offline Snowman

  • Junior Mitglied
  • **
  • Beiträge: 67
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #20 am: 16.09.10 - 17:47:02 »
Da bekomme ich beim speichern des Codes die Meldung: Event handler must be a LotusScript SUB or Function: Selectdocument.

Und wie selektiere ich dann in der View? Da brauche ich NotesUiView.SelectDocument(doc). Den UiView habe ich im Postopen. Im SelctDocument gibst Du das als Parameter nicht mit.

vg
stephan

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #21 am: 17.09.10 - 07:32:50 »
Da ich remote binding auch noch nicht kannte, habe ich das einmal ausprobiert. Vorgehensweise:

In der Ansicht (Globals)

Declarations
Dim uiview As NotesUIView

Sub SelectDocument (Source As NotesUIDocument, Continue As Variant)
   If Not Source Is Nothing Then
      Call uiview.SelectDocument (Source.Document)
   End If
End Sub

In der Schaltfläche zum Erstellen des Dokuments

Sub Click (Source As Button)
   Dim workspace As New NotesUIWorkspace
   Set uiview = workspace.CurrentView
   Call workspace.ComposeDocument ("", "", "NameDerMaske")
   Dim uidoc As NotesUIDocument
   Set uidoc = workspace.CurrentDocument
   On Event Queryclose From uidoc Call SelectDocument
End Sub

Es wird grundsätzlich alles ausgeführt, allerdings erscheint die Fehlermeldung Command is not available und das Dokument wird nicht markiert.

Habe in SelectDocument sowohl auf das Dokument Zugriff als auch auf die uiview (mit msgbox überprüft, da der Debugger bei dieser Konstruktion nicht mitspielt). Ich vermute, dass uiview.SelectDocument nur ausgeführt werden kann, wenn die Ansicht im Vordergrund ist. Das ist sie aber nicht, da das Dokument noch offen ist. Das Event Queryclose ist da zu früh. Habe es mit Terminate versucht, aber das ist gemäß Fehlermeldung kein Event. Und ein Postclose gibt es (noch) nicht.

Set uiview = workspace.CurrentView in SelectDocument ausgeführt, ergab Nothing, das ist ein weiterer Beleg dafür, dass SelectDocument aus dem Fokus des Dokuments und nicht der Ansicht ausgeführt wird.

Getestet habe ich unter 7.03, vielleicht funktioniert das unter einer neueren Version, deshalb habe ich die komplette Vorgehensweise aufgeschrieben.

Offline Grischu

  • Frischling
  • *
  • Beiträge: 40
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #22 am: 17.09.10 - 11:55:26 »
Ich habe es unter 8.5.1 ausgeführt geht genau so wenig.


Allerdings habe ich danach noch etwas rum probiert und folgendes scheint zu funktionieren. Warum auch immer :)


In der Ansicht (Globals)

Declaration
Dim uiview As NotesUIView
Dim workspace As NotesUIWorkspace
Dim uiDatabase As NotesUIDatabase

Sub Initialize
   Set workspace = New NotesUIWorkspace
   Set uidb = workspace.CurrentDatabase
End Sub

Sub SelectDocument (Source As NotesUIDocument, Continue As Variant)
   Print "SelectDocument"
   If Not Source Is Nothing Then
      Call uiDatabase.OpenView(uiview.ViewName,"",False)
      On Error Resume Next
      Call uiview.SelectDocument (Source.Document)
      On Error Goto 0
   End If
End Sub


In der Schaltfläche zum Erstellen des Dokuments

Sub Click (Source As Button)
   Set uiview = workspace.CurrentView
   Call workspace.ComposeDocument ("", "", "NameDerMaske")
   Dim uidoc As NotesUIDocument
   Set uidoc = workspace.CurrentDocument
   On Event Queryclose From uidoc Call SelectDocument
End Sub


Dies hat bei mir den Effekt dasd das neue Dokument in der View selektiert ist.
Twitter is eine typische Erscheinung der Generation ADS & SMS. Für einen Brief zu faul, für einen kompletten Satz zu dumm und für korrekte Grammatik zu cool.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #23 am: 18.09.10 - 10:10:51 »
Warum auch immer :)
Sehr gut! Ist eigentlich logisch, denn Du änderst durch das Öffnen der Ansicht den Fokus, was genau das Problem löst, das in meinem Script war.

Hatte ähnliches probiert, allerdings über Schließen und wieder Öffnen der Ansicht im SelectDocument. Schließen hatte wunderbar funktioniert ...

Die Lösung halte ich für wirklich gut, da auch das Problem, das Bernhard ansprach (Nutzen der Ansicht, während das Dokument geöffnet ist) behoben ist, denn die Ansicht wird nun nicht geschlossen.

Hoffentlich ist Snowman darüber nicht so sehr ins Schwitzen gekommen, dass er nun geschmolzen ist ...

Offline Snowman

  • Junior Mitglied
  • **
  • Beiträge: 67
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #24 am: 18.09.10 - 18:56:26 »
Nein, bin noch nicht zerschmolzen  :)

Die neue Lösung klingt wirklich sehr gut.
Baue das nächste Woche um.

Danke Euch Allen!

vg
Stephan

Offline Snowman

  • Junior Mitglied
  • **
  • Beiträge: 67
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #25 am: 04.11.10 - 09:32:08 »
Sorry, das ich das so spät nochmal aufmache, aber da geht was nicht.

Wenn ich den Code so wie beschrieben einbaue, Bekomme ich (schon beim Speichern der Aktion die die Maske öffnet) die Fehlermeldung: "Eventhandler must be a LotusScript SUB or Function: SELECTDOCUMENT.

Wieso compiliert das bei Euch ohne Fehler?

stephan

Offline Grischu

  • Frischling
  • *
  • Beiträge: 40
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #26 am: 04.11.10 - 11:20:03 »
Hmm gute Frage.

Ist das eine Shared Action oder ist sie direkt in der Ansicht ?

Twitter is eine typische Erscheinung der Generation ADS & SMS. Für einen Brief zu faul, für einen kompletten Satz zu dumm und für korrekte Grammatik zu cool.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #27 am: 04.11.10 - 12:06:20 »
Hast Du vielleicht die Sub SelectDocument nicht in den Globals definiert?

Du musst die "ganz oben" anlegen, also oberhalb von

NameDerAnsicht (Ansicht)

in

NameDerAnsicht (Globals)

Offline Snowman

  • Junior Mitglied
  • **
  • Beiträge: 67
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #28 am: 04.11.10 - 13:34:04 »
Hmm gute Frage.

Ist das eine Shared Action oder ist sie direkt in der Ansicht ?


Habe beides probiert. Geht nicht.
Action in der Ansicht bringt gleich den Fehler, als Shared Action halt erst zur Laufzeit.
Es liegt an der On Event Zeile.

Hast Du vielleicht die Sub SelectDocument nicht in den Globals definiert?

Du musst die "ganz oben" anlegen, also oberhalb von

NameDerAnsicht (Ansicht)

in

NameDerAnsicht (Globals)

Ja, sind ganz oben eingefügt.

Ich habe 8.5.2. Kann es daran liegen?

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #29 am: 04.11.10 - 13:43:51 »
Hast Du vielleicht in den Declarations der Ansicht (nicht in den Globals) eine Bibliothek eingebunden? Wenn ja, lösch die dort und trag sie in den Declarations (Globals) ein.

Offline Snowman

  • Junior Mitglied
  • **
  • Beiträge: 67
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #30 am: 04.11.10 - 14:56:54 »
ich habe jetzt eine ganz neue db angelegt.

eine maske 'person' mit einem feld name
eine ansicht 'personen' mit einer sortierten spalte name

in der ansicht ist die action, so wie im beispiel.
auch der andere code in den globals.

er compiliert nun ohne fehler, aber das event wird nicht ausgeführt.

ist zum narrischwerden....

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #31 am: 04.11.10 - 15:12:45 »
Wird SelectDocument gestartet? Eventuell mit Msgbox oder Print (wie im Beispiel angegeben) überprüfen. Wenn es gestartet wird, würde ich On Error auskommentieren, vielleicht kommt dann eine aussagekräftige Fehlermeldung.

Offline Snowman

  • Junior Mitglied
  • **
  • Beiträge: 67
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #32 am: 04.11.10 - 16:00:29 »
nein, wird nicht gestartet...

Offline Snowman

  • Junior Mitglied
  • **
  • Beiträge: 67
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #33 am: 05.11.10 - 12:02:21 »
peter,

kann ich dir mal meine db schicken?
oder kannst du mir die schicken, mit der du das getestet hast?

vielleicht sehe ich ja nur den wald vor lauter bäumen nicht...

gruß
stephan

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #34 am: 05.11.10 - 12:07:55 »
ja, schick mal her. Ich kann das dann unter 5.10, 7.03 und 8.51 testen.

Meine Emailadresse ist im Profil

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #35 am: 05.11.10 - 16:04:40 »
Hab's gefunden. SelectDocument wird durch den Befehl

On Event Queryclose From uidoc Call SelectDocument

ausgeführt, wenn das Queryclose des uidoc ausgeführt wurde. Im uidoc wurde aber nie ein Queryclose ausgeführt, weil das Queryclose absolut leer war. Habe dort jetzt ein Leerzeichen eingetragen (und wieder gelöscht).

Beim nächsten Versuch kam dann immerhin schon ein object variable not set, das ließ sich beheben, in dem der workspace nicht mehr im Initialize der Ansicht sondern in der Schaltfläche gesetzt wurde. Nun funktioniert es bei mir.

Ich schicke Dir die Datenbank mit meinen Änderungen wieder zurück.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #36 am: 05.11.10 - 16:16:14 »
Peter, der norwegische Sherlock Holmes!  :)

Offline Snowman

  • Junior Mitglied
  • **
  • Beiträge: 67
  • Geschlecht: Männlich
Re: selektieren des gerade erzeugten dokumentes in der view
« Antwort #37 am: 05.11.10 - 22:59:57 »
Ist ja super, jetzt gehts bei mir auch. :D

Es war wirklich nur das Aktivieren des Queryclose im Document.
Workspace im Initialize macht bei mir keine Probleme.

Danke Peter!

lg
Stephan

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz