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.IO; using System.Linq; using System.Text; using AspNet = System.Web.UI.WebControls; namespace FineUIPro.Web.HJGL.WeldingReport { public partial class OneMonthReport : PageBase { #region 定义变量 /// /// 主键 /// public string NDTReportId { get { return (string)ViewState["NDTReportId"]; } set { ViewState["NDTReportId"] = value; } } #endregion #region 加载 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { List units = new List(); 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.DataTextField = "UnitName"; this.drpUnit.DataValueField = "UnitId"; this.drpUnit.DataSource = units; this.drpUnit.DataBind(); this.drpUnit.SelectedValue = CurrUser.UnitId; Funs.FineUIPleaseSelect(this.drpUnit); } else { units = BLL.UnitService.GetSubUnitsListBySupervisorUnitId(this.CurrUser.LoginProjectId, 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; } ///单位 this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now); this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now.AddMonths(-1)); if (this.drpUnit.SelectedValue == BLL.Const._Null) { this.drpUnit.SelectedIndex = 1; } //BindGrid(); } } private void BindGrid() { string strSql0 = @"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_bq,week_total_din_bq,0 res_din, '' has_per ,WelderNum 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 else JOT_Size 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] = 0 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId ='" + this.drpUnit.SelectedValue + @"' GROUP BY pw_isoinfo.WorkAreaId) AS total_jot ON total_jot.WorkAreaId = WorkArea.WorkAreaId LEFT JOIN( SELECT pw_isoinfo.WorkAreaId , SUM( case when pw_isoinfo.[Is_Standard] = 0 then JOT_DoneDin else [JOT_DoneDin] 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] = 0 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId = '" + this.drpUnit.SelectedValue + @"' GROUP BY pw_isoinfo.WorkAreaId ) as has_total_jot on has_total_jot.WorkAreaId = WorkArea.WorkAreaId LEFT JOIN( SELECT pw_isoinfo.WorkAreaId , SUM( case when pw_isoinfo.[Is_Standard] = 0 then JOT_DoneDin else [JOT_DoneDin] end ) AS week_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] = 0 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId = '" + this.drpUnit.SelectedValue + @"' and jot_welddate >='" + txtStartDate.SelectedDate.Value.ToString("yyyy-MM-dd") + "' and jot_welddate <'" + txtEndDate.SelectedDate.Value.ToString("yyyy-MM-dd") + @"' GROUP BY pw_isoinfo.WorkAreaId ) as week_total_jot on week_total_jot.WorkAreaId = WorkArea.WorkAreaId left join( select WorkAreaId, sum(WelderNum)as WelderNum from( 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] = 0 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId = '" + this.drpUnit.SelectedValue + @"' and jot_welddate >='" + txtStartDate.SelectedDate.Value.ToString("yyyy-MM-dd") + "' and jot_welddate <'" + txtEndDate.SelectedDate.Value.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] = 0 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId = '" + this.drpUnit.SelectedValue + @"' and jot_welddate >='" + txtStartDate.SelectedDate.Value.ToString("yyyy-MM-dd") + "' and jot_welddate <'" + txtEndDate.SelectedDate.Value.ToString("yyyy-MM-dd") + @"' ) as a group by WorkAreaId,[day],[month]) as b group by b.WorkAreaId) as week_welder_num on week_welder_num.WorkAreaId = WorkArea.WorkAreaId WHERE WorkArea.ProjectId = '" + this.CurrUser.LoginProjectId + "' and WorkArea.UnitId ='" + this.drpUnit.SelectedValue + @"' "; SqlParameter[] parameter0 = new SqlParameter[] { }; DataTable tb0 = SQLHelper.GetDataTableRunText(strSql0, parameter0); if (tb0 != null) { var newRow = tb0.NewRow(); newRow["WorkAreaName"] = "合计"; newRow["WorkAreaCode"] = ""; newRow["WorkAreaId"] = "total"; decimal total_din = 0; decimal finished_total_din_bq = 0; decimal week_total_din_bq = 0; int WelderNum = 0; for (int i = 0; i < tb0.Rows.Count; i++) { try { total_din += decimal.Parse(tb0.Rows[i]["total_din"].ToString()); } catch (Exception e) { } try { finished_total_din_bq += decimal.Parse(tb0.Rows[i]["finished_total_din_bq"].ToString()); } catch (Exception e) { } try { week_total_din_bq += decimal.Parse(tb0.Rows[i]["week_total_din_bq"].ToString()); } catch (Exception e) { } try { WelderNum += int.Parse(tb0.Rows[i]["WelderNum"].ToString()); } catch (Exception e) { } try { tb0.Rows[i]["res_din"] = decimal.Parse(tb0.Rows[i]["total_din"].ToString()) - decimal.Parse(tb0.Rows[i]["finished_total_din_bq"].ToString()); } catch (Exception e) { } try { tb0.Rows[i]["has_per"] = (100 * decimal.Parse(tb0.Rows[i]["finished_total_din_bq"].ToString()) / decimal.Parse(tb0.Rows[i]["total_din"].ToString())).ToString("##.##"); } catch (Exception e) { } } newRow["total_din"] = total_din ; newRow["finished_total_din_bq"] = finished_total_din_bq ; newRow["week_total_din_bq"] = week_total_din_bq ; newRow["WelderNum"] = WelderNum; try { newRow["res_din"] = decimal.Parse(newRow["total_din"].ToString()) - decimal.Parse(newRow["finished_total_din_bq"].ToString()); } catch (Exception e) { } try { newRow["has_per"] = (100 * decimal.Parse(newRow["finished_total_din_bq"].ToString()) / decimal.Parse(newRow["total_din"].ToString())).ToString("##.##"); } catch (Exception e) { } tb0.Rows.Add(newRow); } this.Grid0.DataSource = tb0; this.Grid0.DataBind(); string strSql1 = @"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_bq,week_total_din_bq,0 res_din, '' has_per ,WelderNum 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 else JOT_Size 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] = 1 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId ='" + this.drpUnit.SelectedValue + @"' GROUP BY pw_isoinfo.WorkAreaId) AS total_jot ON total_jot.WorkAreaId = WorkArea.WorkAreaId LEFT JOIN( SELECT pw_isoinfo.WorkAreaId , SUM( case when pw_isoinfo.[Is_Standard] = 0 then JOT_DoneDin else [JOT_DoneDin] 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] = 1 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId = '" + this.drpUnit.SelectedValue + @"' GROUP BY pw_isoinfo.WorkAreaId ) as has_total_jot on has_total_jot.WorkAreaId = WorkArea.WorkAreaId LEFT JOIN( SELECT pw_isoinfo.WorkAreaId , SUM( case when pw_isoinfo.[Is_Standard] = 0 then JOT_DoneDin else [JOT_DoneDin] end ) AS week_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] = 1 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId = '" + this.drpUnit.SelectedValue + @"' and jot_welddate >='" + txtStartDate.SelectedDate.Value.ToString("yyyy-MM-dd") + "' and jot_welddate <'" + txtEndDate.SelectedDate.Value.ToString("yyyy-MM-dd") + @"' GROUP BY pw_isoinfo.WorkAreaId ) as week_total_jot on week_total_jot.WorkAreaId = WorkArea.WorkAreaId left join( select WorkAreaId, sum(WelderNum)as WelderNum from( 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] = 1 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId = '" + this.drpUnit.SelectedValue + @"' and jot_welddate >='" + txtStartDate.SelectedDate.Value.ToString("yyyy-MM-dd") + "' and jot_welddate <'" + txtEndDate.SelectedDate.Value.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] = 1 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId = '" + this.drpUnit.SelectedValue + @"' and jot_welddate >='" + txtStartDate.SelectedDate.Value.ToString("yyyy-MM-dd") + "' and jot_welddate <'" + txtEndDate.SelectedDate.Value.ToString("yyyy-MM-dd") + @"' ) as a group by WorkAreaId,[day],[month]) as b group by b.WorkAreaId) as week_welder_num on week_welder_num.WorkAreaId = WorkArea.WorkAreaId WHERE WorkArea.ProjectId = '" + this.CurrUser.LoginProjectId + "' and WorkArea.UnitId ='" + this.drpUnit.SelectedValue + @"' "; SqlParameter[] parameter1 = new SqlParameter[] { }; DataTable tb1 = SQLHelper.GetDataTableRunText(strSql1, parameter1); if (tb1 != null) { var newRow = tb1.NewRow(); newRow["WorkAreaName"] = "合计"; newRow["WorkAreaCode"] = ""; newRow["WorkAreaId"] = "total"; decimal total_din = 0; decimal finished_total_din_bq = 0; decimal week_total_din_bq = 0; int WelderNum = 0; for (int i = 0; i < tb1.Rows.Count; i++) { try { total_din += decimal.Parse(tb1.Rows[i]["total_din"].ToString()); } catch (Exception e) { } try { finished_total_din_bq += decimal.Parse(tb1.Rows[i]["finished_total_din_bq"].ToString()); } catch (Exception e) { } try { week_total_din_bq += decimal.Parse(tb1.Rows[i]["week_total_din_bq"].ToString()); } catch (Exception e) { } try { WelderNum += int.Parse(tb1.Rows[i]["WelderNum"].ToString()); } catch (Exception e) { } try { tb1.Rows[i]["res_din"] = decimal.Parse(tb1.Rows[i]["total_din"].ToString()) - decimal.Parse(tb1.Rows[i]["finished_total_din_bq"].ToString()); } catch (Exception e) { } try { tb1.Rows[i]["has_per"] = (100 * decimal.Parse(tb1.Rows[i]["finished_total_din_bq"].ToString()) / decimal.Parse(tb1.Rows[i]["total_din"].ToString())).ToString("##.##"); } catch (Exception e) { } } newRow["total_din"] = total_din; newRow["finished_total_din_bq"] = finished_total_din_bq; newRow["week_total_din_bq"] = week_total_din_bq; newRow["WelderNum"] = WelderNum; try { newRow["res_din"] = decimal.Parse(newRow["total_din"].ToString()) - decimal.Parse(newRow["finished_total_din_bq"].ToString()); } catch (Exception e) { } try { newRow["has_per"] = (100 * decimal.Parse(newRow["finished_total_din_bq"].ToString()) / decimal.Parse(newRow["total_din"].ToString())).ToString("##.##"); } catch (Exception e) { } tb1.Rows.Add(newRow); } this.Grid1.DataSource = tb1; this.Grid1.DataBind(); string sql2 = @"/*焊工业绩分析*/ SELECT distinct welder.WED_ID, welder.ProjectId, welder.wed_code,-- 焊工代码 welder.wed_name,--焊工名称 welder.Steels, (CASE WHEN welder.WED_Sex ='2' THEN '女' ELSE '男' END) AS Sex, --性别 ISNULL(nowtotalfilm.nowtotalfilm,0) AS nowtotalfilm, --本期拍片总数 ISNULL(nowtotalfilm.nowpassfilm,0) AS nowpassfilm, --本期拍片合格数 CAST((CASE ISNULL(nowtotalfilm.nowtotalfilm,0) WHEN 0 THEN 0 ELSE 1.0 * isnull(nowtotalfilm.nowpassfilm,0)/(1.0 * nowtotalfilm.nowtotalfilm) END) AS DECIMAL(19,3)) AS nowpassrate , ---本期拍片合格率 ISNULL(totalfilm.totalfilm,0) AS totalfilm, --总片数 ISNULL(totalfilm.passfilm,0) AS passfilm, --合格片数 (ISNULL(totalfilm.totalfilm , 0) - ISNULL(totalfilm.passfilm ,0)) AS notpassfilm, --不合格片数 CAST((CASE ISNULL(totalfilm.totalfilm,0) WHEN 0 THEN 0 ELSE 1.0 * isnull(totalfilm.passfilm,0)/(1.0 * totalfilm.totalfilm) END) AS DECIMAL(19,3)) AS passrate --合格率 FROM BS_Welder AS welder LEFT JOIN ProjectData_TeamGroup AS teamGroup ON teamGroup.TeamGroupId= welder.TeamGroupId ---本期拍片总数 --本期拍片合格数 LEFT JOIN (SELECT SUM(cht_totalfilm) AS nowtotalfilm ,SUM(cht_passfilm) AS nowpassfilm ,pw_jointinfo.JOT_CellWelder FROM ch_checkitem LEFT JOIN pw_jointinfo ON pw_jointinfo.jot_id=ch_checkitem.jot_id LEFT JOIN CH_Check ON CH_Check.CHT_CheckID=ch_checkitem.CHT_CheckID WHERE (pw_jointinfo.ProjectId = @projectId OR @projectId IS NULL) AND ch_checkitem.jot_id is not null AND pw_jointinfo.dreportid is not null AND ( CH_Check.CHT_CheckDate>= @date1 or @date1 is null) AND (CH_Check.CHT_CheckDate <= @date2 or @date2 is null) GROUP BY pw_jointinfo.JOT_CellWelder) AS nowtotalfilm ON nowtotalfilm.JOT_CellWelder = welder.WED_ID --总片数 --合格片数 LEFT JOIN (SELECT SUM(cht_totalfilm) AS totalfilm ,SUM(cht_passfilm) AS passfilm ,pw_jointinfo.JOT_CellWelder FROM ch_checkitem LEFT JOIN pw_jointinfo ON pw_jointinfo.jot_id=ch_checkitem.jot_id WHERE (pw_jointinfo.ProjectId = @projectId OR @projectId IS NULL) AND ch_checkitem.jot_id is not null GROUP BY pw_jointinfo.JOT_CellWelder) AS totalfilm ON totalfilm.JOT_CellWelder = welder.WED_ID WHERE (welder.ProjectId = @projectId OR @projectId IS NULL) AND (welder.WED_Unit=@unitcode OR @unitcode IS NULL) order BY welder.WED_Code "; List listStr = new List { new SqlParameter("@projectId", this.CurrUser.LoginProjectId) }; if (this.drpUnit.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpUnit.SelectedValue)) { listStr.Add(new SqlParameter("@unitcode", this.drpUnit.SelectedValue)); } else { listStr.Add(new SqlParameter("@unitcode", null)); } listStr.Add(new SqlParameter("@date1", this.txtStartDate.Text.Trim())); listStr.Add(new SqlParameter("@date2", this.txtEndDate.Text.Trim())); SqlParameter[] parameter2 = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(sql2, parameter2); DataTable tb3 = tb.Clone(); DataTable tb4 = tb.Clone(); foreach (DataRow row in tb.Rows) { var welder = WelderService.GetWelderById(row["WED_ID"].ToString()); if (welder.WED_TYPE == "管道") { var temprow= tb3.NewRow(); for(int i = 0; i < tb3.Columns.Count; i++) { temprow[i] = row[i]; } tb3.Rows.Add(temprow); } else if (welder.WED_TYPE == "设备") { var temprow = tb4.NewRow(); for (int i = 0; i < tb3.Columns.Count; i++) { temprow[i] = row[i]; } tb4.Rows.Add(temprow); } } this.Grid2.RecordCount = tb3.Rows.Count; //var table3 = this.GetPagedDataTable(Grid2, tb3); Grid2.DataSource = tb3; Grid2.SummaryData= OutputSummaryData(tb3); Grid2.DataBind(); this.Grid3.RecordCount = tb4.Rows.Count; //var table4 = this.GetPagedDataTable(Grid3, tb4); Grid3.DataSource = tb4; Grid3.SummaryData = OutputSummaryData(tb4); Grid3.DataBind(); string strSql4 = @"SELECT WorkArea.ProjectId ,Unit.UnitCode AS bsu_unitcode--单位代码 ,Unit.UnitName AS bsu_unitname--单位名称 ,Installation.InstallationCode AS devicecode--装置代号 ,Installation.InstallationName AS devicename--装置名称 ,WorkArea.WorkAreaCode AS baw_areano--工区代号 ,WorkArea.WorkAreaName AS baw_areaname--工区代号 ,ISNULL(current_total_film.current_total_film, 0) AS current_total_film --本期总拍片数 ,ISNULL(current_total_film.current_pass_film, 0) AS current_pass_film --本期合格片数 ,CAST((CASE ISNULL(current_total_film.current_total_film, 0) WHEN 0 THEN 0 ELSE 1.0 * ISNULL(current_total_film.current_pass_film, 0) / (1.0 * current_total_film.current_total_film) END) AS DECIMAL(19,3)) AS current_passreate --本期合格率 ,ISNULL(current_check_count_total.total_film, 0) AS total_film --总拍片数 ,ISNULL(current_check_count_total.pass_film, 0) AS pass_film --合格片数 ,CAST((CASE ISNULL(current_check_count_total.total_film, 0) WHEN 0 THEN 0 ELSE 1.0 * ISNULL(current_check_count_total.pass_film, 0) / (1.0 * current_check_count_total.total_film) END) AS DECIMAL(19,3)) AS passreate --合格率 FROM(select WorkAreaCode, WorkAreaName,WorkAreaId, UnitId, InstallationId, ProjectId, SupervisorUnitId from ProjectData_WorkArea ) AS WorkArea LEFT JOIN Base_Unit AS Unit ON WorkArea.UnitId = Unit.UnitId LEFT JOIN Project_Installation AS Installation ON Installation.InstallationId = WorkArea.InstallationId --本期总拍片数 LEFT JOIN(SELECT SUM(cht_totalfilm) AS current_total_film , SUM(cht_passfilm) AS current_pass_film , isoinfo.WorkAreaId FROM(select CHT_CheckID from CH_Check where ProjectId = @projectId and(UnitId = @unitNo OR @unitNo IS NULL) AND(cht_checkdate >= @date1 OR @date1 IS NULL) and(cht_checkdate <= @date2 OR @date2 IS NULL)) as Checks LEFT JOIN CH_CheckItem ON ch_checkitem.CHT_CheckID = Checks.CHT_CheckID LEFT JOIN PW_JointInfo as JointInfo ON JointInfo.JOT_ID = ch_checkitem.JOT_ID LEFT JOIN(select iso_id, WorkAreaId from pw_isoinfo where ProjectId = @projectId ) as isoinfo ON jointinfo.ISO_ID = isoinfo.ISO_ID where exists(select 1 from BS_Welder where JointInfo.JOT_CellWelder = BS_Welder.WED_ID and BS_Welder.WED_TYPE = @WED_TYPE) GROUP BY isoinfo.WorkAreaId) AS current_total_film ON current_total_film.WorkAreaId = WorkArea.WorkAreaId --本期总检测数 LEFT JOIN(SELECT COUNT(*) AS current_check_count_total , SUM(cht_totalfilm) AS total_film , SUM(cht_passfilm) AS pass_film , isoinfo.WorkAreaId FROM(select CHT_CheckID from CH_Check where ProjectId = @projectId and(UnitId = @unitNo OR @unitNo IS NULL) ) as Checks LEFT JOIN CH_CheckItem ON ch_checkitem.CHT_CheckID = Checks.CHT_CheckID LEFT JOIN PW_JointInfo as JointInfo ON JointInfo.JOT_ID = ch_checkitem.JOT_ID LEFT JOIN(select iso_id, WorkAreaId from pw_isoinfo where ProjectId = @projectId ) as isoinfo ON jointinfo.ISO_ID = isoinfo.ISO_ID where exists(select 1 from BS_Welder where JointInfo.JOT_CellWelder = BS_Welder.WED_ID and BS_Welder.WED_TYPE = @WED_TYPE) GROUP BY isoinfo.WorkAreaId) AS current_check_count_total ON current_check_count_total.WorkAreaId = WorkArea.WorkAreaId WHERE(WorkArea.ProjectId = @projectId) AND (WorkArea.UnitId = @unitno OR @UnitNo IS NULL) ORDER BY Unit.UnitCode ,Installation.InstallationCode"; List listpar4 = new List { new SqlParameter("@projectId", this.CurrUser.LoginProjectId) }; if (this.drpUnit.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpUnit.SelectedValue)) { listpar4.Add(new SqlParameter("@unitNo", this.drpUnit.SelectedValue)); } else { listpar4.Add(new SqlParameter("@unitNo", null)); } ; listpar4.Add(new SqlParameter("@date1", this.txtStartDate.Text.Trim())); listpar4.Add(new SqlParameter("@date2", this.txtEndDate.Text.Trim())); listpar4.Add(new SqlParameter("@WED_TYPE", "管道")); SqlParameter[] parameter4 = listpar4.ToArray(); DataTable dt4 = SQLHelper.GetDataTableRunText(strSql4, parameter4); Grid4.DataSource = dt4; Grid4.SummaryData = OutputSummaryData2(dt4); Grid4.DataBind(); string strSql5 = @"SELECT WorkArea.ProjectId ,Unit.UnitCode AS bsu_unitcode--单位代码 ,Unit.UnitName AS bsu_unitname--单位名称 ,Installation.InstallationCode AS devicecode--装置代号 ,Installation.InstallationName AS devicename--装置名称 ,WorkArea.WorkAreaCode AS baw_areano--工区代号 ,WorkArea.WorkAreaName AS baw_areaname--工区代号 ,ISNULL(current_total_film.current_total_film, 0) AS current_total_film --本期总拍片数 ,ISNULL(current_total_film.current_pass_film, 0) AS current_pass_film --本期合格片数 ,CAST((CASE ISNULL(current_total_film.current_total_film, 0) WHEN 0 THEN 0 ELSE 1.0 * ISNULL(current_total_film.current_pass_film, 0) / (1.0 * current_total_film.current_total_film) END) AS DECIMAL(19,3)) AS current_passreate --本期合格率 ,ISNULL(current_check_count_total.total_film, 0) AS total_film --总拍片数 ,ISNULL(current_check_count_total.pass_film, 0) AS pass_film --合格片数 ,CAST((CASE ISNULL(current_check_count_total.total_film, 0) WHEN 0 THEN 0 ELSE 1.0 * ISNULL(current_check_count_total.pass_film, 0) / (1.0 * current_check_count_total.total_film) END) AS DECIMAL(19,3)) AS passreate --合格率 FROM(select WorkAreaCode, WorkAreaName,WorkAreaId, UnitId, InstallationId, ProjectId, SupervisorUnitId from ProjectData_WorkArea ) AS WorkArea LEFT JOIN Base_Unit AS Unit ON WorkArea.UnitId = Unit.UnitId LEFT JOIN Project_Installation AS Installation ON Installation.InstallationId = WorkArea.InstallationId --本期总拍片数 LEFT JOIN(SELECT SUM(cht_totalfilm) AS current_total_film , SUM(cht_passfilm) AS current_pass_film , isoinfo.WorkAreaId FROM(select CHT_CheckID from CH_Check where ProjectId = @projectId and(UnitId = @unitNo OR @unitNo IS NULL) AND(cht_checkdate >= @date1 OR @date1 IS NULL) and(cht_checkdate <= @date2 OR @date2 IS NULL)) as Checks LEFT JOIN CH_CheckItem ON ch_checkitem.CHT_CheckID = Checks.CHT_CheckID LEFT JOIN PW_JointInfo as JointInfo ON JointInfo.JOT_ID = ch_checkitem.JOT_ID LEFT JOIN(select iso_id, WorkAreaId from pw_isoinfo where ProjectId = @projectId ) as isoinfo ON jointinfo.ISO_ID = isoinfo.ISO_ID where exists(select 1 from BS_Welder where JointInfo.JOT_CellWelder = BS_Welder.WED_ID and BS_Welder.WED_TYPE = @WED_TYPE) GROUP BY isoinfo.WorkAreaId) AS current_total_film ON current_total_film.WorkAreaId = WorkArea.WorkAreaId --本期总检测数 LEFT JOIN(SELECT COUNT(*) AS current_check_count_total , SUM(cht_totalfilm) AS total_film , SUM(cht_passfilm) AS pass_film , isoinfo.WorkAreaId FROM(select CHT_CheckID from CH_Check where ProjectId = @projectId and(UnitId = @unitNo OR @unitNo IS NULL) ) as Checks LEFT JOIN CH_CheckItem ON ch_checkitem.CHT_CheckID = Checks.CHT_CheckID LEFT JOIN PW_JointInfo as JointInfo ON JointInfo.JOT_ID = ch_checkitem.JOT_ID LEFT JOIN(select iso_id, WorkAreaId from pw_isoinfo where ProjectId = @projectId ) as isoinfo ON jointinfo.ISO_ID = isoinfo.ISO_ID where exists(select 1 from BS_Welder where JointInfo.JOT_CellWelder = BS_Welder.WED_ID and BS_Welder.WED_TYPE = @WED_TYPE) GROUP BY isoinfo.WorkAreaId) AS current_check_count_total ON current_check_count_total.WorkAreaId = WorkArea.WorkAreaId WHERE(WorkArea.ProjectId = @projectId) AND (WorkArea.UnitId = @unitno OR @UnitNo IS NULL) ORDER BY Unit.UnitCode ,Installation.InstallationCode"; List listpar5 = new List { new SqlParameter("@projectId", this.CurrUser.LoginProjectId) }; if (this.drpUnit.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpUnit.SelectedValue)) { listpar5.Add(new SqlParameter("@unitNo", this.drpUnit.SelectedValue)); } else { listpar5.Add(new SqlParameter("@unitNo", null)); }; listpar5.Add(new SqlParameter("@date1", this.txtStartDate.Text.Trim())); listpar5.Add(new SqlParameter("@date2", this.txtEndDate.Text.Trim())); listpar5.Add(new SqlParameter("@WED_TYPE", "设备")); SqlParameter[] parameter5= listpar5.ToArray(); DataTable dt5 = SQLHelper.GetDataTableRunText(strSql5, parameter5); Grid5.DataSource = dt5; Grid5.SummaryData = OutputSummaryData2(dt5); Grid5.DataBind(); } #endregion #region 计算合计 /// /// 计算合计 /// protected JObject OutputSummaryData(DataTable tb) { if (tb != null) { int nowtotalfilm = 0;//本期拍片总数 int nowpassfilm = 0;//本期拍片合格数 int nownotpassfilm = 0;//本期拍片不合格数 string nowpassrate = ""; int totalfilm = 0;//总片数 int passfilm = 0;//合格片数 string passrate = ""; foreach (DataRow row in tb.Rows) { nowtotalfilm += Funs.GetNewIntOrZero(row["nowtotalfilm"].ToString()); nowpassfilm += Funs.GetNewIntOrZero(row["nowpassfilm"].ToString()); totalfilm += Funs.GetNewIntOrZero(row["totalfilm"].ToString()); passfilm += Funs.GetNewIntOrZero(row["passfilm"].ToString()); } if (totalfilm > 0) passrate = (100.0 * passfilm / totalfilm).ToString("#.#") + "%"; if (nowtotalfilm > 0) nowpassrate = (100.0 * nowpassfilm / nowtotalfilm).ToString("#.#") + "%"; JObject summary = new JObject { { "wed_name", "合计" }, { "nowtotalfilm", nowtotalfilm }, { "nowpassfilm", nowpassfilm }, { "nowpassrate",nowpassrate}, { "totalfilm", totalfilm }, { "passfilm", passfilm }, {"passrate",passrate } }; return summary; } return null; } protected JObject OutputSummaryData2(DataTable tb) { if (tb != null) { int current_count_film = 0;//本期拍片焊口数 int current_pass_film = 0;//本期拍片焊口合格数 int totalfilm = 0;//总片数 int passfilm = 0;//合格片数 string passrate = "0.0%"; string current_passrate = "0.0%"; foreach (DataRow row in tb.Rows) { current_count_film += Funs.GetNewIntOrZero(row["current_total_film"].ToString()); current_pass_film += Funs.GetNewIntOrZero(row["current_pass_film"].ToString()); totalfilm += Funs.GetNewIntOrZero(row["total_film"].ToString()); passfilm += Funs.GetNewIntOrZero(row["pass_film"].ToString()); } if (current_count_film > 0) current_passrate = (100.0 * current_pass_film / current_count_film).ToString("#.#") + "%"; if (totalfilm > 0) passrate = (100.0 * passfilm / totalfilm).ToString("#.#") + "%"; JObject summary = new JObject { { "baw_areaname", "合计" }, { "current_total_film", current_count_film }, { "current_pass_film", current_pass_film }, { "total_film", totalfilm }, { "pass_film", passfilm }, {"passreate",passrate }, { "current_passreate", current_passrate } }; return summary; } return null; } #endregion #region 查询 /// /// 查询 /// /// /// protected void btnSearch_Click(object sender, EventArgs e) { string projectName = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId).ProjectName; if (string.IsNullOrEmpty(this.txtStartDate.Text) || string.IsNullOrEmpty(this.txtEndDate.Text)) { Alert.ShowInTop("日期不能为空!", MessageBoxIcon.Warning); return; } if (drpUnit.SelectedValue == BLL.Const._Null) { Alert.ShowInTop("单位不能为空!", MessageBoxIcon.Warning); return; } this.LabelUnit3.Text = "施工单位:" + drpUnit.SelectedText; var unit1 = ProjectUnitService.GetProjectUnitListByProjectIdUnitType(this.CurrUser.LoginProjectId, Const.ProjectUnitType_1); if (unit1 != null && unit1.Count > 0) { string unitids1 = ""; foreach(var u in unit1) { unitids1 += u.UnitId+ ","; } this.LabelUnit1.Text = "总包单位:" + UnitService.getUnitNamesUnitIds(unitids1.TrimEnd(',')); } var unit3 = ProjectUnitService.GetProjectUnitListByProjectIdUnitType(this.CurrUser.LoginProjectId, Const.ProjectUnitType_3); if (unit3 != null && unit1.Count > 0) { string unitids1 = ""; foreach (var u in unit3) { unitids1 += u.UnitId + ","; } this.LabelUnit2.Text = "监理单位:" + UnitService.getUnitNamesUnitIds(unitids1.TrimEnd(',')); } BindGrid(); } #endregion #region 保存 /// /// 保存 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(this.txtStartDate.Text) && !string.IsNullOrEmpty(this.txtEndDate.Text)) { Model.NDTReport ndtReport = new Model.NDTReport(); ndtReport.NDTReportId = this.NDTReportId; ndtReport.ProjectId = this.CurrUser.LoginProjectId; ndtReport.StartDate = Funs.GetNewDateTime(this.txtStartDate.Text.Trim()); ndtReport.EndDate = Funs.GetNewDateTime(this.txtEndDate.Text.Trim()); ndtReport.RType = "1"; BLL.NDTReportService.AddNDTReort(ndtReport); ShowNotify("保存成功!", MessageBoxIcon.Success); BindGrid(); this.txtStartDate.Text = string.Empty; this.txtEndDate.Text = string.Empty; } else { Alert.ShowInTop("日期不能为空!", MessageBoxIcon.Warning); return; } } #endregion #region 右键删除 /// /// 右键删除 /// /// /// protected void btnMenuDelete_Click(object sender, EventArgs e) { if (Grid1.SelectedRowIndexArray.Length > 0) { foreach (int rowIndex in Grid1.SelectedRowIndexArray) { string rowID = Grid1.DataKeys[rowIndex][0].ToString(); var rep = BLL.NDTReportService.GetNDTReportById(rowID); if (rep != null) { BLL.NDTReportService.DeleteNDTReportById(rowID); } } ShowNotify("删除成功!", MessageBoxIcon.Success); BindGrid(); } } #endregion #region 日期选择事件 /// /// 开始日期选择事件 /// /// /// protected void txtStartDate_TextChanged(object sender, EventArgs e) { if (!string.IsNullOrEmpty(this.txtStartDate.Text.Trim())) { this.txtEndDate.Text = Funs.GetNewDateTime(this.txtStartDate.Text.Trim()).Value.AddMonths(1).ToShortDateString(); } } /// /// 结束日期选择事件 /// /// /// protected void txtEndDate_TextChanged(object sender, EventArgs e) { if (!string.IsNullOrEmpty(this.txtEndDate.Text.Trim())) { this.txtStartDate.Text = Funs.GetNewDateTime(this.txtEndDate.Text.Trim()).Value.AddMonths(-1).ToShortDateString(); } } #endregion /// /// 导出 /// /// /// protected void btnOut_Click(object sender, EventArgs e) { Dictionary keyValuePairs = new Dictionary(); keyValuePairs.Add("ConUnit", drpUnit.SelectedText); var unit1 = ProjectUnitService.GetProjectUnitListByProjectIdUnitType(this.CurrUser.LoginProjectId, Const.ProjectUnitType_1); if (unit1 != null && unit1.Count > 0) { string unitids1 = ""; foreach (var u in unit1) { unitids1 += u.UnitId + ","; } keyValuePairs.Add("totalUnit", UnitService.getUnitNamesUnitIds(unitids1.TrimEnd(','))); } var unit3 = ProjectUnitService.GetProjectUnitListByProjectIdUnitType(this.CurrUser.LoginProjectId, Const.ProjectUnitType_3); if (unit3 != null && unit1.Count > 0) { string unitids1 = ""; foreach (var u in unit3) { unitids1 += u.UnitId + ","; } keyValuePairs.Add("supUnit", UnitService.getUnitNamesUnitIds(unitids1.TrimEnd(','))); } BLL.Common.FastReportService.ResetData(); BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs); string strSql1 = @"SELECT 0 id,'' StaDate, WorkArea.WorkAreaId, WorkArea.WorkAreaCode ,--工区代号 WorkArea.WorkAreaName ,--工区代号 CAST(ISNULL(total_jot.total_din,0) AS DECIMAL(19,2)) AS total_din ,--总达因 finished_total_din_bq,week_total_din_bq,0 res_din, '' has_per ,WelderNum 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 else JOT_Size 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] = 0 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId ='" + this.drpUnit.SelectedValue + @"' GROUP BY pw_isoinfo.WorkAreaId) AS total_jot ON total_jot.WorkAreaId = WorkArea.WorkAreaId LEFT JOIN( SELECT pw_isoinfo.WorkAreaId , SUM( case when pw_isoinfo.[Is_Standard] = 0 then JOT_DoneDin else [JOT_DoneDin] 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] = 0 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId = '" + this.drpUnit.SelectedValue + @"' GROUP BY pw_isoinfo.WorkAreaId ) as has_total_jot on has_total_jot.WorkAreaId = WorkArea.WorkAreaId LEFT JOIN( SELECT pw_isoinfo.WorkAreaId , SUM( case when pw_isoinfo.[Is_Standard] = 0 then JOT_DoneDin else [JOT_DoneDin] end ) AS week_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] = 0 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId = '" + this.drpUnit.SelectedValue + @"' and jot_welddate >='" + txtStartDate.SelectedDate.Value.ToString("yyyy-MM-dd") + "' and jot_welddate <'" + txtEndDate.SelectedDate.Value.ToString("yyyy-MM-dd") + @"' GROUP BY pw_isoinfo.WorkAreaId ) as week_total_jot on week_total_jot.WorkAreaId = WorkArea.WorkAreaId left join( select WorkAreaId, sum(WelderNum)as WelderNum from( 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] = 0 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId = '" + this.drpUnit.SelectedValue + @"' and jot_welddate >='" + txtStartDate.SelectedDate.Value.ToString("yyyy-MM-dd") + "' and jot_welddate <'" + txtEndDate.SelectedDate.Value.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] = 0 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId = '" + this.drpUnit.SelectedValue + @"' and jot_welddate >='" + txtStartDate.SelectedDate.Value.ToString("yyyy-MM-dd") + "' and jot_welddate <'" + txtEndDate.SelectedDate.Value.ToString("yyyy-MM-dd") + @"' ) as a group by WorkAreaId,[day],[month]) as b group by b.WorkAreaId) as week_welder_num on week_welder_num.WorkAreaId = WorkArea.WorkAreaId WHERE WorkArea.ProjectId = '" + this.CurrUser.LoginProjectId + "' and WorkArea.UnitId ='" + this.drpUnit.SelectedValue + @"' "; SqlParameter[] parameter1 = new SqlParameter[] { }; DataTable tb1 = SQLHelper.GetDataTableRunText(strSql1, parameter1); if (tb1 != null) { int WelderNum = 0; for (int i = 0; i < tb1.Rows.Count; i++) { try { if (string.IsNullOrEmpty(tb1.Rows[i]["WelderNum"].ToString())) { tb1.Rows[i]["WelderNum"] = 0; } if (string.IsNullOrEmpty(tb1.Rows[i]["week_total_din_bq"].ToString())) { tb1.Rows[i]["week_total_din_bq"] = 0; } if (string.IsNullOrEmpty(tb1.Rows[i]["finished_total_din_bq"].ToString())) { tb1.Rows[i]["finished_total_din_bq"] = 0; } } catch (Exception e11) { } try { WelderNum += int.Parse(tb1.Rows[i]["WelderNum"].ToString()); } catch (Exception e1) { } try { tb1.Rows[i]["res_din"] = decimal.Parse(tb1.Rows[i]["total_din"].ToString()) - decimal.Parse(tb1 .Rows[i]["finished_total_din_bq"].ToString()); } catch (Exception e2) { } try { tb1.Rows[i]["has_per"] = (100 * decimal.Parse(tb1.Rows[i]["finished_total_din_bq"].ToString()) / decimal.Parse(tb1.Rows[i]["total_din"].ToString())).ToString("##.##"); } catch (Exception e3) { } } } tb1.TableName = "Table0"; BLL.Common.FastReportService.AddFastreportTable(tb1); string strSql = @"SELECT 0 id,'' StaDate, WorkArea.WorkAreaId, WorkArea.WorkAreaCode ,--工区代号 WorkArea.WorkAreaName ,--工区代号 CAST(ISNULL(total_jot.total_din,0) AS DECIMAL(19,2)) AS total_din ,--总达因 finished_total_din_bq,week_total_din_bq,0 res_din, '' has_per ,WelderNum 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 else JOT_Size 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] = 1 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId ='" + this.drpUnit.SelectedValue + @"' GROUP BY pw_isoinfo.WorkAreaId) AS total_jot ON total_jot.WorkAreaId = WorkArea.WorkAreaId LEFT JOIN( SELECT pw_isoinfo.WorkAreaId , SUM( case when pw_isoinfo.[Is_Standard] = 0 then JOT_DoneDin else [JOT_DoneDin] 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] = 1 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId = '" + this.drpUnit.SelectedValue + @"' GROUP BY pw_isoinfo.WorkAreaId ) as has_total_jot on has_total_jot.WorkAreaId = WorkArea.WorkAreaId LEFT JOIN( SELECT pw_isoinfo.WorkAreaId , SUM( case when pw_isoinfo.[Is_Standard] = 0 then JOT_DoneDin else [JOT_DoneDin] end ) AS week_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] = 1 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId = '" + this.drpUnit.SelectedValue + @"' and jot_welddate >='" + txtStartDate.SelectedDate.Value.ToString("yyyy-MM-dd") + "' and jot_welddate <'" + txtEndDate.SelectedDate.Value.ToString("yyyy-MM-dd") + @"' GROUP BY pw_isoinfo.WorkAreaId ) as week_total_jot on week_total_jot.WorkAreaId = WorkArea.WorkAreaId left join( select WorkAreaId, sum(WelderNum)as WelderNum from( 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] = 1 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId = '" + this.drpUnit.SelectedValue + @"' and jot_welddate >='" + txtStartDate.SelectedDate.Value.ToString("yyyy-MM-dd") + "' and jot_welddate <'" + txtEndDate.SelectedDate.Value.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] = 1 and pw_isoinfo.ProjectId = '" + this.CurrUser.LoginProjectId + "' and pw_isoinfo.UnitId = '" + this.drpUnit.SelectedValue + @"' and jot_welddate >='" + txtStartDate.SelectedDate.Value.ToString("yyyy-MM-dd") + "' and jot_welddate <'" + txtEndDate.SelectedDate.Value.ToString("yyyy-MM-dd") + @"' ) as a group by WorkAreaId,[day],[month]) as b group by b.WorkAreaId) as week_welder_num on week_welder_num.WorkAreaId = WorkArea.WorkAreaId WHERE WorkArea.ProjectId = '" + this.CurrUser.LoginProjectId + "' and WorkArea.UnitId ='" + this.drpUnit.SelectedValue + @"' "; SqlParameter[] parameter = new SqlParameter[] { }; DataTable tb2 = SQLHelper.GetDataTableRunText(strSql, parameter); if (tb2 != null) { int WelderNum = 0; for (int i = 0; i < tb2.Rows.Count; i++) { try { if (string.IsNullOrEmpty(tb2.Rows[i]["WelderNum"].ToString())) { tb2.Rows[i]["WelderNum"] = 0; } if (string.IsNullOrEmpty(tb2.Rows[i]["week_total_din_bq"].ToString())) { tb2.Rows[i]["week_total_din_bq"] = 0; } if (string.IsNullOrEmpty(tb2.Rows[i]["finished_total_din_bq"].ToString())) { tb2.Rows[i]["finished_total_din_bq"] = 0; } } catch (Exception e11) { } try { WelderNum += int.Parse(tb2.Rows[i]["WelderNum"].ToString()); } catch (Exception e1) { } try { tb2.Rows[i]["res_din"] = decimal.Parse(tb2.Rows[i]["total_din"].ToString()) - decimal.Parse(tb2.Rows[i]["finished_total_din_bq"].ToString()); } catch (Exception e2) { } try { tb2.Rows[i]["has_per"] = (100 * decimal.Parse(tb2.Rows[i]["finished_total_din_bq"].ToString()) / decimal.Parse(tb2.Rows[i]["total_din"].ToString())).ToString("##.##"); } catch (Exception e3) { } } } tb2.TableName = "Table1"; BLL.Common.FastReportService.AddFastreportTable(tb2); string sql2 = @"/*焊工业绩分析*/ SELECT distinct welder.WED_ID, welder.ProjectId, welder.wed_code,-- 焊工代码 welder.wed_name,--焊工名称 welder.Steels, (CASE WHEN welder.WED_Sex ='2' THEN '女' ELSE '男' END) AS Sex, --性别 ISNULL(nowtotalfilm.nowtotalfilm,0) AS nowtotalfilm, --本期拍片总数 ISNULL(nowtotalfilm.nowpassfilm,0) AS nowpassfilm, --本期拍片合格数 CAST((CASE ISNULL(nowtotalfilm.nowtotalfilm,0) WHEN 0 THEN 0 ELSE 1.0 * isnull(nowtotalfilm.nowpassfilm,0)/(1.0 * nowtotalfilm.nowtotalfilm) END) AS DECIMAL(19,3)) AS nowpassrate , ---本期拍片合格率 ISNULL(totalfilm.totalfilm,0) AS totalfilm, --总片数 ISNULL(totalfilm.passfilm,0) AS passfilm, --合格片数 (ISNULL(totalfilm.totalfilm , 0) - ISNULL(totalfilm.passfilm ,0)) AS notpassfilm, --不合格片数 CAST((CASE ISNULL(totalfilm.totalfilm,0) WHEN 0 THEN 0 ELSE 1.0 * isnull(totalfilm.passfilm,0)/(1.0 * totalfilm.totalfilm) END) AS DECIMAL(19,3)) AS passrate --合格率 FROM BS_Welder AS welder LEFT JOIN ProjectData_TeamGroup AS teamGroup ON teamGroup.TeamGroupId= welder.TeamGroupId ---本期拍片总数 --本期拍片合格数 LEFT JOIN (SELECT SUM(cht_totalfilm) AS nowtotalfilm ,SUM(cht_passfilm) AS nowpassfilm ,pw_jointinfo.JOT_CellWelder FROM ch_checkitem LEFT JOIN pw_jointinfo ON pw_jointinfo.jot_id=ch_checkitem.jot_id LEFT JOIN CH_Check ON CH_Check.CHT_CheckID=ch_checkitem.CHT_CheckID WHERE (pw_jointinfo.ProjectId = @projectId OR @projectId IS NULL) AND ch_checkitem.jot_id is not null AND pw_jointinfo.dreportid is not null AND ( CH_Check.CHT_CheckDate>= @date1 or @date1 is null) AND (CH_Check.CHT_CheckDate <= @date2 or @date2 is null) GROUP BY pw_jointinfo.JOT_CellWelder) AS nowtotalfilm ON nowtotalfilm.JOT_CellWelder = welder.WED_ID --总片数 --合格片数 LEFT JOIN (SELECT SUM(cht_totalfilm) AS totalfilm ,SUM(cht_passfilm) AS passfilm ,pw_jointinfo.JOT_CellWelder FROM ch_checkitem LEFT JOIN pw_jointinfo ON pw_jointinfo.jot_id=ch_checkitem.jot_id WHERE (pw_jointinfo.ProjectId = @projectId OR @projectId IS NULL) AND ch_checkitem.jot_id is not null GROUP BY pw_jointinfo.JOT_CellWelder) AS totalfilm ON totalfilm.JOT_CellWelder = welder.WED_ID WHERE (welder.ProjectId = @projectId OR @projectId IS NULL) AND (welder.WED_Unit=@unitcode OR @unitcode IS NULL) order BY welder.WED_Code "; List listStr = new List { new SqlParameter("@projectId", this.CurrUser.LoginProjectId) }; if (this.drpUnit.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpUnit.SelectedValue)) { listStr.Add(new SqlParameter("@unitcode", this.drpUnit.SelectedValue)); } else { listStr.Add(new SqlParameter("@unitcode", null)); } listStr.Add(new SqlParameter("@date1", this.txtStartDate.Text.Trim())); listStr.Add(new SqlParameter("@date2", this.txtEndDate.Text.Trim())); SqlParameter[] parameter2 = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(sql2, parameter2); DataTable tb3 = tb.Clone(); DataTable tb4 = tb.Clone(); foreach (DataRow row in tb.Rows) { var welder = WelderService.GetWelderById(row["WED_ID"].ToString()); if (welder.WED_TYPE == "管道") { var temprow = tb3.NewRow(); for (int i = 0; i < tb3.Columns.Count; i++) { temprow[i] = row[i]; } tb3.Rows.Add(temprow); } else if (welder.WED_TYPE == "设备") { var temprow = tb4.NewRow(); for (int i = 0; i < tb3.Columns.Count; i++) { temprow[i] = row[i]; } tb4.Rows.Add(temprow); } } tb3.TableName = "Table4"; tb4.TableName = "Table5"; BLL.Common.FastReportService.AddFastreportTable(tb3); BLL.Common.FastReportService.AddFastreportTable(tb4); string strSql4 = @"SELECT WorkArea.ProjectId ,Unit.UnitCode AS bsu_unitcode--单位代码 ,Unit.UnitName AS bsu_unitname--单位名称 ,Installation.InstallationCode AS devicecode--装置代号 ,Installation.InstallationName AS devicename--装置名称 ,WorkArea.WorkAreaCode AS baw_areano--工区代号 ,WorkArea.WorkAreaName AS baw_areaname--工区代号 ,ISNULL(current_total_film.current_total_film, 0) AS current_total_film --本期总拍片数 ,ISNULL(current_total_film.current_pass_film, 0) AS current_pass_film --本期合格片数 ,CAST((CASE ISNULL(current_total_film.current_total_film, 0) WHEN 0 THEN 0 ELSE 1.0 * ISNULL(current_total_film.current_pass_film, 0) / (1.0 * current_total_film.current_total_film) END) AS DECIMAL(19,3)) AS current_passreate --本期合格率 ,ISNULL(current_check_count_total.total_film, 0) AS total_film --总拍片数 ,ISNULL(current_check_count_total.pass_film, 0) AS pass_film --合格片数 ,CAST((CASE ISNULL(current_check_count_total.total_film, 0) WHEN 0 THEN 0 ELSE 1.0 * ISNULL(current_check_count_total.pass_film, 0) / (1.0 * current_check_count_total.total_film) END) AS DECIMAL(19,3)) AS passreate --合格率 FROM(select WorkAreaCode, WorkAreaName,WorkAreaId, UnitId, InstallationId, ProjectId, SupervisorUnitId from ProjectData_WorkArea ) AS WorkArea LEFT JOIN Base_Unit AS Unit ON WorkArea.UnitId = Unit.UnitId LEFT JOIN Project_Installation AS Installation ON Installation.InstallationId = WorkArea.InstallationId --本期总拍片数 LEFT JOIN(SELECT SUM(cht_totalfilm) AS current_total_film , SUM(cht_passfilm) AS current_pass_film , isoinfo.WorkAreaId FROM(select CHT_CheckID from CH_Check where ProjectId = @projectId and(UnitId = @unitNo OR @unitNo IS NULL) AND(cht_checkdate >= @date1 OR @date1 IS NULL) and(cht_checkdate <= @date2 OR @date2 IS NULL)) as Checks LEFT JOIN CH_CheckItem ON ch_checkitem.CHT_CheckID = Checks.CHT_CheckID LEFT JOIN PW_JointInfo as JointInfo ON JointInfo.JOT_ID = ch_checkitem.JOT_ID LEFT JOIN(select iso_id, WorkAreaId from pw_isoinfo where ProjectId = @projectId ) as isoinfo ON jointinfo.ISO_ID = isoinfo.ISO_ID where exists(select 1 from BS_Welder where JointInfo.JOT_CellWelder = BS_Welder.WED_ID and BS_Welder.WED_TYPE = @WED_TYPE) GROUP BY isoinfo.WorkAreaId) AS current_total_film ON current_total_film.WorkAreaId = WorkArea.WorkAreaId --本期总检测数 LEFT JOIN(SELECT COUNT(*) AS current_check_count_total , SUM(cht_totalfilm) AS total_film , SUM(cht_passfilm) AS pass_film , isoinfo.WorkAreaId FROM(select CHT_CheckID from CH_Check where ProjectId = @projectId and(UnitId = @unitNo OR @unitNo IS NULL) ) as Checks LEFT JOIN CH_CheckItem ON ch_checkitem.CHT_CheckID = Checks.CHT_CheckID LEFT JOIN PW_JointInfo as JointInfo ON JointInfo.JOT_ID = ch_checkitem.JOT_ID LEFT JOIN(select iso_id, WorkAreaId from pw_isoinfo where ProjectId = @projectId ) as isoinfo ON jointinfo.ISO_ID = isoinfo.ISO_ID where exists(select 1 from BS_Welder where JointInfo.JOT_CellWelder = BS_Welder.WED_ID and BS_Welder.WED_TYPE = @WED_TYPE) GROUP BY isoinfo.WorkAreaId) AS current_check_count_total ON current_check_count_total.WorkAreaId = WorkArea.WorkAreaId WHERE(WorkArea.ProjectId = @projectId) AND (WorkArea.UnitId = @unitno OR @UnitNo IS NULL) ORDER BY Unit.UnitCode ,Installation.InstallationCode"; List listpar4 = new List { new SqlParameter("@projectId", this.CurrUser.LoginProjectId) }; if (this.drpUnit.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpUnit.SelectedValue)) { listpar4.Add(new SqlParameter("@unitNo", this.drpUnit.SelectedValue)); } else { listpar4.Add(new SqlParameter("@unitNo", null)); }; listpar4.Add(new SqlParameter("@date1", this.txtStartDate.Text.Trim())); listpar4.Add(new SqlParameter("@date2", this.txtEndDate.Text.Trim())); listpar4.Add(new SqlParameter("@WED_TYPE", "管道")); SqlParameter[] parameter4 = listpar4.ToArray(); DataTable dt4 = SQLHelper.GetDataTableRunText(strSql4, parameter4); dt4.TableName = "Table6"; BLL.Common.FastReportService.AddFastreportTable(dt4); string strSql5 = @"SELECT WorkArea.ProjectId ,Unit.UnitCode AS bsu_unitcode--单位代码 ,Unit.UnitName AS bsu_unitname--单位名称 ,Installation.InstallationCode AS devicecode--装置代号 ,Installation.InstallationName AS devicename--装置名称 ,WorkArea.WorkAreaCode AS baw_areano--工区代号 ,WorkArea.WorkAreaName AS baw_areaname--工区代号 ,ISNULL(current_total_film.current_total_film, 0) AS current_total_film --本期总拍片数 ,ISNULL(current_total_film.current_pass_film, 0) AS current_pass_film --本期合格片数 ,CAST((CASE ISNULL(current_total_film.current_total_film, 0) WHEN 0 THEN 0 ELSE 1.0 * ISNULL(current_total_film.current_pass_film, 0) / (1.0 * current_total_film.current_total_film) END) AS DECIMAL(19,3)) AS current_passreate --本期合格率 ,ISNULL(current_check_count_total.total_film, 0) AS total_film --总拍片数 ,ISNULL(current_check_count_total.pass_film, 0) AS pass_film --合格片数 ,CAST((CASE ISNULL(current_check_count_total.total_film, 0) WHEN 0 THEN 0 ELSE 1.0 * ISNULL(current_check_count_total.pass_film, 0) / (1.0 * current_check_count_total.total_film) END) AS DECIMAL(19,3)) AS passreate --合格率 FROM(select WorkAreaCode, WorkAreaName,WorkAreaId, UnitId, InstallationId, ProjectId, SupervisorUnitId from ProjectData_WorkArea ) AS WorkArea LEFT JOIN Base_Unit AS Unit ON WorkArea.UnitId = Unit.UnitId LEFT JOIN Project_Installation AS Installation ON Installation.InstallationId = WorkArea.InstallationId --本期总拍片数 LEFT JOIN(SELECT SUM(cht_totalfilm) AS current_total_film , SUM(cht_passfilm) AS current_pass_film , isoinfo.WorkAreaId FROM(select CHT_CheckID from CH_Check where ProjectId = @projectId and(UnitId = @unitNo OR @unitNo IS NULL) AND(cht_checkdate >= @date1 OR @date1 IS NULL) and(cht_checkdate <= @date2 OR @date2 IS NULL)) as Checks LEFT JOIN CH_CheckItem ON ch_checkitem.CHT_CheckID = Checks.CHT_CheckID LEFT JOIN PW_JointInfo as JointInfo ON JointInfo.JOT_ID = ch_checkitem.JOT_ID LEFT JOIN(select iso_id, WorkAreaId from pw_isoinfo where ProjectId = @projectId ) as isoinfo ON jointinfo.ISO_ID = isoinfo.ISO_ID where exists(select 1 from BS_Welder where JointInfo.JOT_CellWelder = BS_Welder.WED_ID and BS_Welder.WED_TYPE = @WED_TYPE) GROUP BY isoinfo.WorkAreaId) AS current_total_film ON current_total_film.WorkAreaId = WorkArea.WorkAreaId --本期总检测数 LEFT JOIN(SELECT COUNT(*) AS current_check_count_total , SUM(cht_totalfilm) AS total_film , SUM(cht_passfilm) AS pass_film , isoinfo.WorkAreaId FROM(select CHT_CheckID from CH_Check where ProjectId = @projectId and(UnitId = @unitNo OR @unitNo IS NULL) ) as Checks LEFT JOIN CH_CheckItem ON ch_checkitem.CHT_CheckID = Checks.CHT_CheckID LEFT JOIN PW_JointInfo as JointInfo ON JointInfo.JOT_ID = ch_checkitem.JOT_ID LEFT JOIN(select iso_id, WorkAreaId from pw_isoinfo where ProjectId = @projectId ) as isoinfo ON jointinfo.ISO_ID = isoinfo.ISO_ID where exists(select 1 from BS_Welder where JointInfo.JOT_CellWelder = BS_Welder.WED_ID and BS_Welder.WED_TYPE = @WED_TYPE) GROUP BY isoinfo.WorkAreaId) AS current_check_count_total ON current_check_count_total.WorkAreaId = WorkArea.WorkAreaId WHERE(WorkArea.ProjectId = @projectId) AND (WorkArea.UnitId = @unitno OR @UnitNo IS NULL) ORDER BY Unit.UnitCode ,Installation.InstallationCode"; List listpar5 = new List { new SqlParameter("@projectId", this.CurrUser.LoginProjectId) }; if (this.drpUnit.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpUnit.SelectedValue)) { listpar5.Add(new SqlParameter("@unitNo", this.drpUnit.SelectedValue)); } else { listpar5.Add(new SqlParameter("@unitNo", null)); }; listpar5.Add(new SqlParameter("@date1", this.txtStartDate.Text.Trim())); listpar5.Add(new SqlParameter("@date2", this.txtEndDate.Text.Trim())); listpar5.Add(new SqlParameter("@WED_TYPE", "设备")); SqlParameter[] parameter5 = listpar5.ToArray(); DataTable dt5 = SQLHelper.GetDataTableRunText(strSql5, parameter5); dt5.TableName = "Table3"; BLL.Common.FastReportService.AddFastreportTable(dt5); // Session["Table"] = dt; // Session["CH_TrustID"] = reportId; string initTemplatePath = ""; string rootPath = Server.MapPath("~/"); initTemplatePath = "File\\Fastreport\\焊接月报.frx"; if (File.Exists(rootPath + initTemplatePath)) { PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("../TrustManage/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath))); } // string rootPath = Server.MapPath("~/") + Const.ExcelUrl; // //模板文件 // string TempletFileName = Server.MapPath("~/") + "File/Excel/HJGL_DataOut/焊接周报.xlsx"; // //导出文件 // string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\"; // if (!Directory.Exists(filePath)) // { // Directory.CreateDirectory(filePath); // } // string ReportFileName = filePath + "out.xlsx"; // FileStream file = new FileStream(TempletFileName, FileMode.Open, FileAccess.Read); // XSSFWorkbook hssfworkbook = new XSSFWorkbook(file); // ICellStyle styleCenter = hssfworkbook.CreateCellStyle(); // styleCenter.VerticalAlignment = VerticalAlignment.Center; // styleCenter.Alignment = HorizontalAlignment.Center; // styleCenter.BorderLeft = BorderStyle.Thin; // styleCenter.BorderTop = BorderStyle.Thin; // styleCenter.BorderRight = BorderStyle.Thin; // styleCenter.BorderBottom = BorderStyle.Thin; // styleCenter.WrapText = true; // IFont font = styleCenter.GetFont(hssfworkbook); // //font.Color = 10;//颜色 // font.FontHeightInPoints = 10;//字体高度(与excel中的字号一致) // styleCenter.SetFont(font); // XSSFSheet recordSheet = (XSSFSheet)hssfworkbook.GetSheet("焊接周报"); // // recordSheet.AddMergedRegion(new CellRangeAddress(0, 0, 8, 9)); // if (string.IsNullOrEmpty(this.txtStartDate.Text) || string.IsNullOrEmpty(this.txtEndDate.Text)) // { // Alert.ShowInTop("日期不能为空!", MessageBoxIcon.Warning); // return; // } // if (drpUnit.SelectedValue == BLL.Const._Null) // { // Alert.ShowInTop("单位不能为空!", MessageBoxIcon.Warning); // return; // } // recordSheet.GetRow(1).CreateCell(2).SetCellValue(drpUnit.SelectedText); // recordSheet.GetRow(1).GetCell(2).CellStyle = styleCenter; // var unit1 = ProjectUnitService.GetProjectUnitListByProjectIdUnitType(this.CurrUser.LoginProjectId, Const.ProjectUnitType_1); // if (unit1 != null && unit1.Count > 0) // { // string unitids1 = ""; // foreach (var u in unit1) // { // unitids1 += u.UnitId + ","; // } // recordSheet.GetRow(2).CreateCell(2).SetCellValue(UnitService.getUnitNamesUnitIds(unitids1.TrimEnd(','))); // recordSheet.GetRow(2).GetCell(2).CellStyle = styleCenter; // } // var unit3 = ProjectUnitService.GetProjectUnitListByProjectIdUnitType(this.CurrUser.LoginProjectId, Const.ProjectUnitType_3); // if (unit3 != null && unit1.Count > 0) // { // string unitids1 = ""; // foreach (var u in unit3) // { // unitids1 += u.UnitId + ","; // } // recordSheet.GetRow(3).CreateCell(2).SetCellValue(UnitService.getUnitNamesUnitIds(unitids1.TrimEnd(','))); // recordSheet.GetRow(3).GetCell(2).CellStyle = styleCenter; UnitService.getUnitNamesUnitIds(unitids1.TrimEnd(',')); // } // if(Grid1.Rows.Count>1) // { // recordSheet.ShiftRows(8, 28, Grid1.Rows.Count - 1,true, false); // for (int j = 1; j < Grid1.Rows.Count; j++) // { // recordSheet.CopyRow(6 + j, 7 + j); // } // } // int i = 0; // foreach (GridRow row in Grid1.Rows) // { // foreach (GridColumn column in Grid1.Columns) // { // string html = row.Values[column.ColumnIndex].ToString(); // if (column.ColumnID == "tfNumber") // { // html = (row.FindControl("labNumber1") as AspNet.Label).Text; // } // recordSheet.GetRow(6+ i).GetCell(column.ColumnIndex).SetCellValue(html); // } // i++; // } // int shiftIndex = Grid1.Rows.Count-1; // if (Grid4.Rows.Count > 1) // { // recordSheet.ShiftRows(shiftIndex + 12, shiftIndex+ 28, Grid4.Rows.Count - 1, true, false); // for (int j = 1; j < Grid4.Rows.Count; j++) // { // recordSheet.CopyRow(shiftIndex+10 + j, shiftIndex+ 11 + j); // } // } // i = 0; // foreach (GridRow row in Grid4.Rows) // { // foreach (GridColumn column in Grid4.Columns) // { // string html = row.Values[column.ColumnIndex].ToString(); // if (column.ColumnID == "tfNumber") // { // html = (row.FindControl("labNumber4") as AspNet.Label).Text; // } // recordSheet.GetRow(shiftIndex + 11 + i).GetCell(column.ColumnIndex).SetCellValue(html); // } // i++; // } // shiftIndex = Grid1.Rows.Count>1? Grid1.Rows.Count - 1:0+ Grid4.Rows.Count>1? Grid4.Rows.Count -1:0; // if (Grid5.Rows.Count > 1) // { // recordSheet.ShiftRows(shiftIndex + 17, shiftIndex + 28, Grid5.Rows.Count - 1, true, false); // for (int j = 1; j < Grid5.Rows.Count; j++) // { // recordSheet.CopyRow(shiftIndex + 15 + j, shiftIndex + 16 + j); // } // } // i = 0; // foreach (GridRow row in Grid5.Rows) // { // foreach (GridColumn column in Grid5.Columns) // { // string html = row.Values[column.ColumnIndex].ToString(); // if (column.ColumnID == "tfNumber") // { // html = (row.FindControl("labNumber5") as AspNet.Label).Text; // } // recordSheet.GetRow(shiftIndex+16 + i).GetCell(column.ColumnIndex).SetCellValue(html); // } //i++; // } // shiftIndex = Grid1.Rows.Count>1? Grid1.Rows.Count - 1:0 + Grid4.Rows.Count>1? Grid4.Rows.Count - 1:0 + Grid5.Rows.Count>1? Grid5.Rows.Count - 1:0; // if (Grid2.Rows.Count > 1) // { // recordSheet.ShiftRows(shiftIndex+22, shiftIndex+28, Grid2.Rows.Count - 1, true, false); // for (int j = 1; j < Grid2.Rows.Count; j++) // { // recordSheet.CopyRow(shiftIndex+20 + j, shiftIndex+21 + j); // } // } // i = 0; // foreach (GridRow row in Grid2.Rows) // { // foreach (GridColumn column in Grid2.Columns) // { // string html = row.Values[column.ColumnIndex].ToString(); // if (column.ColumnID == "tfNumber") // { // html = (row.FindControl("labNumber2") as AspNet.Label).Text; // } // recordSheet.GetRow(shiftIndex + 20 + i).GetCell(column.ColumnIndex).SetCellValue(html); // } // i++; // } // shiftIndex = Grid1.Rows.Count >1? Grid1.Rows.Count - 1:0 + Grid4.Rows.Count>1 ? Grid4.Rows.Count - 1:0 + Grid5.Rows.Count>1 ? Grid5.Rows.Count - 1:0+ Grid2.Rows.Count >1 ? Grid2.Rows.Count - 1:0; // if (Grid3.Rows.Count > 1) // { // recordSheet.ShiftRows(shiftIndex + 27, shiftIndex + 28, Grid3.Rows.Count - 1, true, false); // for (int j = 1; j < Grid3.Rows.Count; j++) // { // recordSheet.CopyRow(shiftIndex + 25 + j, shiftIndex + 26 + j); // } // } // i = 0; // foreach (GridRow row in Grid3.Rows) // { // recordSheet.GetRow(shiftIndex + 26 + i).GetCell(0).SetCellValue( (row.FindControl("labNumber3") as AspNet.Label).Text); // recordSheet.GetRow(shiftIndex + 26 + i).GetCell(1).SetCellValue(row.Values[1].ToString()); // recordSheet.GetRow(shiftIndex + 26 + i).GetCell(2).SetCellValue(row.Values[2].ToString()); // recordSheet.GetRow(shiftIndex + 26 + i).GetCell(3).SetCellValue(row.Values[4].ToString()); // recordSheet.GetRow(shiftIndex + 26 + i).GetCell(4).SetCellValue(row.Values[5].ToString()); // if (!string.IsNullOrEmpty(row.Values[6].ToString())) // { // recordSheet.GetRow(shiftIndex + 26 + i).GetCell(5).SetCellValue((100 * double.Parse(row.Values[6].ToString())).ToString("0.##")); // } // recordSheet.GetRow(shiftIndex + 26 + i).GetCell(6).SetCellValue(row.Values[8].ToString()); // recordSheet.GetRow(shiftIndex + 26 + i).GetCell(7).SetCellValue(row.Values[9].ToString()); // if (!string.IsNullOrEmpty(row.Values[10].ToString())) // { // recordSheet.GetRow(shiftIndex + 26 + i).GetCell(8).SetCellValue((100 * double.Parse(row.Values[10].ToString())).ToString("0.##")); // } // i++; // } // using (FileStream filess = File.OpenWrite(ReportFileName)) // { // hssfworkbook.Write(filess); // } // //PageContext.RegisterStartupScript(Window5.GetShowReference(String.Format("../../ReportPrint/ExReportPrint.aspx?ispop=1&reportId={0}&replaceParameter={1}&varValue={2}&projectId={3}", BLL.Const.HJGL_JointInfoReportId, isoId, varValue, this.CurrUser.LoginProjectId))); // FileInfo filet = new FileInfo(ReportFileName); // Response.Clear(); // Response.Charset = "GB2312"; // Response.ContentEncoding = System.Text.Encoding.UTF8; // // 添加头信息,为"文件下载/另存为"对话框指定默认文件名 // Response.AddHeader("Content-Disposition", "attachment; filename=焊接周报_" + Server.UrlEncode(DateTime.Now.ToString("yyyyMMddhhmmss") + ".xlsx")); // // 添加头信息,指定文件大小,让浏览器能够显示下载进度 // Response.AddHeader("Content-Length", filet.Length.ToString()); // // 指定返回的是一个不能被客户端读取的流,必须被下载 // Response.ContentType = "application/ms-excel"; // // 把文件流发送到客户端 // Response.WriteFile(filet.FullName); // // 停止页面的执行 // Response.End(); } } }