Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet 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?
-
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
-
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
-
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.
-
Du kannst im Queryopendocument der Ansicht ein flag in die maske setzen, welches du mit der Maske auswertest
-
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...
-
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
-
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!!!!!
-
Ü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?
-
Sorry ich meinte natürlich einen Flag im Dokument --> Sorry!!!
-
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.
-
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.
-
Also ich würde das auf jedem Fall mit zwei Masken machen das ist wohl das einfachste mit dem geringsten Aufwand.
-
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.
-
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.
-
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???
-
Weil zum Beispiel Leser Deinen Vorschlag nicht nutzen können - man braucht wenigstens Autoren Zugriff.
-
Weil zum Beispiel Leser Deinen Vorschlag nicht nutzen können - man braucht wenigstens Autoren Zugriff.
--> wobei wir wieder bei der Umgebungsvariable wären
-
Die man wo ablegt? in der INI...
-
So gesehen... ;)
-
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
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.
-
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
-
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
-
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
-
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?
-
Der Blick in die DesignerHelp lohnt immer wieder:
Diese Funktion kann in Verbergen-wenn-Formeln für Ansichtaktionsleisten, aber nicht in anderen Verbergen-wenn-Formeln verwendet werden.
Bernhard
-
Das passiert, wenn die einfachste (und beste) Lösung (die mit den 2 Masken und der Maskenformel) aus unerfindlichen (politischen?) Gründen ausgeschlossen wird. :(