645 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			645 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								using BLL;
							 | 
						|||
| 
								 | 
							
								using FineUIPro.Web.Controls;
							 | 
						|||
| 
								 | 
							
								using Newtonsoft.Json.Linq;
							 | 
						|||
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Data;
							 | 
						|||
| 
								 | 
							
								using System.Data.SqlClient;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								using System.Text;
							 | 
						|||
| 
								 | 
							
								using AspNet = System.Web.UI.WebControls;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace FineUIPro.Web.HJGL.WeldingReport
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    public partial class OneDayReport : PageBase
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        #region 加载
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 加载页面
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void Page_Load(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (!IsPostBack)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Funs.DropDownPageSize(this.ddlPageSize);
							 | 
						|||
| 
								 | 
							
								                this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString();
							 | 
						|||
| 
								 | 
							
								                List<Model.Base_Unit> units = new List<Model.Base_Unit>();
							 | 
						|||
| 
								 | 
							
								                dpDate.SelectedDate = new DateTime( DateTime.Now.Year, DateTime.Now.Month,1);
							 | 
						|||
| 
								 | 
							
								                var pUnit = BLL.ProjectUnitService.GetProjectUnitByUnitIdProjectId(this.CurrUser.LoginProjectId, this.CurrUser.UnitId);
							 | 
						|||
| 
								 | 
							
								                if (pUnit == null || pUnit.UnitType == Const.ProjectUnitType_1)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    units = BLL.UnitService.GetUnitByProjectIdUnitTypeList(this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2);
							 | 
						|||
| 
								 | 
							
								                    //this.drpUnit.Enabled = false;
							 | 
						|||
| 
								 | 
							
								                    this.drpUnit.DataTextField = "UnitName";
							 | 
						|||
| 
								 | 
							
								                    this.drpUnit.DataValueField = "UnitId";
							 | 
						|||
| 
								 | 
							
								                    this.drpUnit.DataSource = units;
							 | 
						|||
| 
								 | 
							
								                    this.drpUnit.DataBind();
							 | 
						|||
| 
								 | 
							
								                    Funs.FineUIPleaseSelect(this.drpUnit);           
							 | 
						|||
| 
								 | 
							
								                 }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    units = BLL.UnitService.GetSubUnitsListBySupervisorUnitId(this.CurrUser.ProjectId, this.CurrUser.UnitId);
							 | 
						|||
| 
								 | 
							
								                    this.drpUnit.Enabled = false;
							 | 
						|||
| 
								 | 
							
								                    this.drpUnit.DataTextField = "UnitName";
							 | 
						|||
| 
								 | 
							
								                    this.drpUnit.DataValueField = "UnitId";
							 | 
						|||
| 
								 | 
							
								                    this.drpUnit.DataSource = units;
							 | 
						|||
| 
								 | 
							
								                    this.drpUnit.DataBind();
							 | 
						|||
| 
								 | 
							
								                    this.drpUnit.SelectedValue = CurrUser.UnitId; 
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                //显示列
							 | 
						|||
| 
								 | 
							
								                //Model.Sys_UserShowColumns c = BLL.UserShowColumnsService.GetColumnsByUserId(this.CurrUser.UserId, Const.UnitAreaQualityMenuId);
							 | 
						|||
| 
								 | 
							
								                //if (c != null)
							 | 
						|||
| 
								 | 
							
								                //{
							 | 
						|||
| 
								 | 
							
								                //    this.GetShowColumn(c.Columns);
							 | 
						|||
| 
								 | 
							
								                //}
							 | 
						|||
| 
								 | 
							
								                //BindGrid();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 绑定BindGrid
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        private DataTable tb = null;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 绑定数据
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        private void BindGrid()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            string strSql = @"SELECT 0 id, WorkArea.WorkAreaId, WorkArea.WorkAreaCode   ,--工区代号
							 | 
						|||
| 
								 | 
							
										                            WorkArea.WorkAreaName  ,--工区代号		
							 | 
						|||
| 
								 | 
							
										                            CAST(ISNULL(total_jot.total_din,0) AS DECIMAL(19,2)) AS total_din ,--总达因	
							 | 
						|||
