0

Text- und Datumsfunktionen

Hallo,
ich habe lange gesucht um eine einfach zu konfigurierende Datenbank zu finden. Super Arbeit.
Ich bräuchte jedoch noch eine Wochenauswertung (Gruppierung) Jahr/Woche(Datum) wäre das möglich noch zu ergänzen?
Besten Dank
MfG
Jens

254 Antworten

null
    • Alexander_Koenig
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo, haben Sie einen Trigger auf Tabellenebene angelegt? Das geht im Tabelleneditor. Öffnen Sie die Tabelle. Klicken Sie auf "Felder bearbeiten". Im Tabelleneditor können sie auf der linken Seite "Nach Änderung folgendes Script ausführen" wählen. Der Trigger wird ausgelöst wenn ein beliebiges Feld der Tabelle geändert wird.
    VG, Alex
    • Hans_Wurst
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo,

    gibt es eine Funktion um zu prüfen, ob ein (Text) Feld einen Inhalt hat? Ich habe mit:

    if text = "" then "leer" else "irgendwas"

    nicht wirklich Erfolg gehabt, lediglich der holprige Umweg per:

    if text + "x" = "x" then "leer" else "irgendwas"

    funktioniert aber das ist weniger schön. isEmpty(text) oder length(text) oder ähnliches wäre schön, ich konnte aber nichts dergleichen finden.

    Vielen Dank im Voraus!
    • Hans_Wurst
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Danke, hat sich erledigt, if text = null then ... hat geholfen!
    • topaz_apple
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo zusammen,

    ich bin neu bei Ninox, kenne aber andere Systeme ganz gut; SQL, FileMaker etc. Wahrscheinlich sehe ich etwas Offensichtliches nicht... Ich suche eine Funktion, die mir die Länge eines Strings liefert und finde die nicht. Ich will in Feldern mit "Name, Vorname" den Namen und den Vornamen extrahieren, die Position bis zum Komma zu finden und den Namen zu extrahieren ist einfach, aber vom Komma bis zum Ende ginge es mit der Längenfunktion einfacher. Kann da jemand helfen?
    Viele Grüße

    m.g.
    • Alexander_Koenig
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo,
    die Länge eines Strings kann soweit ich weiß nicht ausgelesen werden.
    Wenn man für lenght in substr. einen Wert wählt, der auf jeden Fall länger als der längste Name ist wird nur der Name übernommen.
    substr(Text, index(Text, ",") + 2, 50)
    VG, Alex
    • topaz_apple
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Danke für die Antwort, genau so habe ich es auch gemacht. Finde das aber ein gewisses Manko, da man ja manchmal durchaus die Länge eines Strings berechnen möchte (oder muß!), insbesondere, wenn man vorher whitespaces "weggetrimmt" hat, wäre es ja schon ein ziemlicher Umstand die Länge über irgendwelche Umwege zu erzeugen (i.e. selbst zu programmieren). Aber vielleicht kommt das ja noch in einer nächsten Version :-)

    Viele Grüße

    m.g.
    • Leonid_Semik
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Guten Tag,

    Wie kann ich aus einem Text die Zahlen extrahieren? Für einzelne Bespiele z.B. "120 min" => 120 kann ich die Formel number(substr(Text, 0, index(Text, "min"))) benutzen.
    Ich habe aber 12000 Datensätze, wo ich min, s, h und auch andere Maßeinheiten an der zweiten Stelle habe. Dazu kommt es, dass bei vielen Datensätzen die Leerzeichen zwischen Zahl und Text fehlen. Ziel ist es, die Zahlen und die dazugehörigen Texte in separaten Spalten zu platzieren.

    Gruß Leo
    • Frank_Bohmer
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Einen Königsweg gibt es dafür leider nicht. Reguläre Audrücke - mit denen so etwas möglich wäre - stehen auf dem Plan.

    Viele Grüße, Frank
    • schocki
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Das Problem mit den Leerzeichen lässt sich mit replace(string, search, replace) also in diesem Fall replace('Feld mit Text', " ","") lösen
    • Leonid_Semik
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Schocki,

    Danke, replace hatte ich bei Ninox noch nicht gesehen. Hilft mir zwar nicht weiter - ich brauche eher eine umgekehrte Funktion welche mir ein Leerzeichen zwischen Zahl und Buchstabe setzt, trotzdem eine nette Funktion.

    Frank, gibt es außer replace noch Funktionen, welche nicht im Sprachreferenz aufgelistet sind?

    Gruß Leo
    • info.7
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo zusammen!

    Ich habe eine Datenbank für Mitglieder erstellt. Diese können natürlich kündigen. Solange diese nicht gekündigt haben, gibt es ein Optionsfeld Aktiv. Wenn sie kündigen mit Vertragsende Datum, trage ich das ins entsprechende Feld ein. Wenn dieses Datum erreicht wird, sollte aus Aktiv, Inaktiv werden, damit der Datensatz nicht mehr in der Tabelle angezeigt wird. Wie kann ich das realisieren? Vielen Dank vorab!

    Grüße
    Selcuk
    • Leonid_Semik
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Selcuk,

    Ich würde statt Optionsfeld ein Berechnungsfeld "Mitgliedschaft" und ein Datumsfeld "Vertragsende" einsetzen. Wenn das Mitglied aktiv ist, bleibt das Feld "Vertragsende" leer. Bei Kündigung trägst du das Datum ein.
    Das Feld "Mitgliedschaft" hat dann die Formel:
    if Vertragsende-today()>=0 then "inaktiv" else "aktiv"

    Gruß
    Leo
    • info.7
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Leo! Vielen Dank für deine Antwort. Das macht auf jeden Fall Sinn! Wobei ich im Editor eine Fehlermeldung bekomme. Error in Spalte 31 (Unerwartetes Symbol) Bin leider totaler Neuling...

    Grüße, Selcuk
    • Leonid_Semik
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Selcuk,

    Versuch mal damit:

    if Vertragsende > today() or Vertragsende = null then
    "aktiv"
    else
    "inaktiv"

    Hier die Beispielsdatenbank

    https://www.dropbox.com/s/b7enjmpbc0014a1/Mitglieder.ninox?dl=0

    Gruß
    Leo
    • info.7
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Vielen vielen Dank Leo!

    Hast mir super geholfen!

    Grüße

    Selcuk
    • hskantatenchor
    • vor 8 Jahren
    • Gemeldet - anzeigen
    hallo zusammen,
    also, wie man das alter einer person aus dem Geburtstag heraus berechnen lässt, ist mir leider schleierhaft. außerdem hätte ich gerne eine Meldung von runden Geburtstagen - wie geht das?
    dank und Gruß,
    helmut
    • Alexander_Koenig
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Helmut,

    das Alter kann man mit der Funktion "Alter()" auslesen. Die Funktion findet man im Formel Editor unter Text/Datum. Den "Alter" Block auf die Fläche ziehen und dann das Datum.

    Zur Ermittlung von runden Geburtstagen gibt es eine Vorlage: http://manual.ninoxdb.de/de/category/vorlagen/
    Eine Meldung kann leider nicht erstellt werden. In eine Ansicht werden aber alle aktuellen runden Geburtstage angezeigt.

    Bei Fragen auch gerne an support@ninoxdb.de schreiben.

    VG, Alex
    • hskantatenchor
    • vor 8 Jahren
    • Gemeldet - anzeigen
    tut mir leid, Alex, aber weder das ziehen von Datum, Heute oder Jetzt führt zu einem Erfolg - entweder ist die Funktion "nicht definiert" oder "ein Parameter fehlt".
    Danke, und vielleicht weißt du weiter?
    Helmut
    • Alexander_Koenig
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Helmut,
    zuerst die Funktion "Alter()" auf die Fläche ziehen. Die FUntkion ist unter "Text / Datum" zu finden.
    Dann das Feld Datum aus "Felder" hinein ziehen. Also das Geburtsdatum.
    Bei Fragen gerne auch support@ninoxdb.de schreiben. Wir schicken dann einen Screenshot.
    VG, Alex
    • hskantatenchor
    • vor 8 Jahren
    • Gemeldet - anzeigen
    sorry, aber das Feld "Geb.Datum", in dem die Geburtstage in TT.MM.JJJJ Form stehen, lässt sich gar nicht auf die Fläche ziehen. was nun?
    VG, Helmut
    • Alexander_Koenig
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo Helmut,
    man kann "Berechnungs" Felder im Tabellen Editor anlegen.
    - Wenn es in der Tabelle ist können mit Klick darauf die Feld Einstellungen geöffnet werden.
    - Dort kann man auf Funktion klicken um den Formel Editor zu öffnen. - Im Formel Editor kann unter der Rubrik "Text / Datum" die Funktion "Alter" auf die Fläche gezogen werden. Dann wieder zurück in Felder kann das Feld mit dem Geb. Datum hinzugefügt werden.
    Hilft das weiter? Sonst gerne auch an support@ninoxdb.de schreiben.
    VG, Alex
    • hskantatenchor
    • vor 8 Jahren
    • Gemeldet - anzeigen
    nein, leider nicht, denn eben so habe ich es mehrfach versucht. ich kann in Felder das Feld Geb.Datum zwar mit der maus nehmen, aber nach dem ziehen auf die fläche heftet es sich nicht an die gelben aktiven Bereiche an, sondern verschwindet im Nirwana.
    muss das Feld geb.datum eine bestimmt Formatierung haben? muss das vielleicht auf drei spalten verteil werden mit tag, Monat, Jahr?
    danke, helmut
    • Alexander_Koenig
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo, bitte mal anders herum versuchen. D.h. die Fläche im Formel Editor ganz leer machen. Dann das Datum herauf ziehen und dan die Funktion "Alter()". Wenn das Problem weiter besteht bitte einen Screenshot schicken.
    VG
    • hskantatenchor
    • vor 8 Jahren
    • Gemeldet - anzeigen
    danke, lieber Alex,
    deine letzte Anweisung hat sofort funktioniert!
    Leider gab es keinen Antwortenlink unter deinem Rat, deshalb antworte ich dir hier auf die letzte Frage.

    Herzliche Grüße

    Helmut
    • Lila_Sechser
    • vor 8 Jahren
    • Gemeldet - anzeigen
    Hallo,

    habe bisher mit Filemaker gearbeitet. Aber für privaten Gebrauch zu teuer und zu komplex. Bei Ninox gefällt mir die Verbindung iMac mit iPad und die Nutzung der iCloud.
    An die Zwangsgestaltung der Oberfläche habe ich mich auch gewöhnt und kann damit arbeiten.
    Was ich vermisse ist die Textverkettung. Ich würde gerne aus verschiedenen Feldern einen eindeutigen Schlüssel bilden. Aber ich finde keine Textfunktion hierzu oder habe ich etwas übersehen.