using System; using System.Collections.Generic; using System.Linq; using System.Data; using System.Data.SqlClient; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.DataVisualization.Charting; using System.Drawing; using BLL; namespace FineUIPro.Web.common { public partial class mainFullViews : PageBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //BLL.Base_ProjectTypeService.InitProjectTypeDropDownList(this.drpProjectType2, true, Resources.Lan.PleaseSelect); BLL.Base_ProjectService.InitProjectDropDownList(drpProjectId, true, CurrUser.UserId, null, Resources.Lan.PleaseSelect); BindProject();//flash play 暂不能用 //BindGetWelder(); BindGetWelderLimitDate(); //BindPointNoTrust(); //BindTrustNoAudit(); //BindTrustNoCheck(); //BindCheckNoAudit(); if (CurrUser.UserId != Const.GlyId) { string projectIds = BLL.Base_ProjectService.GetStrProjectIds(CurrUser.UserId, null); ShowChart(projectIds); } } } #region 项目图片 public string swiperHtml, pics, links, texts; /// /// 项目图片显示 /// public void BindProject() { swiperHtml = " "; string strSql = @"SELECT TOP 5 ProjectPictureId,ProjectPictureName,AttachUrl FROM dbo.Project_ProjectPicture WHERE IsShow=1 and AttachUrl IS NOT NULL ORDER BY CreateDate DESC "; DataSet ds = BLL.SQLHelper.RunSqlString(strSql, "Project_ProjectPicture"); DataView dv = ds.Tables[0].DefaultView; if (dv.Table.Rows.Count != 0) { for (int i = 0; i < dv.Table.Rows.Count; i++) { swiperHtml += @"
"; //links += "ProjectSet/ProjectPictureView.aspx?ProjectPictureId=" + dv.Table.Rows[i]["ProjectPictureId"].ToString() + "|"; //var urls = Funs.GetStrListByStr(dv.Table.Rows[i]["AttachUrl"].ToString(), ','); //foreach (var item in urls) //{ // //string p = item.Substring(2); // pics += item.Replace("~", "..") + "|"; // texts += dv.Table.Rows[i]["ProjectPictureName"].ToString() + "|"; //} } //if (!string.IsNullOrEmpty(links) && !string.IsNullOrEmpty(pics) && !string.IsNullOrEmpty(texts)) //{ // this.picContent.Visible = true; // links = links.Substring(0, links.LastIndexOf("|")); // pics = pics.Substring(0, pics.LastIndexOf("|")).Replace("\\", "/"); // texts = texts.Substring(0, texts.LastIndexOf("|")); //} //else //{ // this.picContent.Visible = false; //} } else { swiperHtml += @"
"; } } #endregion //protected void drpProjectType2_SelectedIndexChanged(object sender, EventArgs e) //{ // BLL.Base_ProjectService.InitProjectListByType(this.drpProjectId, true,drpProjectType2.SelectedValue, this.CurrUser.UserId, BLL.Const._False, Resources.Lan.PleaseSelect); //} protected void drpProjectId_SelectedIndexChanged(object sender, EventArgs e) { ShowChart(drpProjectId.SelectedValue); } private void BindGetWelderLimitDate() { string strSql = @"SELECT (WelderName+'('+WelderCode+') 焊工证过期,有效期为:'+CONVERT(VARCHAR(100),CertificateValidity,23)) AS QualificationLimit FROM dbo.Welder_Welder WHERE IsOnDuty=1 and CertificateValidity<=GETDATE() UNION SELECT (WelderName+'('+WelderCode+') 焊工证还有:'+convert(nvarchar(6),DATEDIFF(day,getdate(),CertificateValidity))+ '天到期') AS QualificationLimit FROM dbo.Welder_Welder WHERE IsOnDuty=1 AND DATEADD(m,-1,CertificateValidity)GETDATE()"; DataTable dt = SQLHelper.GetDataTableRunText(strSql, null); GridWelder.DataSource = dt; GridWelder.DataBind(); } private void ShowChart(string projectIds) { string strSql1 = @"SELECT v.totalDin AS '预估',(v.totalDin-ISNULL(v1.LastDin,0)) AS '完成', ISNULL(v1.LastDin,0) AS '剩余',ISNULL(v2.LastWeekDin,0) AS '近一周' FROM (SELECT ISNULL(SUM(ISNULL(Size,0)),0) AS totalDin FROM dbo.Pipeline_WeldJoint WHERE IsCancel IS NULL OR (IsCancel=1 AND WeldingDailyId IS NOT NULL) AND CHARINDEX(ProjectId,@projectIds1)>0 ) v , (SELECT ISNULL(SUM(ISNULL(Size,0)),0) AS LastDin FROM dbo.Pipeline_WeldJoint WHERE WeldingDailyId IS NULL AND IsCancel IS NULL AND CHARINDEX(ProjectId,@projectIds1)>0 ) v1 , (SELECT ISNULL(SUM(ISNULL(jot.Size,0)),0) AS LastWeekDin FROM dbo.Pipeline_WeldJoint jot LEFT JOIN dbo.Pipeline_WeldingDaily report ON report.WeldingDailyId = jot.WeldingDailyId WHERE jot.WeldingDailyId IS NOT NULL AND report.WeldingDate<=GETDATE() AND report.WeldingDate>DATEADD(ww,-1,GETDATE()) AND CHARINDEX(jot.ProjectId,@projectIds1)>0 ) v2 "; string strSql2 = @"SELECT ISNULL(v1.BatchTrustNum,0) AS '委托数',ISNULL(v2.NdtCheckNum,0) AS '拍片焊口', (ISNULL(v1.BatchTrustNum,0)-ISNULL(v2.NdtCheckNum,0)) AS '积压焊口' , ISNULL(v3.LastWeekCheckNum,0) AS '近一周检测' FROM (SELECT COUNT(d.TrustBatchItemId) AS BatchTrustNum FROM dbo.Batch_BatchTrustItem d LEFT JOIN dbo.Batch_BatchTrust trust ON trust.TrustBatchId = d.TrustBatchId LEFT JOIN dbo.Base_DetectionType ndt ON ndt.DetectionTypeId = trust.DetectionTypeId WHERE ndt.SysType='射线检测' AND CHARINDEX(trust.ProjectId,@projectIds2)>0 ) v1, (SELECT COUNT(ndtItme.NDEItemID) AS NdtCheckNum FROM dbo.Batch_NDEItem ndtItme LEFT JOIN dbo.Batch_NDE ndt ON ndt.NDEID = ndtItme.NDEID LEFT JOIN dbo.Base_DetectionType ndtType ON ndtType.DetectionTypeId = ndtItme.DetectionTypeId WHERE ndtType.SysType ='射线检测' AND SubmitDate IS NOT NULL AND CHARINDEX(ndt.ProjectId,@projectIds2)>0 ) v2 , (SELECT COUNT(ndtItme.NDEItemID) AS LastWeekCheckNum FROM dbo.Batch_NDEItem ndtItme LEFT JOIN dbo.Batch_NDE ndt ON ndt.NDEID = ndtItme.NDEID LEFT JOIN dbo.Base_DetectionType ndtType ON ndtType.DetectionTypeId = ndtItme.DetectionTypeId WHERE ndtType.SysType ='射线检测' AND SubmitDate IS NOT NULL AND CHARINDEX(ndt.ProjectId,@projectIds2)>0 AND ndtItme.SubmitDate<=GETDATE() AND ndtItme.SubmitDate>DATEADD(ww,-1,GETDATE()) ) v3 WHERE ISNULL(v1.BatchTrustNum,0)>0 "; if (!string.IsNullOrEmpty(projectIds)) { SqlParameter[] parameter1 = new SqlParameter[] { new SqlParameter("@projectIds1", projectIds) }; DataTable dt1 = SQLHelper.GetDataTableRunText(strSql1, parameter1); SqlParameter[] parameter2 = new SqlParameter[] { new SqlParameter("@projectIds2", projectIds) }; DataTable dt2 = SQLHelper.GetDataTableRunText(strSql2, parameter2); if (dt1.Rows.Count > 0) { CreateChart(dt1, Chart1); } if (dt2.Rows.Count > 0) { CreateChart(dt2, Chart2); } } } /// /// 创建Chart图形 /// /// 数据表 /// 图形 private void CreateChart(DataTable dt, Chart chart1) { chart1.BackColor = Color.WhiteSmoke; chart1.ImageLocation = "~/Images/ChartPic_#SEQ(300,3)"; chart1.BorderlineDashStyle = ChartDashStyle.Solid; chart1.Palette = ChartColorPalette.BrightPastel; chart1.BackSecondaryColor = Color.White; chart1.BackGradientStyle = GradientStyle.TopBottom; chart1.BorderWidth = 2; chart1.BorderColor = Color.FromArgb(26, 59, 105); chart1.ImageType = ChartImageType.Png; ChartArea chartArea = new ChartArea(); chartArea.Name = "焊接工作量"; chartArea.BackColor = Color.Transparent; chartArea.AxisX.IsLabelAutoFit = false; chartArea.AxisY.IsLabelAutoFit = false; chartArea.AxisX.LabelStyle.Font = new Font("Verdana,Arial,Helvetica,sans-serif", 8F, FontStyle.Regular); chartArea.AxisY.LabelStyle.Font = new Font("Verdana,Arial,Helvetica,sans-serif", 8F, FontStyle.Regular); chartArea.AxisY.LineColor = Color.FromArgb(64, 64, 64, 64); chartArea.AxisX.LineColor = Color.FromArgb(64, 64, 64, 64); chartArea.AxisY.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64); chartArea.AxisX.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64); chartArea.AxisX.Interval = 1; chartArea.Area3DStyle.Enable3D = true; chart1.ChartAreas.Add(chartArea); chart1.Series.Add("焊接工作量"); chart1.Series["焊接工作量"].ChartType = ChartControlService.GetChartType("Column"); chart1.Series["焊接工作量"].Name = "焊接工作量"; chart1.Series["焊接工作量"].IsValueShownAsLabel = false; chart1.Series["焊接工作量"].BorderWidth = 2; chart1.Series["焊接工作量"]["DrawingStyle"] = "Cylinder"; for (int i = 0; i < dt.Columns.Count; i++) { chart1.Series["焊接工作量"].Points.AddXY(dt.Columns[i].ColumnName, dt.Rows[0][i].ToString()); chart1.Series["焊接工作量"].Points[i].Color = GetColor(i); chart1.Series["焊接工作量"].Points[i].ToolTip = "#VALX:#VALY"; } } private Color GetColor(int i) { Color c = Color.Blue; if (i == 1) { c = Color.Yellow; } if (i == 2) { c = Color.Red; } if (i == 3) { c = Color.Green; } return c; } protected void lbtnWelder_Click(object sender, EventArgs e) { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../PublicInfo/ProcessControl/WelderRank.aspx", "查看 - "))); } protected void lbtnUnit_Click(object sender, EventArgs e) { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../PublicInfo/ProcessControl/StatisticsByUnit.aspx", "查看 - "))); } } }