/// <summary>
/// 生成课表
/// </summary>
/// <param name="p_intAmCount">每天上午或下午的节数</param>
/// <param name="p_intWeekDayCount">每周上课的天数</param>
/// <param name="p_intStartRowNum">每天从第几节开始生成课表</param>
/// <param name="p_table">需要装载课时的Table</param>
/// <param name="p_strAmOrPm">课表前面要显示的文字一般为“上午”“下午”</param>
private void SetAmCurShe(int p_intAmCount, int p_intWeekDayCount,int p_intStartRowNum,ref Table p_table,string p_strAmOrPm)
{
bool bol_SetRowSpan = false;
int int_TotalRow=p_intAmCount + p_intStartRowNum;
//行循环
for (int intRow = p_intStartRowNum; intRow < int_TotalRow; intRow++)
{
TableRow tblr = new TableRow();
tblr.ID = "tr_" + intRow;
//列循环
for (int intCell = 0; intCell < 2 + p_intWeekDayCount; intCell++)
{
TableCell tblc = new TableCell();
tblc.BorderColor = System.Drawing.Color.Gray;
tblc.BorderStyle = BorderStyle.Solid;
tblc.BorderWidth = 1;
//判断是否是第一列
if (intCell == 0 && !bol_SetRowSpan)
{
tblc.RowSpan = p_intAmCount;
tblc.ID = "tc_" + intRow + "_" + intCell;
tblc.Text = p_strAmOrPm;
bol_SetRowSpan = true;
tblr.Cells.Add(tblc);
tblc.Width = 20;
}
//判断是否是第二列
else if (intCell == 1)
{
tblc.ID = "tc_" + intRow + "_" + intCell;
tblc.Text = intRow.ToString();
tblr.Cells.Add(tblc);
tblc.Width = 30;
}
//判断是否是其它列
else if(intCell !=0)
{
tblc.ID = "tc_" + intRow + "_" + intCell;
//========动态生成按钮控件===============
Button btnNew = new Button();
btnNew.BorderStyle = BorderStyle.Inset;
btnNew.BorderWidth = 0;
btnNew.BackColor = System.Drawing.Color.Transparent;
btnNew.Click += new EventHandler(btnNew_Click);
btnNew.ID = "btn_"+intRow +"_"+(intCell-1 );
btnNew.Width = 120;
btnNew.Height = 40;
//btnNew.OnClientClick = "btnNew_Click";
//btnNew.Attributes["type"]="button";
btnNew.Text = " ";
btnNew.Style.Value = "cursor:hand;";
//=========================================
tblc.Controls.Add(btnNew);
tblr.Cells.Add(tblc);
}
}
p_table.Rows.Add(tblr);
}
}
#endregion
#region 动态生成课表表头
/// <summary>
/// 动态生成课表表头
/// </summary>
/// <param name="p_intWeekDayCount">每周上课的天数</param>
/// <param name="p_table">需要装载课时的Table</param>
private void SetCurSheTitle(int p_intWeekDayCount,ref Table p_table)
{
TableRow tblr = new TableRow();
tblr.ID = "tr_0";
//列循环
for (int intCell = 0; intCell < 1 + p_intWeekDayCount; intCell++)
{
TableCell tblc = new TableCell();
tblc.BorderColor = System.Drawing.Color.Gray;
tblc.BorderStyle = BorderStyle.Solid;
tblc.BorderWidth = 1;
//是否是第一列
if (intCell == 0)
{
tblc.ColumnSpan = 2;
tblc.Text = "排";
tblc.ID = "tc_" + 0 + "_" + intCell;
tblc.BackColor = System.Drawing.Color.DarkGray;
}
else
{
//设置其他列的标题
string str_WeekDay = DateTimeHelper.GetWeekDayByNumber(intCell);
tblc.Text = str_WeekDay;
tblc.ID = "tc_" + 0 + "_" + intCell;
tblc.ForeColor = System.Drawing.Color.WhiteSmoke;
tblc.BackColor = System.Drawing.Color.DarkBlue;
}
tblr.Cells.Add(tblc);
}
p_table.Rows.Add(tblr);
}
#endregion
#region 设置课程表
private void setCurSheInfo()
{
int int_WeekDayCount = 5;
int int_AmCount = 4;
int int_PmCount = 3;
if (dropTerm.SelectedIndex != -1)
{
DataSet ds_CourseParameter = new DataSet();
ds_CourseParameter = TeachMgmt.getCourseParameter(CurrentSchoolId.ToString(), dropTerm.SelectedValue);
if (ds_CourseParameter.Tables.Count != 0 && ds_CourseParameter.Tables[0].Rows.Count != 0)
{
int_WeekDayCount = int.Parse(ds_CourseParameter.Tables[0].Rows[0]["WEEK_NUM_DAY"].ToString());
int_AmCount = int.Parse(ds_CourseParameter.Tables[0].Rows[0]["AM_COUNT"].ToString());
int_PmCount = int.Parse(ds_CourseParameter.Tables[0].Rows[0]["PM_COUNT"].ToString());
}
}
int_WeekDayCount = (int_WeekDayCount > 7 ? 7 : int_WeekDayCount);
//生成课程表表头
SetCurSheTitle(int_WeekDayCount, ref tabCurShe);
//生成上午课表
SetAmCurShe(int_AmCount, int_WeekDayCount, 1, ref tabCurShe, "上午");
//生成下午课表
SetAmCurShe(int_PmCount, int_WeekDayCount, int_AmCount + 1, ref tabCurShe, "下午");
}
#endregion