private void CreateFromSchedule() { Schedule best = this?.genetik?.Best; if (best == null) { return; } if (best == null) { MessageBox.Show("Nao Existem Planificaçoes."); return; } var events = best.GetEvents(); var currentTurnos = GetTurnos(events); this.calendar1.Items.Clear(); var kui = new List <System.Windows.Forms.Calendar.CalendarItem>(); bool showlongName = this.calendar1.ViewEnd.Subtract(this.calendar1.ViewStart).TotalDays < 5; foreach (var task in currentTurnos.Where(x => x.start >= this.calendar1.ViewStart && x.end <= this.calendar1.ViewEnd)) { var gTask = task.Task.GeneticTask; var shortName = "E" + gTask.Encomenda.NumeroEnco + "/" + task.Task.GeneticProcess.Machine.Tipo; var frentes = string.Join(",", task.frente.Select(x => x.Nome)); var tras = string.Join(",", task.tras.Select(x => x.Nome)); var longName = "E" + gTask.Encomenda.NumeroEnco + "-" + task.Task.GeneticProcess.Machine.Tipo + "\n Frente: " + frentes + "\nTras:" + tras; var name = showlongName ? longName : shortName; var ut = new System.Windows.Forms.Calendar.CalendarItem(this.calendar1, task.start, task.end, name); ut.BackgroundColor = Colors.ProcessColors[task.Task.ProcessId];; ut.Tag = task; kui.Add(ut); } this.calendar1.Items.AddRange(kui); }
private void monthViewAgenda_SelectionChanged(object sender, EventArgs e) { //Se establece el rango de vision de la agenda segun las fechas seleccionadas en el calendario izquierdo if (monthViewAgenda.SelectionEnd.Subtract(monthViewAgenda.SelectionStart).TotalDays > 0) { calendarAgenda.SetViewRange(monthViewAgenda.SelectionStart, monthViewAgenda.SelectionEnd); //Se determinan las citas agendadas dentro del rango de tiempo TablaCitas citasAgendadas = vistaCitasTableAdapter.GetDataByRangoDeFechas(calendarAgenda.ViewStart, calendarAgenda.ViewEnd); calendarAgenda.Items.Clear();//Se limpia la agenda //Por cada cita agendada, se genera un control para verlas en forma de calendario foreach (RowVistaCita cita in citasAgendadas.Rows) { DateTime fechaCita = cita.Fecha; //Se compone el texto que se mostrara dentro del control de cita agendada String texto = cita.Nombre + " " + cita.Apellido + ", " + cita.NombreEmpleado + ", " + cita.Fecha.TimeOfDay.ToString() + "\n" + cita.NombreServicio; //Se construye el control de cita agendada System.Windows.Forms.Calendar.CalendarItem citaAgendada = new System.Windows.Forms.Calendar.CalendarItem(calendarAgenda, fechaCita, fechaCita.AddMinutes(60), texto); citaAgendada.Tag = cita.CitaID; try { int color = cita.ColorEmpleado; if (color < 0) { //Se agrega a la vista de calendario calendarAgenda.Items.Add(citaAgendada); //Se colorea cada cita que se encuentra en el acalendario citaAgendada.BackgroundColor = Color.FromArgb(color);//-16711936); } else { //Se agrega a la vista de calendario calendarAgenda.Items.Add(citaAgendada); } } catch { calendarAgenda.Items.Add(citaAgendada); } } } }