Autor Thema: Felder werden nur unter meinem User angezeigt  (Gelesen 1894 mal)

Offline A+S

  • Junior Mitglied
  • **
  • Beiträge: 68
Felder werden nur unter meinem User angezeigt
« am: 04.06.08 - 16:06:43 »
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

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: Felder werden nur unter meinem User angezeigt
« Antwort #1 am: 05.06.08 - 13:14:01 »
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"
reicht auch
Code
UserSite="Bredbury"

Gruss. Pete(r)




pete(r)

Offline A+S

  • Junior Mitglied
  • **
  • Beiträge: 68
Re: Felder werden nur unter meinem User angezeigt
« Antwort #2 am: 05.06.08 - 14:40:52 »
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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz