dblookup oder auch eventuell andere Lösung?

  • Hi @ all,


    das Forum hat mir bis jetzt immer sehr geholfen, aber heute hab ich mich doch mal registriert und hab gleich mal eine Problem.


    Ich mach eine "Mitarbeiter-Datenbank", die uns bei verschiedenen Anwendungen in Notes als Grundlage helfen soll. Nur hab ich da diverse Probleme.


    Vorerst meine jetzige Lösung:


    Ich hab eine Ansicht "KST", dort ist die Kostenstelle [KST_] und diese hat als info den Abteilungsleiter [KST_Leiter_] und den Abteilungsname [Abteilung_] dahinter.


    Nun hab ich eine weitere Ansicht "Mitarbeiter" dort gibt es dann, Name [Name], Kostenstelle [KST], Kostenstellenleiter [KST_Leiter], Abteilung [Abteilung], etc...


    Diese beiden Ansichten werden gefüllt mit meinen Masken: KST und Mitarbeiter. Die KST kann sich ja öfters ändern, deswegen hat dies eine eigene Ansicht sowie Maske. Nun sind bei mir aber alles Daten redundant, weil ich in der Maske Mitarbeiter das folgend löse:
    Ich lass eingeben: Name, KST, dann hab ich ein Feld mit folgendem inhalt: @If(@IsError(@DbLookup("":"NoCache";"":""; "KST";KST;"KST_Leiter_"));"";@DbLookup("":"NoCache";"":""; "KST";KST;"KST_Leiter_"))
    das mir den Leiter herranzieht und fest reinschreibt, das gleiche hab ich auch für Abteilung.


    So nun zu meinem problem. Die Daten stehen nun mehrfach redunant in der Ansicht "Mitarbeiter", und wenn man änderungen an der KST vornimmt werden diese ja auch nicht automatisch realtime geändert.


    Gibt es eine Möglichkeit in der Ansicht "Mitarbeiter" einen bezug zu der Ansicht "KST" herzustellen? Sodass er das dann abfrägt?




    Zur Info: Server hat noch Lotus Notes ~5 installiert. meine Anwendung ist 6.


    Ich hoffe man versteht mein Problem.


    Gruß Marc

  • Hi,


    leider kannst Du kein @dblookup in einer Spaltenformel verwenden. Du kannst Dir nur ein Script schreiben, daß bei Änderungen im Stammdokument der KST alle zu dieser KST gehörenden Dokumente korrigiert.


    Zitat

    @If(@IsError(@DbLookup("":"NoCache";"":""; "KST";KST;"KST_Leiter_"));"";@DbLookup("":"NoCache";"":""; "KST";KST;"KST_Leiter_"))


    PS: Um den doppelten Lookup in Deiner Formel zu sparen solltest Du folgendermaßen vorgehen:


    _erg := @DbLookup("":"NoCache";"":""; "KST";KST;"KST_Leiter_");
    @If(@IsError(_erg);"";_erg)

    Für jedes Problem gibt es eine einfache Lösung, die es noch schlimmer macht.

  • Hi Marc,


    die Daten [KST_Leiter], [Abteilung], etc. die du mit dblookup in der Maske Mitarbeiter ablegst, kannst du mit einem Agent o. per Script aktualisieren lassen.
    Vorschlag:
    Wenn sich Daten einer KST ändern... kannst du per Script die docs (Mitarbeiter) nacheinander durchgehen lassen und die entsprechenden Felder überschreiben ... entweder beim Schließen oder mit extra Schaltfläche


    MfG
    Sven