Frameset mit relativen Pfadangaben

  • Hallo,


    habe eine Datenbank mit einem Frameset (Vertikal aufgeteilt). Links habe ich einen Rahmen mit ner Gliederung und rechts das Hauptfenster.
    Wie kann ich nun aber steuern, dass ich einen relativen Pfad habe? Mein Problem liegt nämlich darin, dass ich eine Schablone erstelle, anhand derer ich eine Datenbank erstelle. Leider funktionieren dann die Links im linken Frame nicht mehr. (Diese zeigen nämlich auf die ursprüngliche Datenbank).


    Danke Maria

  • wie hast du denn die links zugewiesen?

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • eigentlich alles richtig. das benannte element wird normalerweise aus der aktuellen datenbank gezogen, es sei den du hast dort eine datenbank fest eigestellt!

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • Also bei mir klappts immer noch nicht. Bei den Eigenschaften des Gliederungseintrages gebe ich als Inhalt folgendes an: Benanntes Element, Maske, und dann berechnet. Im mittleren Teil, d.h Formel für Datenbank steht folgender Eintrag:


    "CN=SERVER/O=ORGANISATION!!/maria/NamederDatenbank.nsf"


    Meine Idee ist nun das ganze dynamisch zu gestalten und zwar mit folgender Formel. Diese entspricht genau dem Eintrag oben.


    "\"CN=" + @Name([CN];@ServerName) + "/O=" + @Name([O];@ServerName) + "!!" +@ReplaceSubstring(@LeftBack(@Subset(@DbName;-1);"\\") ; "\\" ; "/") + "/NamederDatenbank.nsf\""


    Die Fehlermeldung ist folgende, wenn ich auf den Eintrag klicke: "Es wurde kein Pfad zum Server gefunden"

  • Als Aktion würde ich das folgendermassen machen
    _pfad:=@ReplaceSubstring(@LeftBack(@Subset(@DbName;-1);"\\") ; "\\" ; "/");
    @Command( [FileOpenDatabase]; @servername : _pfad );


    Beim Gliederungseintrag auf Action stellen.


    Als weitere möglichkeit bieten sich NotesURL's an


    z.B. mit
    _replikID:= Replik ID der Datenbank
    _Element:="MeinForm?OpenForm";
    _url:="notes://"+ServerName+"/"+_replikID+"/"+_Element;
    @settargetframe("MeinFrame");
    @urlopen(_url);

  • also mir is noch nicht ganz klar warum das überhaupt berechnet sein soll ...


    und wenn ja, einfach den server/databenbank weglassen!


    oder @Implode(@DbName;"!!")

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • Vielleicht war meine Beschreibung nicht ganz klar. Habe zwei Datenbanken. In der Einen habe ich ein Frameset und eine Gliederung. In der anderen Datenbank habe ich eine Maske und verschiedene Ansichten.
    Der Benutzer soll nur die Datenbank mit dem Frame und der Gliederung aufrufen und anhand dieser dann verschiedene Masken und Ansichten aus anderen Datenbanken aufrufen.
    Ich Benutze zur Entwicklung ein bestimmtes Verzeichnis auf meinem Server z.B. Server/testumgebung/startseite.nsf Nach dem Programmieren möchte ich nun die Datenbank auf Server/Aktuell/startseite.nsf stellen. Mach ich dies dann funktioniert meine Gliederung nicht mehr.

  • aha.


    da das ja formeln sind, könntest du z. b. eine profildokument erstellen und dann einfach über @GetProfileField("profilname";"feld") den entsprechenden wert auslesen. so bist du nicht abhängig von einer db.

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • profildokumente sind dokumente die in keiner ansicht angezeigt werden! früher hat man sich konfigurationsdokumente/-ansichten erstellt -> heute macht man es meistens mit profilen.


    man kann thoretisch für jeden user ein profildokument in einer anwendung (notes db) hinterlegen.


    für das profil dokument wird einfach eine maske erstellt.


    @Command([EditProfileDocument];"namedermaske")
    erstellt bzw. ändert ein profil dokument


    und mit
    @GetProfileField("namedermaske";"feldname") kann man hier wieder werte auslesen.


    was wohl ab und an mal probleme macht ist das caching der profile ... wenn man aber nur einmal statische informationen (wie z. b. server / datenbank) ablegt sollte das kein problem sein.

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • Habe in meiner Startdatenbank eine Maske erstellt. Dort habe ich den Pfad zu meiner Maske in der anderen Datenbank angegeben.
    In der Gliederung der Startdatenbank gebe ich als Inhalt Aktion ein. Wie aber kann ich die Maske öffnen?

  • Hi, vielleicht hilft dir das weiter.


    mal sehen ob ich das richtig verstanden habe.


    du hast eine Testumgebung (testdatenbank) und eine
    Prod umgebung. Diese Unterscheiden sich an irgend etwas.


    Probier es doch mal so.


    1. du legst dir eine ansicht an mit dem titel "PFAD"
    2. erstellst du eine Maske mit drei Feldern.
    1. Titel
    2. servername
    3. Pfadangabe
    3. Die ansicht ist sortiert nach dem titel.
    2 Spalte = Servername +"~" + Pfad


    so und nun gehts los.


    der Titel ist dafür da falls du auf mehrere datenbanken zugreifen willst. je DB die du ansprechen willst bekommt ein eigenes dokument. du kannst das ja noch verfeinern mit Ansichten namen usw.


    also Z.B. Titel = "Datenbank A"
    server = servername
    Pfad = Prodpfad\prod.nsf


    jetzt legst du hinter deine gliederung:


    DBDATEN := @DbLookup( "" : "NoCache" ; "" : "" ;"PFAD";"Datenbank A";2 );
    server := @word(DBDATEN ;"~"; 1);
    PFAD := @word(DBDATEN ;"~"; 2);


    und schwups sollte auch der Rest funktionieren.


    Wenn du jetzt eine neue DB implementieren willst, dann einfach diese im Pfad berücksichtigen und einen neuen gliederungs eintrag machen.


    Ich hab das hier bei uns noch weiter aufgebohrt. Wir haben eine centrale Datenbank hier, in der sind alle Pfade bzw. Datenbanken zu finden. In alle anwendungen ist dadurch nur noch EINE feste Pfadangabe nämlich auf diese Datenbank. Alle anderen holen Ihre Infos aus der PFADDB.


    Warum habe ich das gemacht, ganz einfach ich hatte 5 datenbanken die zu einem Paket gehören (Adresse, Ansprechpartner, Briefe .....) Dafür hatte ich auch 5 Schablonen.


    und ich hatte das Problem das mehrere unabhängige kopien dieser Datenbanken existieren mussten. Bereich A mit seinen Daten Bereich B mit anderen.


    Der einzige unterschied zwischen den anwendungen war bei mir der Datenbanktitel. und darüber habe ich das dann gesteuert. Das läuft jetzt so. Wenn ich in der Datenbank A bin (titel = DB A) und die Ansprechpanrter von A lesen will, dann gehe ich an die Profile Datenbank und sage "ICH DB A will wissen wo meine Ansprechpartner datenbank ist." Und zurück kam dann der richtige Pfad. Das gaze ist sau schnell und easy umzusetzen. vorallem kannst du das noch verfeinern wenn du auch Usernamen bzw. einen default user mit einbringst. aber das führt jetz eher zu weit.


    Ich hoffe das hilft dir etwas !! :sunclaus: