//geraexcel private void button1_Click(object sender, EventArgs e) { var oss = (from o in _banco.OS where o.DTINICIO >= TBDataInicial.Value && o.DTFIM <= TBDataFinal.Value select new { o.IDOS, o.OS1, o.DESCRICAO, o.DTINICIO, o.DTFIM }).DefaultIfEmpty().OrderBy(c => c.DTINICIO).ToList(); var listrel = new List <Relexcel>(); foreach (var os in oss) { var rel = new Relexcel { Descricao = os.DESCRICAO, Os = os.OS1, Data = os.DTINICIO.Value.Date }; if ((os.DTINICIO != null) && (os.DTFIM != null)) { rel.Hora = os.DTFIM.Value.TimeOfDay - os.DTINICIO.Value.TimeOfDay; } listrel.Add(rel); } listrel = somahoraslista(listrel); if (RBXLS.Checked) { GeraRelExcel(listrel); } if (RBSVC.Checked) { GeraArquivoTexto(listrel); } }
private List <Relexcel> somahoraslista(IEnumerable <Relexcel> lista) { var data = DateTime.Now.Date.AddDays(1); var os = ""; var lista2 = new List <Relexcel>(); Relexcel rel = null; foreach (var item in lista) { if ((!data.Equals(item.Data.Date)) || (!os.Equals(item.Os))) { if (rel != null) { lista2.Add(rel); } rel = new Relexcel { Data = item.Data.Date, Hora = item.Hora, Descricao = item.Descricao, Os = item.Os }; } else { if (rel != null) { rel.Hora += item.Hora; } } data = item.Data.Date; os = item.Os; } lista2.Add(rel); return(lista2); }