0

Funktions- und Sprachreferenz

Hallo, ich habe zwei Frage:

1) Ich würde gerne zu einer bestehenden Uhrzeit eine gewisse Anzahl Stunden und Minuten addieren. Leider schaffe ich das nur indem ich zwei Datenfelder von Typ Uhrzeit addiere, aber ich hätte erwartet, dass man auch z.B. Begin := Begin + "07:00" oder wie auch immer angeben kann. Ich habe schon alle möglichen Varianten probiert, komme aber nicht auf eine Lösung. Ist es überhaupt möglich Zeiten auf diese Weise zu addieren?

2) es gibt bei Rechnen die Funktion Prozent %, allerdings finde ich dazu keine Beschreibung und bekomme auch keine sinnvollen Werte raus. Wo finde ich dazu eine Erklärung/Beispiel?

Noch zwei Anregungen:
- generell fände ich es gut, wenn einzelnen Funktionen durchgehend mit ein oder zwei aussagekräftigen Beispielen beschrieben wären, das würde viel Zeit ersparen.

- will man eine Funktion als Text eingeben, werden im Editor zwar Zeilennummern angezeigt, aber leider keine Spaltennummern. Die Fehlerhinweise erscheinen aber mit Spaltennummer! Dann beginnt das fleissige Zählen....

Besten Dank Klaus

493 Antworten

