Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Johann am 06.10.05 - 11:51:37

Titel: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Johann am 06.10.05 - 11:51:37
Habe ein Maske erstellt mit zwei Feldern. Ein Feld für einen englischen und einen für einen norwegischen Eintrag. Das wird gemacht um zu sehen, ob beide Sprachen vorhanden sind und wenn später die Information wieder gelöscht wird, nicht hin und wieder Informationen in der Datenbank liegen bleiben, dann aber nur in Englisch oder Norwegisch verfügbar sind. Meine Frage ist nun, ist es möglich, wenn ich z.B. über die Ansicht Norwegen auf die Maske zugreife das Sprachfeld Englisch verborgen wird?
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: robertpp am 06.10.05 - 12:10:24
Ja du kannst dir zwei Masken machen die du dann in der Ansicht über Form Formula aufrufen kannst, mit der Formel @if(@ViewTitle = "Engl"; Engl. Makse; Norw. Maske)

robert
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: gossifu am 06.10.05 - 12:12:35
Hallo,

sie Dir mal die Eigenschaft ParentView des NotesDocuments an, vielleicht geht da was, durch Abfrage, welche View du benutzt. Ist aber mit Schreiben von Flags verbunden.

mfg

Kjeld
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Johann am 06.10.05 - 12:31:40
Ja du kannst dir zwei Masken machen die du dann in der Ansicht über Form Formula aufrufen kannst, mit der Formel @if(@ViewTitle = "Engl"; Engl. Makse; Norw. Maske)

robert


es ist eigentlich so, das ich eine Maske habe, aber 2 Ansichten. Wenn die Maske über die eine oder andere Ansicht geöffnet werden soll, dann sollen, wenn ich sie über die englische Ansicht öffne die norwegischen Informationen fehlen und umgekehrt.
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Mandalor am 06.10.05 - 12:43:56
Du kannst im Queryopendocument der Ansicht ein flag in die maske setzen, welches du mit der Maske auswertest
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Gandhi am 06.10.05 - 12:50:05
Sauberer aber ist der Weg über 2 Masken - und auch nicht besonders aufwändig.
Die bisherige Maske packst Du in eine Teilmaske.
Maske eins erhält diese Teilmaske und ein berechnetes Feld als Flag.
Maske zwei ebenso.
Die Hide When Formeln prüfen dann den Wert des berechneten Feldes.

Schliesslich baust Du dann noch in die beiden Masken eine entsprechende Form-Formula ein.
Aufwand ist kleiner als eine Stunde...
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Johann am 06.10.05 - 12:53:50
Du kannst im Queryopendocument der Ansicht ein flag in die maske setzen, welches du mit der Maske auswertest

wie würde das gehen? bin da nicht so fit drin
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Gandhi am 06.10.05 - 13:00:14
Verstehe ich auch nicht.
Wenn ich in der Maske was ändere (dann habe ich schon mal Schmerzen da ran zu kommen) habe ich unglaubliche Probleme mit concurrent User Access - geht eigentlich nicht.
Setze ich in den Dokumenten das Flag, erreiche ich dieses leicht - aber ich habe wieder das Konkurrenzproblem, wenn User in der anderen Ansicht das Doc öffnen + ich muss alle Dokumente der Ansicht ändern + ich verliere Informationen aus $Updated by,...

Wenn man das über ein Flag machen will, sehe ich nur die Chance einen Parameter der NotesIni zu setzten, sobald eine Ansicht geöffnet wird - den kann ich dann auch in der Maske auswerten - aber schön ist das nicht!!!!!
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Mandalor am 06.10.05 - 13:01:36
Über Script:

du holst die das UnprocessedDocuments über die aktuelle Notesdatabase
nimmst das erste und setzt dort ein Feld rein

müsste funktionieren