| 
								 | 
							
								                                    finished_total_din,
							 | 
						|||
| 
								 | 
							
								                                    '' Type,0 has_din,0 res_din, '' has_per, '' HSData
							 | 
						|||
| 
								 | 
							
								                            FROM ProjectData_WorkArea AS  WorkArea 
							 | 
						|||
| 
								 | 
							
								                            LEFT JOIN (SELECT COUNT(*) total_jot ,pw_isoinfo.WorkAreaId ,
							 | 
						|||
| 
								 | 
							
								                                        SUM( case when pw_isoinfo.[Is_Standard] = 0 then JOT_Size when  pw_jointinfo.Extend_Length!='' then  pw_jointinfo.Extend_Length else 0 end) AS total_din
							 | 
						|||
| 
								 | 
							
											                            ,SUM(JOT_DoneDin) AS finished_total_din
							 | 
						|||
| 
								 | 
							
											                            FROM pw_jointinfo 
							 | 
						|||
| 
								 | 
							
											                            LEFT JOIN pw_isoinfo  ON pw_jointinfo.ISO_ID = pw_isoinfo.ISO_ID
							 | 
						|||
| 
								 | 
							
											                            LEFT JOIN Base_Material ON Base_Material.MaterialId = pw_jointinfo.MaterialId
							 | 
						|||
| 
								 | 
							
											                            WHERE  (pw_isoinfo.Is_Standard=@IsStandard OR @IsStandard ='') and pw_isoinfo.ProjectId = @ProjectId
							 | 
						|||
| 
								 | 
							
											                            GROUP BY pw_isoinfo.WorkAreaId)	AS total_jot ON total_jot.WorkAreaId = WorkArea.WorkAreaId 
							 | 
						|||
| 
								 | 
							
								                            WHERE   ";
							 | 
						|||
| 
								 | 
							
								            List<SqlParameter> listStr = new List<SqlParameter>();
							 | 
						|||
| 
								 | 
							
								            strSql += " WorkArea.ProjectId = @ProjectId";
							 | 
						|||
| 
								 | 
							
								            listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
							 | 
						|||
| 
								 | 
							
								            if (this.drpUnit.SelectedValue != BLL.Const._Null)
							 | 
						|||
| 
								 | 
							
								            { strSql += " and WorkArea.UnitId = @UnitId";
							 | 
						|||
| 
								 | 
							
								                listStr.Add(new SqlParameter("@UnitId", this.drpUnit.SelectedValue));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (this.cb_IsStandard.SelectedIndexArray != null && this.cb_IsStandard.SelectedIndexArray.Length == 1)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                listStr.Add(new SqlParameter("@IsStandard", this.cb_IsStandard.SelectedValueArray[0]));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                listStr.Add(new SqlParameter("@IsStandard", ""));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            SqlParameter[] parameter = listStr.ToArray();
							 | 
						|||
| 
								 | 
							
								            DataTable tb1 = SQLHelper.GetDataTableRunText(strSql, parameter);
							 | 
						|||
| 
								 | 
							
								            strSql = @"  select   WorkAreaId,[day],[month],COUNT(distinct JOT_CellWelder)  as WelderNum from (SELECT DAY(jot_welddate) as [day],MONTH(jot_welddate) as [month], 
							 | 
						|||
| 
								 | 
							
										                        pw_isoinfo.WorkAreaId ,JOT_CellWelder  
							 | 
						|||
| 
								 | 
							
										                        FROM pw_jointinfo 
							 | 
						|||
| 
								 | 
							
										                        LEFT JOIN pw_isoinfo  ON pw_jointinfo.ISO_ID = pw_isoinfo.ISO_ID
							 | 
						|||
| 
								 | 
							
										                        LEFT JOIN Base_Material ON Base_Material.MaterialId = pw_jointinfo.MaterialId
							 | 
						|||
| 
								 | 
							
										                        LEFT JOIN BO_WeldReportMain ON BO_WeldReportMain.dreportid = pw_jointinfo.dreportid 
							 | 
						|||
| 
								 | 
							
										                        WHERE  (pw_isoinfo.Is_Standard=@IsStandard OR @IsStandard ='' )  and  pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' ";
							 | 
						|||
| 
								 | 
							
								            if (this.drpUnit.SelectedValue != BLL.Const._Null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                strSql += " and pw_isoinfo.UnitId ='" + this.drpUnit.SelectedValue + "' ";
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            strSql += " and jot_welddate >='" + dpDate.SelectedDate.Value.ToString("yyyy-MM-dd") + "' and jot_welddate <'" + dpDate.SelectedDate.Value.AddMonths(1).ToString("yyyy-MM-dd") + "'" +
							 | 
						|||
| 
								 | 
							
								              @"union   
							 | 
						|||
| 
								 | 
							
								                        SELECT DAY(jot_welddate) as [day],MONTH(jot_welddate) as [month], 
							 | 
						|||
| 
								 | 
							
										                        pw_isoinfo.WorkAreaId ,JOT_FloorWelder  
							 | 
						|||
| 
								 | 
							
										                        FROM pw_jointinfo 
							 | 
						|||
| 
								 | 
							
										                        LEFT JOIN pw_isoinfo  ON pw_jointinfo.ISO_ID = pw_isoinfo.ISO_ID
							 | 
						|||
| 
								 | 
							
										                        LEFT JOIN Base_Material ON Base_Material.MaterialId = pw_jointinfo.MaterialId
							 | 
						|||
| 
								 | 
							
										                        LEFT JOIN BO_WeldReportMain ON BO_WeldReportMain.dreportid = pw_jointinfo.dreportid 
							 | 
						|||
| 
								 | 
							
										                        WHERE (pw_isoinfo.Is_Standard=@IsStandard OR @IsStandard = '') and  pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "'";
							 | 
						|||
| 
								 | 
							
								            if (this.drpUnit.SelectedValue != BLL.Const._Null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                strSql += "and pw_isoinfo.UnitId ='" + this.drpUnit.SelectedValue + "' ";
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            strSql += "  and jot_welddate >='" + dpDate.SelectedDate.Value.ToString("yyyy-MM-dd") + "' and jot_welddate <'" + dpDate.SelectedDate.Value.AddMonths(1).ToString("yyyy-MM-dd") + "'" +
							 | 
						|||
| 
								 | 
							
								                                @") as a  group by WorkAreaId,[day],[month]";
							 | 
						|||
| 
								 | 
							
								            listStr = new List<SqlParameter>();
							 | 
						|||
| 
								 | 
							
								            //strSql += " WorkArea.ProjectId = @ProjectId";
							 | 
						|||
| 
								 | 
							
								            //listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
							 | 
						|||
| 
								 | 
							
								            //strSql += " and WorkArea.UnitId = @UnitId";
							 | 
						|||
| 
								 | 
							
								            //listStr.Add(new SqlParameter("@UnitId", this.drpUnit.SelectedValue)); 
							 | 
						|||
| 
								 | 
							
								            if (this.cb_IsStandard.SelectedIndexArray != null && this.cb_IsStandard.SelectedIndexArray.Length == 1)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                listStr.Add(new SqlParameter("@IsStandard", this.cb_IsStandard.SelectedValueArray[0]));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                listStr.Add(new SqlParameter("@IsStandard", ""));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            parameter = listStr.ToArray();
							 | 
						|||
| 
								 | 
							
								            DataTable tb2 = SQLHelper.GetDataTableRunText(strSql, parameter);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            strSql = @"  SELECT DAY(jot_welddate) as [day],MONTH(jot_welddate) as [month],
							 | 
						|||
| 
								 | 
							
								                             COUNT(*) finished_total_jot_bq ,
							 | 
						|||
| 
								 | 
							
								                             pw_isoinfo.WorkAreaId ,SUM(
							 | 
						|||
| 
								 | 
							
								                             case when pw_isoinfo.[Is_Standard] = 0 then JOT_DoneDin when  pw_jointinfo.Extend_Length !='' then   pw_jointinfo.Extend_Length else 0 end 
							 | 
						|||
| 
								 | 
							
								                             ) AS finished_total_din_bq	 
							 | 
						|||
| 
								 | 
							
											                            FROM pw_jointinfo 
							 | 
						|||
| 
								 | 
							
											                            LEFT JOIN pw_isoinfo  ON pw_jointinfo.ISO_ID = pw_isoinfo.ISO_ID
							 | 
						|||
| 
								 | 
							
											                            LEFT JOIN Base_Material ON Base_Material.MaterialId = pw_jointinfo.MaterialId
							 | 
						|||
| 
								 | 
							
											                            LEFT JOIN BO_WeldReportMain ON BO_WeldReportMain.dreportid = pw_jointinfo.dreportid 
							 | 
						|||
| 
								 | 
							
											                             WHERE (pw_isoinfo.Is_Standard=@IsStandard OR @IsStandard ='') and  pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "'";
							 | 
						|||
| 
								 | 
							
								            if (this.drpUnit.SelectedValue != BLL.Const._Null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                strSql += "and pw_isoinfo.UnitId ='" + this.drpUnit.SelectedValue + "'";
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            strSql += "  and jot_welddate >='" + dpDate.SelectedDate.Value.ToString("yyyy-MM-dd") + "' and jot_welddate <'" + dpDate.SelectedDate.Value.AddMonths(1).ToString("yyyy-MM-dd") + "'" +
							 | 
						|||
| 
								 | 
							
								                                        @"GROUP BY pw_isoinfo.WorkAreaId,DAY(jot_welddate),MONTH(jot_welddate) ";
							 | 
						|||
| 
								 | 
							
								            listStr = new List<SqlParameter>();
							 | 
						|||
| 
								 | 
							
								            //strSql += " WorkArea.ProjectId = @ProjectId";
							 | 
						|||
| 
								 | 
							
								            //listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
							 | 
						|||
| 
								 | 
							
								            //strSql += " and WorkArea.UnitId = @UnitId";
							 | 
						|||
| 
								 | 
							
								            //listStr.Add(new SqlParameter("@UnitId", this.drpUnit.SelectedValue)); 
							 | 
						|||
| 
								 | 
							
								            if (this.cb_IsStandard.SelectedIndexArray != null && this.cb_IsStandard.SelectedIndexArray.Length == 1)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                listStr.Add(new SqlParameter("@IsStandard", this.cb_IsStandard.SelectedValueArray[0]));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                listStr.Add(new SqlParameter("@IsStandard", ""));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            parameter = listStr.ToArray();
							 | 
						|||
| 
								 | 
							
								            DataTable tb3 = SQLHelper.GetDataTableRunText(strSql, parameter);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            strSql = @"  SELECT  COUNT(*) finished_total_jot_bq ,
							 | 
						|||
| 
								 | 
							
								                             pw_isoinfo.WorkAreaId ,SUM(
							 | 
						|||
| 
								 | 
							
								                             case when pw_isoinfo.[Is_Standard] = 0 then JOT_DoneDin when  pw_jointinfo.Extend_Length !='' then   pw_jointinfo.Extend_Length else 0 end 
							 | 
						|||
| 
								 | 
							
								                             ) AS finished_total_din_bq	 
							 | 
						|||
| 
								 | 
							
											                            FROM pw_jointinfo 
							 | 
						|||
| 
								 | 
							
											                            LEFT JOIN pw_isoinfo  ON pw_jointinfo.ISO_ID = pw_isoinfo.ISO_ID
							 | 
						|||
| 
								 | 
							
											                            LEFT JOIN Base_Material ON Base_Material.MaterialId = pw_jointinfo.MaterialId
							 | 
						|||
| 
								 | 
							
											                            LEFT JOIN BO_WeldReportMain ON BO_WeldReportMain.dreportid = pw_jointinfo.dreportid 
							 | 
						|||
| 
								 | 
							
											                             WHERE (pw_isoinfo.Is_Standard=@IsStandard OR @IsStandard ='') and  pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "'";
							 | 
						|||
| 
								 | 
							
								            if (this.drpUnit.SelectedValue != BLL.Const._Null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                strSql += " and pw_isoinfo.UnitId ='" + this.drpUnit.SelectedValue + "' ";
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            strSql += "and  jot_welddate <'" + dpDate.SelectedDate.Value.AddMonths(1).ToString("yyyy-MM-dd") + "' " +
							 | 
						|||
| 
								 | 
							
								                                        @"GROUP BY pw_isoinfo.WorkAreaId ";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            
							 | 
						|||
| 
								 | 
							
								            listStr = new List<SqlParameter>();
							 | 
						|||
| 
								 | 
							
								            //strSql += " WorkArea.ProjectId = @ProjectId";
							 | 
						|||
| 
								 | 
							
								            //listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
							 | 
						|||
| 
								 | 
							
								            //strSql += " and WorkArea.UnitId = @UnitId";
							 | 
						|||
| 
								 | 
							
								            //listStr.Add(new SqlParameter("@UnitId", this.drpUnit.SelectedValue)); 
							 | 
						|||
| 
								 | 
							
								            if (this.cb_IsStandard.SelectedIndexArray != null && this.cb_IsStandard.SelectedIndexArray.Length == 1)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                listStr.Add(new SqlParameter("@IsStandard", this.cb_IsStandard.SelectedValueArray[0]));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                listStr.Add(new SqlParameter("@IsStandard", ""));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            parameter = listStr.ToArray();
							 | 
						|||
| 
								 | 
							
								            DataTable tb4 = SQLHelper.GetDataTableRunText(strSql, parameter);
							 | 
						|||
| 
								 | 
							
								            int day = DateTime.DaysInMonth(dpDate.SelectedDate.Value.Year, dpDate.SelectedDate.Value.Month);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (tb1 != null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                tb1.Columns.Add("has_month_din");
							 | 
						|||
| 
								 | 
							
								                for (int i = 1; i <= day; i++)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    tb1.Columns.Add("Day" + i);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            int numCount = tb1.Rows.Count;
							 | 
						|||
| 
								 | 
							
								            for (int j = numCount - 1; j >= 0; j--)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var row1 = tb1.NewRow();
							 | 
						|||
| 
								 | 
							
								                row1[0] = tb1.Rows[j][0];
							 | 
						|||
| 
								 | 
							
								                row1[1] = tb1.Rows[j][1] + "|n";
							 | 
						|||
| 
								 | 
							
								                row1[2] = tb1.Rows[j][2];
							 | 
						|||
| 
								 | 
							
								                row1[3] = tb1.Rows[j][3];
							 | 
						|||
| 
								 | 
							
								                row1[4] = tb1.Rows[j][4];
							 | 
						|||
| 
								 | 
							
								                row1[5] = tb1.Rows[j][5];
							 | 
						|||
| 
								 | 
							
								                tb1.Rows.InsertAt(row1, j + 1);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            for (int j = 0; j < numCount; j++)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var row1 = tb1.Rows[j * 2];
							 | 
						|||
| 
								 | 
							
								                row1["id"] = j * 2;
							 | 
						|||
| 
								 | 
							
								                row1["Type"] = "焊工(人)";
							 | 
						|||
| 
								 | 
							
								                for (int i = 0; i < tb2.Rows.Count; i++)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    var row2 = tb2.Rows[i];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (row2["WorkAreaId"].ToString() == row1["WorkAreaId"].ToString())
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (tb1.Columns.Contains("Day" + row2["day"]))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            row1["Day" + row2["day"]] = row2["WelderNum"];
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                row1 = tb1.Rows[j * 2 + 1];
							 | 
						|||
| 
								 | 
							
								                row1["id"] = j * 2 + 1;
							 | 
						|||
| 
								 | 
							
								                row1["Type"] = "工作量(吋)";
							 | 
						|||
| 
								 | 
							
								                for (int i = 0; i < tb3.Rows.Count; i++)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    var row3 = tb3.Rows[i];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (row3["WorkAreaId"].ToString() + "|n" == row1["WorkAreaId"].ToString())
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (tb1.Columns.Contains("Day" + row3["day"]) && row3["finished_total_din_bq"] != DBNull.Value)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            try
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                row1["Day" + row3["day"]] = ((decimal)row3["finished_total_din_bq"]).ToString("#0.##");
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            catch (Exception e) { }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                double has = 0;
							 | 
						|||
| 
								 | 
							
								                var row4 = tb1.Rows[j * 2 + 1];
							 | 
						|||
| 
								 | 
							
								                for (int i = 1; i <= day; i++)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (row4["Day" + i] != DBNull.Value)
							 | 
						|||
| 
								 | 
							
								                        try
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            has += double.Parse(row4["Day" + i].ToString());
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        catch (Exception e) { }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                tb1.Rows[j * 2]["has_month_din"] = has;
							 | 
						|||
| 
								 | 
							
								                double hasTotalfinsh = 0;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                for(int i=0;i<tb4.Rows.Count;i++)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    var row44 = tb4.Rows[i];
							 | 
						|||
| 
								 | 
							
								                    if (row44["WorkAreaId"].ToString() + "|n" == row1["WorkAreaId"].ToString())
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                          double.TryParse(row44["finished_total_din_bq"].ToString(),out hasTotalfinsh);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (row4["total_din"] != DBNull.Value)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    try
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        tb1.Rows[j * 2]["res_din"] = double.Parse(row4["total_din"].ToString()) - hasTotalfinsh;
							 | 
						|||
| 
								 | 
							
								                        if (double.Parse(row4["total_din"].ToString()) > 0.000000001)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            tb1.Rows[j * 2]["HSData"] = (100 * hasTotalfinsh / double.Parse(row4["total_din"].ToString())).ToString("#0.##") + "%";
							 | 
						|||
| 
								 | 
							
								                            tb1.Rows[j * 2]["finished_total_din"] = hasTotalfinsh;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    catch (Exception e) { }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            var rowTotal1 = tb1.NewRow();
							 | 
						|||
| 
								 | 
							
								            rowTotal1[0] = "10000000";
							 | 
						|||
| 
								 | 
							
								            rowTotal1[1] = "";
							 | 
						|||
| 
								 | 
							
								            rowTotal1[2] = "";
							 | 
						|||
| 
								 | 
							
								            rowTotal1[3] = "合计";
							 | 
						|||
| 
								 | 
							
								            rowTotal1["Type"] = "焊工(人)";
							 | 
						|||
| 
								 | 
							
								            var rowTotal2 = tb1.NewRow();
							 | 
						|||
| 
								 | 
							
								            rowTotal2[0] = "10000001";
							 | 
						|||
| 
								 | 
							
								            rowTotal2[1] = "";
							 | 
						|||
| 
								 | 
							
								            rowTotal2[2] = "";
							 | 
						|||
| 
								 | 
							
								            rowTotal2[3] = "";
							 | 
						|||
| 
								 | 
							
								            rowTotal2["Type"] = "工作量(吋)";
							 | 
						|||
| 
								 | 
							
								            double total_din = 0;
							 | 
						|||
| 
								 | 
							
								            for (int j = 0; j < numCount; j++)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                try
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    total_din += double.Parse(tb1.Rows[j * 2 + 1]["total_din"].ToString());
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                catch (Exception e)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                for (int i = 1; i <= day; i++)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    double temp1 = 0;
							 | 
						|||
| 
								 | 
							
								                    double temp2 = 0;
							 | 
						|||
| 
								 | 
							
								                    double.TryParse(rowTotal1["Day" + i] != DBNull.Value ? rowTotal1["Day" + i].ToString() : "0", out temp1);
							 | 
						|||
| 
								 | 
							
								                    double.TryParse(tb1.Rows[j * 2]["Day" + i] != DBNull.Value ? tb1.Rows[j * 2]["Day" + i].ToString() : "0", out temp2);
							 | 
						|||
| 
								 | 
							
								                    rowTotal1["Day" + i] = temp1 + temp2;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    double temp3 = 0;
							 | 
						|||
| 
								 | 
							
								                    double temp4 = 0;
							 | 
						|||
| 
								 | 
							
								                    double.TryParse(rowTotal2["Day" + i] != DBNull.Value ? rowTotal2["Day" + i].ToString() : "0", out temp3);
							 | 
						|||
| 
								 | 
							
								                    double.TryParse(tb1.Rows[j * 2 + 1]["Day" + i] != DBNull.Value ? tb1.Rows[j * 2 + 1]["Day" + i].ToString() : "0", out temp4);
							 | 
						|||
| 
								 | 
							
								                    rowTotal2["Day" + i] = temp3 + temp4;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            tb1.Rows.Add(rowTotal1);
							 | 
						|||
| 
								 | 
							
								            tb1.Rows.Add(rowTotal2);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								           
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            double hasTotal = 0;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            for (int i = 1; i <= day; i++)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                if (rowTotal2["Day" + i] != DBNull.Value)
							 | 
						|||
| 
								 | 
							
								                    try
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        hasTotal += double.Parse(rowTotal2["Day" + i].ToString());
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    catch (Exception e)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            rowTotal1["has_month_din"] = hasTotal;
							 | 
						|||
| 
								 | 
							
								            hasTotal = 0;
							 | 
						|||
| 
								 | 
							
								            for (int i = 0; i < tb4.Rows.Count; i++)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                double hasTotalfinsh = 0;
							 | 
						|||
| 
								 | 
							
								                var row44 = tb4.Rows[i];
							 | 
						|||
| 
								 | 
							
								                double.TryParse(row44["finished_total_din_bq"].ToString(), out hasTotalfinsh);
							 | 
						|||
| 
								 | 
							
								                hasTotal += hasTotalfinsh;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            rowTotal2["total_din"] = total_din;
							 | 
						|||
| 
								 | 
							
								            rowTotal1["total_din"] = total_din;
							 | 
						|||
| 
								 | 
							
								            rowTotal1["finished_total_din"] = hasTotal; 
							 | 
						|||
| 
								 | 
							
								            try
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                rowTotal1["res_din"] = double.Parse(rowTotal2["total_din"].ToString()) - hasTotal;
							 | 
						|||
| 
								 | 
							
								                if (double.Parse(rowTotal2["total_din"].ToString()) > 0.000000001)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    rowTotal1["HSData"] = (100 * hasTotal / double.Parse(rowTotal2["total_din"].ToString())).ToString("#0.##") + "%";
							 | 
						|||
| 
								 | 
							
								                    rowTotal1["finished_total_din"] = hasTotal;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            catch (Exception e)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            Grid1.RecordCount = tb1.Rows.Count;
							 | 
						|||
| 
								 | 
							
								            Grid1.DataSource = tb1;
							 | 
						|||
| 
								 | 
							
								            Grid1.DataBind();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 改变索引事件
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            BindGrid();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 分页下拉选择事件
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
							 | 
						|||
| 
								 | 
							
								            BindGrid();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 排序
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            this.BindGrid();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								       
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void Window1_Close(object sender, WindowCloseEventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            this.BindGrid();
							 | 
						|||
| 
								 | 
							
								            // 显示列
							 | 
						|||
| 
								 | 
							
								            //var c = UserShowColumnsService.GetColumnsByUserId(this.CurrUser.UserId, Const.UnitAreaQualityMenuId);
							 | 
						|||
| 
								 | 
							
								            //if (c != null)
							 | 
						|||
| 
								 | 
							
								            //{
							 | 
						|||
| 
								 | 
							
								            //    this.GetShowColumn(c.Columns);
							 | 
						|||
| 
								 | 
							
								            //}
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 显示的列
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="column"></param>
							 | 
						|||
| 
								 | 
							
								        private void GetShowColumn(string column)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (!string.IsNullOrEmpty(column))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                for (int i = 0; i < Grid1.Columns.Count; i++)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    this.Grid1.Columns[i].Hidden = true;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                List<string> columns = column.Split(',').ToList();
							 | 
						|||
| 
								 | 
							
								                foreach (var item in columns)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    this.Grid1.Columns[Convert.ToInt32(item)].Hidden = false;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 统计按钮事件
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 统计
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void BtnAnalyse_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (drpUnit.SelectedValue != BLL.Const._Null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ColumnUnitName.HeaderText = drpUnit.SelectedText;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (dpDate.SelectedDate.HasValue)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                CollumMonth.HeaderText = dpDate.SelectedDate.Value.ToString("yyyy年MM月");
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                int day = DateTime.DaysInMonth(dpDate.SelectedDate.Value.Year, dpDate.SelectedDate.Value.Month);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (day == 30)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Day31.Hidden = true;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else if (day == 29)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Day30.Hidden = true;
							 | 
						|||
| 
								 | 
							
								                    Day31.Hidden = true;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else if (day == 28)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Day29.Hidden = true;
							 | 
						|||
| 
								 | 
							
								                    Day30.Hidden = true;
							 | 
						|||
| 
								 | 
							
								                    Day31.Hidden = true;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Alert.ShowInTop("请选择日期!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                return;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            BindGrid();
							 | 
						|||
| 
								 | 
							
								            //OutputSummaryData();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 导出按钮
							 | 
						|||
| 
								 | 
							
								        /// 导出按钮
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void btnOut_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Response.ClearContent();
							 | 
						|||
| 
								 | 
							
								            string filename = Funs.GetNewFileName();
							 | 
						|||
| 
								 | 
							
								            Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("储罐/管道每日焊接量统计表" + filename, System.Text.Encoding.UTF8) + ".xls");
							 | 
						|||
| 
								 | 
							
								            Response.ContentType = "application/excel";
							 | 
						|||
| 
								 | 
							
								            Response.ContentEncoding = System.Text.Encoding.UTF8;
							 | 
						|||
| 
								 | 
							
								            Response.Write(GetGridTableHtml(Grid1));
							 | 
						|||
| 
								 | 
							
								            Response.End();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 导出方法
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="grid"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        private string GetGridTableHtml(Grid grid)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            StringBuilder sb = new StringBuilder();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            MultiHeaderTable mht = new MultiHeaderTable();
							 | 
						|||
| 
								 | 
							
								            mht.ResolveMultiHeaderTable(Grid1.Columns);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            sb.Append("<meta http-equiv=\"content-type\" content=\"application/excel; charset=UTF-8\"/>");
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            foreach (List<object[]> rows in mht.MultiTable)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                sb.Append("<tr>");
							 | 
						|||
| 
								 | 
							
								                foreach (object[] cell in rows)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    int rowspan = Convert.ToInt32(cell[0]);
							 | 
						|||
| 
								 | 
							
								                    int colspan = Convert.ToInt32(cell[1]);
							 | 
						|||
| 
								 | 
							
								                    GridColumn column = cell[2] as GridColumn;
							 | 
						|||
| 
								 | 
							
								                    if (!column.Hidden)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        sb.AppendFormat("<th{0}{1}{2}>{3}</th>",
							 | 
						|||
| 
								 | 
							
								                            rowspan != 1 ? " rowspan=\"" + rowspan + "\"" : "",
							 | 
						|||
| 
								 | 
							
								                            colspan != 1 ? " colspan=\"" + colspan + "\"" : "",
							 | 
						|||
| 
								 | 
							
								                            colspan != 1 ? " style=\"text-align:center;\"" : "",
							 | 
						|||
| 
								 | 
							
								                            column.HeaderText);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                sb.Append("</tr>");
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            int j = 0;
							 | 
						|||
| 
								 | 
							
								            foreach (GridRow row in grid.Rows)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                sb.Append("<tr>");
							 | 
						|||
| 
								 | 
							
								                int i = 0;
							 | 
						|||
| 
								 | 
							
								                foreach (GridColumn column in mht.Columns)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    string html = row.Values[column.ColumnIndex].ToString();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (column.ColumnID == "tfNumber")
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        html = (row.FindControl("spanNumber") as System.Web.UI.HtmlControls.HtmlGenericControl).InnerText;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else if (column.ColumnID == "tfGender")
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        html = (row.FindControl("labGender") as AspNet.Label).Text;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (i <= 6 && j % 2 == 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (!column.Hidden)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            sb.AppendFormat("<td rowspan='2'>{0}</td>", html);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else if (i > 6)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (!column.Hidden)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            sb.AppendFormat("<td >{0}</td>", html);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    i++;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                j++;
							 | 
						|||
| 
								 | 
							
								                sb.Append("</tr>");
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            sb.Append("</table>");
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            return sb.ToString();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 下拉选择事件
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 单位下拉选择事件
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name = "sender" ></ param >
							 | 
						|||
| 
								 | 
							
								        /// < param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void drpUnit_SelectedIndexChanged(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        protected void cb_IsStandard_SelectedIndexChanged(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |