Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Thunder am 30.03.06 - 15:28:24

Titel: Profil im Frame anzeigen
Beitrag von: Thunder am 30.03.06 - 15:28:24
Hallo,
ich habe eine Rahmengruppe mit 3 Frames. Rechts in dem Menueframe möchte ich gern ein zu bearbeitendes Profil auswählen können, welches dann in dem Hauptframe dargestellt wird.
Dazu lege ich in der Gliederung eine Aktion fest, die zB  <@Command([EditProfile];"(Profil OE)")> lautet. Leider kann ich jetzt aber nicht festlegen, in welchem Frame das Profil geöffnet wird - oder kann ich das direkt in der Formel mitgeben ?
Jetzt wird es immer separat geöffnet.


Gruß
Remko
Titel: Re: Profil im Frame anzeigen
Beitrag von: MadMetzger am 30.03.06 - 15:46:17
Dafür sollte doch  @SetTargetFrame die richtige Wahl sein, wenn ich mich jetzt nicht täusche. Dann sollte er das Profil im angegebenen Zielrahmen öffnen.
Titel: Re: Profil im Frame anzeigen
Beitrag von: Thunder am 30.03.06 - 15:52:20
Hm - hab's versucht mit

@SetTargetFrame("rechts");
@Command([EditProfile];"(Profil OE)")

Wird leider immer noch in einem neuen Fenster geöffnet.
Titel: Re: Profil im Frame anzeigen
Beitrag von: MadMetzger am 30.03.06 - 15:59:56
Habe gerade noch einmal in die Designerhilfe geschaut unter @SetTargetFrame...

Zitat
Verwenden Sie @SetTargetFrame vor dem Erstellen oder Bearbeiten eines Dokuments und vor dem Öffnen oder Aktualisieren einer Ansicht, Seite oder Rahmengruppe. Die folgenden @Befehle verwenden Rahmen, die vorher mit @SetTargetFrame angegeben wurden:
@Command([Compose])
@Command([EditDocument])
@Command([OpenFrameset])
@Command([OpenPage])
@Command([OpenView])
@Command([RefreshFrame])

Und wie man sieht, fehlt hier natürlich EditProfile...
Titel: Re: Profil im Frame anzeigen
Beitrag von: ascabg am 30.03.06 - 16:10:11
Hi,

Man ueberlege trotzdem zuerst einmal, was mit
@Command([EditProfile]; "Profilename")
gemacht wird.
Anschliessend ueberlege man weiter, ob Dokumente, die auf diese Art und Weise erstellt wurden auch in einer Ansicht (Frame) dargestellt werden koennen.
Zitat
Rechts in dem Menueframe möchte ich gern ein zu bearbeitendes Profil auswählen können, welches dann in dem Hauptframe dargestellt wird.

Andreas
Titel: Re: Profil im Frame anzeigen
Beitrag von: Thunder am 30.03.06 - 16:17:03
Warum denn nicht?  Ich kann doch auch andere bestehende Dokumente (Masken) dort aufrufen und bearbeiten. Selbst neue Dokumente kann ich in einem Frame erstellen.
Aber scheinbar ist es für Profildokumente nicht vorgesehen-finde jedenfalls nichts in der Hilfe.
Trotzdem Danke für die Antworten.

Remko
Titel: Re: Profil im Frame anzeigen
Beitrag von: ascabg am 30.03.06 - 16:20:05
@Thunder

Man lese einen Auszug aus der Designer-Help.

Zitat
Only one profile of a given form can exist per database per key. If you create a profile without a key, Notes assumes it's the only profile document of that form in the database. You need at least author access to create a profile that applies to an entire database.
Documents saved with EditProfile are hidden.

Andreas
Titel: Re: Profil im Frame anzeigen
Beitrag von: MadMetzger am 30.03.06 - 16:33:56
@Andreas: Das heißt aber nur, dass Profildokumente nicht in Ansichten angezeigt werden. Ein Frame aber ist keine Ansicht...

@Thunder: Vielleicht gehst du einen Weg über Skript, indem du dir das Profildokument in Zugriff als Notesdocument per NotesDatabase.GetProfileDocument holst und dann per NotesUiWorkspace.EditDocument mit vorherigem NotesUiWorkspace.SetTargetFrame editierst.
Titel: Re: Profil im Frame anzeigen
Beitrag von: ascabg am 30.03.06 - 16:37:32
@MadMetzger,

