protected InfReporte ObtenerInforme()
    {
        DataRow    fila;
        DataTable  informacion = new DataTable();
        InfReporte datos       = new InfReporte();

        int curs;

        curs = Convert.ToInt16(Session["Cursoestu"]);

        informacion = datos.Tables["EstudianteCurso"]; // nombre de la tabla que cree en crystal en el InfReporte.xsd

        DaoUser profesor = new DaoUser();

        DataTable Intermedio = profesor.gEstudiante(curs);


        for (int i = 0; i < Intermedio.Rows.Count; i++) // for para llenar la lista con cada usurario
        //// si es solo un dato como con el certificado de estudio, no se hace el for
        {
            fila = informacion.NewRow();
            ///El primero [""]  es como se llama el campo de la tabla de crystal y el segundo [""] el campo de la tabla en postgres
            fila["Apellido"] = Intermedio.Rows[i]["apellido_usua"].ToString();
            fila["Nombre"]   = Intermedio.Rows[i]["nombre_usua"].ToString();


            informacion.Rows.Add(fila);
        }
        return(datos);
    }
    protected void btn_CursoMateriaAceptar_Click(object sender, EventArgs e)
    {
        DaoUser datos = new DaoUser();
        EUser   enc   = new EUser();
        string  dat;

        if (ddt_curso.SelectedValue == "0" || ddt_anio.SelectedValue == "0" || ddt_Dia.SelectedValue == "0" || ddt_Docente.SelectedValue == "0" || ddt_Hora.SelectedValue == "0" || ddt_Materia.SelectedValue == "0")
        {
            L_Error.Text = "Falta seleccionar";
        }
        else
        {
            bool ok = validar_horario();

            if (ok == true)
            {
                bool wp = validar_profesor();
                if (wp == true)
                {
                    enc.Materia = ddt_Materia.Text;

                    enc.Dia_materia = ddt_Dia.Text;
                    enc.Hora_in     = ddt_Hora.Text;

                    DataTable registros = datos.obtenerHora(enc);

                    enc.Cur_mat    = registros.Rows[0]["id_mf"].ToString();
                    enc.Curso      = ddt_curso.Text;
                    enc.Id_docente = ddt_Docente.Text;

                    datos.insertarCursoMateria(enc);

                    int       cur = Convert.ToInt32(ddt_curso.Text);
                    DataTable est = datos.gEstudiante(cur);
                    int       n   = est.DefaultView.Count;

                    for (int i = 0; i < n; i++)
                    {
                        enc.Id_estudiante = est.Rows[i]["id_usua"].ToString();
                        enc.Materia       = ddt_Materia.SelectedValue;
                        datos.insertarNotaMateria(enc);
                    }

                    this.Page.Response.Write("<script language='JavaScript'>window.alert('Materia Insertada a Curso con Exito');</script>");
                    horario();
                }
                else
                {
                    L_Error.Text = "El docente presenta un cruce de Horarios";
                }
            }
            else
            {
                L_Error.Text = "Presenta un cruce de Horarios";
            }
        }
    }