Optionsfeld Auswahl mittels @DbColumn

  • Hallo zusammen,


    Ich habe eine Ansicht, welche in der ersten Spalte diejenigen Informationen enthält, welche ich gerne in einem Optionsfeld anstatt der hart gecodeten Auswahl dargestellt haben möchte.


    Ich habe im zweiten Reiter der Eigenschaften des Optionsfeldes die Option "Formel für Auswahl verwenden" angegeben und für die Auswahl die Formel "@DbColumn("";"";bestfrei.nsf;"Projects";1)" hinterlegt.


    Beim Ausführen der Anwendung bekomme ich jedoch folgende Meldung im Optionsfeld anstatt der erhofften Auswahlmöglichkeiten angezeigt: "Eine Ansicht mit diesem Namen wurde in der angegebenen Datenbank nicht gefunden".


    Die Ansicht befindet sich in der gleichen Datenbank, wie die Anwendung, die das Optionsfeld enthält. Den Parameter für die Datenbank mit einem leeren String zu belegen hat ebenfalls nicht funktioniert.


    Die Ansicht, aus welcher ich die Daten beziehen möchte, existiert ganz sicher in der Datenbank.


    Wo könnte das Problem liegen?


    Danke im vorraus.
    Viele Grüße
    Lucas

  • Oh Mann, hast Du wirklich keinen, der Dir zumindest mal die Basics beibringen kann? Das wird sehr schwierig, wenn Du so weitermachst, zumal ja auch Deine Aufgabe alles andere als Trivial ist.


    Die Verwendung von Anführungszeichen an der richtigen Stelle ist unerlässlich, und zu verstehen, WARUM man welche braucht, und wann nicht ist noch wichtiger. Wenn Dir das keiner beibringt wird es ganz schwierig.
    In Deiner Formel fehlt ausserdem der Servername. So sucht sie in einer lokalen Datenbank...


    Für die Lesbarkeit und Wartbarkeit ist es auch immer eine gute Idee die Parameter in Variablen auszulagern.


    Erst mal Deine Formel korrigiert:


    Code
    @DbColumn("";"";"EuerServername" : "bestfrei.nsf";"Projects";1)


    Und jetzt, wie ich es machen würde:


    Code
    _srv := @Subset( @DBName ; 1 );_db := @Subset( @DBName ; -1 );_viw := "Projects";_col := 1;_lkp := @DBColumn( ""; _srv : _db ; _viw; _col );@If( @IsError( _lkp ) ; "" ; _lkp )


    Wenn ich fauler bin, und der Lookup / DBColumn auf die gleiche Datenbank zeigt, dann spare ich mir die _srv und _db Zeile und schreibe den Lookup so:


    Code
    _lkp := @DBColumn( ""; @DBName ; _viw; _col );


    Du bist ja angetreten, um eine "schlechte" Application besser zu machen und nach "Best Practices" aufzubauen... Wie willst Du das aber machen, wenn Dir niemand die Best Practices beibringt?

  • Sorry, bei der DB hatte ich die Anführungszeichen lediglcih vergessen.


    Der Fehler war ganz Simpel:


    @DbColumn("";""; "bestfrei.nsf";"Projects";1)


    Das zweite Semikolon muss ein Doppelpunkt sein.


    -> @DbColumn("";"":"bestfrei.nsf";"Projects";1)


    Jetzt funktioniert es.