PS.: habe es gerade über formelsprache versucht, wenn ich in das event field sprache := "eng" reingeschrieben hane und das Dok gespeichert haben, war der Eintrag beim neuöffnen der Datenbank leer? Hat jemand ne idee warum?
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Mandalor am 06.10.05 - 13:02:33
Sorry ich meinte natürlich einen Flag im Dokument --> Sorry!!!
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Gandhi am 06.10.05 - 13:04:24
Dann hast Du jeweils einen Schreibvorgang je Dokumentöffnung - damit sind schon mal alle Lesergruppen draussen. Und Du hast jede Menge Last wegen ständiger Indexaktualisierungen.
Keine gute Lösung.
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Mandalor am 06.10.05 - 13:34:27
War ja nur ein Vorschlag,

Leser: da könne man auch eine Umgebungsvariabel alternativ zu schreiben ins doc verwenden, aber an sonsten sehe ich keine andere Möglichkeit, wenn die Anforderung nur eine MAske zu verwenden besteht.
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: robertpp am 06.10.05 - 13:37:11
Also ich würde das auf jedem Fall mit zwei Masken machen das ist wohl das einfachste mit dem geringsten Aufwand.
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Johann am 06.10.05 - 13:44:40
Also ich würde das auf jedem Fall mit zwei Masken machen das ist wohl das einfachste mit dem geringsten Aufwand.

richtig, das sit das einfachste und so läuft es bereits auch, weil ich das von den beiden ansichten super ansteuern kann, aber mein auftraggeber wünscht, dass es in einer maske ist. am besten wäre natürlich, wenn ich das über einen einfach befehl steuern könnte.
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Gandhi am 06.10.05 - 13:49:43
Und mit was begründet Dein Auftraggeber, dass es nur eine Maske geben soll? Rein Interesse halber. Argumente kann er nicht haben.

Wenn es in einer Maske sein soll geht es nur über die Notes.ini.

Im QueryOpen der View einen Parameter setzen und in den HideWhen Formulas auswerten.
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: gossifu am 06.10.05 - 14:23:34
Hallo,

im Queryopen des Dokuments fragst du mit Source.Document.Parentview den Ansichtsnamen ab.
Wenn es die norwegische ist, setzt Du im Feld (Bsp) Source.Document.Flag 'nor' und bei der englischen 'eng'.
Call Source.Document.Save(True,False)
Call Source.Refresh


Verbergen des einen Feldes, wenn Flag = 'nor' und des andere wenn Flag = 'eng'.

mfg

Kjeld

@Ghandi: notes.ini ??? wozu???
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Gandhi am 06.10.05 - 14:30:37
Weil zum Beispiel Leser Deinen Vorschlag nicht nutzen können - man braucht wenigstens Autoren Zugriff.
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Mandalor am 06.10.05 - 14:38:29
Weil zum Beispiel Leser Deinen Vorschlag nicht nutzen können - man braucht wenigstens Autoren Zugriff.

--> wobei wir wieder bei der Umgebungsvariable wären
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Gandhi am 06.10.05 - 14:54:32
Die man wo ablegt? in der INI...
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: gossifu am 06.10.05 - 15:04:30
So gesehen... ;)
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: animate am 06.10.05 - 15:26:47
Abgesehen davon, dass ich persönlich das für ein Konstrukt des Bösen halte, löst es dein Problem nicht, nämlich dass du möchtest, dass
Zitat
nicht hin und wieder Informationen in der Datenbank liegen bleiben
. Wenn ich das richtig verstanden habe.
Wenn du sie nicht anzeigst, heißt es nicht, dass sie nicht mehr da sind. Hier geht es ja anscheinend nicht um Internationalisierung sondern um Kaschierung inkonsistenter Daten.
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Tode am 06.10.05 - 15:31:42
eine Diskussion wo keiner dem anderen zuhört... interessant:

Also will ich auch noch meinen Senf dazugeben:

QueryOpenDocument der Viewy -> Environment setzen

Und dann in den Hide- When- Formulas der Felder die Environment- Variable abfragen.

Warum diese Lösung ?

