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 7 JahrenThu, October 26, 2017 at 10:43 AM UTC
                          • Gemeldet - anzeigen
                          Wo finde ich bei NINOX eigentlich die Versionsnummer?
                          • Holzi
                          • vor 7 JahrenThu, October 26, 2017 at 12:58 PM UTC
                          • 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 7 JahrenFri, October 27, 2017 at 11:57 AM UTC
                          • Gemeldet - anzeigen
                          Das geht leider (noch) nicht.

                          Birger - Ninox Support
                          • wruetz
                          • vor 7 JahrenSun, November 5, 2017 at 7:22 PM UTC
                          • 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 7 JahrenMon, November 6, 2017 at 3:23 PM UTC
                          • 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 7 JahrenMon, November 6, 2017 at 3:28 PM UTC
                          • 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 7 JahrenThu, November 9, 2017 at 7:25 PM UTC
                          • 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 7 JahrenThu, November 9, 2017 at 8:08 PM UTC
                          • 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 7 JahrenThu, November 9, 2017 at 8:17 PM UTC
                          • 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 7 JahrenThu, November 9, 2017 at 8:19 PM UTC
                          • 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 7 JahrenThu, November 9, 2017 at 8:26 PM UTC
                          • Gemeldet - anzeigen
                          Hallo Leo,
                          ja, so klappt's. Vielen Dank nochmal.
                          • Holzi
                          • vor 7 JahrenThu, November 9, 2017 at 8:33 PM UTC
                          • 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 7 JahrenFri, November 10, 2017 at 9:21 AM UTC
                          • 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 7 JahrenFri, November 10, 2017 at 12:26 PM UTC
                          • Gemeldet - anzeigen
                          Versuchen Sie es so:
                          –––
                          if Bedingung = true then
                          ('1. Feld := "Sehr";
                          '2. Feld := "Schön.")
                          else
                          void
                          –––


                          Birger - Ninox Support
                          • Holzi
                          • vor 7 JahrenFri, November 10, 2017 at 1:31 PM UTC
                          • 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 7 JahrenFri, November 10, 2017 at 2:01 PM UTC
                          • Gemeldet - anzeigen
                          Versuchen Sie folgendes:
                          –––
                          sum(select Auftrag [text(Verkaufsart) = "Online"].Nettogesamt)
                          –––


                          Birger - Ninox Support
                          • Holzi
                          • vor 7 JahrenFri, November 10, 2017 at 2:50 PM UTC
                          • Gemeldet - anzeigen
                          Super, vielen Dank, funktioniert.
                          Also ersetzen die eckigen Klammern die where-Klausel ?
                          • Leonid_Semik
                          • vor 7 JahrenFri, November 10, 2017 at 6:59 PM UTC
                          • 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 7 JahrenSat, November 11, 2017 at 6:48 AM UTC
                          • Gemeldet - anzeigen
                          Vielen Dank!
                          • Holzi
                          • vor 7 JahrenSat, November 11, 2017 at 6:32 PM UTC
                          • Gemeldet - anzeigen
                          Vielen Dank nochmal für die schnelle und fundierte Hilfe
                          • Ninox Premiumpartner
                          • Bastian_Vorholt
                          • vor 7 JahrenTue, November 21, 2017 at 1:49 PM UTC
                          • 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 7 JahrenTue, November 21, 2017 at 1:50 PM UTC
                          • Gemeldet - anzeigen
                          Ich meinte mit now()
                          • Birger_H
                          • vor 7 JahrenTue, November 21, 2017 at 1:56 PM UTC
                          • 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 7 JahrenWed, November 22, 2017 at 6:34 PM UTC
                          • Gemeldet - anzeigen
                          Hallo,

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

                          Tauschi
                          • Birger_H
                          • vor 7 JahrenThu, November 23, 2017 at 8:23 AM UTC
                          • 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 7 JahrenSun, June 24, 2018 at 5:57 AM UTCZuletzt aktiv
                                        • 493Antworten
                                        • 134742Ansichten