Exemple #1
0
        public void IsCheckInOutHelper()
        {
            string card = "123";
            string isbn = "1234";

            var cioh = new CheckInOutHelper(card, isbn);

            Assert.IsInstanceOfType(cioh, typeof(CheckInOutHelper));
        }
    private void BindList(decimal staffid, string deptid, DateTime sdate, DateTime edate)
    {
        string    msg  = "";
        DataTable data = CheckInOutHelper.ContrastAndReceiveTable(staffid, deptid, sdate, edate, ref msg);

        if (data == null)
        {
            return;
        }

        BindHerd(data.Columns);
        BindRows(data.Rows);
    }
    private void BindList(DateTime sdate, DateTime edate)
    {
        string msg = "";
        //DataTable data = CheckInOutHelper.ContrastAndReceiveTable(new V_HR_CK_USERINFO(), sdate, edate, ref msg);
        DataTable data = CheckInOutHelper.ContrastAndReceiveTable(0, "0", sdate, edate, ref msg);

        if (data == null)
        {
            return;
        }
        m_HeadTdCount = data.Columns.Count;
        //repHead.EnableViewState = false;
        //repHead.DataSource = data.Columns;
        //repHead.DataBind();
        //repList.EnableViewState = false;
        //repList.DataSource = data.Rows;
        //repList.DataBind();
    }
Exemple #4
0
    protected void btnSaveFangAn_Click(object sender, EventArgs e)
    {
        try
        {
            DataTable dt = CheckInOutHelper.GetCheckOnWorkAttendanceFangAnTable(ViewState["TB_NAME"].ToString());
            DataRow   dr;
            if (dt.Rows.Count <= 0)
            {
                dr = dt.NewRow();
            }
            else
            {
                dr = dt.Rows[0];
            }



            dr["*TableName"] = Request["txtTableName"];
            dr["UserId"]     = Request["txtUserId"];
            //dr["TYPE"] = Request["txtTYPE"];
            dr["CheckOWA"]        = Request["txtCheckOWA"];
            dr["UnWorkStartTime"] = Request["txtUnWorkStartTime"];
            dr["UnWorkEndTime"]   = Request["txtUnWorkEndTime"];
            dr["OnWorkStartTime"] = Request["txtOnWorkStartTime"];
            dr["OnWorkEndTime"]   = Request["txtOnWorkEndTime"];
            if (dt.Rows.Count <= 0)
            {
                dt.Rows.Add(dr);
            }

            string path = Server.MapPath("~" + CheckInOutHelper.CheckOnWorkAttendanceFangAnPath);
            CheckInOutHelper.SaveCheckOnWorkAttendanceFangAn(dt, path);

            litWarn.Text = "保存方案成功";
        }
        catch (Exception ex) {
            litWarn.Text = ex.Message;
        }
    }
