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
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Wo finde ich bei NINOX eigentlich die Versionsnummer?
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Danke für den Hinweis !!
    Der einzige "englische" Bereich scheint die Sprachreferenz zu sein, wäre schön, wenn Sie die auch noch übersetzen/anpassen könnten.
    • Birger_H
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Das geht leider (noch) nicht.

    Birger - Ninox Support
    • wruetz
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Besteht die Möglichkeit, ein Datenfeld zweier aufeinander folgender Datensätzen der gleichen Tabelle miteinander zu vergleichen und wenn diese Datenfelder übereinstimmen (in diesem Fall Strasse einer Adresse), eine gemeinsame Adresse zu generieren?

    Grüße, Winfried
    • Birger_H
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Gehen Sie zum Applications-Ordner und rufen Sie für den Eintrag "Ninox" die Informationen auf. Hier finden Sie die Versionsnummer (Aktuell 2.2).

    Birger - Ninox Support
    • Birger_H
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Angenommen es gibt in einer Tabelle "Leute" ein Feld "Strasse". So vergleichen Sie den Eintrag in diesem Feld mit dem vorhergehenden:

    –––
    let myID := number(_id);
    let myStreet := 'Strasse';
    let myLastStreet := last(select 'Leute' where number(_id) < myID).'Strasse';
    if myStreet = myLastStreet
    then true
    else false
    –––


    Birger - Ninox Support
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Ich lege mit einer Schaltfläche und
    let p := (create Tabellennahme);
    p.(Einnahme := 0);
    p.(Datum := Datum)
    einen neuen Datensatz an. Klappt auch. Nur wird er im rechten Tabellenfenster nicht angezeigt = der letzte Record wird nicht angezeigt / nicht aktualisiert.
    Wie kann ich die Anzeige per script aktualisieren (zeige den letzten DAtensatz).
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo Holzi,
    du schreibst: "Nur wird er im rechten Tabellenfenster nicht angezeigt"
    Das würde bedeuten, dass die Tabelle "Tabellenname" eine Untertabelle ist zu der Tabelle, wo sich die Schaltfläche befindet. In diesem Fall fehlt dir noch die Zuweisung zu der Obertabelle. Etwa so:

    let myNR:=Nr;
    let p := (create Tabellennahme);
    p.(Einnahme := 0);
    p.(Datum := Datum);
    p.(Obertabelle):=myNR

    Du musst natürlich sehen wie du Deine Obertabelle in der Untertabelle benannt hast.

    Grüße
    Leo
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Habe jetzt nochmals überlegt. Vielleicht ist es noch einfacher und du möchtest einfach, des der neue Datensatz angezeigt wir. Dann

    let p := (create Tabellennahme);
    p.(Einnahme := 0);
    p.(Datum := Datum);
    let NN:=number(p.Nr);
    popupRecord(record(Tabellennahme,NN)

    In disem Fall wird der neue Record auf den existierenden Record obendrauf gelegt. Wenn du den neuen Record statt bestehenden haben möchtest dann ist die Formel:

    let p := (create Tabellennahme);
    p.(Einnahme := 0);
    p.(Datum := Datum);
    let NN:=number(p.Nr);
    openRecord(record(Tabellennahme,NN)

    Grüße Leo
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo Leo,
    vielen Dank für die superschnelle Antwort zu später Stunde.
    Nein, es handelt sich um eine Tabelle. Links im Fenster die Tabelle, rechts im Fenster der jeweilige (aktuelle) Datensatz. Im rechten Fenster habe ich die Schaltfläche für den neuen Datensatz. Nach betätigen wird im linken Fenster am Ende der Tabelle der neue Datensatz angezeigt, aber im rechten Fenster "springt" der Datensatz nicht weiter.
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo Leo,
    ja, so klappt's. Vielen Dank nochmal.
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Mein Problem und das vieler anderer (wenn man die FAQ's liest):
    Es gibt keine Zusammenfassung für die Syntax; woher soll ich wissen, das (Dein Tip): es heißen muss:
    openRecord(record(Tabellennahme,NN)
    Bei Access, SQL usw. kann ich mich "schlau machen", bei NINOX finde ich eine solche "Anleitung" nicht. Das ist kein Vorwurf!!; mir (und offensichtlich auch anderen) fehlt das aber. Woran lehnt sich NINOX an, wo kann ich mich informieren?
    • rweinhold
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo,

    wie kann ich nach einer if - then Bedingung
    mehrere Anweisungen geben.
    Ich möchte zwei verschiedene Felder ändern.

    Vielen Dank
    • Birger_H
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Versuchen Sie es so:
    –––
    if Bedingung = true then
    ('1. Feld := "Sehr";
    '2. Feld := "Schön.")
    else
    void
    –––


    Birger - Ninox Support
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo,
    ich verzweifle mal wieder, weil ich die Grundstuktur der Skriptformulierungen nicht verstehe.
    In einer Tabelle Auftrag gibt es die Spalten Verkaufsart und Nettogesamt.
    Nun möchte ich über ein Funktionsfeld in einer anderen Tabelle wissen, wie die Summe aller Verkäufe (Spalte Nettogesamt) mit der Verkaufsart "Online" in der (Spalte Verkaufsart ) ist.
    Mein Versuch
    number(sum((select Auftrag where Verkaufsart = "Online").Nettogesamt))
    gibt keinen Fehler, aber auch kein Ergebnis.
    Kann mir jemand helfen?
    • Birger_H
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Versuchen Sie folgendes:
    –––
    sum(select Auftrag [text(Verkaufsart) = "Online"].Nettogesamt)
    –––


    Birger - Ninox Support
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Super, vielen Dank, funktioniert.
    Also ersetzen die eckigen Klammern die where-Klausel ?
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Das ja, aber das Wichtige hier ist es, dass bei der Prüfung des Auswahlfeldes entweder die IDs geprüft werden

    sum(select Auftrag [Verkaufsart= 1].Nettogesamt) ,

    oder die Texte

    (sum(select Auftrag [text(Verkaufsart) = "Online"].Nettogesamt))

    Grüße
    Leo
    • rweinhold
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Vielen Dank!
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Vielen Dank nochmal für die schnelle und fundierte Hilfe
    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo zusammen, ich möchte ein Statusfeld machen welches ausgibt wann die Rechnung erstellt wurde. Also ich habe einen Button Rechnung Drucken wenn der geklickt wird soll in dem Statusfeld ausgegeben werden wann die Rechnung gedruckt wurde. Wenn ich das mit mint now() mache verändert er hinterher immer wieder die Zeit und das Datum.
    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Ich meinte mit now()
    • Birger_H
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Prüfen Sie, ob das Statusfeld leer ist, bevor Sie einen Wert schreiben: Versuchen Sie es also so:
    –––
    if Statusfeld then Statusfeld := now() else void
    –––


    Birger - Ninox Support
    • bernd
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo,

    wie kann ich den Inhalt eines Mehrfachauswahlfekdes auswerten? Hat jemand einen Tipp für mich - danke.

    Tauschi
    • Birger_H
    • vor 6 Jahren
    • Gemeldet - anzeigen
    So können Sie prüfen, ob eine Option gewählt wurde:

    –––
    if index( concat( 'MehrfachAuswahl-Feld'), "eine Option") >= 0 then
    true
    else
    false
    –––


    Birger - Ninox Support

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 493Antworten
  • 134605Ansichten