0

Diagramm mit Datum, Keine Datensätze Wochenende

Hallo Liebe Community,

Ich habe eine Zeiterfassung mit diversen Stunde die sich am Tag summieren.

Jetzt habe ich es schon geschafft diese in einem Diagramm für jeden eingetragenen Tag anzuzeigen.

 

Was ich jedoch möchte ich, ist ein Diagramm wo auch die nicht eingetragenen Tage bzw. die Lücken am Wochenende auch im Diagramm dargestellt werden. Klarerweise mit 0 Stunden.

 

Wie kann ich dass am besten bewerkstelligen?

4 Antworten

null
    • mirko3
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hallo Matthias. Das wird Dir, soweit ich weiß, in Ninox nur gelingen, wenn es auch zu diesen Daten Datensätze gibt, in denen dann das Feld mit der Zeiterfassung leer bleibt. Mirko

      • Matthias_Sonnweber
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Mirko 

      Irgendwie muss ich da ja für jeden Nutzer dann die leeren Tage herausfinden und entsprechend füllen. Bzw. eine Dauer von 0 h anlegen. 

      In dem Fall ist es notwendig dass ich automatisch Datensätze anlege? Über ein Trigger? oder wie mach ich das am besten?

      Da muss ich screenen ob für jenen Tag mindestens ein Eintrag vorhanden ist, wenn nein dann einen anlegen. Wenn ja, bzw. nachträglich eingetragen wurde den "Pseudoeintrag" wieder löschen... 

    • mirko3
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hi Matthias. Hier mal ein Vorschlag für einen Button. Das Script sucht die Lücken zwischen dem ersten Datum und dem letzten Datum deiner Tabelle. Legt ein Datumarray der fehlenden Daten an und dann für jedes noch einen neuen Datensatz. Die Dauer brauchst Du nicht mit 0 füllen. Vielleicht kannst Du es auch an geeigneter Stelle in einen Trigger einbinden. Richtig schick finde ich diese Version aber nicht, da es Dir eben viele neue, aber nutzlose Datensätze schafft. Teste es vorher an einem Duplikat, falls doch etwas nicht stimmt. Mirko

    let cntAllDays := days(first((select TABELLE) order by DATUM).DATUM, last((select TABELLE) order by DATUM).DATUM);
    let firstDate := first((select TABELLE) order by DATUM).DATUM;
    let allAvailableDates := (select TABELLE).DATUM;
    let allDates := for i in range(1, cntAllDays + 1) do
            date(year(firstDate), month(firstDate), day(firstDate) + i)
        end;
    for i in allAvailableDates do
        allDates := allDates[!= i]
    end;
    for i in allDates do
        (create TABELLE).(DATUM := i)
    end
    
    • Matthias_Sonnweber
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Super werde es ausprobieren