%@ WebHandler Language="C#" Class="QualityData_TrendPicture" %>
using System;
using System.Web;
using System.Data;
using MES_SPC;
public class QualityData_TrendPicture : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string type = HttpContext.Current.Request["type"];
string responseText = "";
switch (type)
{
case "SaveImg":
responseText = SaveImg();
break;
case "BindMinutes":
responseText = BindMinutes();
break;
case "BindHour":
responseText = BindHour();
break;
case "BindMachineType":
responseText = BindMachineType();
break;
case "BindOPName":
responseText = BindOPName();
break;
//绑定测量内容
case "BindMeasurePartContent":
responseText = BindMeasurePartContent();
break;
//绑定测量内容
case "BindMeasurePart":
responseText = BindMeasurePart();
break;
case "GetBaseTrendData":
responseText = GetBaseTrendData();
break;
case "GetDataTableByConditent":
responseText = GetDataTableByConditent();
break;
case "OutPutData":
responseText = OutPutData();
break;
}
context.Response.Write(responseText);
}
public string OutPutData()
{
DataTable dt = null;
bool EnginIDCheck = false;
string EnginID = "";
bool OPNameCheck = Convert.ToBoolean(HttpContext.Current.Request["OPNameCheck"]);
string OPName = HttpContext.Current.Request["OPName"];
bool shaftNameCheck = Convert.ToBoolean(HttpContext.Current.Request["shaftNameCheck"]);
string shaftName = HttpContext.Current.Request["shaftName"];
bool itemNameCheck = Convert.ToBoolean(HttpContext.Current.Request["itemNameCheck"]);
string itemName = HttpContext.Current.Request["itemName"];
string startTime = HttpContext.Current.Request["startTime"];
string endTime = null;
string hour = HttpContext.Current.Request["Hour"];
string minutes = HttpContext.Current.Request["Minutes"];
startTime = startTime + " " + hour + ":" + minutes + ":" + "00";
string EngineTypeID = HttpContext.Current.Request["EngineTypeID"]; ;
bool EngineTypeIDCheck = Convert.ToBoolean(HttpContext.Current.Request["EngineTypeIDCheck"]);
int n = Convert.ToInt32(HttpContext.Current.Request["Yangben"]);
int k = Convert.ToInt32(HttpContext.Current.Request["Num"]);
QualityData.SelectGoodDataReport_DataGroup(EnginIDCheck, EnginID,
OPNameCheck, OPName,
EngineTypeID, EngineTypeIDCheck,
shaftNameCheck, shaftName,
itemNameCheck, itemName,
startTime, endTime, n, k, out dt);
//string path = HttpContext.Current.Server.MapPath("~/Chart_excel/QualityData_TrendPicture.png");
string path = "QualityData_TrendPicture.png";
if (dt != null)
{
if (dt.Rows.Count > 0)
{
// dt.TableName = "SPC分析排列图";
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["序号"] = (i + 1).ToString("000000");
}
CommonFunction.OutPutDataAndPic(path, dt);
if (System.IO.File.Exists(path))
{
System.IO.File.Delete(path);
}
}
}
return "";
}
public string GetDataTableByConditent()
{
DataTable dt = null;
DataTable dt1 = null;
int pageSize = Convert.ToInt32(HttpContext.Current.Request["page"]);//请求的当前页码
int pageList = Convert.ToInt32(HttpContext.Current.Request["rows"]);//请求一页显示的数据条数。
bool EnginIDCheck = false;
string EnginID = "";
//bool OPNameCheck = Convert.ToBoolean(HttpContext.Current.Request["OPNameCheck"]);
bool OPNameCheck = true;
string OPName = HttpContext.Current.Request["OPName"];
//bool shaftNameCheck = Convert.ToBoolean(HttpContext.Current.Request["shaftNameCheck"]);
bool shaftNameCheck = true;
string shaftName = HttpContext.Current.Request["shaftName"];
//bool itemNameCheck = Convert.ToBoolean(HttpContext.Current.Request["itemNameCheck"]);
bool itemNameCheck = true;
string itemName = HttpContext.Current.Request["itemName"];
string startTime = HttpContext.Current.Request["startTime"];
string endTime = HttpContext.Current.Request["endTime"];
string hour = HttpContext.Current.Request["Hour"];
string minutes = HttpContext.Current.Request["Minutes"];
//startTime = startTime + " " + hour + ":" + minutes + ":" + "00";
string EngineTypeID = HttpContext.Current.Request["EngineTypeID"]; ;
//bool EngineTypeIDCheck = Convert.ToBoolean(HttpContext.Current.Request["EngineTypeIDCheck"]);
bool EngineTypeIDCheck = true;
int n = Convert.ToInt32(HttpContext.Current.Request["Yangben"]);
int k = Convert.ToInt32(HttpContext.Current.Request["Num"]);
QualityData.SelectGoodDataReport_DataGroup(EnginIDCheck, EnginID,
OPNameCheck, OPName,
EngineTypeID,
EngineTypeIDCheck,
shaftNameCheck, shaftName,
itemNameCheck, itemName,
startTime, endTime, n, k, out dt);
dt1 = dt.Copy(); //复制dt
dt1.Rows.Clear();//清空内容,只保留dt结构。
for (int i = (pageSize - 1) * pageList; i < pageSize * pageList; i++)//循环需要显示的行
{
if (i < dt.Rows.Count)
{
dt1.ImportRow(dt.Rows[i]);//这是加入的是第i行
}
}
string text = "";
if (dt1 != null && dt1.Rows.Count > 0)
{
text = JsonHelper.CreateJsonParameters(dt1, true, dt.Rows.Count);
}
return text;
}
///
/// ///////////////////////////////////////////////
///
double[] X;
public string GetBaseTrendData()
{
DataTable dt = null;
string result = "";
bool EnginIDCheck = false;
string EnginID = "";
//bool OPNameCheck = Convert.ToBoolean(HttpContext.Current.Request["OPNameCheck"]);
bool OPNameCheck = true;
string OPName = HttpContext.Current.Request["OPName"];
bool shaftNameCheck = Convert.ToBoolean(HttpContext.Current.Request["shaftNameCheck"]);
string shaftName = HttpContext.Current.Request["shaftName"];//测量位置
bool itemNameCheck = Convert.ToBoolean(HttpContext.Current.Request["itemNameCheck"]);
string itemName = HttpContext.Current.Request["itemName"];
string startTime = HttpContext.Current.Request["startTime"];
string endTime = HttpContext.Current.Request["endTime"];
//string endTime = null;
string hour = HttpContext.Current.Request["Hour"];
string minutes = HttpContext.Current.Request["Minutes"];
//startTime = startTime + " " + hour + ":" + minutes + ":" + "00";
string EngineTypeID = HttpContext.Current.Request["EngineTypeID"]; ;
//bool EngineTypeIDCheck = Convert.ToBoolean(HttpContext.Current.Request["EngineTypeIDCheck"]);
bool EngineTypeIDCheck = true;
int n = Convert.ToInt32(HttpContext.Current.Request["Yangben"]);
int k = Convert.ToInt32(HttpContext.Current.Request["Num"]);
QualityData.SelectGoodDataReport_DataGroup_TrendPictureBasic(EnginIDCheck, EnginID,
OPNameCheck, OPName,
EngineTypeID,
EngineTypeIDCheck,
shaftNameCheck, shaftName,
itemNameCheck, itemName,
startTime, endTime, n, k, out dt);
if (dt != null && dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
result += dt.Rows[i]["测量值"];
if (i != dt.Rows.Count - 1)
{
result += ",";
}
}
}
return result;
}
///
/// 绑定测量名称
///
///
public string BindMeasurePart()
{
string text = "";
DataTable dt;
string opName;
opName = HttpContext.Current.Request["opName"];
QualityData.GetShaftName(opName, out dt);
if (dt != null && dt.Rows.Count > 0)
{
text = JsonHelper.DataTableToJson(dt);
}
return text;
}
///
/// 绑定测量内容
///
///
public string BindMeasurePartContent()
{
string text = "";
string opName;
string shaftName;
opName = HttpContext.Current.Request["opName"];
shaftName = HttpContext.Current.Request["shaftName"];
DataTable dt;
QualityData.GetItemName(opName, shaftName, out dt);
if (dt != null && dt.Rows.Count > 0)
{
text = JsonHelper.DataTableToJson(dt);
}
return text;
}
//绑定工位名称
public string BindOPName()
{
string text = "";
DataTable dt;
QualityData.GetOpName(out dt);
if (dt != null && dt.Rows.Count > 0)
{
text = JsonHelper.DataTableToJson(dt);
}
return text;
}
//绑定机型
public string BindMachineType()
{
string text = "";
DataTable dt;
CraftMana_step.enginetypeSelect(out dt);
if (dt != null && dt.Rows.Count > 0)
{
text = JsonHelper.DataTableToJson(dt);
}
return text;
}
//控件绑定分钟
public string BindMinutes()
{
string text = "";
DataTable dt = new DataTable();
dt.Columns.Add("分钟", typeof(string));
for (int i = 0; i < 60; i++)
{
DataRow dr = dt.NewRow();
dr["分钟"] = i.ToString("00");
dt.Rows.Add(dr);
}
if (dt != null && dt.Rows.Count > 0)
{
text = JsonHelper.DataTableToJson(dt);
}
return text;
}
//控件绑定小时
public string BindHour()
{
string text = "";
DataTable dt = new DataTable();
dt.Columns.Add("小时", typeof(string));
for (int i = 0; i < 24; i++)
{
DataRow dr = dt.NewRow();
dr["小时"] = i;
dt.Rows.Add(dr);
}
if (dt != null && dt.Rows.Count > 0)
{
text = JsonHelper.DataTableToJson(dt);
}
return text;
}
public string SaveImg()
{
//string path = "c:\\QualityData_TrendPictureBasic_01.png";
string path = HttpContext.Current.Server.MapPath("~/Chart_excel/QualityData_TrendPicture.png");
string byteStr = HttpContext.Current.Request["ImageDate"].Replace("data:image/png;base64,", "");
System.Drawing.Image returnImage = Base64StringToImage(byteStr);
if (System.IO.File.Exists(path))
{
System.IO.File.Delete(path);
}
returnImage.Save(path, System.Drawing.Imaging.ImageFormat.Png);
return "{\"result\":\"1\"}"; ;
}
private System.Drawing.Image Base64StringToImage(string txt)
{
byte[] arr = Convert.FromBase64String(txt);
System.IO.MemoryStream ms = new System.IO.MemoryStream(arr);
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(ms);
return bmp;
}
public bool IsReusable
{
get
{
return false;
}
}
}