Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: khsopro am 27.05.08 - 16:10:03

Titel: Verstecken von Inhalten wenn in Dialogbox geöffnet wird
Beitrag von: khsopro am 27.05.08 - 16:10:03
Hi,
folgendes: Ich habe ein Dokument, was einmal als Dialogbox geöffnet werden kann und einmal als 'normales' Dokument.

Nun möchte ich eine Zeile verstecken wenn das Dokument in der Dialogbox geöffnet wird. Hier dachte ich mir setze ich ein Flag in ein Feld. Dies funktioniert aber nur, wenn ich das Dokument in Bearbeitungsmodus in der Dialogbox öffne, sonst bekommt er das Flag nicht mit und zeigt den wert an.

Hat jemand vielleicht eine Idee?

CU
khsopro
Titel: Re: Verstecken von Inhalten wenn in Dialogbox geöffnet wird
Beitrag von: Driri am 27.05.08 - 16:12:55
Ich würde mal folgendes ausprobieren :

Erstell eine zweite Maske als Kopie der Originalmaske und laß dort das Feld weg. In der Dialogbox-Methode gibst Du dann diese Maske im ersten Parameter an.
Titel: Re: Verstecken von Inhalten wenn in Dialogbox geöffnet wird
Beitrag von: Werner Götz am 27.05.08 - 16:47:12
Wird die Dialogbox per Script geöffnet?
Dann könnte man an der entsprechenden Stelle im betroffenen Dokument vorher ein Feld setzen, welches dann eine HideWhen-Formel in der Maske "steuert" und das Feld nach der Dialogbox wieder löschen.

-Werner
Titel: Re: Verstecken von Inhalten wenn in Dialogbox geöffnet wird
Beitrag von: khsopro am 27.05.08 - 19:28:50
Erstell eine zweite Maske als Kopie der Originalmaske und laß dort das Feld weg. In der Dialogbox-Methode gibst Du dann diese Maske im ersten Parameter an.

Das wollte ich eigentlich vermeiden.

Dann könnte man an der entsprechenden Stelle im betroffenen Dokument vorher ein Feld setzen, welches dann eine HideWhen-Formel in der Maske "steuert" und das Feld nach der Dialogbox wieder löschen.

Das habe ich schon probiert. Wie schon beschrieben klappt das nur wenn das Dokument in Bearbeitungsmodus geöffnet wird.
Titel: Re: Verstecken von Inhalten wenn in Dialogbox geöffnet wird
Beitrag von: Werner Götz am 27.05.08 - 19:34:55
Wenn das Dokument beim Aufruf der Dialogbox als Parameter notesDocument (s. unten) übergeben wird, sollte auch im Lesemodus ein Feld gesetzt werden können.

flag = notesUIWorkspace.DialogBox( form$ , [autoHorzFit] , [autoVertFit] , [noCancel] , [noNewFields] , [noFieldUpdate] , [readOnly] , [title$] , [notesDocument] , [sizeToTable] , [noOkCancel] , [okCancelAtBottom] )


-Werner
Titel: Re: Verstecken von Inhalten wenn in Dialogbox geöffnet wird
Beitrag von: Johnson am 28.05.08 - 09:39:49
Du kannst dabei das Feld vor dem Aufruf der Dialogbox-Methode setzen.

Code
Dim db as NotesDatabase
Dim doc as NotesDocument
Dim s as NotesSession
Dim uiws as NotesUIWorkspace
Dim bln_result as Boolean

Set s = New NotesSession
Set db = s.CurrentDatabase
Set doc = db.CreateDocument
doc.Form = "BlaBlaBla"
doc.tmpShowCrazyRow = "0"

Set uiws = New NotesUIWorkspace
bln_result = uiws.DialogBox("BlaBlaBla", True, True, False, False, False, False, db.Title, doc, True)
...

In der Maske (hier: "BlaBlaBla") versteckst du dann die Zeile, wenn das Flag-Feld (hier: "tmpShowCrazyRow") den entsprechenden Wert hat.
Des weiteren kannst du das Flag-Feld, wenn die Dialogbox mit OK geschlossen wurde und der Rückgabewert True ist, wieder entfernen.

Prinzipiell tendiere ich aber auch zur Lösung mit zwei Masken, da die "normale" Maske weitaus flexiblere Bearbeitungsmöglichkeiten bieten kann, als eine Maske, die in einer Dialogbox geöffnet wird. Auch die Gestaltung kann sich erheblich unterscheiden, wenn Dialogboxen auf Grund der CI ein gewisses Aussehen erhalten.
Titel: Re: Verstecken von Inhalten wenn in Dialogbox geöffnet wird
Beitrag von: khsopro am 28.05.08 - 18:15:51
Okay, ich hab den Fehler. Ihr hab recht. Beim verkehrten Aufruf geschaut.

Danke für eure Antworten.