null
    • Birger_H
    • vor 6 Jahren
    • Gemeldet - anzeigen
    then... und else... müssen stets den gleichen Datentyp zurückgeben. Wenn "Nummer" eine Zahl ist, muss auch der else...-Wert eine Nummer zurück geben. Also
    –––
    else
    0
    –––


    Birger - Ninox Support
    • JHV
    • vor 6 Jahren
    • Gemeldet - anzeigen
    oh wie einfach - das war's.
    Vielen Dank Birger.
    • Dominik_Eng
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Anstelle von „void“ ist auch manchmal „null“ möglich
    • Thomas_Biedermann
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Guten Morgen
    Ich versuche einen Eintrag einer Tabelle nach einer gewissen Zeit zu löschen nachdem eine Aktion gesetzt wurde, also in etwa so dass wenn der Status auf erledigt gestellt wurde , der Eintrag nach 24 stunden gelöscht wird. hab ehrlich gesagt nicht so ganz eine Lösung dafür. Hat jemand eine Idee?
    LG
    Tom
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo Tom,
    von alleine macht die Datenbank diese Arbeit nicht. Sie arbeitet nicht permanent - nur wenn du in der Datenbank drin bist. Du kannst eine Befehlsschaltfläche einbauen und die Datensätze per Klick bereinigen. Dazu würde ich ein Datumsfeld "Erledigt am" anlegen. Dann ein Trigger beim "Status" nach Änderungen:

    if Status=3 then ('Erledigt am':=today())

    Hier ist 3 - ID vom Eintrag "Erledigt". Musst du gucken.
    Dann kannst du bei der Befehlsschaltfläche folgende Funktion schreiben:

    delete select Tabelle where Status = 3 and 'Erledigt am' < today() and 'Erledigt am' != null

    Grüße
    Leo
    • Mirko.1
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo Leo,

    hab es jetzt so wie in Deinem Datenbankbeispiel gelöst, das klappt so wie gewünscht!

    Grüße
    Mirko
    • Mirko.1
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo Leo,

    Doch noch eine Frage zu dem Lösungsweg von Dir.
    Die Tabelle TAG ist ja bei mir dann die Tabelle mit den Straßen, ist ja denn jetzt eine Untertabelle. Kann man die Haupttabelle, die ja nur als Hilfe dient irgendwie ausblenden, ohne dass ich die Untertabelle mit ausblende?
    Auf die Untertabelle muss ich recht häufig zugreifen, hab dann ja da immer mal wieder einen Klick mehr.

    Grüße
    Mirko
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo Mirko,
    Wenn die Tabellen als Komposition verknüpft sind, führt das Ausblenden der Haupttabelle automatisch zum Ausblenden der Untertabelle. Du kannst versuchen die Komposition zu lösen (mit der Folge, dass du ein Plus Zeichen zusätzlich bekommst), oder du kanst eine Schaltfläche einbauen mit der Formel
    OpenTable( “Tab_Strassen“, “Alle“)

    So kannst du jederzeit deine Tabelle aufrufen

    Grüße
    Leo
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Ich weiß, 2x posten ist nicht die feine Art....
    Aber ich versuche es doch noch mal hier, weil's keine Reaktion gab:
    Wenn meine Frage zu "blöd" ist, einfach schreiben....

    Ich habe eine Tabelle Einnahme_Ausgabe mit den Feldern Datum, Ausgabeart, Einnahme und Ausgabe. Also sehr schlicht. Nun möchte ich mir in einem Formular (!)
    Die Einnahmen und Ausgaben summiert nach Monaten anzeigen lassen.
    Leider fehlt mir die “zündende” Idee….
    Für Tips wäre ich sehr dankbar.
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Noch etwas konkreter:
    Mir fehlt (mal wieder) die Syntax für eine Abfrage, in diesem Fall:
    Summiere aus der Tabelle 'Einnahme_Ausgabe' das Feld 'Einnahme' für die Bedingung 'Monat = Januar' (als Beispiel).
    Wäre sehr freundlich, wenn sich jemand "erbarmen" könnte.
    Danke
    • Dominik_Eng
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hast du es schon mit...
    z.B. sum(Einnahmen[month(Datum) = 2])
    schon versucht?
    • Dominik_Eng
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Für Januar müsste dann aber, anstelle der 2 eine 1 stehen.
    Oder du kannst auch ein Auswahlfeld machen mit den Monaten Jan.-Dez.

    Sum(Einnahmen[month(Datum)=number(Auswahl)])
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo Nik, vielen Dank für den Tip. Könnte funktionieren, aber ich muss aus einem Formular einer Tabelle auf eine andere (Einnahmen_Ausgaben) Tabelle zugreifen. Dafür brauche ich dann wahrscheinlich noch ein paar Klammern usw.
    Also Dein:
    sum(Einnahmen[month(Datum) = 2])
    müsste noch den Aufruf der Tabelle Einnahmen_Ausgaben und DORT das Feld Einnahmen enthalten. Vielleicht kannst Du mir da ja auch noch weiterhelfen?
    • Dominik_Eng
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Also dann sum('Einnahmen_Ausgaben'[month(Datum)=1].Einnahmen)
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo Nik,
    es gab bei der Formel Fehlermeldungen. Durch Zufall bin ich darauf gekommen, dass ich noch number davorsetzen muss. Jetzt gehts.
    Also so:
    number(sum((select Einnahmen_Ausgaben)[(month(Datum) = 3)].Einnahmen))
    Warum, wieso, weshalb, keine Ahnung. Ninox ist wirklich Super, aber die Dokumentation / Syntaxbeschreibung für mich ein Buch mit sieben Siegeln. Scheinbar ist das auch irgendwie ein "Geheimnis".
    Nochmal vielen Dank
    • Dominik_Eng
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Ok umso besser. Ist halt auch eine Frage wie das Feld „Einnahme“ deklariert ist.
    Hat auch etwas tolles, man findet immer wieder mal etwas heraus, ständig wie Weihnachten ;-))
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Wie gut, dass uns der Humor geblieben ist ... :)
    • Thomas_Biedermann
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Danke, so gehts!
    Vg
    Tom
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Ich habe zwei Fragen:
    1. Auf der "englischen" Ninox-Seite „https://ninoxdb.de/en/whatsnew“ wird einen neue Version 2.3.0 beschrieben. Wann ist diese Version (auf Deutsch) verfügbar?
    2. Ich habe eine Tabelle Rechnung mit der verknüpften Tabelle Positionen, Kunden pp.
    Unabhängig davon eine Tabelle Umsätze.
    Ich möchte in der Tabelle Rechnung nach Erfassung eines Auftrags per Button dafür sorgen, dass in der Tabelle Umsatz ein neuer Datensatz angelegt und bestimmte Feldinhalte aus Rechnung darin abgelegt werden.
    Das ist wahrscheinlich wieder ganz einfach, nur: Ich komme nicht drauf.
    • Frank_Bohmer
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo Holzi,
    1) 2.3.0 ist soeben im App Store veröffentlicht worden.
    2) Einen neuen Datensatz erstellt man so:

    let auftrag := this;
    let umsatz := create Umsatz;
    umsatz.Datum := today();
    umsatz.Betrag := auftrag.Betrag;

    Viele Grüße,
    Frank
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo Frank,
    vielen Dank für die Blitzantwort.

    Den Datensatzhinweis probiere ich gleich aus.

    Eines verstehe ich nicht:
    NINOX ist wirklich eine Superanwendung, der Support hier blitzschnell, aber warum gibt es kein "vernünftiges" Forum, wie es eigentlich selbstverständlich sein sollte. Hier sucht "man" sich dumm und dämlich. Das ist auch von anderen usern schon kritisiert worden. Dazu kommt die fehlende Sytaxbeschreibung (wann wie welche Abfrage, wann wie welche Klammern usw. usw.). Das scheint irgendwie ein "Geheimnis" zu sein?

    "Wir" user würden uns sehr freuen, wenn "Ihr" das ändern würdet.

    Und noch was: Warum wird ein Update den Usern nicht kommunisiert, die wesentlichen Änderungen mitgeteilt?

    Wie gesagt tolle Software, ich bin sehr zufrieden, wenn .... Siehe oben
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    "kommuniziert" sollte es heißen
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Funktioniert prächtig.
    Wie kann ich jetzt noch den mit auftrag verknüpften Kunden übernehmen? auftrag.kunde geht nicht, da der Kunde in einer verknüpften Tabelle (kunde) steht. Ich bräuchte also die Formulierung für
    Verknüpfte Tabelle "Kunde", Feld "Name" aus Auftrag heraus.

    Dann hätte ich's.
    Vielen Dank
    • Birger_H
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Ergänzen Sie bitte so:
    –––
    let auftrag := this;
    let umsatz := create Umsatz;
    umsatz.Datum := today();
    umsatz.Betrag := auftrag.Betrag;
    umsatz.Name := auftrag.Kunde.Name
    –––
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Guen Tag, wieder mal genial einfach, wenn man die Regeln kennt - und die sind nicht bekannt (mir jedenfalls nicht). Alles weitere hatte ich (oben) schon geschrieben.

    Nochmals ganz herzlichen Dank

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 493Antworten
  • 134608Ansichten