Inhalt eines Frames nach Formel anzeigen

  • Hi,


    ich habe eine Rahmengruppe. In dem rechten oberen möchte
    ich einen Maske anzeigen lassen. Soweit auch kein Problem.
    Aber, ich möchte die Maske nur dann anzeigen, wenn eine
    Formel ein Ergebniss liefert:


    @DbLookup("":"NoCache";"MAILSolingen/bhnord":"names.nsf";"($VIMPeopleCharon)";@Name([Abbreviate];@UserName);14)


    Hiermit wird ausgelesen, ob der User eine Reisendennummer hat.
    Wenn ja, soll dort eine Maske mit seinen Umsatzzahlen erscheinen
    (Name: "Stand"), wenn nicht soll dort eine leere Maske sein (Name:
    "leer"). Wie kann ich das denn hinbekommen?


    Ich habs mal probiert, indem ich eine Formel für den Rahmen
    angegeben habe:


    @If(@IsError(@DbLookup("":"NoCache";"MAILSolingen/bhnord":"names.nsf";"($VIMPeopleCharon)";@Name([Abbreviate];@UserName);14));"leer";"Stand")


    War aber nöscht :(


    thx
    Marc

    ......
    Dieser Eintrag wurde nach bestem Wissen und ohne Gewissen erstellt :hammer: ...

    • Offizieller Beitrag

    Wo machst Du den Compose der Maske?, den kann ich in Deiner Formel nicht finden.


    Falls die Masken "leer" und "Stand" sind, dann sollte es so gehen.
    Vorher musst Du natürlich noch den TargetFrame bestimmen, in dem die Maske geöffnet werden soll.

    Code
    Maske := @If(@IsError(@DbLookup("":"NoCache";"MAILSolingen/bhnord":"names.nsf";
             "($VIMPeopleCharon)";@Name([Abbreviate];@UserName);14));
       "leer";
       "Stand");
    @Command([Compose]; Maske)


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Hi,


    den Compose mache ich gar nicht, da ich in der Maske die Felder
    alle als "Berechnet zur Anzeige" habe und diese immer nach
    dem Mitarbeiter in der $VIM suchen und dem seine Daten
    dann dynamisch in der einen Maske "Stand" anzeigen.
    Da brauch ich nur 1x die Maske die sich dann "von selbst" füllt.


    Ich möchte das halt nur so haben, daß wenn die in der $VIM
    in der Spalte 14 einen Wert finden -> dann Maske = "Stand" ->
    sonst Maske = "leer". Und das in der Berechnungsformel
    des Rahmens bei den Rahmengruppen


    Ciao
    Marc

    ......
    Dieser Eintrag wurde nach bestem Wissen und ohne Gewissen erstellt :hammer: ...

  • ja doch, gehen tut es ja ;) Nur nicht dann, wenn der Mitarbeiter
    nicht gefunden wird...

    ......
    Dieser Eintrag wurde nach bestem Wissen und ohne Gewissen erstellt :hammer: ...

  • Das habe gemacht und geht auch.


    Wollte es nur "optisch" so machen, da nur der die Maske
    sieht, den es auch betrifft. Sonst stehen dort immer nur 0en
    drin.


    thx
    Marc

    ......
    Dieser Eintrag wurde nach bestem Wissen und ohne Gewissen erstellt :hammer: ...

    • Offizieller Beitrag

    blende doch for diese Usere eine leere Maske ein.


    Gruß
    Dirk

  • genau das wollte ich ja machen, ne leere maske wenn der
    user nicht ein NULL als rückgabe von dem @dblookup
    liefert. hatte ich wohl was falsch formuliert :(
    marc

    ......
    Dieser Eintrag wurde nach bestem Wissen und ohne Gewissen erstellt :hammer: ...

    • Offizieller Beitrag

    Wo sind jetzt noch offene Probleme? Beschreibe diese mal genauer.


    Gruß
    Dirk

  • Okay, also ich habe eine Rahmengruppe.
    Die ist in 3 Teile geteilt. links, rechts, unten.
    rechts=hier erscheint die Maske "Stand", wo die
    Umsatzzahlen der Reisenden erscheinen. In der
    Maske sind lauter berechnete Felder drin, in denen
    per @dblookup die Werte aus einer Notes-DB rüber-
    geholt werden zur Anzeige. Wenn der User kein
    Reisender ist, werden dort auch keine Werte angezeigt,
    soweit auch richtig. Sieht aber was doof aus, wenn an
    dieser Stelle eine Maske mit nur den Überschriften er-
    scheint. "Reisender:", "Umsatz akt. Jahr:" etc.
    Hier an dieser Stelle möchte ich nun eine andere Maske
    einblenden. Wenn der User nach dem @dblookup einen
    leeren Feldwert hat (Ansicht $VIM..) soll er recht die
    Maske "leer" sehen, wenn der aber einen Wert !=NULL
    hat, soll dort die Maske "Stand" erscheinen".


    Anhänge:
    Maske = sieht der User
    Maskeentwurf = Design
    maskformel = Ich dachte hier könnte man das Programmieren


    Gruß&Danke
    Marc

    ......
    Dieser Eintrag wurde nach bestem Wissen und ohne Gewissen erstellt :hammer: ...

    • Offizieller Beitrag

    "Formel für den Namen des benannten Elementes" baust Du Deine Formel ein (siehe in einem älteren Post von Dir).


    Entweder steht dort "leer" (Du musst dann auch eine Maske mit diesem Namen haben) oder die Maske, die Du jetzt schon einbindest.


    Gruß
    Dirk

  • Also müsste ich


    @If(
    @DbLookup("":"NoCache";"MAILSolingen/bhnord":"names.nsf";"($VIMPeopleCharon)";@Name([Abbreviate];@UserName);14)
    =NULL;"leer";"Stand")


    dort reinschreiben. Nur kommt dann die Meldung:


    ---------------------------
    IBM Lotus Domino Designer
    ---------------------------
    Dokument kann nicht erstellt werden. Datenbank enthält ein Gestaltungselement nicht.
    ---------------------------
    OK
    ---------------------------


    Marc

    ......
    Dieser Eintrag wurde nach bestem Wissen und ohne Gewissen erstellt :hammer: ...

    • Offizieller Beitrag
    Code
    @If(  @IsError(    @DbLookup("":"NoCache";"MAILSolingen/bhnord":"names.nsf";"($VIMPeopleCharon)";@Name([Abbreviate];@UserName);14)=NULL);  "leer";  "Stand")

    existieren Masken mit dem Namen "leer" und "Stand"?


    Ansonsten lass die leere Maske in dem Frame anzeigen und berechne beim PostOpen des Dokumentes im linken Frame die rechte Maske und ersetze diese ggf..


    Vorteil: Du kannst dir die Zwischenergebnisse in einem berechneten Text anzeigen lassen und es wird nur einmal berechnet und nicht ständig (Performance!).


    Der Code im PostOpen müsste dann so aussehen:

    Code
    Maske := ... siehe oben
    @SetTargetFrame("FrameName oben rechts");
    @Command([Compose];Maske)


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein