0

Funktionsfeld als Button anzeigen lassen (Toggle Button erstellen)

Ich bin bei der Arbeitszeiterfassung und bräuchte einen Button, der folgende Funktionen enthält:

vor dem Klick: Name Button: Starte Arbeitszeit

Name nach dem Klick: Pause starten

Name nach dem Klick: Starte Arbeitszeit ... usw...

Dahinter soll dann die Arbeitszeit in 2 Untertabellen (Arbeitszeit und Pausenzeit) zusammengezählt werden und am Ende des Tages bzw. wenn der Arbeiter auf "Arbeitszeit beenden klickt, soll die Arbeitszeit für den Tag bzw. den Kunden zurückgegeben werden.

Folgendes Klappt nicht, da der Punkt nicht stimmt bzw. mir das nicht angezeigt wird. Kann mir bitte jemand helfen? Arbeite gerade 2 Tage mit Ninox und schon am verzweifeln, was noch auf mich zukommt :D

 ⚠️ Jetzt erscheint automatisch: ✅ „Als Button anzeigen“

Chat GPT hat mir vorgeschlagen: 

✅ Richtiger Weg, um den Button korrekt zu erstellen:

  1. Gehe in die Tabelle Zeiterfassung

  2. Oben: Klick auf „Felder“ bearbeiten (nicht „Seite“!)

  3. Klicke auf „+ Feld hinzufügen“ → Typ: Formel

  4. Gib ein:

    • Feldname: z. B. Button Start / Weitermachen

    • Formel:

      if cnt(select 'Pausenblöcke' where Zeiterfassung = this and PauseEnde = null) > 0 then
        "Weitermachen"
      else
        "Start"
      end

       

      • Stil: Text

      • ⚠️ Jetzt erscheint automatisch: ✅ „Als Button anzeigen“

    • Aktiviere: ✅ „Als Button anzeigen“

    • Klicke auf „Erweitert“ → „Beim Klicken“ → dort dein Klickcode:

    • let p := first(select 'Pausenblöcke' where Zeiterfassung = this and PauseEnde = null);
      if p != null then
        p.PauseEnde := now()
      end;
      let a := first(select 'Arbeitsblöcke' where Zeiterfassung = this and ArbeitEnde = null);
      if a = null then
        let neu := (create 'Arbeitsblöcke');
        neu.ArbeitStart := now();
        neu.Zeiterfassung := this
      end

       

3 Antworten

null
    • T_Bartzsch
    • vor 8 Tagen
    • Gemeldet - anzeigen

    KI hilft bei Ninox nur bedingt weiter, da das Script oft fehlerhaft ist bzw. eine Mischung aus Ninox-Script und Javascript ist. Richtige Toggle-Buttons sind so bei Ninox nicht möglich, da du den Buttonnamen nicht dynamisch gestalten kannst. Ich würde mir in einem versteckten (oder nur im Admin-Modus sichtbaren) Admin-Reiter zwei Ja/Nein-Felder anlegen "arbeitet" und "pausiert" ... Dann legst Du dir 4 Buttons an: "Arbeitszeit starten", "Arbeitszeit beenden", "Pause starten", "Pause beenden" und steuerst die Sichtbarkeit anhand der beiden Ja/Nein-Zustände.

    "Arbeitszeit starten" - Feld nur anzeigen wenn: "not arbeitet and not pausiert"

    "Pause starten" -  "arbeitet = 1 and not pausiert"

    "Pause beenden" - "arbeitet = 1 and pausiert = 1"

    "Arbeitszeit beenden" - "arbeitet and not pausiert"

    Nun erstellst Du eine Untertabelle "ZEITERFASSUNG" mit den Arbeits- und Pausenzeiten mit Datum, Uhrzeiten ("Startzeit" / "Endzeit"), evtl. einer AUSWAHL "Arbeit" und "Pause" (oder du machst dir zwei Untertabellen mit Arbeitszeit und Pausenzeit)

    Jetzt lässt du die Buttons entsprechende scripts ausführen:

    Button "Arbeit starten":

    let me := this;
    let newRecord := (create ZEITERFASSUNG);
    newRecord.(
    DEINE_OBERTABELLE := me;
    Datum := today();
    Startzeit := now();
    AUSWAHL := 1
    );
    arbeitet := 1
    

    Damit legst du einen Datensatz in der Untertabelle an...

    Das gleiche bei Pause starten, nur mit AUSWAHL = 2 (für "pausiert")

    Dann bei Arbeitszeit beenden:

    let myRecord := first(ZEITERFASSUNG[Datum = today() and AUSWAHL = 1 and not Endzeit]);
    myRecord.(Endzeit := now());
    arbeitet := 0

     

    Das gleiche bei Pause beenden aber mit AUSWAHL = 2

    Das ist jetzt ungetestet, soll aber die Richtung anzeigen. Du hast 4 Buttons, die je nach Zustand der beiden schalter "arbeitet" und "pausiert" angezeigt werden. Das fühlt sich dann an wie ein "toggle" ...

    • Torsten_Stang.1
    • vor 8 Tagen
    • Gemeldet - anzeigen

    bedingt sichtbare Buttons sind (meiner Erfahrung nach) schrecklich zu revidieren - die Idee, dass mit einem(!) Funktionsfeld als Buttonersatz zu lösen ist auch für mich die praktischere. Vielleicht erstmal kompliziert, weil Layout und Code in unterschiedlichen Bereichen zu finden sind...

    ein kleines, von der KI gar nicht weit entferntes Beispiel habe ich hier hinterlassen:

    https://forum.ninox.de/t/q6ykfnq/button-als-umschalter-switch-nutzen

    • T_Bartzsch
    • vor 7 Tagen
    • Gemeldet - anzeigen

    Ja, da geb ich dir Recht - bedingt sichtbares ist generell schwierig - die alternative wären sicher Funktionsfelder oder eine schöne HTML/JS Lösung - ich dachte aber, wenn jemand gerade seit 2 Tagen mit Ninox unterwegs ist, vielleicht erstmal die Basics mit "Hausmitteln" zu klären (wobei klickbare Formelfelder ja auch "Hausmittel" sind :). )

Content aside

  • vor 7 TagenZuletzt aktiv
  • 3Antworten
  • 57Ansichten
  • 3 Folge bereits