天下無雙
阿龍 --质量是流程决定的。

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
using WebStudent.DLL;
using WebStudent.UserControl;
using System.Data.SqlClient;
using System.Collections.Generic;
using SMB.Data;
using SMB.WebControls.Common;
using SMB.Utility;

namespace WebStudent.Personal
{
    public partial class StudentCreditScoreTwo : System.Web.UI.Page
    {
        User u;
        //StuSetScoreOne stuScoreOne;
        DataTable dt;
        protected void Page_Load(object sender, EventArgs e)
        {
            u = new User(Session["LoginID"]);
            if (u.UserID == DBNull.Value.ToString() || u.UserID == "") Response.Redirect("~/Login.aspx");
            u = (User)Session["LoginUser"];
            dt = (DataTable)Session["StudentCreditScoreTwo.sour"];
            if (!IsPostBack)
            {

                DisplayClass();
                DisplayCourseByClass();
                ucProj.InitControl();
              
            }
            JScript.SmarkScroll();
            //Scroll();
        }

        protected override void OnInit(EventArgs e)
        {
        }
        /// <summary>
        /// 显示所登录用户的所授之班级资料
        /// </summary>
        /// <param name="UserID">用户ID</param>
        protected void DisplayClassCourse()
        {
            List<SqlParameter> sp = new List<SqlParameter>();
            sp.Add(new SqlParameter("@in_year", u.Year));
            sp.Add(new SqlParameter("@in_term", u.Term));
            sp.Add(new SqlParameter("@in_clsid", ddlClass.SelectedValue.ToString()));
            sp.Add(new SqlParameter("@in_subid",ddlCourse.SelectedValue.ToString()));
            DataTable dt = Utility.ExecuteQuery("sp_w01_read_score", sp);
            Session["StudentCreditScoreTwo.sour"] = dt;
            BindGridViewClassCourse(dt);
            BindDDLProj(dt);
            BindPhraseRemark(dt);
        }
        protected void BindGridViewClassCourse(DataTable dt)
        {
            GridViewClassCourse.DataSource = dt;
            GridViewClassCourse.DataBind();          
        }
        protected void BindPhraseRemark(DataTable dt)
        {
            foreach (GridViewRow gvr in GridViewClassCourse.Rows)
            {
                int i = gvr.DataItemIndex;
                //ucPhraseComboBox ucPhraseRemark = (ucPhraseComboBox)gvr.FindControl("ucPhraseRemark");
                //ucPhraseRemark.InitControl();
                //ucPhraseRemark.ComboBox.Text = dt.Rows[i]["tmp_notice2"].ToString();
                ucPhraseSelectorCommon ucPhraseSelectorCommon1 = (ucPhraseSelectorCommon)gvr.FindControl("ucPhraseSelectorCommon1");
                ucPhraseSelectorCommon1.InitControl();
                ucPhraseSelectorCommon1.PhraseName=dt.Rows[i]["tmp_notice2"].ToString();
            }
 
        }
      

        /// <summary>
        /// 根据次数绑定已存在数据的评测项目
        /// </summary>
        protected void BindDDLProj(DataTable dt)
        {
            if (dt.Rows.Count > 0)
            {
                ucProj.ComboBox.Text = dt.Rows[0]["tmp_score2_item"].ToString();
            }
        }

 

