private List <MirrorCLS> GetStudentData(string sCollege, string sDegree, string sMajor, int Reason, int Period, string sNo, int iAdvisor, int CancelTerm, Plans Plan, InitializeModule.EnumOptions iOption, SqlConnection Conn, InitializeModule.EnumCampus Campus)
    {
        List <MirrorCLS> Result = new List <MirrorCLS>();

        try
        {
            string sSQL = GetSDSQL(sCollege, sDegree, sMajor, Reason, Period, sNo, iAdvisor, CancelTerm, iOption);

            //List<Plans> Plan = new List<Plans>();
            //PlansDAL myPlansDAL = new PlansDAL();
            //Plan = myPlansDAL.GetPlans(sCollege, sDegree, sMajor, false, Campus);
            //int iPlan = Plan[0].Courses.Count;
            SqlCommand    Cmd = new SqlCommand(sSQL, Conn);
            SqlDataReader Rd  = Cmd.ExecuteReader();
            MirrorCLS     myMirror;
            int           iSerial = 0;
            while (Rd.Read())
            {
                iSerial += 1;
                myMirror = new MirrorCLS();

                myMirror.Serial        = iSerial;
                myMirror.StudentNumber = Rd["No"].ToString();
                myMirror.Name          = Rd["Name"].ToString();
                myMirror.IPeriod       = int.Parse(Rd["iPeriod"].ToString());
                myMirror.Period        = Rd["Period"].ToString();
                myMirror.ENG           = Rd["ENG"].ToString();
                myMirror.Advisor       = Rd["Advisor"].ToString();
                myMirror.SSection      = Rd["Section"].ToString();
                if (!Rd["sngGrade"].Equals(DBNull.Value))
                {
                    myMirror.SGPA = decimal.Parse(Rd["sngGrade"].ToString());
                }

                if (!Rd["Score"].Equals(DBNull.Value))
                {
                    myMirror.Score = decimal.Parse(Rd["Score"].ToString());
                }
                if (!Rd["CGPA"].Equals(DBNull.Value))
                {
                    myMirror.CGPA = decimal.Parse(Rd["CGPA"].ToString());
                }
                else
                {
                    myMirror.CGPA = 101;
                }
                if (!Rd["LTR"].Equals(DBNull.Value))
                {
                    myMirror.LTR = int.Parse(Rd["LTR"].ToString());
                }
                else
                {
                    myMirror.LTR = 0;
                }
                myMirror.Phone1 = Rd["Phone1"].ToString();
                myMirror.Phone2 = Rd["Phone2"].ToString();
                myMirror.Status = Rd["Status"].ToString();

                myMirror.IsENGRequired = (int.Parse(Rd["AcceptedTerm"].ToString()) >= 20062);
                myMirror.IsAccWanted   = bool.Parse(Rd["isAccWanted"].ToString());

                if (!Rd["MESL"].Equals(DBNull.Value))
                {
                    myMirror.MaxESL = int.Parse(Rd["MESL"].ToString());
                }
                else
                {
                    myMirror.MaxESL = 0;
                }

                if (!Rd["RMD"].Equals(DBNull.Value))
                {
                    myMirror.Remind = int.Parse(Rd["RMD"].ToString());
                }


                myMirror.Mirror = new StudentCourses.StudentMirror[Plan.Courses.Count];
                for (int i = 0; i < Plan.Courses.Count; i++)
                {
                    myMirror.Mirror[i].sCourse  = Plan.Courses[i].sCourse;
                    myMirror.Mirror[i].iCredit  = Plan.Courses[i].iCredit;
                    myMirror.Mirror[i].sGrade   = ".";
                    myMirror.Mirror[i].isPassed = false;
                    myMirror.Mirror[i].RegTerm  = 0;
                }
                Result.Add(myMirror);
            }
            //Add the last

            Rd.Close();
        }
        catch (Exception ex)
        {
            Console.WriteLine("{0} Exception caught.", ex.Message);
        }
        finally
        {
        }
        return(Result);
    }
    public List <MirrorCLS> GetGeneralMirror(string sCollege, string sDegree, string sMajor, int Reason, int Period, string sNo, InitializeModule.EnumCampus Campus)
    {
        List <MirrorCLS>     Result              = new List <MirrorCLS>();
        List <Plans>         Plan                = new List <Plans>();
        PlansDAL             myPlansDAL          = new PlansDAL();
        Connection_StringCLS myConnection_String = new Connection_StringCLS(Campus);
        SqlConnection        Conn                = new SqlConnection(myConnection_String.Conn_string);

        Conn.Open();
        try
        {
            string sSQL = "select * from GetGrades('" + sCollege + "','" + sDegree + "','" + sMajor + "'," + Reason + "," + Period + ",'" + sNo + "')";
            sSQL += " union all";
            sSQL += " select * from GetRegistered('" + sCollege + "','" + sDegree + "','" + sMajor + "'," + Reason + "," + Period + ",'" + sNo + "')";
            sSQL += " union all";
            sSQL += " select * from GetEllective('" + sCollege + "','" + sDegree + "','" + sMajor + "'," + Reason + "," + Period + ",'" + sNo + "')";
            sSQL += " order by lngSerial,byteOrder";

            Plan = myPlansDAL.GetPlans(sCollege, sDegree, sMajor, false, Campus);
            int           iPlan    = Plan[0].Courses.Count;
            SqlCommand    Cmd      = new SqlCommand(sSQL, Conn);
            SqlDataReader Rd       = Cmd.ExecuteReader();
            string        sSno     = "";
            MirrorCLS     myMirror = new MirrorCLS();;
            myMirror.StudentNumber = "Begin";
            myMirror.Serial        = 0;
            int iSerial = 0;
            int iIndex  = 0;

            while (Rd.Read())
            {
                if (sSno != Rd["sStudentNumber"].ToString())
                {
                    Result.Add(myMirror);
                    iSerial += 1;
                    myMirror = new MirrorCLS();
                    myMirror.StudentNumber = Rd["sStudentNumber"].ToString();
                    sSno            = myMirror.StudentNumber;
                    myMirror.Serial = iSerial;
                    myMirror.Mirror = new StudentCourses.StudentMirror[iPlan];
                    myMirror.Hours  = Plan[0].StudyHours;
                    myMirror.Passed = 0;
                    for (int i = 0; i < iPlan; i++)
                    {
                        myMirror.Mirror[i].sCourse = Plan[0].Courses[i].sCourse;
                        myMirror.Mirror[i].iCredit = Plan[0].Courses[i].iCredit;
                        myMirror.Mirror[i].iOrder  = Plan[0].Courses[i].iOrder;
                        myMirror.Mirror[i].iClass  = Plan[0].Courses[i].iClass;
                    }
                }
                iIndex = int.Parse(Rd["byteOrder"].ToString()) - 1;
                //myMirror.Mirror[iIndex].sCourse = Rd["sCourse"].ToString();


                myMirror.Mirror[iIndex].sGrade = Rd["sGrade"].ToString();


                if (Rd["bPassIt"].Equals(DBNull.Value))
                {
                    myMirror.Mirror[iIndex].isPassed = false;
                }
                else
                {
                    myMirror.Mirror[iIndex].isPassed = bool.Parse(Rd["bPassIt"].ToString());
                }

                //if (myMirror.IsAccWanted && myMirror.Mirror[iIndex].isPassed)
                //{
                //    myMirror.Mirror[iIndex].sGrade = "*";
                //}
            }
            //Add the last
            Result.Add(myMirror);
            Rd.Close();
        }
        catch (Exception ex)
        {
            Console.WriteLine("{0} Exception caught.", ex.Message);
        }
        finally
        {
            Plan.Clear();
            Conn.Close();
            Conn.Dispose();
        }
        return(Result);
    }
    public DataSet Prepare_RecommendationReport(MirrorCLS myMirror)
    {
        DataTable dt        = new DataTable();
        DataTable dtMirror  = new DataTable();
        DataTable dtMirror2 = new DataTable();

        DataRow dr;
        DataSet ds = new DataSet();

        try
        {
            DataColumn dc;

            //dc = new DataColumn("StudentID", Type.GetType("System.String"));
            //dtMirror.Columns.Add(dc);
            //dc = new DataColumn("Course", Type.GetType("System.String"));
            //dtMirror.Columns.Add(dc);
            //dc = new DataColumn("Grade", Type.GetType("System.String"));
            //dtMirror.Columns.Add(dc);

            //dc = new DataColumn("StudentID", Type.GetType("System.String"));
            //dtMirror2.Columns.Add(dc);
            //dc = new DataColumn("Course", Type.GetType("System.String"));
            //dtMirror2.Columns.Add(dc);
            //dc = new DataColumn("Grade", Type.GetType("System.String"));
            //dtMirror2.Columns.Add(dc);

            dc = new DataColumn("StudentID", Type.GetType("System.String"));
            dt.Columns.Add(dc);
            dc = new DataColumn("iOrder", Type.GetType("System.Int32"));
            dt.Columns.Add(dc);
            dc = new DataColumn("sCourse", Type.GetType("System.String"));
            dt.Columns.Add(dc);
            dc = new DataColumn("sDesc", Type.GetType("System.String"));
            dt.Columns.Add(dc);
            dc = new DataColumn("bShift", Type.GetType("System.Int16"));
            dt.Columns.Add(dc);
            dc = new DataColumn("sTimeFrom", Type.GetType("System.String"));
            dt.Columns.Add(dc);
            dc = new DataColumn("sTimeTo", Type.GetType("System.String"));
            dt.Columns.Add(dc);
            dc = new DataColumn("sDays", Type.GetType("System.String"));
            dt.Columns.Add(dc);
            dc = new DataColumn("bClass", Type.GetType("System.Int16"));
            dt.Columns.Add(dc);
            dc = new DataColumn("sLecturer", Type.GetType("System.String"));
            dt.Columns.Add(dc);

            //int iCount = myMirror.Mirror.Length;

            //int iCountMirror1 = 0;
            //int iCountMirror2 = 0;

            //if (iCount > 31)
            //{
            //    iCountMirror1 = 31;
            //    iCountMirror2 = iCount - iCountMirror1;
            //}
            //else
            //{
            //    iCountMirror1 = iCount;
            //    iCountMirror2 = 0;
            //}

            //for (int m = 0; m < iCountMirror1; m++)
            //{
            //    dr = dtMirror.NewRow();

            //    dr["StudentID"] = myMirror.StudentNumber;
            //    dr["Course"] = myMirror.Mirror[m].iOrder + ":" + myMirror.Mirror[m].sCourse;
            //    dr["Grade"] = myMirror.Mirror[m].sGrade;

            //    dtMirror.Rows.Add(dr);
            //}

            //for (int m = 0; m < iCountMirror2; m++)
            //{
            //    dr = dtMirror.NewRow();

            //    dr["StudentID"] = myMirror.StudentNumber;
            //    dr["Course"] = myMirror.Mirror[m].iOrder + ":" + myMirror.Mirror[m].sCourse;
            //    dr["Grade"] = myMirror.Mirror[m].sGrade;

            //    dtMirror2.Rows.Add(dr);
            //}

            int iRecommended = myMirror.Recommended.Count;

            for (int i = 0; i < iRecommended; i++)
            {
                dr = dt.NewRow();

                dr["StudentID"] = myMirror.StudentNumber;
                dr["iOrder"]    = i + 1;

                dr["sCourse"]   = myMirror.Recommended[i].sCourse;
                dr["sDesc"]     = myMirror.Recommended[i].sDesc;
                dr["bShift"]    = i;
                dr["sTimeFrom"] = GetString(i, "-");
                dr["sTimeTo"]   = GetString(i, "-");
                if (myMirror.Recommended[i].isOver)
                {
                    dr["sDays"] = i.ToString() + " " + "اخرى - Other";
                }
                else if (myMirror.Recommended[i].isLow)
                {
                    dr["sDays"] = i.ToString() + " " + "ينصح بشدة - High";
                }
                else
                {
                    dr["sDays"] = i.ToString() + " " + "ينصح به - Recommended";
                }
                dr["bClass"]    = i;
                dr["sLecturer"] = GetString(i, "-");

                dt.Rows.Add(dr);
            }
            //Add 3 Empty Rows
            int iTimes = 0;
            for (int i = iRecommended; i < iRecommended + 2; i++)
            {
                dr = dt.NewRow();
                dr["StudentID"] = myMirror.StudentNumber;
                dr["iOrder"]    = i + 1;

                iTimes       += 1;
                dr["sCourse"] = GetString(iTimes, ".");
                dr["sDesc"]   = GetString(iTimes, ".");

                dr["bShift"]    = i;
                dr["sTimeFrom"] = GetString(i, "-");
                dr["sTimeTo"]   = GetString(i, "-");
                dr["sDays"]     = GetString(iTimes - 1, ".");
                dr["bClass"]    = i;
                dr["sLecturer"] = GetString(i, "-");;

                dt.Rows.Add(dr);
                //Collect Additional Times
            }

            dt.TableName = "Recommended";
            dt.AcceptChanges();
            ds.Tables.Add(dt);

            //dtMirror.TableName = "Mirror";
            //dtMirror.AcceptChanges();
            //ds.Tables.Add(dtMirror);

            //dtMirror2.TableName = "Mirror2";
            //dtMirror2.AcceptChanges();
            //ds.Tables.Add(dtMirror2);
        }
        catch (Exception exp)
        {
            Console.WriteLine("{0} Exception caught.", exp);
        }
        finally
        {
        }
        return(ds);
    }
        private System.Web.UI.WebControls.Table Create_Rec_Table(MirrorCLS myMirror)
        {
            System.Web.UI.WebControls.Table MyTable = new System.Web.UI.WebControls.Table();
            try
            {
                myList.Add(myMirror);
                //First Row
                MyTable.Width       = Unit.Percentage(100);
                MyTable.BorderWidth = 1;
                MyTable.GridLines   = GridLines.Horizontal;


                TableRow  tr = new TableRow();
                TableCell td = new TableCell();


                //Fifth
                tr.CssClass   = "th";
                td.ColumnSpan = 4;
                td.Text       = "Student Mirror";
                tr.Cells.Add(td);
                MyTable.Rows.Add(tr);

                tr            = new TableRow();
                td            = new TableCell();
                td.ColumnSpan = 4;


                string sPath  = "";
                string sTable = "<table align='left' border='1' >";
                sTable += "<tr>";

                int    iMax    = 0;
                string sDegree = myMirror.SDegree;
                string sMajor  = myMirror.SMajor;
                //Get the count of general courses
                iMax = LibraryMOD.GetMajorGeneralIndex(sDegree, sMajor);

                for (int i = 0; i < iMax; i++)
                {
                    sPath   = "Images/Majors/GIF/" + myMirror.Mirror[i].sCourse + ".gif";
                    sTable += "<td><img alt='' src='" + sPath + "' /></td>";
                }
                sTable += "</tr>";
                sTable += "<tr>";

                for (int i = 0; i < iMax; i++)
                {
                    if (myMirror.Mirror[i].isRecommended)
                    {
                        sTable += "<td style='font-family: Arial, Helvetica, sans-serif; font-size: small; color: #000000; text-align: center; vertical-align: top; background-color: #F2B702'>" + myMirror.Mirror[i].sGrade + "</td>";
                    }
                    else
                    {
                        sTable += "<td style='font-family: Arial, Helvetica, sans-serif; font-size: small; color: #000000; text-align: center; vertical-align: top'>" + myMirror.Mirror[i].sGrade + "</td>";
                    }
                }
                sTable += "</tr>";
                sTable += "</table>";

                Literal Lt = new Literal();
                Lt.Text = sTable;
                td.Controls.Add(Lt);
                tr.Cells.Add(td);

                MyTable.Rows.Add(tr);

                tr            = new TableRow();
                td            = new TableCell();
                td.ColumnSpan = 4;

                int iCourses = 0;
                iCourses = myMirror.Mirror.Length;

                sPath   = "";
                sTable  = "<table align='left' border='1' >";
                sTable += "<tr>";
                for (int i = iMax; i < iCourses; i++)
                {
                    sPath   = "Images/Majors/GIF/" + myMirror.Mirror[i].sCourse + ".gif";
                    sTable += "<td><img alt='' src='" + sPath + "' /></td>";
                }
                sTable += "</tr>";
                sTable += "<tr>";
                for (int i = iMax; i < iCourses; i++)
                {
                    if (myMirror.Mirror[i].isRecommended)
                    {
                        sTable += "<td style='font-family: Arial, Helvetica, sans-serif; font-size: small; color: #000000; text-align: center; vertical-align: top; background-color: #F2B702'>" + myMirror.Mirror[i].sGrade + "</td>";
                    }
                    else
                    {
                        sTable += "<td style='font-family: Arial, Helvetica, sans-serif; font-size: small; color: #000000; text-align: center; vertical-align: top'>" + myMirror.Mirror[i].sGrade + "</td>";
                    }
                }
                sTable += "</tr>";
                sTable += "</table>";

                Lt      = new Literal();
                Lt.Text = sTable;
                td.Controls.Add(Lt);
                tr.Cells.Add(td);

                MyTable.Rows.Add(tr);

                //Majoe Electives & Free Electives
                MirrorDAL myMirrorDAL = new MirrorDAL();

                tr            = new TableRow();
                td            = new TableCell();
                td.ColumnSpan = 4;

                string MElective = myMirrorDAL.GetMajorElectiveCourses(myMirror.StudentNumber, Campus);
                string FElective = myMirrorDAL.GetFreeElectiveCourses(myMirror.StudentNumber, Campus);
                if (MElective.Length > 0 || FElective.Length > 0)
                {
                    tr            = new TableRow();
                    td            = new TableCell();
                    td.ColumnSpan = 4;
                }
                td.Text = "";
                if (MElective.Length > 0)
                {
                    td.Text += "Major Electives: " + "[ " + MElective + " ]";
                }

                if (FElective.Length > 0)
                {
                    if (MElective.Length > 0)
                    {
                        td.Text += " --- ";
                    }
                    td.Text += "Free Electives [" + FElective + " ]";
                }
                if (MElective.Length > 0 || FElective.Length > 0)
                {
                    tr.Cells.Add(td);
                    MyTable.Rows.Add(tr);
                }

                //Recommended
                tr = new TableRow();
                td = new TableCell();

                tr.CssClass   = "th";
                td.ColumnSpan = 4;
                td.Text       = "Recommended Courses";

                tr.Cells.Add(td);
                MyTable.Rows.Add(tr);

                int iCompletedHours = LibraryMOD.GetCompletedHours(sNo, Campus);

                //Tr=new TableRow();
                for (int i = 0; i < myMirror.Recommended.Count; i++)
                {
                    if ((iCompletedHours < 99 && myMirror.Recommended[i].sCourse.Contains("415") && myMirror.Recommended[i].sCourse != "RTV415") || (iCompletedHours < 99 && myMirror.Recommended[i].sCourse.Contains("419")))
                    {
                        //dont add Internship & graduation project in completed hours less than 99 credit hours
                    }
                    else
                    {
                        tr = new TableRow();
                        if (myMirror.Recommended[i].isOver)
                        {
                            tr.CssClass = "R_Critical";
                        }
                        else
                        {
                            if (i % 2 == 0)
                            {
                                tr.CssClass = "R_NormalWhite";
                            }
                            else
                            {
                                tr.CssClass = "R_NormalGray";
                            }
                        }
                        td                 = new TableCell();
                        td.Text            = (i + 1).ToString();
                        td.HorizontalAlign = HorizontalAlign.Center;
                        tr.Cells.Add(td);

                        td                 = new TableCell();
                        td.Text            = myMirror.Recommended[i].sCourse;
                        td.HorizontalAlign = HorizontalAlign.Center;
                        tr.Cells.Add(td);

                        td                 = new TableCell();
                        td.ColumnSpan      = 2;
                        td.Text            = myMirror.Recommended[i].sDesc;
                        td.HorizontalAlign = HorizontalAlign.Left;
                        tr.Cells.Add(td);

                        MyTable.Rows.Add(tr);
                    }
                }
            }
            catch (Exception ex)
            {
                LibraryMOD.ShowErrorMessage(ex);
            }
            finally
            {
            }
            return(MyTable);
        }
        private void Export()
        {
            ReportDocument           myReport            = new ReportDocument();
            List <Programs_Advisors> myAdvisors          = new List <Programs_Advisors>();
            Programs_AdvisorsDAL     myAdvisorsDAL       = new Programs_AdvisorsDAL();
            RecommendationDAL        myRecommendationDAL = new RecommendationDAL();

            try
            {
                MirrorCLS myMirror    = new MirrorCLS();
                MirrorDAL myMirrorDAL = new MirrorDAL();
                myMirror = myList[0];


                DataSet rptDS = new DataSet();


                rptDS = myRecommendationDAL.Prepare_RecommendationReport(myMirror);

                string reportPath = Server.MapPath("Reports/Recommended_Report3.rpt");
                myReport.Load(reportPath);
                myReport.SetDataSource(rptDS);


                TextObject txt;

                int iCount = myMirror.Mirror.Length;
                if (iCount > 60)
                {
                    iCount = 60;
                }
                for (int i = 0; i < 60; i++)
                {
                    txt       = (TextObject)myReport.ReportDefinition.ReportObjects["h" + (i + 1).ToString()];
                    txt.Text  = "";
                    txt.Color = Color.White;
                    txt.Color = Color.White;
                    txt.Border.BorderColor     = Color.White;
                    txt.Border.BackgroundColor = Color.White;
                    txt       = (TextObject)myReport.ReportDefinition.ReportObjects["g" + (i + 1).ToString()];
                    txt.Text  = "";
                    txt.Color = Color.White;
                    txt.Border.BorderColor     = Color.White;
                    txt.Border.BackgroundColor = Color.White;
                }

                for (int i = 0; i < iCount; i++)
                {
                    txt      = (TextObject)myReport.ReportDefinition.ReportObjects["h" + (i + 1).ToString()];
                    txt.Text = myMirror.Mirror[i].sCourse;
                    switch (myMirror.Mirror[i].iClass)
                    {
                    case 9:    //MEelect
                        txt.Text = myMirror.Mirror[i].sCourse + "*";
                        break;

                    case 11:    //CEelect
                        txt.Text = myMirror.Mirror[i].sCourse + "#";
                        break;
                    }
                    txt.Color = Color.Black;
                    txt.Border.BorderColor     = Color.Black;
                    txt.Border.BackgroundColor = Color.Silver;
                    txt       = (TextObject)myReport.ReportDefinition.ReportObjects["g" + (i + 1).ToString()];
                    txt.Text  = myMirror.Mirror[i].sGrade;
                    txt.Color = Color.Black;
                    txt.Border.BorderColor     = Color.Black;
                    txt.Border.BackgroundColor = Color.White;
                }

                txt      = (TextObject)myReport.ReportDefinition.ReportObjects["Major_txt"];
                txt.Text = myMirror.Major;


                //Previous Semester
                Campus = (InitializeModule.EnumCampus)Session["CurrentCampus"];
                txt    = (TextObject)myReport.ReportDefinition.ReportObjects["txtregisteredCourseInPrevSem"];
                if (iRegSem == 4)
                {
                    int iRegCoursesPrevSem = 0;
                    iRegCoursesPrevSem = LibraryMOD.GetRegCoursesPrevSem(myMirror.StudentNumber, iRegYear, iRegSem, Campus);

                    txt.Text = "Previous Semester Courses : " + iRegCoursesPrevSem.ToString();
                }
                else
                {
                    txt.Text  = "";
                    txt.Width = 0;
                }


                txt = (TextObject)myReport.ReportDefinition.ReportObjects["cgpa_txt"];
                if (myMirror.CGPA != 101)
                {
                    txt.Text = string.Format("{0:f}", myMirror.CGPA);
                }

                txt      = (TextObject)myReport.ReportDefinition.ReportObjects["esl_txt"];
                txt.Text = myMirror.Advisor;

                txt      = (TextObject)myReport.ReportDefinition.ReportObjects["eng_txt"];
                txt.Text = myMirror.ENG;

                txt      = (TextObject)myReport.ReportDefinition.ReportObjects["score_txt"];
                txt.Text = string.Format("{0:f}", myMirror.Score);

                txt = (TextObject)myReport.ReportDefinition.ReportObjects["Major_Free_Elective_txt"];
                string MElective = myMirrorDAL.GetMajorElectiveCourses(myMirror.StudentNumber, Campus);
                string FElective = myMirrorDAL.GetFreeElectiveCourses(myMirror.StudentNumber, Campus);
                txt.Text = "";
                if (MElective.Length > 0)
                {
                    txt.Text += "Major Electives: " + "[ " + MElective + " ]";
                }
                if (FElective.Length > 0)
                {
                    if (MElective.Length > 0)
                    {
                        txt.Text += " --- ";
                    }
                    txt.Text += "Free Electives [" + FElective + " ]";
                }

                txt      = (TextObject)myReport.ReportDefinition.ReportObjects["Session_txt"];
                txt.Text = myMirror.Period;

                txt = (TextObject)myReport.ReportDefinition.ReportObjects["Term_txt"];
                string sTerm = LibraryMOD.GetTermDesc(iRegYear, iRegSem);

                txt.Text = sTerm;

                txt      = (TextObject)myReport.ReportDefinition.ReportObjects["Advisor_txt"];
                txt.Text = LibraryMOD.GetAdvisorEmail(myMirror.Advisor);

                txt = (TextObject)myReport.ReportDefinition.ReportObjects["txtTitle"];

                txt.Text = myMirror.StudentNumber.Replace(".", "") + " - " + myMirror.Name;

                txt = (TextObject)myReport.ReportDefinition.ReportObjects["UserTXT"];
                string sUserName = Session["CurrentUserName"].ToString();
                txt.Text = sUserName;

                //coordinator_txt

                //advisors_txt

                string sCoordinator                   = "";
                string sAdvisors                      = "";
                string sMajor                         = "";
                List <Applications> myStudent         = new List <Applications>();
                ApplicationsDAL     myApplicationsDAL = new ApplicationsDAL();
                myStudent = myApplicationsDAL.GetList(Campus, " lngStudentNumber='" + myMirror.StudentNumber + "'", false);
                if (myStudent.Count > 0)
                {
                    sMajor = myStudent[0].strSpecialization;
                }
                myStudent.Clear();

                myAdvisors = myAdvisorsDAL.GetPrograms_Advisors(Campus, sMajor);
                for (int i = 0; i < myAdvisors.Count; i++)
                {
                    if (myAdvisors[i].byteCategory == 1)
                    {
                        sCoordinator += LibraryMOD.GetAdvisorEmail(myAdvisors[i].SAdvisor);
                    }
                    else
                    {
                        sAdvisors += LibraryMOD.GetAdvisorEmail(myAdvisors[i].SAdvisor) + ",";
                    }
                }

                txt      = (TextObject)myReport.ReportDefinition.ReportObjects["coordinator_txt"];
                txt.Text = sCoordinator;
                txt      = (TextObject)myReport.ReportDefinition.ReportObjects["advisors_txt"];
                txt.Text = sAdvisors;

                myReport.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Page.Response, true, "ECTReport");
            }
            catch (Exception exp)
            {
                Console.WriteLine("{0} Exception caught.", exp);
            }
            finally
            {
                myAdvisors.Clear();
                myReport.Close();
                myReport.Dispose();
            }
        }
        private System.Web.UI.WebControls.Table Create_Table(MirrorCLS myMirror)
        {
            System.Web.UI.WebControls.Table MyTable = new System.Web.UI.WebControls.Table();
            try
            {
                myList.Add(myMirror);
                //First Row
                //MyTable.Width = 70%;
                MyTable.Width       = Unit.Percentage(100);
                MyTable.BorderWidth = 1;
                MyTable.GridLines   = GridLines.Horizontal;
                //MyTable.ID = "tblDetail";

                TableHeaderRow  Hr = new TableHeaderRow();
                TableHeaderCell Hc = new TableHeaderCell();
                TableCell       Hd = new TableCell();

                Hc.ColumnSpan      = 4;
                Hc.Text            = "Student Info";
                Hc.HorizontalAlign = HorizontalAlign.Center;
                Hr.Cells.Add(Hc);
                MyTable.Rows.Add(Hr);

                //No
                Hr = new TableHeaderRow();

                Hc      = new TableHeaderCell();
                Hc.Text = "No : ";
                //Hc.HorizontalAlign = HorizontalAlign.Center;
                Hr.Cells.Add(Hc);

                Hd                 = new TableCell();
                Hd.Text            = sNo.Replace(".", "");
                Hd.HorizontalAlign = HorizontalAlign.Center;
                Hr.Cells.Add(Hd);
                //Name
                Hc      = new TableHeaderCell();
                Hc.Text = "Name : ";
                //Hc.HorizontalAlign = HorizontalAlign.Center;
                Hr.Cells.Add(Hc);

                Hd                 = new TableCell();
                Hd.Text            = sName;
                Hd.HorizontalAlign = HorizontalAlign.Center;
                Hr.Cells.Add(Hd);

                MyTable.Rows.Add(Hr);


                //Second Row
                Hr = new TableHeaderRow();

                Hc      = new TableHeaderCell();
                Hc.Text = "Major : ";
                //Hc.HorizontalAlign = HorizontalAlign.Center;
                Hr.Cells.Add(Hc);

                Hd                 = new TableCell();
                Hd.ColumnSpan      = 3;
                Hd.Text            = myMirror.Major;
                Hd.HorizontalAlign = HorizontalAlign.Center;
                Hr.Cells.Add(Hd);

                MyTable.Rows.Add(Hr);

                //Third Row
                Hr = new TableHeaderRow();

                Hc      = new TableHeaderCell();
                Hc.Text = "CGPA : ";
                //Hc.HorizontalAlign = HorizontalAlign.Center;
                Hr.Cells.Add(Hc);

                Hd = new TableCell();
                if (myMirror.CGPA != 101)
                {
                    Hd.Text = string.Format("{0:F}", myMirror.CGPA);
                }
                Hd.HorizontalAlign = HorizontalAlign.Center;
                Hr.Cells.Add(Hd);

                Hc      = new TableHeaderCell();
                Hc.Text = "Advisor : ";
                //Hc.HorizontalAlign = HorizontalAlign.Center;
                Hr.Cells.Add(Hc);

                Hd = new TableCell();
                //Get Max Esl (Advisor Now)
                Hd.HorizontalAlign = HorizontalAlign.Center;

                Hd.Text = LibraryMOD.GetAdvisorEmail(myMirror.Advisor);

                Hr.Cells.Add(Hd);

                MyTable.Rows.Add(Hr);

                //Fourth Row
                Hr = new TableHeaderRow();

                Hc      = new TableHeaderCell();
                Hc.Text = "ENG : ";
                Hr.Cells.Add(Hc);

                Hd                 = new TableCell();
                Hd.Text            = myMirror.ENG;
                Hd.HorizontalAlign = HorizontalAlign.Center;
                Hr.Cells.Add(Hd);

                Hc      = new TableHeaderCell();
                Hc.Text = "Score : ";
                Hr.Cells.Add(Hc);

                Hd = new TableCell();

                Hd.Text            = string.Format("{0:F}", myMirror.Score);
                Hd.HorizontalAlign = HorizontalAlign.Center;
                Hr.Cells.Add(Hd);

                MyTable.Rows.Add(Hr);
            }
            catch (Exception ex)
            {
                LibraryMOD.ShowErrorMessage(ex);
            }
            finally
            {
            }
            return(MyTable);
        }