Exemple #5
0
    protected void btnOK_Click(object sender, EventArgs e)
    {
        string wran = "";

        litWarn.Visible = false;

        //值班类型设置
        string wdTypeHtml = tbyWorkDayType.InnerHtml;

        string[] wdTypeStrs = wdTypeHtml.ToLower().Contains("<tr>") ? wdTypeHtml.ToLower().Substring(wdTypeHtml.ToLower().IndexOf("<tr>")).Split(new string[] { "<tr>" }, StringSplitOptions.RemoveEmptyEntries) : new string[0];
        Dictionary <DateTime, int> dicWdType = new Dictionary <DateTime, int>();

        foreach (string wdTStr in wdTypeStrs)
        {
            string[] tds = wdTStr.ToLower().Substring(wdTStr.ToLower().IndexOf("<td>")).Split(new string[] { "<td>" }, StringSplitOptions.RemoveEmptyEntries);
            if (tds.Length < 3)
            {
                continue;
            }
            DateTime sd = DateTime.MinValue;
            DateTime ed = DateTime.MinValue;
            int      ty = -1;
            if (!DateTime.TryParse(tds[0].Remove(tds[0].IndexOf('<'), tds[0].Length - tds[0].IndexOf('<')), out sd) || !DateTime.TryParse(tds[1].Remove(tds[1].IndexOf('<'), tds[1].Length - tds[1].IndexOf('<')), out ed) || !int.TryParse(tds[2].Remove(tds[2].IndexOf('<'), tds[2].Length - tds[2].IndexOf('<')), out ty))
            {
                continue;
            }
            sd = sd.Date;
            ed = ed.Date;
            while (sd <= ed)
            {
                if (!dicWdType.ContainsKey(sd))
                {
                    dicWdType.Add(sd, ty);
                }
                else
                {
                    dicWdType[sd] = ty;
                }
                sd = sd.AddDays(1);
            }
        }
        //休息日设置
        string[] weekStr = txtXiuXi.Value.Split(new char[] { ',', ',', ' ', ' ' }, StringSplitOptions.RemoveEmptyEntries);
        //是否 周一到周7之间
        bool isAllRight = true;

        int[] week = new int[weekStr.Length];
        for (int i = 0; i < weekStr.Length; i++)
        {
            if (!int.TryParse(weekStr[i].Replace(" ", ""), out week[i]))
            {
                isAllRight = false;
            }
            else if (week[i] < 1 || week[i] > 7)
            {
                isAllRight = false;
            }
        }

        HR_Scheduling_IniProject proj = new HR_Scheduling_IniProject();

        proj.WorkDayType = wdTypeHtml;
        proj.XiuXi       = txtXiuXi.Value;
        proj.ProjectName = txtProjectName.Value;
        if (chkFuGai.Checked)
        {
            proj.FuGaiOrZengBu = 1;
        }
        else
        {
            proj.FuGaiOrZengBu = 2;
        }
        if (isAllRight)
        {
            string   delschWhere = " 1=1 ";
            HR_STAFF stfVal      = new HR_STAFF();
            stfVal.STAFF_ID = 0;
            HR_STAFF stfCon = new HR_STAFF();
            if (!string.IsNullOrEmpty(hidstaffid.Value.Trim()))
            {
                stfCon.STAFF_ID = decimal.Parse(hidstaffid.Value);
                delschWhere    += " and HR_STAFF.STAFF_ID = " + stfCon.STAFF_ID;

                proj.StaffID = stfCon.STAFF_ID.ToString();
            }
            else if (!string.IsNullOrEmpty(hiddeptid.Value.Trim()))
            {
                stfCon.Like(HR_STAFF.Attribute.DEPT_ID, hiddeptid.Value);
                delschWhere += " and HR_STAFF.DEPT_ID like '" + hiddeptid.Value + "%'";

                proj.DeptID = stfCon.DEPT_ID;
            }
            else if (!string.IsNullOrEmpty(hidorgid.Value.Trim()))
            {
                stfCon.Like(HR_STAFF.Attribute.ORG_ID, hidorgid.Value);
                delschWhere += " and HR_STAFF.ORG_ID like '" + hidorgid.Value + "%'";

                proj.OrgID = stfCon.ORG_ID;
            }
            else
            {
                stfCon.STAFF_ID = userBase.StaffID;
                delschWhere    += " and HR_STAFF.STAFF_ID = " + userBase.StaffID;

                proj.StaffID = stfCon.STAFF_ID.ToString();
            }
            List <HR_STAFF> stffs = BLLTable <HR_STAFF> .Factory(conn).Select(stfVal, stfCon);

            //外部传入选中的班次id
            string[] schidstr = hidSelBanciId.Value.TrimEnd(',').Split(',');
            proj.SelBanciId = hidSelBanciId.Value;
            List <int> schids = new List <int>();
            for (int i = 0; i < schidstr.Length; i++)
            {
                int sid = -1;
                if (int.TryParse(schidstr[i], out sid))
                {
                    schids.Add(sid);
                }
            }
            int stfCount = 0;
            int stfSch   = 0;
            //开始时间
            DateTime sDate = DateTime.Parse(txtStartTime.Value);
            proj.StartTime = sDate;
            //结束时间
            DateTime eDate = DateTime.Parse(txtEndTime.Value);
            proj.EndTime = eDate;

            DateTime dt = sDate;
            //找出班次
            List <HR_Scheduling> schList = new List <HR_Scheduling>();
            foreach (HR_STAFF stf in stffs)
            {
                stfCount++;
                dt = sDate;
                while (dt.Date <= eDate.Date)
                {
                    foreach (int schid in schids)
                    {
                        HR_Scheduling sch = new HR_Scheduling();
                        sch._SchYear  = dt.Date.Year;
                        sch._SchMonth = Convert.ToInt16(dt.Date.Month);
                        sch._SchDay   = Convert.ToInt16(dt.Date.Day);
                        sch._STAFF_ID = Convert.ToInt32(stf.STAFF_ID);
                        sch._SchType  = week.Contains(CheckInOutHelper.IndexOfWeekByEnWeek(dt)) ? 3 : 1;
                        if (dicWdType.ContainsKey(dt.Date))
                        {
                            sch._SchType = dicWdType[dt.Date];
                        }
                        sch._SchClassid = schid;
                        schList.Add(sch);
                    }
                    dt = dt.AddDays(1);
                    stfSch++;
                }
            }
            int buildCount = 0;
            int delsCount  = 0;
            if (chkFuGai.Checked)
            {
                //HR_Scheduling delCon = new HR_Scheduling();
                //delCon.Top(1000);
                //string wher = " CAST(CAST({0} AS char(4)) + '-' + CAST({1} AS char(2)) + '-' + CAST({2} AS char(2)) as datetime) >= '{3}-{4}-{5}' and CAST(CAST({6} AS char(4)) + '-' + CAST({7} AS char(2)) + '-' + CAST({8} AS char(2)) as datetime) <= '{9}-{10}-{11}' ";
                //delCon.Where(wher, HR_Scheduling.Attribute.SchYear, HR_Scheduling.Attribute.SchMonth, HR_Scheduling.Attribute.SchDay,
                //                sDate.Year, sDate.Month, sDate.Day,
                //                HR_Scheduling.Attribute.SchYear, HR_Scheduling.Attribute.SchMonth, HR_Scheduling.Attribute.SchDay,
                //                eDate.Year, eDate.Month, eDate.Day);
                //Relation rt = new Relation(HR_STAFF.Attribute.STAFF_ID, HR_Scheduling.Attribute.STAFF_ID);
                //rt.AddCondition(stfCon);
                //while (BLLTable<HR_Scheduling>.Factory(conn).Delete(delCon, rt) > 0)
                //{
                //    continue;
                //}
                string wher = " delete top(1000) " +
                              " from HR_Scheduling " +
                              " where CAST(CAST({0} AS char(4)) + '-' + CAST({1} AS char(2)) + '-' + CAST({2} AS char(2)) as datetime) >= '{3}-{4}-{5}' and CAST(CAST({6} AS char(4)) + '-' + CAST({7} AS char(2)) + '-' + CAST({8} AS char(2)) as datetime) <= '{9}-{10}-{11}' " +
                              " and HR_Scheduling.staff_id in (select hr_staff.staff_id from hr_staff where " + delschWhere + ")";
                wher = string.Format(wher, HR_Scheduling.Attribute.SchYear, HR_Scheduling.Attribute.SchMonth, HR_Scheduling.Attribute.SchDay,
                                     sDate.Year, sDate.Month, sDate.Day,
                                     HR_Scheduling.Attribute.SchYear, HR_Scheduling.Attribute.SchMonth, HR_Scheduling.Attribute.SchDay,
                                     eDate.Year, eDate.Month, eDate.Day);
                int delCount = BLLTable.ExecSQL(new HR_Scheduling(), wher, CommandType.Text);
                while (delCount > 0)
                {
                    delsCount += delCount;
                    delCount   = BLLTable.ExecSQL(new HR_Scheduling(), wher, CommandType.Text);
                    continue;
                }
                DataTable dataTable = BLLTable <HR_Scheduling> .qDataTable("select * from " + HR_Scheduling.Attribute.SchDay.TableName + " where 1=2");

                List <DataRow> dataList = new List <DataRow>();
                foreach (HR_Scheduling sch in schList)
                {
                    DataRow dr = dataTable.NewRow();
                    foreach (DataColumn dc in dataTable.Columns)
                    {
                        dr[dc] = sch.GetValue(new AttributeItem(HR_Scheduling.Attribute.STAFF_ID.TableName, dc.ColumnName));
                    }
                    dataList.Add(dr);
                }

                try
                {
                    //将电量数据批量插入数据库
                    SqlBulkCopy sbc = new SqlBulkCopy(MyConfigurationSettings.GetValue("conn"));
                    sbc.BatchSize            = 1000;
                    sbc.BulkCopyTimeout      = (((dataList.Count) / 1000) + 1) * 3;
                    sbc.DestinationTableName = HR_Scheduling.Attribute.STAFF_ID.TableName;
                    sbc.WriteToServer(dataList.ToArray());
                    buildCount += dataList.Count;
                }
                catch { }
            }
            else
            {
                foreach (HR_Scheduling sch in schList)
                {
                    if (!BLLTable <HR_Scheduling> .Exists(sch))
                    {
                        buildCount += BLLTable <HR_Scheduling> .Factory(conn).Insert(sch, HR_Scheduling.Attribute.ID);
                    }
                }
            }
            int ret2 = BLLTable <HR_Scheduling_IniProject> .Factory(conn).Insert(proj, HR_Scheduling_IniProject.Attribute.ID);

            litScript.Text = "<script>alert('生成成功!" + (chkFuGai.Checked ? "覆盖" : "增补") + "生成" + buildCount + "条记录!删除" + delsCount
                             + "条记录,保存" + ret2 + "个配置方案"
                             + "');$('.main').unmask();</script>";
        }
        else
        {
            wran = "休息日输入有误!请参考提示输入。";
        }

        if (!string.IsNullOrEmpty(wran))
        {
            litWarn.Text    = wran;
            litWarn.Visible = true;
            litScript.Text  = "<script>alert('" + wran + "');$('.main').unmask();</script>";
        }
    }
