Autor Thema: Anzeige eines Dokuments in einem Rahmen ohne Bearbeitungsleiste?  (Gelesen 2554 mal)

Offline gstueb

  • Aktives Mitglied
  • ***
  • Beiträge: 125
  • Geschlecht: Männlich
  • God is real unless declared integer
Hallo,

ich habe eine Notes-Anwendung mit einer klassisch aufgebauten Rahmengruppe: Links einen Rahmen mit der Navigation (Seite mit Gliederung), rechts erscheinen die ausgewählten Ansichten.

Neben den Ansichten gibt es im linken Bereich auch Punkte wie "Hilfe" / "Versionen", "Über diese DB". Bislang wird bei einem Klick darauf einfach eine statische Seite im rechten Rahmen angezeigt.

Ich möchte jetzt aber auch dynamische Elemente, berechnete Felder etc. im rechten Rahmen anzeigen, wenn z.B. auf "Über diese DB" geklickt wird. Ich habe dies jetzt einfach so gemacht, dass ich statt einer Seite eine Maske im rechten Rahmen anzeige (einfach über @Command([Compose];"(Infos)"), die Maske hat ein Continue=false im Querysave). Das klappt auch, in der Maske kann ich jetzt bestimmte dynamische Elemente wie berechnete Felder verwenden.

Sobald ich aber in den rechten Rahmen klicke, erscheint mir oben die Symbolleiste (Speichern, Drucken, etc.). Das ist zwar nicht wirklich schlimm, aber der Inhalt rutscht mir dadurch bei einem Klick etwas nach unten, was ich unschön finde, zumal ich in der Maske klickbare Links unterbringen möchte.

Habt ihr eine Idee, wie ich das unterdrücken kann? Habt ihr eine andere Idee, mit den klassischen Methoden (ohne xPages) im rechten Frame Infos mit dynamischen Inhalten anzuzeigen? In Seiten gibt's ja nur den berechneten Text, der reicht mir aber nicht.

Danke & Grüße,
Gregor

PS: Wenn ich die Option "Ansicht" / "Symbolleiste" / "Symbolleisten nur beim Bearbeiten anzeigen" deaktiviere, rutscht beim klick in die rechte Maske nichts mehr nach unten, da die Symbolleiste ja immer stehen bleibt. Das wäre optisch auch okay, aber zum einen weiß ich nicht, wie ich diese Option automatisch setzen kann, zum anderen wäre diese Einstellung ja nicht auf meine Anwendung beschränkt - und ich will in meiner Anwendung natürlich keine Änderungen am UI vornehmen, welche sich global auswirken.

Offline WildVirus

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 658
  • Geschlecht: Männlich
Hallo Gregor,

öffne das Dokument doch im Lesemodus, dann sind die von Dir beschriebenen Funktionen ausgeschaltet und unterbinde, dass ein Bearbeitenmodus möglich ist.

Oder erstelle eine Seite statt einer Maske.

CU,
Axel

Offline gstueb

  • Aktives Mitglied
  • ***
  • Beiträge: 125
  • Geschlecht: Männlich
  • God is real unless declared integer
Hallo Gregor,

öffne das Dokument doch im Lesemodus, dann sind die von Dir beschriebenen Funktionen ausgeschaltet und unterbinde, dass ein Bearbeitenmodus möglich ist.

Oder erstelle eine Seite statt einer Maske.

CU,
Axel

Hallo Axel,

hmm, danke, aber ich habe ja gar kein Dokument (welches ich zum lesen öffnen könnte), sondern nur eine Maske. Ich verwende die Maske ja nur, weil ich in ihr im Gegensatz zu einer Seite über berechnete Felder, Scripte etc. Inhalte dynamisch gestalten kann.

Ein neues Dokument kann ich aus der Gliederung heraus einfach über @Command([Compose];"Maske") erstellen. Dieses ist dann aber automatisch im Bearbeiten-Modus.

Selbst wenn ich ein leeres Pseudo-Dokument hätte, wüsste ich nicht, wie ich es von der Gliederung aus zum lesen öffnen könnte. @Command([EditDocument] ....) im Lesemodus mit Übergabe der UNID geht nur aus einer Ansicht heraus, nicht aus der Gliederung.

Grüße,
Gregor
« Letzte Änderung: 04.11.16 - 21:07:32 von gstueb »

Offline WildVirus

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 658
  • Geschlecht: Männlich
Hallo Gregor,

und wie wäre es, statt das Dokument im rechten Frame anzuzeigen, es mit

Code
	Dim wks As New NotesUIWorkspace
	Dim db As NotesDatabase
	Set db = wks.Currentdatabase.Database
	Dim doc As NotesDocument
	Set doc = db.Createdocument()
	With doc
		.form = "Test"
		.Feld1 = "Here we are"
		.Feld.. = "Noch ein Feld"
	End With
	
	Call wks.Dialogbox("Test", true, true, true, true, true, true, "Titel", doc)

anzuzeigen ? Das letzte "true" steht für Readonly.

CU,
Axel

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Mal abgesehen davon, das bei mir die Option "Symbolleisten nur beim Bearbeiten anzeigen" immer deaktiviert ist würde ich dein Problem wie folgt lösen: Führe deine Programm-Logik im Queryopen der Seite aus, schreibe die Ergebnisse in die notes.ini und verwende diese bei den berechneten Texten.

Oder was sind bei dir dynamische Elemente, die nicht in einer Seite genutzt werden können?
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Wenn Du Dich mit einer Maske einfacher tust als mit einer Seite, dann kannst Du auch noch einen geringfügig anderen Weg gehen:
Gestalte Deine Maske.
Sag ihr, dass sie immer in gewünschten Frame geöffnet werden soll (verwende die Standardbezeichner, rechts also - wenn machbar - NotesView)
Verstecke die ActionBar für den ReadMode
Lass QueryModeChange immer im Continue = False verröcheln

In der Outline rufst Du einen Code wie diesen in der Outline Entry über einen Agent auf:

Code
Sub Initialize
	
	Dim ses As New NotesSession
	Dim wks As New NotesUIWorkspace
	Dim dbCurrent As NotesDatabase
	Dim docReadOnly As NotesDocument
	Dim uidocReadOnly As NotesUIDocument
	
	On Error Goto ErrorRoutine
	
	Set dbCurrent = ses.CurrentDatabase
	Set docReadOnly = dbCurrent.CreateDocument
	docReadOnly.Form = "MyRODocument"
	docReadOnly.SaveOptions = "0"
	Set uidocReadOnly = wks.EditDocument (False, docReadOnly)	
	
	
	Exit Sub
	
ErrorRoutine:
	Call ErrorHandler ("Open MyRODOcument")
	Exit Sub
End Sub

Selbstverständlich kann man das Prinzip dann noch beliebig verfeinern, aber wie ich Dich kenne, ist Dir das Prinzip schon klar.

HTH,
Bernhard

Offline gstueb

  • Aktives Mitglied
  • ***
  • Beiträge: 125
  • Geschlecht: Männlich
  • God is real unless declared integer
Vielen Dank, vor allem an Bernhard.

Auf die Idee, in der Gliederung einen Agent aufzurufen, um das ganze dann per Script abhandeln zu können, hätte ich auch selbst kommen können :)

Es funktioniert jetzt wunderbar.

Grüße,
Gregor

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz