Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: pipsxx am 13.06.02 - 12:14:50
-
hiho! :)
kann man eigentlich irgendwie abfangen, welche ansicht in einer datenbank gerade vom user geoeffnet ist?
ich habe folgendes szenario:
links (in einem rahmen) ist eine gliederung. bei klick auf einen gliederungseintrag wird rechts (in einem frame) eine ansicht geoeffnet. in der aktionsleiste der ansicht befindet sich eine aktion, die ein neues dokument öffnet. nun soll immer abhängig vom jeweiligen gliederungseintrag ein feld im neuen dokument mir einem bestimmt eintrag belegt werden.
ich habe keine lust fuer jeden gliederungseintrag eine extra maske zu erstellen.
geht das irgendwie? ???
-
hallo,
du kannst dir doch den button "neue maske" als shared action anlegen, dann brauchst du diese mit copy und paste einfach nur in alle ansichten ziehen, geht ganz schnell.
oder du gibst an "show in action menu", dann hast du es im menu statt button, und der user kann da drueber gehen.
hilft das oder hab ich dich falsch verstanden?
gruss,
daniela
-
hi! :)
ja, da hast du mich falsch verstanden.
das öffnen der maske geschieht ueber eine gemeinsame aktion. also kein thema.
es soll allerdings der inhalt des dokuments (das mit der maske geoeffnet wird) von der jeweiligen ansicht abhaengig, geaendert werden.
vielleicht zum besseren verstaendnis:
ich habe eine diskussionsdatenbank. die kategorien sind vorgegeben, also fix. es bestehen ansichten mit den dokumenten einer kategorie.
z.b. ein eintrag zum thema A steht auch nur in der ansicht A. also als bedingungen
select (form = ... & Feldkategorie = "A")
die ansicht wird durch klick auf einen gliederungseintrag im rechten rahmen geoeffnet.
der user soll nun die moeglichkeit haben (per aktion) ein neues dokument zu erstellen. das feld kategorie soll dabei bereits automatisch ausgefuellt werden.
zb. ich habe den gliederunseintrag a angeklickt und die ansicht a wird geoeffnet. nun will ich nur noch auf neues dokument klicken und das feld kategorie wird mit A gefuellt.
ist das besser verstaendlich. kann das problem gar nicht richtig in worte fassen ;)
-
hmm... ich hatte mal ein ähnliches Problem. Ich brauchte damals auch die Infromation in welcher Ansicht der User gerade ist.
Ich hab keine "Goldrandlösung" gefunden, allerdings einen Workaraound:
ich hab in das event OpenView code eingefügt der die View die gerade geöffnet wird in der INI des Users abspeichert.
und an der stelle wo ich wissenwollte welche Ansicht offen ist habe ich die INI-Var wieder ausgelesen.
(im Event OpenView gibt es den Parameter Source, dieser ist als NotesView oder NOtesUiVoew deklariert... weiss nicht mehr genau....)
wenn du den Code brauchst müsste ich nochmal suchen.
ich hoffe das hilft dir weiter ..
Gruß
Achim
-
hi!
das klang schonmal nach etwas brauchbarem.
an umgebungsvar. hatte ich auch schon gedacht, aber wo setzen??
das ist natuerlich eine idee.
ich werde das probieren. und wenn ich net weiterkomme, wende ich mich nochmal vertrauensvoll an dich ;)
-
hey, das tut tatsaechlich.
etwas umstaendlicher tippkram, da ich gut 20 ansichten habe, aber es klappt.
vielen dank fuer den tipp!! :D
-
Hallo pipsxx,
im Designer gibt es bei den Eigenschaften der Masken die Optionen im 2ten Register " Formeln übernehmen Werte aus gewähltem Dokument "
Beschreibung siehe Kontexthilfe
Gruss
Bubble
-
Hi pipsxx,
vielleicht hilft diese Funktion weiter:
Function VIEWGetName(uiview1 As NotesUIView) As String
Dim strViewName As String
If uiview1 Is Nothing Then Exit Function
strViewName = uiview1.ViewAlias
If Len(strViewName) = 0 Then
VIEWGetName = uiview1.ViewName
Elseif Instr(strViewName, "|") Then
VIEWGetName = Strrightback(strViewName, "|")
Else
VIEWGetName = strViewName
End If
End Function
Aufruf der Funktion:
Dim ws As New NotesUIWorkspace
Dim uiview As NotesUIView
Set uiview = ws.CurrentView
strViewName = VIEWGetName(uiview)
In der Variablen strViewName steht dann der Ansichtsname der aktuellen Ansicht!
Gruss,
DocNotes
-
hi!!
dank auch euch beiden!
werde das gern mal ausprobieren.
man lernt ja schliesslich nie aus, gell? ;)