0

Bedeutung von [number]

Hallo,

mit

let KursDeputatFD := (select 'Kurse FD' where 'Dozent FD'.Vorname = VornameP and 'Dozent FD'.Name = NachnameP and Kursjahrgang.Jahrgang = SJ).'Deputat FD';

erhalte ich für KursDeputatFD eine Zahl, die aber nicht im eingestellten Zahlenformat des Berechnungsfeldes (1 Dezimale) ausgegeben wird.

Erst number(KursDeputatFD) bringt die gewünschte Darstellung.

Auch format(KursDeputatFD,"0.0") ist nicht möglich, da ich eine Meldung erhalte, dass format([number],string) nicht möglich sei.

Was bedeuten die eckigen Klammern um number?

Maurice

2 Antworten

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

    Hallo Maurice, die eckigen Klammern stehen für ein Array, also quasi eine Liste von mehreren Werten. Jedes "select" erzeugt ein solches Array, weil das Ergebnis der Filterung ja aus mehreren Rückgabewerten bestehen kann.

     

    Das heißt, die Variable 'KursDeputatFD' enthält ein Array aus verschiedenen numerischen Werten. Die Funktion format() erwartet aber einen einzelnen numerischen Wert. Deshalb die Fehlermeldung.

     

    Was in diesem Fall zu tun wäre hängt davon ab, was 'Deputat FD' für ein Feld ist und was genau damit passieren soll. Wenn bspw. eine Summe der Werte gebildet werden soll, dann kann man auf das "select" die Funktion sum() anwenden:

     

    let KursDeputatFD := sum((select 'Kurse FD' where 'Dozent FD'.Vorname = VornameP and 'Dozent FD'.Name = NachnameP and Kursjahrgang.Jahrgang = SJ).'Deputat FD');

     

    Wenn die Filterung beim "select" nur einen Datensatz zurückgeben soll, kann man das bspw. mit first() oder last() angeben:

     

    let KursDeputatFD := first((select 'Kurse FD' where 'Dozent FD'.Vorname = VornameP and 'Dozent FD'.Name = NachnameP and Kursjahrgang.Jahrgang = SJ).'Deputat FD');

    • Maurice
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo planox.pro,

    vielen Dank für die  ausführliche Erläuterungen.

    Zwar gibt es immer nur einen Kurs von einem Dozenten (mit Vorname und Name), weshalb number() auch zum Ziel führt, aber den Sum-Befehl "draufpacken", ist das richtige Vorgehen.