Exemple #6
0
    protected void Page_Load(object sender, EventArgs e)
    {
        title      = valObj._ZhName + "管理";
        Page.Title = title;
        tbid       = int.Parse(Request["id"]);
        tbObj      = BLLTable <TF_TABLE> .Factory(conn).GetRowData(TF_TABLE.Attribute.TB_ID, tbid);

        if (tbObj == null)
        {
            return;
        }
        if (!IsPostBack)
        {
            dicCtrlType = TF_Common.GetCtrlTypeDic();
            #region                                                                  //默认属性初始化
            aspPager.CurrentPageIndex = 1;
            aspPager.ShowInputBox     = AgileFrame.Core.WebSystem.ShowInputBox.Auto; //WebCtrls.
            aspPager.PageSize         = 30;

            #endregion
            title = tbObj.CH_NAME;

            #region//数据初始化

            //txtFIELD_TYPE.Items.AddRange(FormHelper.GetListItem(TF_TB_FIELD.Attribute.FIELD_TYPE));
            #endregion

            if (Request["defaultfield"] != null)
            {
                btnFind.Enabled = false;
                // ulBtns.Visible = false;
            }
            BindList(condObj, 1);

            //     fangan.Columns.Add("*TableName");//表名
            //fangan.Columns.Add("UserId");//员工编号
            //fangan.Columns.Add("TYPE");
            //fangan.Columns.Add("CheckOWA");//考勤类型,请假、年假、公休、病假等
            //fangan.Columns.Add("UnWorkStartTime");//抵消工作开始时间
            //fangan.Columns.Add("UnWorkEndTime");//抵消工作结束时间
            //fangan.Columns.Add("OnWorkStartTime");//工作时间开始时间
            //fangan.Columns.Add("OnWorkEndTime");//工作时间结束时间

            string path = Server.MapPath("~" + CheckInOutHelper.CheckOnWorkAttendanceFangAnPath);

            ViewState["TB_NAME"] = tbObj.TB_NAME;
            DataTable dt = CheckInOutHelper.GetOneCheckOnWorkAttendanceFangAn(tbObj.TB_NAME);

            if (dt.Rows.Count <= 0)
            {
                DataRow dr = dt.NewRow();
                dr["*TableName"] = tbObj.TB_NAME;
                dr["UserId"]     = "STAFF_ID";
                //dr["TYPE"] = "'"+tbObj.CH_NAME+"' as TYPE";
                dr["CheckOWA"]        = "";
                dr["UnWorkStartTime"] = "";
                dr["UnWorkEndTime"]   = "";
                dr["OnWorkStartTime"] = "";
                dr["OnWorkEndTime"]   = "";
                dt.Rows.Add(dr);
            }
            repFangAn.DataSource = dt;
            repFangAn.DataBind();
        }
    }
    public void BindHerd(DataColumnCollection dcc)
    {
        if (dcc == null || dcc.Count < 1)
        {
            return;
        }
        int    index      = 0;
        string header1    = "";
        string header2    = "";
        string width      = "";
        string resizelist = "";
        string align      = "";

        foreach (DataColumn dc in dcc)
        {
            if (index < 7)
            {
                switch (index)
                {
                case 0:
                    header1 += ",";
                    width   += "40,";
                    break;

                case 1:
                    header1 += "#cspan,";
                    width   += "60,";
                    break;

                case 2:
                    header1 += "#cspan,";
                    width   += "80,";
                    break;

                case 3:
                    header1 += "#cspan,";
                    width   += "80,";
                    break;

                case 4:
                    header1 += "#cspan,";
                    width   += "120,";
                    break;

                case 5:
                    header1 += "#cspan,";
                    width   += "65,";
                    break;

                case 6:
                    header1 += "<div style='float:right; padding-right:5px;'>日期</div>,";
                    width   += "65,";
                    break;

                default: break;
                }

                resizelist += "true,";
                header2    += "<div class='hdrcell' style='padding-left:5px;'>" + (string.IsNullOrEmpty(dc.ColumnName.TrimEnd(' ')) ? "-" : dc.ColumnName) + "</div>,";
                align      += "left,";
                index++;
                continue;
            }
            DateTime dt = DateTime.MinValue;
            if (DateTime.TryParse(dc.ColumnName, out dt) && dt != DateTime.MinValue)
            {
                header1    += "<div style='margin-left:-7px;'>" + dt.Day.ToString().PadLeft(2, '0') + "</div>,";
                header2    += "<div class='hdrcell' style='padding-left:5px;'>" + CheckInOutHelper.ChineseByEnWeek(dt) + "</div>,";
                width      += "27,";
                resizelist += "false,";
                align      += "left,";
            }
            else
            {
                if (!m_startAddKqqk)
                {
                    header1       += "<div style='margin-left:-7px;'>出勤情况</div>,";
                    header2       += "<div class='hdrcell' style='padding-left:5px;'>" + (string.IsNullOrEmpty(dc.ColumnName.TrimEnd(' ')) ? "-" : dc.ColumnName) + "</div>,";
                    width         += (dc.ColumnName.Length * 12 + 15) + ",";
                    m_startAddKqqk = true;
                    resizelist    += "true,";
                    align         += "left,";
                }
                else
                {
                    header1    += "#cspan,";
                    header2    += "<div class='hdrcell' style='padding-left:5px;'>" + (string.IsNullOrEmpty(dc.ColumnName.TrimEnd(' ')) ? "-" : dc.ColumnName) + "</div>,";
                    width      += (dc.ColumnName.Length * 12 + 15) + ",";
                    resizelist += "true,";
                    align      += "left,";
                }
            }
            index++;
        }

        m_header1    = "\"" + header1.TrimEnd(',') + "\"";
        m_header2    = "\"" + header2.TrimEnd(',') + "\"";
        m_width      = "\"" + width.TrimEnd(',') + "\"";
        m_resizelist = "\"" + resizelist.TrimEnd(',') + "\"";
        m_align      = "\"" + align.TrimEnd(',') + "\"";
    }
