Domino 9 und frühere Versionen > ND7: Entwicklung
Felder werden nur unter meinem User angezeigt
(1/1)
A+S:
Hallo Zusammen,
ich habe folgendes Problem: Ich habe eine mehrsprachige Maske erstellt. Die Texte in der Maske werden durch berechnete Felder dargestellt. Die Werte, die in den Felder angezeigt werden sollen hole ich aus einem Profildokument. Das Ganze funktioniert auch wunderbar bis ein anderer User als ich das Dokument öffnet. Das ist der Code, der in allen Textfeldern steht:
@If(
@GetField ("UserSite")="Bredbury"; @GetProfileField("Settings";"en_2");
@GetField ("UserSite")="Einbeck"; @GetProfileField("Settings";"de_2");
@GetField ("UserSite")="Goleniow"; @GetProfileField("Settings";"pl_2");
@GetField ("UserSite")="Hangzhou"; @GetProfileField("Settings";"cn_2");
@GetProfileField("Settings";"en_2"))
Über das Feld UserSite wird der Standort bestimmt und dem entsprechend sollen die Felder gefüllt werden. Wenn ich mir die Felder im Dokument anschaue ist der Wert ein leerer String "". Woran kann das liegen?
Gruß,
Kai
pete_bla:
Hm noch keine Antwort?
Dann mal die Fragen an Dich:
1. Hast du beim Anlegen/Befüllen des Profils nicht ein "Persönliches" verwendet?
-> @SetProfileField(Profil,Feld,werk,Key/User) -> @GetProfileField( profilename ; fieldname; uniqueKey )
(Du verwendest ja ein allgemeines-> @GetProfileField(profil,feld)
2. Profile tendieren zum "CacheProblem", vor allem wenn du etwas änderst, das für jemanden andern gelten soll, wird dies erst wirksam, wenn die DB ganz geschlossen wird.
Anonsten bitte noch mehr infos. (Felder berechnet oder berechnet zur Anzeige....)
Sonst noch zum Code:
statt
--- Code: ---@GetField ("UserSite")="Bredbury"
--- Ende Code ---
reicht auch
--- Code: ---UserSite="Bredbury"
--- Ende Code ---
Gruss. Pete(r)
A+S:
Ich bin grade dabei das ganze per Lotus Script zu lösen. Das funktioniert jetzt auch. Soweit ich weiß habe ich ein allgemeines Profil verwendet.
Per LS gefällt mir die Lösung auch besser, aber es ist jetzt noch ganz schön viel Schreibarbeit die Felder abzuändern. Trotzdem Danke!
Einfach zur Info jetzt auch noch mal mein LS Code:
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
Dim doc As NotesDocument
Dim session As New NotesSession
Dim db As NotesDatabase
Dim ProfileDoc As NotesDocument
Dim i As Integer
Dim site As String
If Not source.IsNewDoc Then
Set doc = source.Document
Set db = session.CurrentDatabase
Set ProfileDoc = db.GetProfileDocument("Settings")
'** Standort anhand von UserRole bestimmen
If RoleEnabled("[Einbeck]") = 1 Then
Call doc.ReplaceItemValue("UserSite", "Einbeck")
site = "de"
Elseif RoleEnabled("[Goleniow]") = 1 Then
Call doc.ReplaceItemValue("UserSite", "Goleniow")
site = "pl"
Elseif RoleEnabled("[Hangzhou]") = 1 Then
Call doc.ReplaceItemValue("UserSite", "Hangzhou")
site = "cn"
Else
Call doc.ReplaceItemValue("UserSite", "Bredbury")
site = "en"
End If
'** Übersetzungen aus Profildokument laden
For i =1 To 76
'** 6 Abschnitte mit gleichem Inhalt befüllen
If i>56 And i<67 Then
Call doc.ReplaceItemValue("f" & Cstr(i), ProfileDoc.GetFirstItem(site & "_" & Cstr(i)))
For n = 1 To 6
Call doc.ReplaceItemValue("f" & Cstr(i) & "_" & Cstr(n), ProfileDoc.GetFirstItem(site & "_" & Cstr(i)))
Next
'** Felder standardmäßig befüllen
Else
Call doc.ReplaceItemValue("f" & Cstr(i), ProfileDoc.GetFirstItem(site & "_" & Cstr(i)))
End If
Next i
End If
End Sub
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln