Autor Thema: Embedded View Action Bar verstecken?!  (Gelesen 2187 mal)

Offline F.Engel

  • Frischling
  • *
  • Beiträge: 27
  • Geschlecht: Männlich
Embedded View Action Bar verstecken?!
« am: 01.06.10 - 16:51:46 »
Hallo Leute,

ich habe eine Maske die eine Embedded View enthält.
Soweit so gut... der Ersteller des Dokuments soll Zugriff auf eine Action in der Action Bar
der Embedded View haben. Habe es über eine Hide-When Formel geregelt...
Allerdings zeigt er mir den Button nun garnicht mehr an...
Wie mache ihc das am besten? Geht das überhaupt?

Gruß

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Embedded View Action Bar verstecken?!
« Antwort #1 am: 01.06.10 - 20:21:19 »
Habe das gerade ausprobiert. Die Information, wer der Ersteller des Dokuments ist, steht im Dokument (bzw. bei einem neuen Dokument ist es der aktuelle User). Auf die Information aus dem Dokument (wer ist der Ersteller oder ist das Dokument neu) kann die Verbergeformel der Schaltfläche nicht zugreifen. Daher muss das Dokument diese Information vor dem Öffnen an einer Stelle ablegen, auf die die Verbergeformel zugreifen kann.

Mein Testdokument verwendet dazu die Notes.ini (sollte schnell gehen, kann vielleicht besser ein Profildokument oder noch etwas anderes sein).

Im Queryopen des Dokuments passiert folgendes:

Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Set db = session.CurrentDatabase
   Dim notesname As NotesName
   Dim doc As NotesDocument
   Set doc = Source.Document
   If doc Is Nothing Then
      'Neues Dokument -> Ersteller = User
      Set notesname = New NotesName (session.Username)
   Else
      'Bestehendes Dokument -> Ersteller steht in Feld Ersteller
      Set notesname = New NotesName (doc.Ersteller (0))
   End If
   'Ersteller in Notes.ini schreiben, Variablenname ist Dateiname der Datenbank
   Call session.SetEnvironmentVar (db.Filepath, notesname.Abbreviated)   
End Sub

Die Verbergeformel der Schaltfläche lautet:

@Environment (@Subset (@DBName; -1)) != @V3Username

Funktioniert!!

Einziger Nachteil könnte sein, dass die Information über den Ersteller nur an einer neutralen Stelle abgelegt werden kann - hier in Abhängigkeit des Dateinamens der Datenbank - und nicht in Abhängigkeit des Dokuments, denn dann könnte man ja direkt aus dem Dokument lesen. Sobald mehr als ein Dokument gleichzeitig geöffnet ist, gewinnt die Einstellung des letzten Dokuments. Allerdings verändert sich die Sichtbarkeit der Schaltfläche bei Änderung des Eintrages in der notes.ini nicht, so dass das vielleicht gar kein Problem ist. Das musst Du dann selber ausprobieren.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Embedded View Action Bar verstecken?!
« Antwort #2 am: 02.06.10 - 06:17:37 »
Noch ein Verbesserungsvorschlag:

Die Logik würde ich aus der Verbergeformel in das Queryopen auslagern. Die Verbergeformel könnte dann lauten:

@Environment (@Subset (@DBName; -1) + "Action1") != "1"

Im Queryopen wird dann entweder "1" oder "" in die Variable geschrieben, die ich hier noch um eine Schaltflächenbezeichnung ergänzt habe. Vorteil ist, dass

1. bei Änderung der Verbergelogik nur die Maske geändert werden muss
2. die Ansicht bei Einbettung in verschiedenen Masken auch bei unterschiedlichen Verbergelogiken funktioniert

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Embedded View Action Bar verstecken?!
« Antwort #3 am: 10.06.10 - 10:07:56 »
Hallo,

was genau macht die Aktion denn - benutzt sie eventuell die ausgewählten Dokumente der Ansicht?

Toni
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz