miércoles, 21 de octubre de 2015

Y al fin programacion!

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!

domingo, 11 de octubre de 2015

Viajes y pensamientos

buenas lectores, tanto tiempo! hoy vengo con frases cortas para que ustedes reflexionen son las que aprendí en mis últimos 3 viajes:
- "los amigos de verdad existen aun en la distancia"
- "la diferencia entre la vida que quieres y la que deseas esta en la actitud"
- "el futuro es el hoy"
- "alejarse de las cosas que te hacen mal es no rechazarlas de un principio sino aceptarlas reflexionaras y darse cuenta de cuando alejarse"
y la famosa:
-"think different"
Desde ya muchas gracias!