        protected void btnSave_Click(object sender, EventArgs e)
        {
            Teacher tea = (Teacher)Session["StudentCreditScoreTwo.Tea"];
            FetchGridDate();
            foreach (DataRow dr in dt.Rows)
            {
                try
                {
                    List<SqlParameter> sp = new List<SqlParameter>();
                    sp.Add(new SqlParameter("@in_stdkey", Convert.ToDecimal(dr["tmp_stdkey"])));
                    sp.Add(new SqlParameter("@in_year", u.Year));
                    sp.Add(new SqlParameter("@in_term", u.Term));
                    sp.Add(new SqlParameter("@in_clsid", ddlClass.SelectedValue.ToString()));
                    sp.Add(new SqlParameter("@in_subid", ddlCourse.SelectedValue.ToString()));
                    sp.Add(new SqlParameter("@in_group", dr["tmp_group"].ToString()));
                    sp.Add(new SqlParameter("@in_rate1", tea.Rate1));
                    sp.Add(new SqlParameter("@in_rate2", tea.Rate2));
                    sp.Add(new SqlParameter("@in_rate", tea.Rate));
                    sp.Add(new SqlParameter("@in_usual_rate", tea.OrdRate));


                    sp.Add(new SqlParameter("@in_score2_item", dr["tmp_score2_item"].ToString()));
                    sp.Add(new SqlParameter("@in_score2",Convert.ToDecimal(dr["tmp_Score2"])));
                    sp.Add(new SqlParameter("@in_kind",1));
                    sp.Add(new SqlParameter("@in_notice2", dr["tmp_notice2"]));
                    int i = Utility.ExecuteNonQuery("sp_w01_set_score2", sp);
                }
                catch (Exception ex)
                {
                    //JScript.Alert(ex.Message);
                    ShowAlert(ex.Message);
                }
            }

            DisplayClassCourse(); //重新刷新数据
            //ShowMsg();

        }

        protected void FetchGridDate()
        {
            //stuScoreOne = new StuSetScoreOne();
            string Class = ddlClass.SelectedValue.ToString();
            string Course = ddlCourse.SelectedValue.ToString();

            try
            {
                foreach (GridViewRow gvr in GridViewClassCourse.Rows)
                {
                    int i = gvr.DataItemIndex;
                    TextBox txt = (TextBox)gvr.FindControl("txtScore");
                    //ucPhraseComboBox PhraseRemark = (ucPhraseComboBox)gvr.FindControl("ucPhraseRemark");
                    ucPhraseSelectorCommon ucPhraseSelectorCommon1 = (ucPhraseSelectorCommon)gvr.FindControl("ucPhraseSelectorCommon1");
                    dt.Rows[i]["tmp_score2_item"] = ucProj.ComboBox.Text;
                    dt.Rows[i]["tmp_Score2"] = CommOp.ToDecimalScore(txt.Text);
                    //dt.Rows[i]["tmp_notice2"] = PhraseRemark.ComboBox.Text;
                    dt.Rows[i]["tmp_notice2"] = ucPhraseSelectorCommon1.PhraseName;
                }
            }
            catch (Exception ex)
            {
                //JScript.Alert(ex.Message);
                ShowAlert(ex.Message);
            }

        }

        #region --手动排序--
        /// <summary>
        /// 手动排序
        /// </summary>
         public SortDirection GridViewSortDirection
        {

            get

            {

            if (ViewState["sortDirection"] == null)

            ViewState["sortDirection"] = SortDirection.Ascending;

            return (SortDirection) ViewState["sortDirection"];

           }

                set { ViewState["sortDirection"] = value; }

            }

        protected void GridViewClassCourse_Sorting(object sender, GridViewSortEventArgs e)
        {

        string sortExpression = e.SortExpression;

        if (GridViewSortDirection == SortDirection.Ascending)

        {

        GridViewSortDirection = SortDirection.Descending;

        SortGridView(sortExpression,"DESC");

        }

        else

        {

        GridViewSortDirection = SortDirection.Ascending;

        SortGridView(sortExpression, "Asc");

        }

        }

        private void SortGridView(string sortExpression,string direction)
        {

            DataTable dt = (DataTable)Session["StudentCreditScoreTwo.sour"];

            DataView dv = new DataView(dt);

            dv.Sort = sortExpression+" " +direction;

            GridViewClassCourse.DataSource = dv;

            GridViewClassCourse.DataBind();

        }
        #endregion --手动排序--

        /// <summary>
        /// 显示所登录用户的所授之班级资料
        /// </summary>
        /// <param name="UserID">用户ID</param>
        protected void DisplayClass()
        {
            List<SqlParameter> sp = new List<SqlParameter>();
            sp.Add(new SqlParameter("@in_year", u.Year));
            sp.Add(new SqlParameter("@in_term", u.Term));
            sp.Add(new SqlParameter("@in_idno", u.UserID));
            sp.Add(new SqlParameter("@in_tutor", 2));
            DataTable dt = Utility.ExecuteQuery("sp_w01_read_teaclass", sp);
            BindDDLClass(dt);
        }
        protected void BindDDLClass(DataTable dt)
        {
            ddlClass.DataSource = dt;
            ddlClass.DataValueField = "cou_clsid";
            ddlClass.DataTextField = "cls_fname";
            ddlClass.DataBind();
        }

        /// <summary>
        /// 根据班级来过滤出某班级的科目信息
        /// </summary>
        /// <param name="UserID">用户ID</param>
        protected void DisplayCourseByClass()
        {
            List<SqlParameter> sp = new List<SqlParameter>();
            sp.Add(new SqlParameter("@in_year", u.Year));
            sp.Add(new SqlParameter("@in_term", u.Term));
            sp.Add(new SqlParameter("@in_idno", u.UserID));
            sp.Add(new SqlParameter("@in_clsid ",ddlClass.SelectedValue.ToString()));
            DataTable dt = Utility.ExecuteQuery("sp_w01_read_tecourse2", sp);
            BindDDLCourse(dt);
           
        }
        protected void BindDDLCourse(DataTable dt)
        {
            ddlCourse.DataSource = dt;
            ddlCourse.DataTextField = "sub_name";
            ddlCourse.DataValueField = "tea_subid";
            ddlCourse.DataBind();
        }


        /// <summary>
        /// 根据所选班级自动更新后面的课程名称
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ddlClass_SelectedIndexChanged(object sender, EventArgs e)
        {
            DisplayCourseByClass();
        }

        /// <summary>
        /// 查询/修改指定次数的评量成绩
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ddlType_SelectedIndexChanged(object sender, EventArgs e)
        {
            DisplayClassCourse();
        }


        /// <summary>
        /// 选完课程后BIND数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ddlCourse_SelectedIndexChanged(object sender, EventArgs e)
        {
            InitClass();
            DisplayClassCourse();
        }

        protected void InitClass()
        {
            Teacher tea = new Teacher(u.Year, u.Term, u.UserID, ddlClass.SelectedValue.ToString(), ddlCourse.SelectedValue.ToString());
            Session["StudentCreditScoreTwo.Tea"] = tea;
        }

        /// <summary>
        /// 传送注册组(与存档同,不同在@in_kind=2)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSend_Click(object sender, EventArgs e)
        {
            Teacher tea = (Teacher)Session["StudentCreditScoreTwo.Tea"];
            FetchGridDate();
            foreach (DataRow dr in dt.Rows)
            {
                try
                {
                    List<SqlParameter> sp = new List<SqlParameter>();
                    sp.Add(new SqlParameter("@in_stdkey", Convert.ToDecimal(dr["tmp_stdkey"])));
                    sp.Add(new SqlParameter("@in_year", u.Year));
                    sp.Add(new SqlParameter("@in_term", u.Term));
                    sp.Add(new SqlParameter("@in_clsid", ddlClass.SelectedValue.ToString()));
                    sp.Add(new SqlParameter("@in_subid", ddlCourse.SelectedValue.ToString()));
                    sp.Add(new SqlParameter("@in_group", dr["tmp_group"].ToString()));
                    sp.Add(new SqlParameter("@in_rate1", tea.Rate1));
                    sp.Add(new SqlParameter("@in_rate2", tea.Rate2));
                    sp.Add(new SqlParameter("@in_rate", tea.Rate));
                    sp.Add(new SqlParameter("@in_usual_rate", tea.OrdRate));


                    sp.Add(new SqlParameter("@in_score2_item", dr["tmp_score2_item"].ToString()));
                    sp.Add(new SqlParameter("@in_score2", Convert.ToDecimal(dr["tmp_Score2"])));
                    sp.Add(new SqlParameter("@in_kind", 2));
                    sp.Add(new SqlParameter("@in_notice2", dr["tmp_notice2"]));
                    int i = Utility.ExecuteNonQuery("sp_w01_set_score2", sp);
                }
                catch (Exception ex)
                {
                    //JScript.Alert(ex.Message);
                    ShowAlert(ex.Message);
                }
            }


        }
        protected void btnSch_Click(object sender, EventArgs e)
        {
            InitClass();
            DisplayClassCourse();
            ShowMsg();
        }

