0

Absence management Timeline

Hi there are any way to change the timeline to Year/Month/Week on the (Absence management) Ninox Database.

9 Antworten

null
    • Rafael_Sanchis
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Mirko You have some ideas.

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Rafael Sanchis für einzelne Kalenderwochen 

      let aa := text(Jahr);
      let bb := KW;
      let me := this;
      let date0 := date(number(aa), 1, 4) - weekday(date(number(aa), 1, 4)) + number(bb) * 7 - 7;
      let date1 := date(number(aa), 1, 4) - weekday(date(number(aa), 1, 4)) + number(bb) * 7 - 3;
      let days := days(date0, date1) + 1;
      let rows := ((select Team where not me.Touranzeige or chosen(me.Touranzeige, number(Nr))) order by Teamauswahl);
      function tooltip(me : 'Aufträge') do
          me.---
      { 'KV-Nr.' + " " + Name }<br>{ Planzeit } - { Ort + "  -  " + 'Straße' }<hr>{ 'Informationen zum Kunden (werden mit ausgedruckt)' +
      if 'Liefertermin von' = 'Liefertermin bis' then
          if Dauer != 1 then " - " + text(Dauer) end
      else
          if 'Dauer erster Tag' != 1 then
              " - " + text('Dauer erster Tag')
          end
      end +
      if 'Liefertermin von' != 'Liefertermin bis' then
          "<br>" +
          if 'Dauer letzter Tag' != 1 then
              " - " + text('Dauer letzter Tag')
          end
      end }
          ---
      end;
      function DayHeads() do
          join(for p from date0 to date1 + 1 step 1000 * 60 * 60 * 24 do
              let date := date(p);
              ---
      <div class="nxp-timeline-cell nxp-timeline-day"><b>{ format(date, "DD.MM.YYYY") }</b></div>
              ---
          end, "")
      end;
      function DayNames() do
          join(for p from date0 to date1 + 1 step 1000 * 60 * 60 * 24 do
              let date := date(p);
              ---
      <div class="nxp-timeline-cell nxp-timeline-day">{ format(date, "dddd") }</div>
              ---
          end, "")
      

      Größenanpassung sollte der Zellen falls man sie ändert / gleicher wert wie CSS:

      let left := (day0 - 1) * 300 + 100 + number(not capLeft) * 4 + firstHalf;
          let width := (day1 - day0 + 1) * 300 - (number(not capLeft) + number(not capRight)) * 4 -
              firstHalf -
              lastHalf;
          let top := y * 36 + 4;
      

      Anpassung für die Ausgabe

      <div class="nxp-timeline-row" style="height:{ (yMax + 1) * 36 + 6 }px">
          <div class="nxp-timeline-cell nxp-timeline-name"  onclick="ui.popupRecord('{ row.Nr }')"style="background-color:{ color(row.Farbe) }">>{ row.Teamauswahl }</div>{ for day from 0 to days do Cell(row, date(date(number(aa), 1, 4) - weekday(date(number(aa), 1, 4)) + number(bb) * 7 - 7 + 1)) end }{ bars }
      </div>
      
      • Rafael_Sanchis
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Michi Thanks Michi appreciate your help

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Rafael Sanchis ergebniss

      CSS anpassung 

      für ansicht bis Samstag:

      .nxp-timeline-cell {width:300px;height:100%;padding:4px;flex:0 0 auto;border-right:solid 1px black;border-bottom:solid 1px black;text-align:center;line-height:32px;border-radius:4px;opacity:1;cursor:pointer;color:black;box-sizing:border-box;border:solid 1px black}

      für ansicht mit Samstag:
      .nxp-timeline-cell1 {width:250px;height:100%;padding:4px;flex:0 0 auto;border-right:solid 1px black;border-bottom:solid 1px black;text-align:center;line-height:32px;border-radius:4px;opacity:1;cursor:pointer;color:black;box-sizing:border-box;border:solid 1px black}    

      function Style() do
          "
      .nxp-timeline-table {position: auto;}
      .nxp-timeline-table-head {position: auto;}
      .nxp-timeline-table-body {position: auto;}
      .nxp-timeline-row {display:flex;position:relative;height:30px}
      .nxp-timeline-cell {width:300px;height:100%;padding:4px;flex:0 0 auto;border-right:solid 1px black;border-bottom:solid 1px black;text-align:center;line-height:32px;border-radius:4px;opacity:1;cursor:pointer;color:black;box-sizing:border-box;border:solid 1px black}
          .nxp-timeline-cell1 {width:250px;height:100%;padding:4px;flex:0 0 auto;border-right:solid 1px black;border-bottom:solid 1px black;text-align:center;line-height:32px;border-radius:4px;opacity:1;cursor:pointer;color:black;box-sizing:border-box;border:solid 1px black}
      .nxp-timeline-cell-tooltip {display:none;opacity:0;position:relative;z-index:999;min-width:200px;background-color:white;border-style:solid;border-width: 1px;border-color:black;border-radius:3px;padding:8px;color:black;background:#f7f8fc;bottom:-40px;left:1px}
      .nxp-timeline-cell:hover .nxp-timeline-cell-tooltip {display:block;opacity:1;-webkit-animation:fadeIn .3s;animation:fadeIn .3s}
      .nxp-timeline-name {width:100px;text-align:left;background:#DFDFDF;border-radius:4px;opacity:1;cursor:pointer;color:black;box-sizing:border-box;border:solid 1px black}
      .nxp-timeline-name:hover {color: white;
        ;border-radius:4px;opacity:1;cursor:pointer;color:black;box-sizing:border-box;border:solid 2px black}
      .nxp-timeline-day {background:#DFDFDF}
      .nxp-timeline-week {background:#DFDFDF;width:280px}
      .nxp-timeline-bar {position:absolute;top:4px;height:32px;border-radius:4px;background-color:red;opacity:1;cursor:pointer;color:black;box-sizing:border-box;border:solid 2px black}
      .nxp-timeline-bar-title {overflow:hidden;text-align:center;line-height:28px;height:100%}
      .nxp-timeline-bar:hover {border-color:#00000022}
      .nxp-timeline-bar-cap-left {border-top-left-radius:0;border-bottom-left-radius:0}
      .nxp-timeline-bar-cap-right {border-top-right-radius:0;border-bottom-right-radius:0}
      .nxp-timeline-bar-tooltip {display:none;opacity:0;position:absolute;z-index:200;min-width:300px;background-color:white;border-radius:5px;border-style:solid;border-width: 1px;border-color:black;padding:8px;color:black;background:#f7f8fc;bottom:-150px;left:10px}
      .nxp-timeline-bar:hover .nxp-timeline-bar-tooltip {display:block;opacity:1;-webkit-animation:fadeIn .3s;animation:fadeIn .3s}
      @-webkit-keyframes fadeIn {from {opacity:0} to {opacity:1}}
      @keyframes fadeIn {from {opacity:0} to {opacity:1}}
      "
      
    • Rafael_Sanchis
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Michi Thanks again Michi. One question, if is possible can you post a example DB.

    Thanks.

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Rafael Sanchis anbei meine probe DB

      schön wäre es wenn bei mehrfacher Belegung der Zellen, die oberste Zeile nicht leer sein würde.  Vielleicht weis einer rat

    • Michi.1
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Date0 ergibt liefert das Datum für Montag der Kalender Woche

    Date1 in dem Fall den Freitag 

     

    das kann man bestimmt auch für ein ganzes jahr bzw für den monat verwenden 

    
    let date0 := date(number(aa), 1, 4) - weekday(date(number(aa), 1, 4)) + number(bb) * 7 - 7;
    let date1 := date(number(aa), 1, 4) - weekday(date(number(aa), 1, 4)) + number(bb) * 7 - 3;
      • Rafael_Sanchis
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Michi Where can do more space a Team ?

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Rafael Sanchis für meine zwecke habe ich feste teams. Die werden in Tabelle Team angelegt

Content aside

  • vor 1 JahrZuletzt aktiv
  • 9Antworten
  • 94Ansichten
  • 2 Folge bereits