DbLookup

  • Also ich hab folgendes Problem:
    Wenn ein neues Dokument aufgemacht wird, lass ich mit @Name([CN]; @Author) den Namen des Autors anzeigen. Nun soll auch gleich die Personalnummer mit angezeigt werden, welche in einer versteckten Ansicht hinterlegt ist. Dazu benutze ich: @DbLookup(""; "":""; "Mitarbeiter"; name; "persnr"); Nun scheint er diese Funktion eher auszuführen als die Namensanzeige, denn ich bekomme immer die Fehlermeldung, dass weil kein Name gefunden wurde, auch keine Personalnummer angezeigt werden kann.
    Mmh, hab ich das irgendwie verständlich erklärt? Was muss ich machen, damit das funzt? Komischerweise funktioniert es nämlich mit meinem Namen aber nicht an einem andere Client.
    Helft mir!!!
    Gruß Steffi

  • Hi,


    verwende doch in Deiner @Dblookup Formel die Formel @Author und nicht das Feld name als Suchkriterium.


    @DbLookup(""; "":""; "Mitarbeiter"; @Author; "persnr");


    Bei der Berechnung der Berechneten Felder ist auch die Reihenfolge der Felder in der Maske ausschlaggebend.


    cu


    Jörg

  • Das stimmt allerdings.
    Wobei mich interessiert wie man die Reihenfolge erkennen kann um schon im Vorfeld entsprechend reagieren zu können und eventuelle Fehler abfangen zu können.

  • Die reihenfolge von felder in notes geht grundsätzlich von links nach rechts, und von oben nach unten.
    Du kannst aber bei ein berechnetes feld den option "am ende berechnen" anschalten, und damit erzwingen das andere felder (ohne diesen option) zuerst im kompletten dokument berechnet werden, und in einen "zweite durchgang" diese felder "dran kommen".


    Beim @dblookup würde ich aber immer diesen wert in einen zwischen variabele stellen, und diesen mit @iserror kontrollieren, in N6 gibt es dafür @iferror... und natürlich entsprechend auf den error reagieren.


    Dazu noch eins, der dblookup wird in der gleiche datenbank durchgeführt, dort stehen die gesuchte informationen bereits drin ???

  • Danke Jörg, das werd ich gleichmal ausprobieren! Meine Reihenfolge der Felder geht von oben nach unten. Wobei das Name-Feld VOR der Personalnummer kommt. Deswegen versteh ich nicht warum er den Befehl im Personr.feld zuerst ausführt. Müssen die Felder denn zwingend denselben Typ haben?


    LG Steffi

  • Ronka:
    "Du kannst aber bei ein berechnetes feld den option "am ende berechnen" anschalten, und damit erzwingen das andere felder (ohne diesen option) zuerst im kompletten dokument berechnet werden, und in einen "zweite durchgang" diese felder "dran kommen"."


    - Wo soll dieses Feld denn sein? Das Blöde ist ja auch, dass die Felder wenn möglich auch bearbeitbar sein sollen. :(


    "Dazu noch eins, der dblookup wird in der gleiche datenbank durchgeführt, dort stehen die gesuchte informationen bereits drin???"


    - Ja wird er und die Infos sind auch schon drinne. Stört ihn vielleicht das Leerzeichen zwischen Vor- und Nachname?

  • >@DbLookup(""; "":""; "Mitarbeiter"; name; "persnr");
    Den name muß genau so im ansicht zurück zu finden sein, und wenn persnr eine spalten inhalt entspricht solltest du dort den spalten nummer angeben, dieses ist wesentlich schneller weil für das auflösen des feldnamens wird das dokument geladen, während einen spalteninhalt aus den index kommt (und dann also das dokument NICHT geholt werden muß).


    Dann zum feld, das berechnen am ende ist einen eigenschaft von feld, also in dessen eigenschaften auch setzbar.