0

zeiterfassung für mehrere mitarbeiter gleichzeitig

Ich habe mir eine Zeiterfassung erstellt, in der ich einen Mitarbeiter aus der Tabelle "Personal" auswählen kann, ein Projekt aus der Tabelle "Projekte" und dann die Zeiten eintragen kann.

Gibt es hier nun irgendeine möglichkeit, direkt 3 Mitarbeiter auszuwählen, wenn diese zu den gleichen Zeiten im gleichen Projekt gearbeitet haben, so dass also 3 Datensätze erzeugt werden?

Bislang arbeite ich über den "Dublizieren"-Button, dann muss ich immerhin nur noch den ausgewählten MA ändern. Aber noch schöner wäre es, mir diesen Umweg zu sparen, es sind fast immer die gleichen 2-3 im Team.

6 Antworten

null
    • UweG
    • vor 5 Monaten
    • Gemeldet - anzeigen

    Da ich hier die Ausgangslage aus der Beschreibung nicht erkennen kann.
    Aber wenn man hier ein 'mehrfach Auswahlfeld (dynamisch?)' nutzt, kann man die Erstellung der entsprechenden Datensätze auch über das Script duplizieren oder neu erstellen und die entsprechenden Einträge vornehmen.
    Wie gesagt, kommt es auf den Datenbankaufbau an und von wo, was erstellt werden soll.

    • Ninox-Professional
    • planoxpro
    • vor 5 Monaten
    • Gemeldet - anzeigen

    Wie Uwe schon sagte: Etwas mehr Kontext wäre hilfreich. Ich habe sowas in der Art allerdings schon häufiger gemacht, deshalb anbei mal eine kleine Demo-DB mit temporärer Zeiterfassung und Zuordnung über dynamische Auswahlfelder (Projekt: einfach; Mitarbeiter: mehrfach). Vielleicht hilft sie weiter.

    • yellow_scissors
    • vor 5 Monaten
    • Gemeldet - anzeigen

    Jetzt hatte ich auch schon eine Demo-DB erstellt, aber im Grunde ist mein Problem durch deine DB gelöst - vielen Dank

    • yellow_scissors
    • vor 5 Monaten
    • Gemeldet - anzeigen

    ein Frage ist zu diesem Thema noch aufgekommen:

    Über die Zeiterfassung buche ich nicht nur die Personalstunden, sondern alle Herstellungskosten eines Projektes: Personal (eigenes und Subunternehmer), Maschinenstunden, Mietmaschinen und eingesetztes Material. Aktuell habe ich alle diese Kostenfaktoren in einer Tabelle (Personal/Maschinen) und nutze die verschiedenen Filteransichten, um daraus die gewünschten Daten anzuzeigen.

     

    Ist das in Ordnung so, oder gibt es irgendwelche Vorteile, das ganze in verschiedene Tabellen zu splitten?

      • Ninox-Professional
      • planoxpro
      • vor 5 Monaten
      • Gemeldet - anzeigen

       Wenn es bei der Zeiterfassung auch um die Dokumentation der Arbeitszeiten nach dem Nachweisgesetz geht, dann würde ich es wohl trennen. Geht es nur um die Erfassung von Kosten zu einem Projekt, kann man es auch in einer Tabelle belassen. Möglich ist beides, die Entscheidung hängt letztlich von individuellen Faktoren ab (Komfort, Workflow, Transparenz ...). 

    • yellow_scissors
    • vor 5 Monaten
    • Gemeldet - anzeigen

    Hier noch ein Nachtrag:

    Bei meiner DB ist jede Zeiterfassung, wie beschrieben, auch einem Projekt-Datensatz zugeordnet. Ich nutze diese Daten für die Nachkalkulation (erfasst sind x Stunden bei Mitarbeiter Y und Z, diese haben einen Stundensatz, der wiederum im Mitarbeiter-Datensatz erfasst ist). In der Tabelle "Projekte", wird dann angezeigt, wie hoch der Gewinn / Verlust anhand von Zeiterfassung * Stundensatz im Vergleich zur Rechnungssumme ist.

    Mein Problem war nun, dass ich in den meisten Tabellen immer den Querverweis zum Stundensatz ("Mitarbeiter.Stundensatz") erstellt habe. Als ich dann aber zum ersten mal eine Gehaltserhöhung eingetragen habe (Mitarbeiter Y hat 2 € mehr pro Stunde verdient), haben sich alle Werte in der Nachkalkulation von allen vergangenen Projekten verändert.

    Dieses Problem konnte ich nun durch den Ansatz von lösen, indem ich über den  Button "buchen" immer den Tagesakutellen Wert übernehme

    urspr. Code

    if Datum and Beginn and Ende and Projekt and Mitarbeiter then
        let me := this;
        for i in numbers(Mitarbeiter) do
            let newZ := (create Arbeitszeiten);
            newZ.(
                Datum := me.Datum;
                Beginn := me.Beginn;
                Ende := me.Ende;
                Pause := me.Pause;
                Projekt := record(Projekte,me.number(Projekt));
                Mitarbeiter := record(Personal,i)
            )
        end;
        Datum := null;
        Beginn := null;
        Ende := null;
        Pause := null;
        Projekt := null;
        Mitarbeiter := null
    else
        alert("Bitte alle Felder ausfüllen!"

    mein Zusatz:

        let me := this;
        for i in numbers(Mitarbeiter) do
            let newZ := (create Arbeitszeiten);
            let x := record(Personal,i)
            newZ.(
                Datum := me.Datum;
                Beginn := me.Beginn;
                Ende := me.Ende;
                Pause := me.Pause;
                Projekt := record(Projekte,me.number(Projekt));
                Mitarbeiter := x;
                'Tagesaktueller Stundensatz' := x.Stundensatz
            )
        end;

    An dieser Stelle noch einmal vielen Dank für die grandiose und grandios schnelle Hilfe hier im Forum. Dadurch, dass mir verschiedene Leute hier Lösungsvorschläge inklusive Codes zur Verfügung stellen, fällt es mir sehr leicht, meine Ninox-Fähigkeiten zu erweitern und die unendlichen Möglichkeiten nach und nach zu verstehen.

Content aside

  • Status Answered
  • vor 5 MonatenZuletzt aktiv
  • 6Antworten
  • 124Ansichten
  • 4 Folge bereits