Basf_TCC11/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/RTbacklogReport.aspx.cs

240 lines
9.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Web.UI.DataVisualization.Charting;
using System.Drawing;
using BLL;
namespace FineUIPro.Web.WeldingProcess.WeldingReport
{
public partial class RTbacklogReport : PageBase
{
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BLL.Base_UnitService.InitProjectUnitDropDownList(this.drpUnitId, false, this.CurrUser.LoginProjectId, BLL.Const.UnitType_5, Resources.Lan.PleaseSelect);
BLL.Base_DetectionTypeService.InitDetectionTypeDropDownList(this.drpDNT, Resources.Lan.PleaseSelect, true, string.Empty);//探伤类型
this.txtStarTime.Text = String.Format("{0:yyyy-MM-dd}", System.DateTime.Now.AddDays(-10));
this.txtEndTime.Text = String.Format("{0:yyyy-MM-dd}", System.DateTime.Now);
}
}
/// <summary>
/// 确定按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSure_Click(object sender, EventArgs e)
{
string units = string.Empty;
if (this.drpUnitId.SelectedItem != null)
{
foreach (ListItem item in drpUnitId.SelectedItemArray)
{
units += item.Value + ",";
}
if (!string.IsNullOrEmpty(units))
{
units = units.Substring(0, units.LastIndexOf(','));
}
}
this.gvDataSetChart(units);
}
#region gv赋值
/// <summary>
/// 给gv赋值 并设置图像值
/// </summary>
protected void gvDataSetChart(string units)
{
if (!string.IsNullOrEmpty(this.txtStarTime.Text) && !string.IsNullOrEmpty(this.txtEndTime.Text))
{
string ndtId = null;
if (this.drpDNT.SelectedValue != BLL.Const._Null && this.drpDNT.SelectedValue != "")
{
ndtId = this.drpDNT.SelectedValue;
}
SqlParameter[] values = new SqlParameter[]
{
new SqlParameter("@UnitIds",units),
new SqlParameter("@date1", this.txtStarTime.Text),
new SqlParameter("@date2", this.txtEndTime.Text),
new SqlParameter("@projectId", this.CurrUser.LoginProjectId),
new SqlParameter("@NDT_ID", ndtId),
};
DataTable dtchart = BLL.SQLHelper.GetDataTableRunProc("sp_RTbacklog", values);
DataTable dt = dtchart.Copy();
for (int i = 0; i < dt.Rows.Count; i++)
{
var unit = BLL.Funs.DB.Base_Unit.FirstOrDefault(x => x.UnitId == dt.Rows[i][0].ToString());
if (unit != null)
{
dt.Rows[i][0] = unit.UnitName + "(" + unit.UnitCode + ")";
}
}
this.gvRTbacklog.DataSource = dt;
this.gvRTbacklog.DataBind();
CreateChart(dtchart, Chart1);
}
else
{
//this.tabSearch.Visible = true;
ScriptManager.RegisterStartupScript(this, typeof(string), "_alert", "alert('请选择查询条件!')", true);
}
}
#endregion
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;
Title title = new Title();
title.Text = "积压焊口图表";
title.ShadowColor = Color.FromArgb(32, 0, 0, 0);
title.Font = new Font("Trebuchet MS", 12F, FontStyle.Bold);
title.ShadowOffset = 3;
title.ForeColor = Color.FromArgb(26, 59, 105);
chart1.Titles.Add(title);
Legend legend1 = new Legend();
legend1.TextWrapThreshold = 1;
legend1.Docking = Docking.Right;
legend1.Alignment = StringAlignment.Center;
legend1.BackColor = Color.Transparent;
legend1.Font = new Font(new FontFamily("Trebuchet MS"), 8);
legend1.LegendStyle = LegendStyle.Column;
legend1.IsEquallySpacedItems = true;
legend1.IsTextAutoFit = false;
chart1.Legends.Add(legend1);
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 = ckb.Checked;
chart1.ChartAreas.Add(chartArea);
for (int i = 0; i < dt.Rows.Count; i++)
{
string unitCode = null;
var unit = BLL.Funs.DB.Base_Unit.FirstOrDefault(x => x.UnitId == dt.Rows[i][0].ToString());
if (unit != null)
{
unitCode = unit.UnitCode;
}
chart1.Series.Add(unitCode);
if (!string.IsNullOrEmpty(drpChartType.SelectedValue))
{
chart1.Series[unitCode].ChartType = ChartControlService.GetChartType(drpChartType.SelectedValue);
}
else
{
chart1.Series[unitCode].ChartType = ChartControlService.GetChartType("Column");
}
chart1.Series[unitCode].Name = unitCode;
chart1.Series[unitCode].IsValueShownAsLabel = true;
chart1.Series[unitCode].BorderWidth = 2;
chart1.Series[unitCode]["DrawingStyle"] = "Cylinder";
if (dt.Columns.Count > 0)
{
for (int j = 1; j < dt.Columns.Count; j++)
{
chart1.Series[unitCode].Points.AddXY(dt.Columns[j].ColumnName, dt.Rows[i][j].ToString());
chart1.Series[unitCode].Points[j - 1].ToolTip = "#VALX#VALY";
}
}
}
}
#region gv
/// <summary>
/// gv 绑定
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gvRTbacklog_DataBound(object sender, EventArgs e)
{
if (this.gvRTbacklog.Rows.Count > 0)
{
int widthValue = 0;
for (int i = 0; i < this.gvRTbacklog.Rows[0].Cells.Count; i++)
{
if (i == 0)
{
this.gvRTbacklog.Rows[0].Cells[i].Width = 150;
widthValue += 150;
}
else
{
this.gvRTbacklog.Rows[0].Cells[i].Width = 60;
widthValue += 80;
}
}
if (widthValue < 1000)
{
widthValue = 1000;
}
this.gvRTbacklog.Width = widthValue;
}
}
protected void gvRTbacklog_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
//获取表头所在行的所有单元格
//TableCellCollection tcHeader = e.Row.Cells;
TableCell cell = e.Row.Cells[0];
//清除自动生成的表头
cell.Text = "施工单位 Construction Unit ";
}
}
#endregion
protected void txtStarTime_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(txtStarTime.Text))
{
this.txtEndTime.Text = String.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(txtStarTime.Text).AddDays(10));
}
}
}
}