0

Code ausführen, der in einem Feld steht

In einer Projektdatenbank möchte ich die bisher angefallenen Kosten per Klick auf einen Button aus einer anderen Tabelle auslesen.

Dafür habe ich mir ein Textfeld mit dem Namen code angelegt und einen Button mit dem Namen code_ausfuehren.

Im Textfeld steht z.B.: openTable("AUSGABEN", "Renovierung") und beim 
Button steht bei Klicken dann code

Leider funktioniert das so nicht.

Was habe ich falsch gemacht?

2 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Josef, Text ist Text und Code ist Code. Ninox kann nicht wissen, dass sich in diesem Textfeld gültiger Code befindet, den es ausführen soll. Allerdings gibt es eine inoffizielle Funktion namens eval(), die genau das macht: Einen Text als Code interpretieren und diesen ausführen. Ich würde es so versuchen:

     

    eval(code, this)

     

    Die Funktion war wohl eher als eine Art Taschenrechnerfunktion für einfache Berechnungen wie "12 * 10 + 4" gedacht, müsste aber auch mit deinem openTable() funktionieren. Das sollte man aber wirklich nur mit einer Schaltfläche versuchen, nicht mit einem Funktionsfeld. Falsch eingesetzt, kann man sich mit eval() die Datenbank zerschießen. Besser wäre vielleicht, den Code entweder direkt auf die Schaltfläche zu legen oder die Namen der Tabelle und der Ansicht in Textfeldern zu speichern und mit der Schaltfläche zu öffnen:

     

    openTable(Tabelle, Ansicht)

    • Josef_Koenig
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Vielen Dank! Deine Lösung funktioniert perfekt.

    Den Code direkt in die Schaltfläche zu legen, hat den Nachteil, dass er für alle Datensätze der Tabelle gilt. 

    Auf die von mir oben beschriebene Art bin ich flexibel und kann mir von jedem Projekt rasch die Kosten ansehen.

    Vielen Dank für die rasche und perfekte Antwort!

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 2Antworten
  • 245Ansichten