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
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
-
Wo finde ich bei NINOX eigentlich die Versionsnummer?
-
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. -
Das geht leider (noch) nicht.
Birger - Ninox Support -
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 -
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 -
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 -
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). -
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 -
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 -
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. -
Hallo Leo,
ja, so klappt's. Vielen Dank nochmal. -
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? -
Hallo,
wie kann ich nach einer if - then Bedingung
mehrere Anweisungen geben.
Ich möchte zwei verschiedene Felder ändern.
Vielen Dank -
Versuchen Sie es so:
–––
if Bedingung = true then
('1. Feld := "Sehr";
'2. Feld := "Schön.")
else
void
–––
Birger - Ninox Support -
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? -
Versuchen Sie folgendes:
–––
sum(select Auftrag [text(Verkaufsart) = "Online"].Nettogesamt)
–––
Birger - Ninox Support -
Super, vielen Dank, funktioniert.
Also ersetzen die eckigen Klammern die where-Klausel ? -
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 -
Vielen Dank!
-
Vielen Dank nochmal für die schnelle und fundierte Hilfe
-
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.
-
Ich meinte mit now()
-
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 -
Hallo,
wie kann ich den Inhalt eines Mehrfachauswahlfekdes auswerten? Hat jemand einen Tipp für mich - danke.
Tauschi -
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 6 JahrenZuletzt aktiv
- 493Antworten
- 134671Ansichten