0

Untersumme aus einer verbundenen Tabelle auslesen

Hallo!

Ich versuche gerade die Summe einer bezogenen Tabelle auszulesen.

Zwei Tabellen sind dabei involviert:

a) Aufträge
b) Arbeitszeiten

In den Arbeitszeiten liegt die Zeiterfassung zu den Aufträgen. Die Verbindung ist das Feld "AuftrNr".

Mein Wunsch ist es nun, die Gesamtdauer eines Auftrags aus der Tabelle "Arbeitszeiten" zu ermitteln, damit ich diesen Wert zu Berechnungen in der Tabelle "Aufträge" verwenden kann.

Mit der Formel aus der Referenz:

let myTable := "Arbeitszeiten";
eval("sum((select " + myTable + ").Dauer)", this)

habe ich zumindest mal geschafft, die Summe der Dauer *sämtlicher* Einträge herüber zu holen.

Was ich noch nicht verstehe, wie ich die Einschränkung auf den aktuellen Auftrag hinbekomme. Wie erweitere ich die Funktion "select" durch die Verbindung mit der "AuftrNr"?

Dankbar für jede Hilfe ;-)

4 Antworten

null
    • UweG
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Aufruf aus der Tabelle Aufträge:
    let vSuch := AuftrNr;
    sum((select Arbeitszeiten where AuftrNr = vSuch).Dauer)

    Wobei ich das Datenmodell nicht kenne.
    Und weshalb wird hier eval() benutzt?

      • Bernhard_Schulze.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Danke für die Formel - muss ich gleich ausprobieren.

      Wozu das eval ist, weiß ich (noch) nicht. Wie gesagt, die Formel ist aus der Ninox Referenz entnommen.

      • Bernhard_Schulze.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      UweG Hallo! Hat geklappt. Da das Feld "AuftrNr" ein Beziehungsfeld ist, in dem auch noch der Auftragstitel abgebildet wird, musste ich nur voher noch die Auftragsnummer daraus extrahieren.

      Vielen Dank nochmal und einen schönen Restsonntag!

    • UweG
    • vor 1 Jahr
    • Gemeldet - anzeigen

    eval() ist keine offiziell dokumentierte Funktion.
    Sie wird verwendet um bspw. select-Abfragen dynamisch zu gestalten, was normalerweise ohne eval() nicht funktioniert.
    Die Verwendung von eval() geschieht auf eigene Verantwortung.