Domino 9 und frühere Versionen > ND6: Entwicklung
"no document in that direction"
Tode:
Folgendes Szenario:
ich habe eine Maske, wo der Benutzer per Button bestimmte Informationen "optional" einblenden kann, und das auch im Lesemodus.
Da im Lesemodus weder "RefreshHideFormulas" noch ViewRefreshfields bzw. deren Script- Pendants funktionieren, habe ich folgenden hochkomplizierten Code verwendet:
@Environment( "SHOW_HEADER" ; "1" );
@Command([ViewSwitchForm] ; "Doc" )
Das funktioniert einwandfrei:
Ich öffne das Dokument aus der Ansicht, die Daten sind "versteckt".
Ich klicke den Button - Die Daten werden angezeigt (nur zur Info: die Umgebungsvariable wird von einem berechnet zur Anzeige- Feld sofort wieder zurückgesetzt, damit habe ich abgefangen, dass mehrere Dokumente in verschiedenen Stati geöffnet sein können).
Ich klicke einen anderen Button (setzt SHOW_HEADER auf "") und die Daten werden verborgen.
ABER: Öffne ich das Dokument nicht aus einer Ansicht, sondern über einen Hyperlink auf einer Seite (die als Einstiegsseite für die Datenbank angezeigt wird), dann erhalte ich den Fehler
"No Document in that direction"
oder
"Kein Dokument in dieser Richtung"
Die Datenbank hat eine Vorgabe- Ansicht und eine Vorgabe- Datenbankmaske.
Ansonsten wüsste ich nicht, wo ich noch suchen soll.
KB habe ich durchsucht, aber nix gefunden.
Hat jemand ne Idee ?
Tode
Glombi:
Arbeitest Du mit einem Frameset und Frames?
Falls ja, könnte es daran liegen, dass die Frames nicht die richtigen namen haben: NotesNavigation (für die Outline Page) und NotesView (für die Ansichten).
Damit hatte ich schon diverse komische Effekte.
Andreas
Tode:
Danke erstmal für den Tipp.
Habs gleich ausprobiert. Das wars leider nicht.
Es ist aber halt auch keine typische Aufteilung:
Ich starte mit 2 Frames: Links die Navigation, über die die Ansichten rechts geöffnet werden können, und rechts (so lange keine Ansicht geöffnet ist) die "QuickAccess"- Seite für den direkten Zugriff auf bestimmte Dokumente.
in dieser Konstellation ist also gar keine View geöffnet, vielleicht ist das mein Problem...
Die QuickAccess- Seite lädt die Doks dann in einem neuen Fenster (nicht innerhalb der Rahmengruppe, das macht mir zu viele Scherereien...)
Ich werde mal versuchen. eine Ansicht in diese Konstellation mit aufzunehmen, vielleicht klappt es ja dann...
Für weitere Tipps wäre ich dankbar.
Tode
Tode:
So, Dein Tipp hat mich doch zu einer -zumindest temporären- Lösung gebracht:
Es ist tatsächlich so, dass der Befehl "SwitchForm" nur funktioniert, wenn eine Ansicht geöffnet ist. Dabei reicht es nicht, dass die Ansicht in einem X-Beliebigen Frame offen ist, sondern der Frame muss auch noch "NotesView" heissen.
Ich habe also (um nicht alles komplett über den Haufen schmeissen zu müssen) einen neuen Frame hinzugefügt, und diesen "NotesView" genannt, ihn aber nur 1 Pixel hoch gemacht. Damit klappt's erstmal.
Mal wieder eines dieser tollen "Features".
FAZIT:
SWITCHFORM funktioniert nur dann, wenn:
1. Das Dokument aus einer Ansicht heraus geöffnet wurde
oder
2. Wenn das Dokument aus einer Rahmengruppe heraus aufgerufen wurde nur dann,
wenn diese Rahmengruppe einen Rahmen Namens "NotesView" besitzt, und dieser eine Ansicht enthält (egal ob die Ansicht das Dokument, in dem man arbeitet anzeigt oder nicht.
Tode
Tode:
die von mir genannte Lösung hatte an anderer Stelle negative Nebenwirkungen, deshalb musste ich jetzt noch was anderes finden.
Ich habe aber jetzt eine bessere Lösung gefunden: Öffnet man VOR dem Öffnen des Dokumentes eine Ansicht, dann kommt der Fehler nicht.
Deshalb jetzt dieser Würgaround:
Öffnen des Dokuments:
Dim blablablub und set blabla
Set doc = viw.GetDocumentByKey( chapter , True )
If doc Is Nothing Then
Messagebox "Das Dokument für das Kapitel " & chapter & " konnte nicht gefunden werden" , 16 , "ABBRUCH"
Else
Call ses.SetEnvironmentVar( "CLOSE_IMMED" , "1" )
Call uidb.OpenView( "VwByChapter" )
Call ws.EditDocument( False, doc )
End If
und im PostOpen der VwByChapter:
Dim ses As New NotesSession
Dim x As String
x = ses.GetEnvironmentString( "CLOSE_IMMED" )
Call ses.SetEnvironmentVar( "CLOSE_IMMED" , "" )
If x = "1" Then
Call Source.Close
End If
ist zwar auch nicht schön, aber offensichtlich reicht es, dass das aufgerufene Dokument eine "referenz" zu einer Ansicht hat und damit das Switchform den beschriebenen Fehler nicht mehr bringt
vielleicht hilft das ja irgendwann mal jemandem was...
Tode
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln