0

Zeiterfassung monatlich aus Tabelle drucken

Guten Abend,

ich habe mir die Vorlage „Zeiterfassung" heruntergeladen und möchte sie als Erfassung der Stuunden einer Aushilfe nutzen. 

Die einzelnen Falder habe ich schon soweit angepasst, dass ich auch am Wochenende die Arbeitszeiten erfassen kann. Kann ich eigentlich auch irgendwo sehen, welche Felder und Scripte für was zuständig sind?

Denn wenn ich etwas ändere, wirkt sich das auch auf andere Felder aus (automatische Eintragung des Kalendereintrags). Vielleicht existiert ja eine Ansicht darüber.

Wenn ich das richtig gesehen habe, wird im Standard auf der Ansicht „Arbeitszeiten" die Wochenenden nicht angezeigt, oder?

Allerdings möchte ich natürlich auch die so erfassten Stunden eines Monat dann auf einer Seite ausdrucken lassen, um den Zettel von der Aushilfe unterschreiben zu lassen. Am liebsten natürlich mit meinem Logo etc.

Einen einzelnen Datensatz kann ich ohne weiteres drucken (wie auch eine einzelne Rechnung in der anderen Datenbank). Dieses Layout kann ich mir auch erstellen.

Über das Datum kann ich die Monate filtern - so weit, so gut. Aber wie kann ich mein eigenes Layout für eine Tabelle erstellen? Wenn ich auf den Schraubenschlüssel gehe, ist der Drucker deaktiviert.

Mit Tabelle drucken kann ich zwar einen Standardbericht erstellen, aber der reicht mir leider nicht

Ich würde mich über Hilfestellung sehr freuen.

Schönen Abend

Markus

25 Antworten

null
    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Markus, zur Frage des individuellen Drucks:
    Du rufst in Deiner Tabelle  einen Datensatz auf. Dann erscheint oben rechts u.a. das Druckersymbol. Dieses anklicken, dann kommt die PDF-Standartansicht. Wenn Du jetzt ob auf das + Symbol klickst, werden Dir alle Felder Deiner Tabelle angezeigt. Du kannst diese jetzt auf der Seite plazieren. Mit dem Mülleimersymbol kannst du "angeklickte" Felder der Standartansicht löschen. Da hilft ingesamt nur probieren, probieren, probieren. Z.T. ist das Erstellen eines Drucklayouts eine ziemliche "Fummelei", aber es funktioniert. Ansonsten fleißig im Forum unter Layout, Druck usw. suchen.

    • Markus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Holzi,

    danke für deinen Tipp, das habe ich auch alles soweit gefunden und kann es auch ändern. Dabei kann ich aber immer nur einen Datensatz drucken. Das funktioniert bei den Rechnungen z.B auch sehr gut.

    Für mein Vorhaben, die Monatsübersicht als Nachweis zu drucken, möchte ich gerne diese Ansicht anpassen. Diese Ansicht kann ich mit SHIFT+CMD+P anzeigen/ausdrucken. Leider komme ich an diese Vorlage nicht ran.

    Gibt es da eine Möglichkeit? Denn das Druckersymbol erscheint dabei ja nicht.

    Viele Grüße
    Markus

    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Markus, kannst Du mir Deine bisherige Datenbank mal über Dropbox zur Verfügung stellen (natürlich ohne Daten).

    Dann kann ich Dir vielleicht direkt weiterhelfen. Ich vermute, dass die Lösung in einem Umweg über eine "Drucktabelle" möglich ist.  Eine Drucklayout-Manipulation der Ansicht ist m.W. nicht möglich.

    • Markus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Guten Morgen Holzi,

    das wäre klasse 👍🏼 hier ist der Dropbox-Link https://www.dropbox.com/s/v9b075cqct4i7yp/Zeiterfassung-Test.ninox?dl=0 probier mal bitte, sollte funktionieren.

    Das ist die Vorlagedatei Zeiterfassung ergänzt um die Ansicht „Druck Monat", der dann so ähnlich aussehen soll wie die angehängte Ansicht

    Vielen Dank schon einmal für deine Hilfe

    2019-11-18_08-00-25

    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Markus, ich habe mal ein wenig "gebastelt".

    Die Datenbank startet jetzt mit einm Dashboard. Der Druck läßt sich monats- und jahreweise auswählen.
    Das Drucklayout musst Du sicher noch überarbeiten.

    Ich hoffe, so hast Du Dir das vorgestellt?

    https://www.dropbox.com/s/qxh569kwq91qj0x/Zeiterfassung-Holzi.ninox?dl=0

    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen
    • Markus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hi Holzi,

    was hast du denn da gezaubert? Meine Güte, Respekt 👍🏼 Das muss man (in dem Fall ich) erstmal verstehen, wie du das gemacht hast.

    Und das Thema Drucktabelle habe ich in der Hilfe nicht gefunden

    Wenn ich jetzt über Zeiterfassung einen neuen Datensatz anlege z.B. 15.11., wie kann ich denn den Datensatz abspeichern? Denn wenn ich dann ein neues Datum eingeben will, 16.11. wird der andere überschrieben.

    Im Druck tauchen die Werte 5x auf 🤔 und dort tauchen alle Werte auf, sowohl die aus Juli wie der 16.11., obwohl ich den November ausgewählt habe.

    Und wo komme ich denn an das Drucklayout, damit ich es anpassen kann? Ich habe da noch keine Möglichkeit gefunden.

    Besten Dank für deine Lösung

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo zusammen,

     

    Holzi, in Deinem Skript bei der Befehlsschaltfläche "Drucken" fehlt eine Kleinigkeit, ich war mal so frei:

     

    https://www.dropbox.com/s/dmo7184eyf6m5x2/Zeiterfassung%20Holzi.ninox?dl=0

     

    Jetzt dürften die mehrfach und falsch auftauchenden Werte passè sein...

     

    lg, Torsten

    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Torsten,
    ja, ich hatte das Löschen vergessen, habe ich schon gesehen.Danke.

    Um die anderen Sachen kümmere ich mich noch.

    Bei der Gelegenheit: Hast Du auch das Problem, dass Du mit dem Anmelden im Forum erstmal hier
    https://app.ninoxdb.de/# landest? Ich muss dann jedesmal das Forum nochmal neu aufrufen. Das nervt tierisch.
    Dem support fällt dazu leider auch nichts ein (bisher jedenfalls nicht).

    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Markus, zu Deinen Fragen:

    Und das Thema Drucktabelle habe ich in der Hilfe nicht gefunden

    Gibt es auch nicht. Das ist eine Konstruktion, die hier im Forum entstanden ist.

    Wenn ich jetzt über Zeiterfassung einen neuen Datensatz anlege z.B. 15.11., wie kann ich denn den Datensatz abspeichern? Denn wenn ich dann ein neues Datum eingeben will, 16.11. wird der andere überschrieben.

    Ich habe in der Zeiterfassung einen Button eingebaut zur Erfassung eines neuen Datensatzes. Dabei werdenn die Felder Anfang, Ende und Dauer auf 0 gesetzt. Als Datum wird der aktuelle Tag eingetragen. In NINOX wird ein Datensatz immer direkt abgespeichert, dass heißt, Du brauchst nicht nochmal gesondert speichern.

    Im Druck tauchen die Werte 5x auf 🤔 und dort tauchen alle Werte auf, sowohl die aus Juli wie der 16.11., obwohl ich den November ausgewählt habe.
    Ist erledigt, ich hatte das Löschen der alten Positionen vergessen.

    Und wo komme ich denn an das Drucklayout, damit ich es anpassen kann? Ich habe da noch keine Möglichkeit gefunden.
    Du mußt die Tabelle „Drucken“ öffnen, dann links oben auf das Kreuz / oder Plus klicken. Dann erscheint oben das Druckersymbol. Anklicken und das hast Du das Layout zur Bearbeitung.

     

    Und hier die letzte Version:
    https://www.dropbox.com/s/nbu4fde42e6dqcv/Zeiterfassung-Holzi.ninox?dl=0

    • Markus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Holzi (und Torsten),

    ich bin begeistert - sehr cool, das ist genau so, wie ich mir das vorgestellt habe, den Ausdruck habe ich auch schon ein wenig angepasst.

    Das einzige, bei dem ich aufpassen muss, ist der Button neuer Eintrag, weil sich ja immer ein neuer Eintrag öffnet und einen neuen Datensatz anlegt. Deswegen hatte ich dadurch ein paar doppelte. 

    Die kann ich aber nicht direkt in der Zeiterfassungsmaske löschen, richtig? Dafür muss ich in die Tabelle Zeiterfassung gehen und kann sie da löschen.

    Nochmals vielen lieben Dank für deine klasse Unterstützung.

    Viele Grüße
    Markus

    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Markus,

    ja, das ist das Problem der ansonsten netten "Menüführung" über Formulare. Du musst alle Eventualitäten bedenken und entsprechend gestalten.

    Wenn Du z.B. den aktuellen Datensatz löschen willst, baust Du in die Zeiterfassung eine Schaltfläche (Button) ein und schreibst in das Feld "beim anklicken"

    let NN := Nr;
    delete this

    fertig. Wenn Du allerdings aus Versehen einmal zuviel "klickst" ist der nächste Datensatz weg usw.usw.
    Einfach alles mal ausprobieren. Am besten auf einer Kopie der Datenbank.

    Viel Spass

    • Markus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Holzi,

    das hat geklappt - aber alleine an der Befehlszeile wäre ich schon gescheitert :(

    Dann werde ich mich mal daran begeben, die Eingabemaske anzupassen (Pause und Soll benötige ich nicht) und dafür zu sorgen, dass beim Wochenende auch die Arbeitszeiten ausgerechnet wird. Aber da habe ich schon gesehen, dass das mit Art=6 zu tun hat.

    Noch eine Frage zum Drucklayout: habe ich irgendwo die Möglichkeit, die einzelnen Felder einzeln anzupassen? Also z.B. den Ausdruck Wochenende beim Feld Art einzufärben? Bzw. auch die Fußzeile mit der Summe der Arbeitszeit fett und mit größerer Schrift?

    Wenn ich jetzt am 20.11. und am 22.11. einen Werktag eintrage, würde es dann funktionieren, dass beim 21.11. automatisch "frei" (Art 2) als Datensatz angelegt wird, damit ich im Ausdruck alle Tage des Monats aufgelistet habe? Ich vermute mal eher nicht, oder? Ich kann den Datensatz ja auch manuell anlegen.

    Einen schönen Tag

    Markus

    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Markus,

    Du kannst im Entwurfmodus das Drucklayout bedingt anpassen. Wenn Du ein Feld der Tabelle anklickst, kannst Du Schriftart, fett usw. einstellen. Das Einfärben der Felder geht m.W. nicht. Summen der einzelnen Spalten kannst Du über  Funktionsfelder unterhalb der Tabelle erzeugen. Wenn Du ein Funktionsfeld über das + Symbol erzeugst trägst Du für die Summe der Stundenn z.B.
    sum(Druckpositionen.Zeiterfassung.'Arbeitszeit Dezimal')
    ein.

    • Markus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo zusammen,

    ich beschäftige mich mal wieder mit der Zeiterfassung und holen den Threat wieder nach oben, weil sich noch einige Fragen bei der Bearbeitung ergeben haben, die ich leider nicht selber hinbekomme. Deswegen freue ich mich über eure Unterstützung:

    1. Pause und Sollzeiten

    wie ich schon geschrieben habe, benötige ich die Felder Pause und Sollzeiten nicht. Bevor ich die Felder aber lösche, muss ich ja noch die Verknüpfungen bearbeiten. Pause hängt aber z.B. mit der Berechnung der Arbeitzeit zusammen. Wenn ich jetzt aber den Befehl in Funktion bei Arbeitzeit ändere von

    if Art = 1 or Art = 6 then 1 else 0 end * (Ende - Anfang - if Art = 1 then Pause else 0 end)

    in 

    if Art = 1 or Art = 6 then 1 else 0 end * (Ende - Anfang)

    bekomme ich im Feld den Ausdruck „undefined". Was muss ich hier ändern? Die Formel für Über/Unter Soll sieht doch genauso aus? 🤔

    if Art = 1 or Art = 2 then 1 else 0 end * (Arbeitszeit - Sollzeiten)

    Sollzeiten und Pause tauchen noch im Script für einen neuen Datensatz in der Zeiterfassung auf, aber den kann ich löschen

    2. Drucklayout

    beim Drucklayout wollte ich auch noch einige Anpassungen vornehmen

    Stundenzettel

    Kann ich die Anzeige bei 1. unterdrücken, wenn Anfang und Ende leer sind? Aber ich vermute mal, dass das bei f(x)  geändert werden muss, oder? Aber was muss das eingegeben werden? 

    Anzeige

    Kann ich die Summe von Arbeitszeit auch in der Form 31:00 anzeigen bei 3. (wird auch so in der Anzeige dargestellt)

    Ich möchte ebenfalls jeweils die Tage für Urlaub, Feiertag und Krank anzeigen lassen bei 2., wenn also Art = 3 (Urlaub) ist, dann sollte die Anzahl von Art (3) angegeben werden.

    Wie muss ich denn die Funktion aufbauen, damit die Anzahl des jeweils gedruckten Monats angezeigt wird?

    Ich danke euch für eure Hilfe und wüsche schon einmal einen guten Start ins neue Jahrzehnt.

    Viele Grüße
    Markus

    • Michael_Martin
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Markus,

    zu 1:

    if Arbeitszeit > 0 then Arbeitszeit else void end

    zu 2:

    if cnt(deineTabelle[Art = 3]) > 0 then
    cnt(deineTabelle[Art = 3])
    else
    void
    end

    zu 3:
    die Stunden sind hier im industriellen Zeitformat berechnet, d.h. Faktor 100. Somit bringt es Dir nichts im Uhrzeitformat anzuzeigen. Wenn da nähmlich 9,25 Stunden stehen, wären das 9:15. Du müsstest also den Wert auf das Uhrzeitformat berechnen.

    • Markus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Michael,

    vielen Dank 👍🏼 1. und 2. haben schon mal geklappt, das "void" hatte mir bei meinen Versuchen gefehlt. Bei 3. und den Stundenformaten muss ich nochmal etwas testen, denn 23:30 wird noch "normal" angezeigt, erst über 24 Stunden wird anstelle von 31:00 dann 1 Tag 7:00.

    Wie könnte denn die Formel für die Berechnung der Arbeitszeit lauten,  wenn ich die Pause rausschmeißen will (Punkt 1. weiter oben).

    Denn die Änderung der Formel

    if Art = 1 or Art = 6 then 1 else 0 end * (Ende - Anfang - if Art = 1 then Pause else 0 end)

    in 

    if Art = 1 or Art = 6 then 1 else 0 end * (Ende - Anfang)

    führt ja leider zum Ausdruck „undefined" im Feld Arbeitszeit und zerschießt mir die Formel

    Viele Grüße

    Markus

    • Michael_Martin
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Markus,

    Du musst die Formel bei Arbeitszeit so ändern:

    if Art = 1 then (Ende - Anfang) end

    • Markus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Michael,

    auch dabei wird mit der Ausdruck „undefined" im Feld Arbeitszeit zurückgegeben 

    Viele Grüße
    Markus

    • Markus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Die Unterdrückunug der Felder mit „0" hat soweit ja gut geklappt, allerdings nicht hierbei

    if 'Gehalt / Stundensatz' > 0 then
    'Gehalt / Stundensatz'
    else
    void
    end

    Ich denke mal, da fehlt noch irgendetwas in der Formel

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Nur mal so der Vollständigkeit halber: "undefined" wird bei Berechnungsfeldern in der Regel angezeigt, solange die Änderungen nicht gespeichert wurden.

    • Markus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter,

    dann wird da jetzt auch für mich ein Schuh draus :), danke. Hat jetzt so wie Michael geschrieben hat, funktioniert

    • Markus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Das mit 'Gehalt / Stundensatz' konnte so auch nicht gehen - habe es jetzt hinbekommen

    • Markus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Mit der Formel von Michael 

    if cnt(deineTabelle[Art = 3]) > 0 then
    cnt(deineTabelle[Art = 3])
    else
    void
    end

    konnte ich die Anzahl z.B. der Urlaubstage im Drucklayout ermitteln. Wenn ich jetzt mit diesen Werten im Drucklayout weiterrechnen möchte, wo kann ich das denn auswählen? Die Felder tauchen im Formeleditor nicht auf

    2019-12-31_15-07-08

    Oder muss ich mir dafür in der Tabelle Zeiterfassung eine Variable erstellen, die die Anzahl innerhalb eines Monats ermittelt, mit der ich dann weiterrechnen kann?

    • Markus.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo und ein erfolgreiches und gesundes neues Jahr,

    hat für mein Problemchen jemand einen Tipp? Denn auch mit der Formel, wird immer nur die Zahl 1 angezeigt, es wird also nicht gezählt.

    if cnt(Druckpositionen.Zeiterfassung.Art = 3) > 0 then
    cnt(Druckpositionen.Zeiterfassung.Art = 3)
    else
    void
    end

    In die Tabelle habe ich jetzt Zähler eingebaut (für den Oktober müsste da rauskommen):

    Zähler

    In der Tabellenansicht werden die Zahlen richtig ermittelt, aber sobald ich die im Drucklayout einbaue, wir mir nur 0 angezeigt

    Muss ich das irgendwie mit einer Variblen machen? Oder wie bekomme ich das hin?

    Viele Grüße
    Markus

Content aside

  • vor 4 JahrenZuletzt aktiv
  • 25Antworten
  • 6388Ansichten
  • 1 Folge bereits