        protected void ShowMsg()
        {
            DataTable pl = (DataTable)Session["StudentCreditScoreTwo.sour"];
            if (pl.Rows.Count > 0)
            {

                SetControl(pl);

            }
            else
            {
                btnSave.Enabled = false;
                btnSend.Enabled = false;
            }
        }


        protected void SetControl(DataTable dt)
        {
            Teacher tea = new Teacher(u.Year, u.Term, u.UserID, ddlClass.SelectedValue.ToString(), ddlCourse.SelectedValue.ToString());
            Session["StudentCreditScoreTwo.Tea"] = tea;
            DataRow dr;
            DateTime dateStart, dateEnd;
            try
            {
                List<SqlParameter> sp = new List<SqlParameter>();
                sp.Add(new SqlParameter("@in_year", u.Year));
                sp.Add(new SqlParameter("@in_term", u.Term));
                sp.Add(new SqlParameter("@in_graid", tea.Graid));
                dr = Utility.getRecord("sp_w01_read_webindt", sp);
                dateStart = Convert.ToDateTime(dr["web_sdate"]);
                dateEnd = Convert.ToDateTime(dr["web_edate"]);
                if (dt.Rows[0]["tmp_score2_send"].ToString() != "N")
                {
                    lblMsg.Text = "第二次评量成绩已递送注册组!";
                    btnSave.Enabled = false;
                    btnSend.Enabled = false;
                }
                else if (DateTime.Now < dateStart || DateTime.Now > dateEnd)
                {
                    lblMsg.Text = "成绩输入期限已过!";
                    btnSave.Enabled = false;
                    btnSend.Enabled = false;
                }
                else
                {
                    lblMsg.Text = "请于" + dateEnd + "前列印成绩递送单,签名交注册组!";
                    btnSave.Enabled = true;
                    btnSend.Enabled = true;
                }
            }
            catch (Exception ex)
            {
                //JScript.Alert(ex.Message);
                ShowAlert(ex.Message);
            }

        }

 

 

        /// <summary>
        /// 分数小于60红色字体显示
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewClassCourse_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                TextBox txtScore = (TextBox)e.Row.Cells[8].FindControl("txtScore");
                if (decimal.Parse(txtScore.Text) < 60)
                {
                    txtScore.ForeColor = Color.Red;
                }
            }
        }

        /// <summary>
        /// 抛出消息的方法
        /// </summary>
        /// <param name="ex"></param>
        protected void ShowAlert(string ex)
        {
            string js = @"<Script language='JavaScript'> alert('{0}');  </Script>";
            Page.ClientScript.RegisterClientScriptBlock(GetType(), "", string.Format(js, ex.Replace("'", "")));
            return;
        }


        protected void Scroll()
        {
            string s2 = @"<script language=javascript'>
   <!--
   function getFileName()
   {
       var url = this.location.href;
       var pos = url.lastIndexOf('/');
       if(pos == -1)
        pos = url.lastIndexOf('\\');
      var filename = url.substr(pos+1);
      return filename;
     }

     function fnLoad()
     {
      with(window.document.body)
      {
       addBehavior ('#default#userData');   
       load('scrollState' + getFileName());   

       scrollLeft = getAttribute('scrollLeft');   
       scrollTop = getAttribute('scrollTop');
      }
     }

     function fnUnload()
     {
      with(window.document.body)
      {
       setAttribute('scrollLeft',scrollLeft);
       setAttribute('scrollTop',scrollTop);
       save('scrollState' + getFileName());
   
      }
     }

     window.onload = fnLoad;
     window.onunload = fnUnload;
     -->
     </script>";

            //HttpContext.Current.Response.Write(s);
            Page.ClientScript.RegisterClientScriptBlock(GetType(), "", s2);
        }

}
}

posted on 2007-07-21 18:51  阿龍  阅读(388)  评论(0编辑  收藏  举报