Und was stelle ich denn in einem "Frame" dar?
(ansonsten koennte ich ja sofort einen Frame erstellen, um mir das "CalenderProfile" oder das "OutOfOfficeProfile" anzeigen zu lassen)

Andreas
Titel: Re: Profil im Frame anzeigen
Beitrag von: MadMetzger am 30.03.06 - 16:38:59
Ein Frame ist nach meinem Verständnis ein Container, in dem ich ein Dokument mit einer Maske anzeigen oder auch eine Ansicht anzeigen kann.
Titel: Re: Profil im Frame anzeigen
Beitrag von: ascabg am 30.03.06 - 16:59:00
@MadMetzger,

Ok.

Dann versuch doch mal folgendes:
Maske erstellen
Mit @Command([EditProfile]; "erstellte Maske") ein neues Dokument erstellen.
Jetzt versuch mal Dir dieses auf die beschriebene Art und Weise erstellte neue Dokument in einer Ansicht oder Frame anzeigen zu lassen.

Andreas
Titel: Re: Profil im Frame anzeigen
Beitrag von: MadMetzger am 30.03.06 - 17:08:22
EditProfile erstellt ja auch kein normales Dokument, daher kann ich es mir auch nicht in einer (möglicherweise auch in einem Frame eingebundenen) Ansicht anzeigen lassen, das geht mit keinem Profildokument.
Aber mit dem von mir beschriebenen Weg über das NotesDocument sollte das sehr wohl gehen.
Nur kann ich das atm nicht nachvollziehen, da ich an einem Platz ohne Designer sitze.
Titel: Re: Profil im Frame anzeigen
Beitrag von: MadMetzger am 30.03.06 - 20:00:32
Diesen Code eingebunden in einen Agenten, der durch den Gliederungseintrag gestartet wird, öffnet er mir das Profil im angegebenen Rahmen.

Code
Dim ws As NotesUIWorkspace
	Dim doc As NotesDocument
	Dim uidb As NotesUIDatabase
	Dim db As NotesDatabase
	
	Set ws = New NotesUIWorkspace
	Set uidb = ws.CurrentDatabase
	Set db = uidb.Database
	Print "ich laufe	"
	Set doc = db.GetProfileDocument("Profil")
	If doc Is Nothing Then
		Call ws.SetTargetFrame("rechts")
		Call ws.EditProfile("Profil")
	Else
		Call ws.SetTargetFrame("rechts")
		Call ws.EditDocument(True,doc)
	End If
Titel: Re: Profil im Frame anzeigen
Beitrag von: MadMetzger am 10.04.06 - 12:59:39
@Thunder: Konntest du das nun gebrauchen, oder nicht? Oder hast du das Problem anders gelöst... Wäre schön, wenn die Allgemeinheit davon erfahren würde...
Titel: Re: Profil im Frame anzeigen
Beitrag von: grisu00 am 30.05.06 - 13:57:41
Ich möchte mich jetzt auch mal zu dem Thema "Profildokument in Frameset öffnen" äußern, da ich mich damit die letzten Wochen sehr intensiv beschäftigt habe.

1. Profildokumente lassen sich nicht mit EditProfile innerhalb eines Frames öffnen. Habe dies auch schon dem Lotus Support gemeldet und dieser hat das Problem nachvollziehen können und unter der Nummer APAR #LO14542 an das Lotus Software Quality Engineering weitergeleitet.

2. Wenn man ein Profildokument mit EditDocument öffnet (dieses öffnet sich dann auch brav im Frame), können die darin gemachten Änderungen nicht gleich mit @GetProfileField... abgefragt werden, da es da anscheinend ein Caching-Problem gibt. Auch das Problem habe ich dem Lotus Support bereits mitgeteilt, und auch dazu gibt es eine offizielle Meldung an das LSQE APAR #LO14505.

Mögliches Workaround:
Ich öffne das Profildokument mit EditDocument. In dieser Maske habe ich das Speichern mit SaveOptions"0" deaktiviert, das Speichern übernimmt bei mir ein Button "Speichern" in dem ich die geänderten Felder aus der Maske auslese und manuell über SetProfileField in die zugehörigen Profilfelder schreibe. Dann gibts kein Caching-Problem.  8)