Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: zhermann am 24.10.02 - 10:05:19

Titel: View Selection Formel
Beitrag von: zhermann am 24.10.02 - 10:05:19
Hallo Leute,

ich möchte über ein User-Profildokument bestimmte Dokumente ausfiltern.
In dem Profil kann der User aus bestimmten Kriterien festlegen, die er in dem View sehen möchte. Das View enthält Haupt- und Antwortdokumente. Die Antworten sollen gefiltert werden.

Jetzt versuche ich folgendermaßen das Profil aus zulesen und das View zu filtern:

*************************************
User := @Name([CN];@V3UserName);
SE := @GetProfileField("(Userprofile)"; "MySETools"; User);
MF := @GetProfileField("(Userprofile)"; "MyMFTools"; User);
BC := @GetProfileField("(Userprofile)"; "MyBCTools"; User);
Alle := SE + BC + MF;
SELECT @If(Form = "MainTopic") :@If(@Contains(Alle; Jobtools))
*************************************

Als Ergebnis bekomme ich aber alle Dokumente, in denen keine "JobTools" enthalten sind.

Was mache ich falsch?

Gruß

Zsolt Hermann
Titel: Re:View Selection Formel
Beitrag von: Wipe am 24.10.02 - 10:27:07
SELECT @If(Form = "MainTopic") :@If(@Contains(Alle; Jobtools))

SELECT (Form = "MainTopic") | (@Contains(Alle; Jobtools))
Titel: Re:View Selection Formel
Beitrag von: zhermann am 24.10.02 - 11:12:25
Danke für den Tip,

das hat aber auch keine Auswirkung.

Habe es sorum mal Versucht:

*************************************************
User := @Name([CN];@V3UserName);
SE := @Implode(@GetProfileField("(Userprofile)"; "MySETools"; User); ",");
MF := @Implode(@GetProfileField("(Userprofile)";  "MyMFTools";User); ",");
BC := @Implode(@GetProfileField("(Userprofile)"; "MyBCTools"; User); ",");
Alle := @Implode(SE + BC + MF: ",");
SELECT @If(Form = "MainTopic") | @If(@Contains(Alle; JobTools))
*************************************************

Ich habe aber den Verdacht, daß das Profilfeld nicht ausgelesen wird bzw. keine Werte zurück kommen.

Gruß

Zsolt Hermann
Titel: Re:View Selection Formel
Beitrag von: Till_21 am 24.10.02 - 11:36:05
das was du da probierst ist so leider nicht moeglich.
du kannst weder datenbankweite noch personenspezifische profildokumente in der viewselecetion auslesen...
du muesstest da schon mit privaten ansichten arbeiten.

gruss till
Titel: Re:View Selection Formel
Beitrag von: ata am 24.10.02 - 12:11:39
... oder mit eingebetteten Ansichten, in denen die Kategorie berechnet wird.

ata
Titel: Re:View Selection Formel
Beitrag von: zhermann am 24.10.02 - 13:25:49
Hi Leute,

bin jetzt soweit gekommen:

1. In Initial hole ich mir die Werte per Script.  


   Dim session As New Notessession
   Dim db As Notesdatabase
   Dim doc As Notesdocument
   
   Dim se As String
   Dim mf As String
   Dim bc As String
   
   Dim alle As String
   
   Set db = session.Currentdatabase
   Set doc = db.GetProfileDocument("(UserProfile)", session.CommonUsername)
   
   se = doc.GetItemValue("SETools") (0)
   mf = doc.GetItemValue("MFTools") (0)
   bc = doc.GetItemValue("BCTools") (0)
   
   alle = se + "," + mf + "," + bc


2. Schreibe diese in eine Environment - Variable.

   Call session.SetEnvironmentVar( "LSTOOLS", alle )

3. Hole mir diese Variable dan im Teil View-Selection rein.

   SELECT @If(Form = "Maintopic") | @Contains(@Environment("LSTOOLS"); Jobtools)


Jetzt macht Notes das Ganze aber nur Teilweise.
Dokumente die das Kriterium erfüllen erscheinen oder erscheinen nicht.  ??? ??? ???
Wie bitte soll ich dies verstehen.


Manchmal tue ich am Notes doch schon mal zweifeln. Habe schon die Cache.DSK gelöscht. Die Views neu Aufgebaut und und und. Nützt aber alles nichts.

GIbt es vielleicht etwas was ich übersehen habe?

Gruß

Zsolt Hermann
Titel: Re:View Selection Formel
Beitrag von: Rob Green am 24.10.02 - 13:35:16
ja, also, dynamische Views......

Du verwendest die Notes.ini als Speicher für dynamische Selects. Prinzipiell dazu -> es gibt keine dynamischen Selects in Notes, egal was Du anstellst, außer 2 Ausnahmen (s.u.).

Also, in Deinem Falle greift bei einem Test mit einer lokalen DB Deine (!!!) Notes.ini zum Aufbau des Ansichts Index anhand des Selects.

Sobald Du die DB auf den Server stellst, greift die Notes.ini des Servers....und die hast Du mit Deinem Script nicht verändert. Jetzt könnte man denken, daß man nur die Notes.ini des Servers anzupassen hat. Doch halt, wie mache ich das dann, daß die unterschiedlichen Userprofil Einstellungen in ein und derselben Notes.ini auf dem Server fürs Select gezogen werden? Garnicht!

Egal was Du versuchst, man kann keine dynamischen Selects verwenden. Auch nicht in R6.


Ausnahmen?
Persönliche Ansichten, die @username als Vergleichsvariable verwenden. Also "Select Form="A" & @username=Feld_Name"
Aber auch hier kein Select Form="A" & @username=Feld_Name & @getprofile.....". Alles was zu einer echten Dynamisierung der Select Anweisung führen würde, hat Notes in Verwendung mit Select unterbunden (kein getprofile, kein dbllokup, kein etc....)

Und die andere Ausnahme: embedded views mit single category (siehe Help)
Titel: Re:View Selection Formel
Beitrag von: Kokomiko am 24.10.02 - 13:40:00
Hi,

zu Deinem Problem mit indiviuellen Ansichten:

- niemals in Script, es sei denn, es sind nur kleine Daddel-DBs ohne Datenmengen
- Ansichten können auf dem Server nicht individuell indiziert werden, denn der Server kann die individuellen Daten nicht verwenden
-  versuch es mit gemeinsamen Ordern, die bei erster Benutzung persönliche Ordner  werden. Da diese dann lokal und nicht auf dem Server gespeichert werrden, sollten dann auch Deine Formeln greifen.

Gruss Uwe