Exemple #8
0
    private void BindList(V_SchedulingSchClass condObj)
    {
        List <V_SchedulingSchClass> vssList = BLLTable <V_SchedulingSchClass> .Factory(conn).Select(new V_SchedulingSchClass(), condObj);

        DataTable data = GetWorkViewHeadTable();

        repHead.DataSource = data.Columns;
        repHead.DataBind();
        Dictionary <string, DataRow> dic    = new Dictionary <string, DataRow>();
        Dictionary <string, int>     rigDic = new Dictionary <string, int>();

        data = GetWorkViewBodyTable();
        DateTime nowDt = DateTime.Now;

        foreach (V_SchedulingSchClass vs in vssList)
        {
            string date = vs._SchYear + "-" + vs._SchMonth.ToString().PadLeft(2, '0') + "-" + vs._SchDay.ToString().PadLeft(2, '0');
            if (!dic.ContainsKey(date))
            {
                dic.Add(date, data.NewRow());
            }
            if (!rigDic.ContainsKey(date))
            {
                rigDic.Add(date, 0);
            }

            DateTime curDate = new DateTime(vs._SchYear, vs._SchMonth, vs._SchDay);
            dic[date][0] = vs.STAFF_ID + spl;
            dic[date][1] = vs.STAFF_NAME + spl;
            dic[date][2] = date + spl + (curDate == new DateTime(nowDt.Year, nowDt.Month, nowDt.Day) ? "style='background-color:#eeeeaa;'" : "");
            dic[date][3] = CheckInOutHelper.ChineseByEnWeek(curDate) + spl + " style='text-align:center;text-indent:0px;'";
            dic[date][4] = dll_Type.Items[vs._SchType].Text + spl;
            DateTime otime = new DateTime(nowDt.Year, nowDt.Month, nowDt.Day, 0, 0, 0);
            DateTime stime = new DateTime(nowDt.Year, nowDt.Month, nowDt.Day, vs.StartHour, vs.StartMin, 0);
            DateTime etime = new DateTime(nowDt.Year, nowDt.Month, nowDt.Day, vs.EndHour, vs.EndMin, 0);
            int      left  = ((int)((stime - otime).TotalMinutes / 2.00 + 0.5));
            int      wid   = ((int)((etime - stime).TotalMinutes / 2.00 + 0.5)) - 1;
            left         = left - rigDic[date];
            rigDic[date] = ((int)((stime - otime).TotalMinutes / 2 + 0.5)) + wid + 3;
            string sty = "style='float:left;clear:right;display:inline-block;margin-left:" + left + "px; width:" + wid + "px;height:20px; background-color:" + vs.Color + "'";
            string tit = "tag='";
            tit += "班次名称:" + vs.SchName + "<br />";
            tit += "时段:" + vs.StartHour + ":" + vs.StartMin + "-" + vs.EndHour + ":" + vs.EndMin + "<br />";
            tit += "计算量值:" + vs.SchNumber + "<br />";
            tit += "量值单位:" + formhelper.GetOptionText(HR_SchClass.Attribute.SchUnit, vs.SchUnit) + "<br />";
            tit += "是否计算为加班:" + (vs.IsOverTime ? "是" : "否") + "<br />";
            tit += "签到时间:" + (!vs.CheckIn?"不签到":(vs.CheckInHour1 + ":" + vs.CheckInMin1 + "-" + vs.CheckInHour2 + ":" + vs.CheckInMin2)) + "<br />";
            tit += "签退时间:" + (!vs.CheckOut ? "不签退" : (vs.CheckOutHour1 + ":" + vs.CheckOutMin1 + "-" + vs.CheckOutHour2 + ":" + vs.CheckOutMin2)) + "<br />";
            tit += "计迟到/早退分钟数:" + vs.LateMinutes + "/" + vs.EarlyMinutes + "<br />";
            tit += "'";
            string a = "<a " + tit + " " + sty + " onmousemove='showatooltip(\"tableatooltip\",this)' onmouseout='hideatooltip(\"tableatooltip\")'></a>";
            dic[date][5] += a;
        }

        foreach (string vs in dic.Keys)
        {
            dic[vs][5] += spl + " colspan='24' style='text-indent:0px;' ";
            data.Rows.Add(dic[vs]);
        }

        repList.DataSource = data.Rows;
        repList.DataBind();
    }
    public string BindHerd(RepeaterItem Container)
    {
        string td = "";

        if (Container == null)
        {
            return(td);
        }
        DataColumn dc = Container.DataItem as DataColumn;

        if (dc == null)
        {
            return(td);
        }
        string   sty = "";
        string   tit = dc.ColumnName;
        DateTime dt  = DateTime.MinValue;

        m_HeadTdIndex++;
        if (tit == "序号")
        {
            m_HeadTdLeft  = 5;
            sty           = "style='width:40px;height:45px;position:relative;'";
            td           += "<td id='xuhao' class='headtit' " + sty + ">" + "\n";
            td           += "    序号" + "\n";
            td           += "</td>" + "\n";
            m_HeadTdLeft += 40;
        }
        else if (tit == "姓名")
        {
            sty           = "style='width:80px;height:45px;position:relative;'";
            td           += "<td id='drawXiexian' class='headtit' " + sty + ">" + "\n";
            td           += "    <table>" + "\n";//style='background-image:url(Uploadify/xiexian.gif)'
            td           += "        <tr>" + "\n";
            td           += "            <td style='text-align:right;border: 0px none #000;'>日期</td>" + "\n";
            td           += "        </tr>" + "\n";
            td           += "        <tr>" + "\n";
            td           += "            <td style='text-align:left;border: 0px none #000;'>姓名</td>" + "\n";
            td           += "        </tr>" + "\n";
            td           += "    </table>" + "\n";
            td           += "</td>" + "\n";
            m_HeadTdLeft += 80;
        }
        else if (tit == "全勤")
        {
            sty           = "style='width:40px;height:45px;position:relative;'";
            td           += "<td class='headtit' " + sty + ">" + "\n";
            td           += "    " + tit + "\n";
            td           += "</td>" + "\n";
            m_HeadTdLeft += 40;
        }
        else if (tit == "实际出勤")
        {
            sty           = "style='width:40px;height:45px;position:relative;'";
            td           += "<td class='headtit' " + sty + ">" + "\n";
            td           += "    <table>" + "\n";
            td           += "        <tr>" + "\n";
            td           += "            <td style='border: 0px none #000;'>实际</td>" + "\n";
            td           += "        </tr>" + "\n";
            td           += "        <tr>" + "\n";
            td           += "            <td style='border: 0px none #000;'>出勤</td>" + "\n";
            td           += "        </tr>" + "\n";
            td           += "    </table>" + "\n";
            td           += "</td>" + "\n";
            m_HeadTdLeft += 40;
        }
        else if (DateTime.TryParse(tit, out dt))
        {
            sty           = "style='text-align:left;width:25px; min-width:25px;max-width:25px;position:relative;'";
            td           += "<td class='headtit' " + sty + ">" + "\n";
            td           += "    <table>" + "\n";
            td           += "        <tr>" + "\n";
            td           += "            <td style='border: 0px none #000;border-bottom:1px solid #aad;'>" + dt.Day.ToString().PadLeft(2, '0') + "</td>" + "\n";
            td           += "        </tr>" + "\n";
            td           += "        <tr>" + "\n";
            td           += "            <td style='border: 0px none #000;'>" + CheckInOutHelper.ChineseByEnWeek(dt) + "</td>" + "\n";
            td           += "        </tr>" + "\n";
            td           += "    </table>" + "\n";
            td           += "</td>" + "\n";
            m_HeadTdLeft += 25;
        }
        else if (!m_HeadTdDayShowOver)
        {
            m_HeadTdColspan = m_HeadTdCount - m_HeadTdIndex + 1;
            sty             = "style='width:" + (38 * 15 + 14) + "px;position:relative;'";
            td                 += "<td class='headtit' " + sty + ">" + "\n";
            td                 += "<table>" + "\n";
            td                 += "<tr>" + "\n";
            td                 += "    <td colspan=\"" + m_HeadTdColspan + "\" style='border: 0px none #000;border-bottom:1px solid #aad; text-align:left;'>出勤情况<td>" + "\n";
            td                 += "</tr>" + "\n";
            td                 += "<tr>";
            sty                 = "style='width:" + (tit.Length * 15 + 5) + "px; border: 0px none #000;border-right: 1px solid #aad;'";
            td                 += "<td " + sty + ">" + "\n";
            td                 += "    " + tit + "\n";
            td                 += "</td>" + "\n";
            m_HeadTdLeft       += 38 * 15 + 14;
            m_HeadTdDayShowOver = true;
        }
        else if (m_HeadTdIndex == m_HeadTdCount)
        {
            sty = "style='width:" + (tit.Length * 15 + 5) + "px;border: 0px none #000;border-right: 1px solid #aad;'";
            td += "<td  " + sty + ">" + "\n";
            td += "    " + tit + "\n";
            td += "</td>" + "\n";
            td += "</tr>" + "\n";
            td += "</table>" + "\n";
            td += "</td>" + "\n";
        }
        else
        {
            sty = "style='width:" + (tit.Length * 15 + 5) + "px;border: 0px none #000;border-right: 1px solid #aad;'";
            td += "<td  " + sty + ">" + "\n";
            td += "    " + tit + "\n";
            td += "</td>" + "\n";
        }
        return(td);
    }