- Environment beim öffnen der Ansicht setzen ist unzuverlässig: das ganze kann ausser "sync" kommen, wenn man z.b. zwei Ansichten einer DB gleichzeitig offen hat und zwischen beiden hin und her wechselt...

- Dokument- Wert setzen ist Quatsch aus bereits genannten gründen: pro lesezugriff eine Dokumentänderung, Berechtigungsprobleme, Replikationskonflikte, etc.

Das QueryOpenDocument wird DIREKT vor dem öffnen des Dokumentes getriggert, also ist die Gefahr "ausser sync" zu laufen nicht vorhanden.

HTH
Tode
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: PsychoDad am 06.10.05 - 16:24:42
Sicher eine denkbare Lösung! Aber Robertpp hatte doch auch eine gute  (sehr einfache) Lösung aufgezeigt:

Statt über eine FormFormula einfach im hide/when der Maske mit dem @viewtitle arbeiten.....

Einfach die "englischen Felder" markieren und verbergen wenn @viewtitle!="engl" auswählen. Abhängig davon aus welcher Ansicht Du die Dokumente öffnest kannst Du dann die entsprechenden Felder anzeigen/verbergen.

Frank

Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: koehlerbv am 06.10.05 - 23:22:15
Habe ein Maske erstellt mit zwei Feldern. Ein Feld für einen englischen und einen für einen norwegischen Eintrag. Das wird gemacht um zu sehen, ob beide Sprachen vorhanden sind und wenn später die Information wieder gelöscht wird, nicht hin und wieder Informationen in der Datenbank liegen bleiben, dann aber nur in Englisch oder Norwegisch verfügbar sind. Meine Frage ist nun, ist es möglich, wenn ich z.B. über die Ansicht Norwegen auf die Maske zugreife das Sprachfeld Englisch verborgen wird?

Ist dies wirklich "die ganze Wahrheit" ? Was willst Du wirklich erreichen ? Für Mehrsprachigkeit haben die Kollegen hier schon Vorschläge gemacht, aber das Ziel, das Du erreichen willst, scheint mir noch etwas unklar (entschuldige bitte, wenn ich da jetzt falsch liege). Warum hast Du überhaupt Ansichten, die sowohl Briten als auch Norweger sehen ? Solltest Du nicht vorher (vor der Ansichtsauswahl) ansetzen ?

Nochmals: Entschuldige bitte, wenn ich das Problem missverstanden habe. Wenn es tatsächlich um die Darstellung je nach View geht, gibt es natürlich auch Lösungen, die teilweise hier schon genannt wurden.

Bernhard
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Johann am 07.10.05 - 14:50:40
Sicher eine denkbare Lösung! Aber Robertpp hatte doch auch eine gute  (sehr einfache) Lösung aufgezeigt:

Statt über eine FormFormula einfach im hide/when der Maske mit dem @viewtitle arbeiten.....

Einfach die "englischen Felder" markieren und verbergen wenn @viewtitle!="engl" auswählen. Abhängig davon aus welcher Ansicht Du die Dokumente öffnest kannst Du dann die entsprechenden Felder anzeigen/verbergen.

Frank



so hatte ich mir das auch vorgestellt, habe jetzt im Feld "wenn Formel wahr, dann Absatz verbergen" eingetragen @ViewTitle!="Englisch", aber das funktioniert leider nicht. Wie kann das?
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: koehlerbv am 07.10.05 - 15:17:10
Der Blick in die DesignerHelp lohnt immer wieder:
Zitat
Diese Funktion kann in Verbergen-wenn-Formeln für Ansichtaktionsleisten, aber nicht in anderen Verbergen-wenn-Formeln verwendet werden.

Bernhard
Titel: Re: Feld verbergen wenn Zugriff über eine bestimmte Ansicht
Beitrag von: Gandhi am 07.10.05 - 15:21:45
Das passiert, wenn die einfachste (und beste) Lösung (die mit den 2 Masken und der Maskenformel) aus unerfindlichen (politischen?) Gründen ausgeschlossen wird. :(