primero que todo bienvenidos a mi nuevo post!
segundo hoy me inspire para subir algo de creacion propia.
les copiare el codigo de un programa que estoy trabajando en visual C# ustedes pueden verlo y mandarme modificaciones o consejos que yo luego subire
todo lo que hago y me gusta generalmente es back-end en el diseño soy generalmente malo o me aburro con facilidad.
Este es la captura de una imagen turnero
y este le codigo del boton que hace la consulta
private void BtnConsu_Click(object sender, EventArgs e)
{
//verificar campos vacios
// || es or
if ((Convert.ToString(CbxProf.SelectedItem)) == "" || (Convert.ToString(TxtConsuDia.Text) == "Sunday") || (Convert.ToString(TxtConsuDia.Text) == "Saturday"))
{
MessageBox.Show("Error: 1) Dia de semana no valido 2) Profesional seleccionado", "Error");
}
else
{
DgvConsu.Rows.Clear();
DgvConsu.DataSource = null; //limpiar grilla
//inicializacion de variables y de extraccion de datos del formulario a variables para transparencia
String hora = "08:00:00";
DateTime fecha = DtpFecha.Value;
fecha = fecha.Date;
string dia = Convert.ToString(fecha.DayOfWeek);
string profesional = CbxProf.Text;
Int32 c = 0; //contador de dias
Int32 d = 0; //contador de horas
string datosMo = "";
string datosTu = "";
string datosWe = "";
string datosTh = "";
string datosFr = "";
while (d <= 4) //contador para cambiar las horas osea moverse entre filas
{
// reinicio de valores y contadores para cambiar la hora
fecha = DtpFecha.Value;
fecha = fecha.Date;
datosMo = "";
datosTu = "";
datosWe = "";
datosTh = "";
datosFr = "";
c = 0;
while (c <= 4) // contador para cambiar als horas osea moverse entre columnas
{
//Buscar Turno
try
{
MySqlConnection miconexion = new MySqlConnection();
string consulta;
miconexion.ConnectionString = FrmPrincipal.cadena;
miconexion.Close(); // por las dudas que haya quedado abierta en otro momento de la app
miconexion.Open(); // obviamente siempre se puede usar todo con un “try” para controlar
consulta = "SELECT turno.TurnoFecha, profesional.profNomb, practica.PractNomb, horario.HoraNomb, cliente.clienomb FROM turno INNER JOIN profesional ON turno.ProfeId = profesional.profeid INNER JOIN practica ON turno.PractId = practica.PractId INNER JOIN horario ON turno.HoraId = horario.HoraId INNER JOIN cliente ON turno.clieid = cliente.clieid WHERE turno.TurnoFecha = @0 AND profesional.profNomb = @1 AND horario.HoraNomb =@2";
MySqlCommand comando = new MySqlCommand();
comando.Connection = miconexion;
comando.CommandText = consulta;
comando.Parameters.Add("@0", fecha); //añadiendo parametros
comando.Parameters.Add("@1", profesional);
comando.Parameters.Add("@2", hora);
MySqlDataReader myreader = comando.ExecuteReader();
if (myreader.HasRows)
{
while (myreader.Read())
{
switch (dia) //segun el nombre del dia va a decir las columnas q va a añadir el dato
{
case "Monday":
datosMo = Convert.ToString(myreader[2]) + "-" + Convert.ToString(myreader[4]);
break;
case "Tuesday":
datosTu = Convert.ToString(myreader[2]) + "-" + Convert.ToString(myreader[4]);
break;
case "Wednesday":
datosWe = Convert.ToString(myreader[2]) + "-" + Convert.ToString(myreader[4]);
break;
case "Thursday":
datosTh = Convert.ToString(myreader[2]) + "-" + Convert.ToString(myreader[4]);
break;
case "Friday":
datosFr = Convert.ToString(myreader[2]) + "-" + Convert.ToString(myreader[4]);
break;
}
} // termina el while de lectura
} //estos es el final de la lectura y aunque hallan datos o no sigue el siguiete parrafo
if (c == 4) // cuando termina de recorrer la semana acumula los datos y los pasa a la fila de la grilla esten vacios o no
{
DgvConsu.Rows.Add(datosMo, datosTu, datosWe, datosTh, datosFr);
//DgvConsu.Rows[3].HeaderCell.Value = Convert.ToString("hola");
// desp de esto el color
if ((datosMo) != "") //cambia si la celda no esta vacia de determinado dia
{
DgvConsu.Rows[d].Cells[0].Style.BackColor = Color.Red;
}
if ((datosTu) != "")
{
DgvConsu.Rows[d].Cells[1].Style.BackColor = Color.Red;
}
if ((datosWe) != "")
{
DgvConsu.Rows[d].Cells[2].Style.BackColor = Color.Red;
}
if ((datosTh) != "")
{
DgvConsu.Rows[d].Cells[3].Style.BackColor = Color.Red;
}
if ((datosFr) != "")
{
DgvConsu.Rows[d].Cells[4].Style.BackColor = Color.Red;
}
}
miconexion.Close();
}
catch (Exception)
{
MessageBox.Show("Error en conexion");
throw;
}
switch (dia)
{
case "Monday":
fecha = fecha.AddDays(1);
break;
case "Tuesday":
fecha = fecha.AddDays(1);
break;
case "Wednesday":
fecha = fecha.AddDays(1);
break;
case "Thursday":
fecha = fecha.AddDays(1);
break;
case "Friday":
fecha = fecha.AddDays(-4);
break;
}
c = c + 1;
dia = Convert.ToString(fecha.DayOfWeek); //cambia el nombre del dia porque cambia la fecha
} // termina el while de los dias
if (d == 0)
{
DgvConsu.Rows[d].HeaderCell.Value = "08:00:00";
}
DgvConsu.Rows[d].HeaderCell.Value = hora;
d = d + 1;
switch (d) // va cambiando las horas necesitadas segun el contador
{
case 1:
hora = "08:30:00";
break;
case 2:
hora = "09:00:00";
break;
case 3:
hora = "09:30:00";
break;
case 4:
hora = "10:00:00";
break;
}
} // termina el while de las horas
} // fin del else
}
en general esta todo comentado pero si tienen alguna duda no duden! jaja en contactarne. mucha suerte!
No hay comentarios.:
Publicar un comentario