using System; using System.Collections.Generic; using System.Linq; using System.Text; using Mesnac.Action.Base; using Mesnac.Controls.Base; using Mesnac.Codd.Session; using System.Data; using Mesnac.Controls.Default; using System.Windows.Forms; namespace Mesnac.Action.Feeding.Qingquan.Report { #region 公用类 public class LotClass { public static bool IsFirstLoad = true; public static Dictionary dictonary = new Dictionary(); public static int page = 0; public static string GetDetailStr(string index) { StringBuilder sqlstrdetail = new StringBuilder(); sqlstrdetail.AppendLine(@"SELECT l.*,shift.ShiftName,class.ClassName, Pmt_Recipe.mater_name , Pmt_Recipe.recipe_code,rstate.ItemName AS RecipeStateName,plan_num as SetNum FROM PptLotData l LEFT JOIN ppt_plan pptplan ON l.PLANID = pptplan.plan_id LEFT JOIN PptShift shift ON l.ShiftID = shift.ObjID LEFT JOIN PptClass class ON l.ClassID = class.ObjID LEFT JOIN Pmt_Recipe Pmt_Recipe on Pmt_Recipe.equip_code=substring(l.EquipCode,4,2) AND Pmt_Recipe.mater_code=l.MaterCode AND Pmt_Recipe.edt_code=l.EdtCode LEFT JOIN SysCode rstate ON Pmt_Recipe.Recipe_State = rstate.ItemCode AND rstate.TypeID='PmtState' "); sqlstrdetail.AppendLine(@"WHERE 1=1"); sqlstrdetail.AppendLine(@"AND l.Barcode='" + index + "'"); return sqlstrdetail.ToString(); } /// /// 通过条码获取车信息 /// /// /// /// public static DataTable GetLotInfoByBarcode(Mesnac.Basic.DataSourceFactory.MCDbType dbType, string barcode) { DatabaseAction action = new DatabaseAction(); DbHelper dbHelper; dbHelper = action.NewDbHelper(dbType); if (dbHelper == null) { action.LogError("获取数据连接失败..."); return new DataTable(); } dbHelper.ClearParameter(); dbHelper.CommandType = CommandType.Text; StringBuilder sqlstr = new StringBuilder(); sqlstr.AppendLine(@"SELECT l.*,shift.ShiftName,class.ClassName, Pmt_Recipe.mater_name , Pmt_Recipe.recipe_code,rstate.ItemName AS RecipeStateName,l.EquipCode as EquipName FROM PptLotData l LEFT JOIN PptShift shift ON l.ShiftID = shift.ObjID LEFT JOIN PptClass class ON l.ClassID = class.ObjID LEFT JOIN Pmt_Recipe Pmt_Recipe on Pmt_Recipe.equip_code=substring(l.EquipCode,4,2) AND Pmt_Recipe.mater_code=l.MaterCode AND Pmt_Recipe.edt_code=l.EdtCode LEFT JOIN SysCode rstate ON Pmt_Recipe.Recipe_State = rstate.ItemCode AND rstate.TypeID='PmtState' "); sqlstr.AppendLine(@"WHERE 1=1"); sqlstr.AppendLine(@"AND l.Barcode='" + barcode + "'"); dbHelper.CommandText = sqlstr.ToString(); DataTable table = dbHelper.ToDataTable(); return table; } /// /// 通过条码获取混炼信息 /// /// /// /// public static DataTable GetMixDataByBarCode(Mesnac.Basic.DataSourceFactory.MCDbType dbType, string barCode) { DatabaseAction action = new DatabaseAction(); DbHelper dbHelper; dbHelper = action.NewDbHelper(dbType); if (dbHelper == null) { action.LogError("获取数据连接失败..."); return new DataTable(); } dbHelper.ClearParameter(); dbHelper.CommandType = CommandType.Text; StringBuilder sqlstr = new StringBuilder(); sqlstr.AppendLine(@" SELECT m.Barcode , m.Mix_ID as MixID, t.ShowName AS TermCode , m.Set_Time as SetTime, m.Set_Temp as SeTemp, m.Set_Ener as SetEner, m.Set_Power as SetPower, m.Set_Pres as SetPres, m.Set_Rota as SetRota, a.ShowName AS ActCode , m.Save_Time FROM PptMixData m LEFT JOIN PmtTerm t ON m.Term_Code = t.TermAddress LEFT JOIN PmtAction a ON m.Act_Code = a.ActionAddress "); sqlstr.AppendLine(@" WHERE 1=1"); sqlstr.AppendLine(@" AND m.Barcode='" + barCode + "'"); sqlstr.AppendLine(@" Order by m.Mix_Id"); dbHelper.CommandText = sqlstr.ToString(); DataTable table = dbHelper.ToDataTable(); return table; } /// /// 通过条码获取称重信息 /// /// /// /// public static DataTable GetPptWeigh(Mesnac.Basic.DataSourceFactory.MCDbType dbType, string barCode) { DatabaseAction action = new DatabaseAction(); DbHelper dbHelper; dbHelper = action.NewDbHelper(dbType); if (dbHelper == null) { action.LogError("获取数据连接失败..."); return new DataTable(); } dbHelper.ClearParameter(); dbHelper.CommandType = CommandType.Text; StringBuilder sqlstr = new StringBuilder(); sqlstr.AppendLine(@" select Set_Weight as SetWeight,case Weigh_Type when 0 then '炭黑' when 1 then '油1' when 2 then '胶料' when 3 then '粉料' when 4 then '小料' when 5 then '油2' else '' end as WeighType,Mater_Name as MaterName,Mater_Code as MaterCode,Set_Weight as SetWeight,Real_Weight as RealWeight,Error_Allow as ErrorAllow,Weigh_State as WeighState from PptWeigh "); sqlstr.AppendLine(@" where Barcode='" + barCode + "'"); sqlstr.AppendLine(@" order by Weigh_Type"); dbHelper.CommandText = sqlstr.ToString(); DataTable table = dbHelper.ToDataTable(); return table; } /// /// 通过条码获取报警信息 /// /// /// /// public static DataTable GetPptAlarm(Mesnac.Basic.DataSourceFactory.MCDbType dbType, string barCode) { DatabaseAction action = new DatabaseAction(); DbHelper dbHelper; dbHelper = action.NewDbHelper(dbType); if (dbHelper == null) { action.LogError("获取数据连接失败..."); return new DataTable(); } dbHelper.ClearParameter(); dbHelper.CommandType = CommandType.Text; StringBuilder sqlstr = new StringBuilder(); sqlstr.AppendLine(@" select acbz1 as AlarmStr,acbz2 as OperTime from PmtAlarmCode "); sqlstr.AppendLine(@" where acdetail='" + barCode + "'"); dbHelper.CommandText = sqlstr.ToString(); DataTable table = dbHelper.ToDataTable(); return table; } /// /// 通过条码获取曲线图 /// /// /// /// public static DataTable GetPptCurve(Mesnac.Basic.DataSourceFactory.MCDbType dbType, string barCode) { DatabaseAction action = new DatabaseAction(); DbHelper dbHelper; dbHelper = action.NewDbHelper(dbType); if (dbHelper == null) { action.LogError("获取数据连接失败..."); return new DataTable(); } dbHelper.ClearParameter(); dbHelper.CommandType = CommandType.Text; StringBuilder sqlstr = new StringBuilder(); sqlstr.AppendLine(@" select * from Ppt_CurveData "); sqlstr.AppendLine(@" where Barcode='" + barCode + "'"); dbHelper.CommandText = sqlstr.ToString(); DataTable tableOne = dbHelper.ToDataTable(); DataTable table = new DataTable(); table.Columns.Add("MixingTemp", Type.GetType("System.String")); table.Columns.Add("SecondSpan", Type.GetType("System.String")); table.Columns.Add("MixingPower", Type.GetType("System.String")); table.Columns.Add("MixingEnergy", Type.GetType("System.String")); table.Columns.Add("MixingPress", Type.GetType("System.String")); table.Columns.Add("MixingSpeed", Type.GetType("System.String")); if (tableOne.Rows.Count > 0) { string[] MixingTemp = tableOne.Rows[0]["Mixing_Temp"].ToString().Split(':'); string[] SecondSpan = tableOne.Rows[0]["Mixing_Time"].ToString().Split(':'); string[] MixingPower = tableOne.Rows[0]["Mixing_Power"].ToString().Split(':'); string[] MixingEnergy = tableOne.Rows[0]["Mixing_Energy"].ToString().Split(':'); string[] MixingPress = tableOne.Rows[0]["Mixing_Press"].ToString().Split(':'); string[] MixingSpeed = tableOne.Rows[0]["Mixing_Speed"].ToString().Split(':'); DataRow newRow; for (int i = 0; i < SecondSpan.Length; i++) { newRow = table.NewRow(); newRow["MixingTemp"] = MixingTemp[i]; newRow["SecondSpan"] = SecondSpan[i]; newRow["MixingPower"] = MixingPower[i]; newRow["MixingEnergy"] = MixingEnergy[i]; newRow["MixingPress"] = MixingPress[i]; newRow["MixingSpeed"] = MixingSpeed[i]; table.Rows.Add(newRow); } } return table; } } #endregion #region 刷新配方列表控件的数据 /// /// 刷新配方列表控件的数据 /// public class LotRefreshRecipeList : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); IBaseControl cbRecipe = this.GetMCControlByKey("Pmt_Recipe.ObjID").FirstOrDefault(); //获取配方列表控件 if (cbRecipe == null) { base.LogError("{车报表} 缺少key值为Pmt_Recipe.ObjID的配方列表控件..."); runtime.IsReturn = true; return; } DbHelper localHelper = base.NewDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local); if (localHelper == null) { base.LogError(Language(13)); //尝试连接本地数据库失败 } try { localHelper.CommandType = CommandType.Text; string strSql = "select ObjID,mater_code,mater_name from pmt_recipe where equip_code=@EquipCode"; localHelper.CommandText = strSql; localHelper.AddParameter("@EquipCode", base.CurrEquipCode.Substring(3, 2)); DataTable tblRecipe = localHelper.ToDataTable(); cbRecipe.BindDataSource = tblRecipe; } catch (Exception ex) { base.LogError("车报表-刷新配方列表失败:" + ex.Message); runtime.IsReturn = true; return; } } } #endregion #region 车报表 加载 public class LotReportLoad : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { //if (!LotClass.IsFirstLoad) // return; //LotClass.IsFirstLoad = false; base.RunIni(runtime); List mcControllist = GetAllDbMCControlsByOption(DbOptionTypes.Query);//获取所有待初始化控件 IBaseControl startdate = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "startdate").FirstOrDefault().BaseControl; IBaseControl starttime = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "starttime").FirstOrDefault().BaseControl; if (startdate != null && starttime != null) { startdate.MCValue = DateTime.Now; starttime.MCValue = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00"; } else { base.LogError("{车报表} 缺少key值为startdate或者starttime的时间查询条件..."); return; } IBaseControl enddate = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "enddate").FirstOrDefault().BaseControl; IBaseControl endtime = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "endtime").FirstOrDefault().BaseControl; if (enddate != null && endtime != null) { enddate.MCValue = DateTime.Now.AddDays(1).ToShortDateString(); ; endtime.MCValue = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") + " 00:00"; } else { base.LogError("{车报表} 缺少key值为enddate或者endtime的时间查询条件..."); return; } DbHelper dbHelper; //base.CurrEquipCode; #region 获取其他查询条件控件值 foreach (DbMCControl c in mcControllist) { if (c.BaseControl.MCKey == null) continue; if (c.DbMCSource != null && c.BaseControl is MCCombobox) { DbMCControl pptlotcontrol = this.GetDbMCControlByBaseControlKey(c.BaseControl.MCKey).FirstOrDefault(); if (pptlotcontrol != null) { dbHelper = NewDbHelper(pptlotcontrol.DesignSource); if (dbHelper == null) { return; } dbHelper.ClearParameter(); dbHelper.CommandType = CommandType.Text; string strsql = "select * from [" + pptlotcontrol.BaseControl.InitDataSource.ToLower().Trim() + "]"; if (pptlotcontrol.BaseControl.InitDataSource.ToLower().Trim().StartsWith("select")) { strsql = pptlotcontrol.BaseControl.InitDataSource.ToLower().Trim(); } string sqlstr = strsql.ToString(); dbHelper.CommandText = sqlstr; DataTable table = dbHelper.ToDataTable(); pptlotcontrol.BaseControl.BindDataSource = table; } } } #endregion } } #endregion #region 车报表 查询 /// /// 车报表 查询 /// public class LotReportSelect : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); DbMCControl pptlotButton = this.GetDbMCControlByBaseControlKey("mcbuttonSearch").FirstOrDefault(); IBaseControl lblInfo = this.GetMCControlByKey("ShowMsgControl").FirstOrDefault(); //信息提示控件 if (pptlotButton == null) { base.LogError("{车报表} 缺少key值为mcbuttonSearch查询按钮..."); return; } StringBuilder sqlsb = new StringBuilder(); sqlsb.AppendLine(@"SELECT identity(int,1,1) as id, PptLotData.Barcode into #list FROM dbo.PptLotData LEFT JOIN dbo.Pmt_Recipe ON Pmt_Recipe.equip_code=substring(PptLotData.EquipCode,4,2) AND Pmt_Recipe.mater_code=PptLotData.MaterCode AND Pmt_Recipe.edt_code=PptLotData.EdtCode "); sqlsb.AppendLine(@" WHERE 1=1"); List mcControllist = GetAllDbMCControlsByOption(DbOptionTypes.Query);//获取所有待初始化控件 IBaseControl startdate = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "startdate").FirstOrDefault().BaseControl; IBaseControl starttime = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "starttime").FirstOrDefault().BaseControl; CheckBox checkDate = this.GetAllFormControlById("MCCheckBox1").FirstOrDefault() as CheckBox; CheckBox checkClass = this.GetAllFormControlById("MCCheckBox2").FirstOrDefault() as CheckBox; CheckBox checkShift = this.GetAllFormControlById("MCCheckBox3").FirstOrDefault() as CheckBox; CheckBox checkSerialID = this.GetAllFormControlById("MCCheckBox4").FirstOrDefault() as CheckBox; CheckBox checkRecipt = this.GetAllFormControlById("MCCheckBox5").FirstOrDefault() as CheckBox; if (checkDate.Checked)//如果按日期查询选中 { if (startdate != null && starttime != null) { sqlsb.AppendLine(@"AND PptLotData.StartDatetime>='" + Convert.ToDateTime(startdate.MCValue).ToString("yyyy-MM-dd") + " " + Convert.ToDateTime(starttime.MCValue).ToShortTimeString() + "' "); } else { base.LogError("{车报表} 缺少key值为startdate或者starttime的时间查询条件..."); return; } IBaseControl enddate = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "enddate").FirstOrDefault().BaseControl; IBaseControl endtime = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "endtime").FirstOrDefault().BaseControl; if (enddate != null && endtime != null) { sqlsb.AppendLine(@"AND PptLotData.StartDatetime<='" + Convert.ToDateTime(enddate.MCValue).ToString("yyyy-MM-dd") + " " + Convert.ToDateTime(endtime.MCValue).ToShortTimeString() + "' "); } else { base.LogError("{车报表} 缺少key值为enddate或者endtime的时间查询条件..."); return; } } if (checkSerialID.Checked)//如果按车次查询选中 { IBaseControl startSerialID = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "startserialid").FirstOrDefault().BaseControl; IBaseControl endSerialID = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "endserialid").FirstOrDefault().BaseControl; if (startSerialID != null && endSerialID != null) { if (startSerialID.MCValue.ToString() != "" && endSerialID.MCValue.ToString() != "") sqlsb.AppendLine(@"AND PptLotData.SerialID between " + startSerialID.MCValue + " and " + endSerialID.MCValue + " "); } } foreach (DbMCControl c in mcControllist) { if (c.BaseControl.MCKey == null) continue; if (c.BaseControl.MCKey.ToLower() != "startdate" && c.BaseControl.MCKey.ToLower() != "starttime" && c.BaseControl.MCKey.ToLower() != "enddate" && c.BaseControl.MCKey.ToLower() != "endtime" && c.BaseControl.MCKey.ToLower() != "startserialid" && c.BaseControl.MCKey.ToLower() != "endserialid") { if (c.BaseControl.MCKey.ToLower() == "pptlotdata.classid" && checkClass.Checked) sqlsb.AppendLine(@"AND " + c.BaseControl.MCKey + "='" + c.BaseControl.MCValue.ToString() + "' "); if (c.BaseControl.MCKey.ToLower() == "pptlotdata.shiftid" && checkShift.Checked) sqlsb.AppendLine(@"AND " + c.BaseControl.MCKey + "='" + c.BaseControl.MCValue.ToString() + "' "); if (c.BaseControl.MCKey.ToLower() == "pmt_recipe.objid" && checkRecipt.Checked) sqlsb.AppendLine(@"AND " + c.BaseControl.MCKey + "='" + c.BaseControl.MCValue.ToString() + "' "); } } sqlsb.AppendLine(@" order by StartDatetime"); sqlsb.AppendLine(@" select * from #list"); DbHelper dbHelper = NewDbHelper(pptlotButton.DesignSource); if (dbHelper == null) { return; } dbHelper.ClearParameter(); dbHelper.CommandType = CommandType.Text; string sqlstr = sqlsb.ToString(); dbHelper.CommandText = sqlstr; DataTable table = dbHelper.ToDataTable(); LotClass.dictonary.Clear(); LotClass.page = 0; for (int i = 0; i < table.Rows.Count; i++) { LotClass.dictonary.Add(table.Rows[i]["id"].ToString(), table.Rows[i]["Barcode"].ToString()); } ///////////获取每车信息 dbHelper = NewDbHelper(pptlotButton.DesignSource); if (dbHelper == null) { return; } dbHelper.ClearParameter(); dbHelper.CommandType = CommandType.Text; LotClass.page = 1; string index = LotClass.dictonary.Count == 0 ? "0" : LotClass.dictonary["1"].ToString(); dbHelper.CommandText = LotClass.GetDetailStr(index); DataTable detailtable = dbHelper.ToDataTable(); if (detailtable.Rows.Count == 0) { //string msg = "没有符合条件的数据!"; string msg = Language(302); if (lblInfo == null) { Mesnac.Basic.MessageBoxTimeOut.Show(msg, Language(1), 2000); } else { lblInfo.MCValue = msg; } FormClear(); return; } List initText = GetAllMCControlsByOption(DbOptionTypes.InitData);//获取待初始化数据 foreach (IBaseControl cl in initText) { cl.MCValue = detailtable.Rows[0][cl.MCKey].ToString(); } string msg1 = Language(301); //查询完成 if (lblInfo == null) { Mesnac.Basic.MessageBoxTimeOut.Show(msg1, Language(1), 2000); } else { lblInfo.MCValue = msg1; } } public void FormClear() { Control cl = GetControlById("MultiCurveLine"); if (cl == null) { base.LogError("{车报表} 缺少折线图集合控件"); return; } MultiCurve mc = cl as MultiCurve; mc.Clear(); List initText = GetAllMCControlsByOption(DbOptionTypes.InitData);//获取待初始化数据 foreach (IBaseControl cl1 in initText) { cl1.MCValue = ""; } } } #endregion #region 上一页 public class LotReportPrevious : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); if (LotClass.dictonary.Count == 0) { MessageBox.Show(base.Language(302)); return; } LotClass.page -= 1; if (LotClass.page == 0) LotClass.page = 1; DbMCControl pptlotButton = this.GetDbMCControlByBaseControlKey("mcbuttonSearch").FirstOrDefault(); if (pptlotButton == null) { base.LogError("{车报表} 缺少key值为pptlot查询按钮..."); return; } DbHelper dbHelper = NewDbHelper(pptlotButton.DesignSource); if (dbHelper == null) { return; } dbHelper.ClearParameter(); dbHelper.CommandType = CommandType.Text; string index = LotClass.dictonary[LotClass.page.ToString()].ToString(); dbHelper.CommandText = LotClass.GetDetailStr(index); DataTable detailtable = dbHelper.ToDataTable(); List initText = GetAllMCControlsByOption(DbOptionTypes.InitData);//获取待初始化数据 foreach (IBaseControl cl in initText) { cl.MCValue = detailtable.Rows[0][cl.MCKey].ToString(); } } } #endregion #region 下一页 public class LotReportNext : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); if (LotClass.dictonary.Count == 0) { MessageBox.Show(base.Language(302)); return; } LotClass.page += 1; if (LotClass.page > LotClass.dictonary.Count) LotClass.page = LotClass.dictonary.Count; DbMCControl pptlotButton = this.GetDbMCControlByBaseControlKey("mcbuttonSearch").FirstOrDefault(); if (pptlotButton == null) { base.LogError("{车报表} 缺少key值为pptlot查询按钮..."); return; } DbHelper dbHelper = NewDbHelper(pptlotButton.DesignSource); if (dbHelper == null) { return; } dbHelper.ClearParameter(); dbHelper.CommandType = CommandType.Text; string index = LotClass.dictonary[LotClass.page.ToString()].ToString(); dbHelper.CommandText = LotClass.GetDetailStr(index); DataTable detailtable = dbHelper.ToDataTable(); List initText = GetAllMCControlsByOption(DbOptionTypes.InitData);//获取待初始化数据 foreach (IBaseControl cl in initText) { cl.MCValue = detailtable.Rows[0][cl.MCKey].ToString(); } } } #endregion #region 首页 public class LotReportFirst : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); if (LotClass.dictonary.Count == 0) { MessageBox.Show(base.Language(302)); return; } LotClass.page = 1; DbMCControl pptlotButton = this.GetDbMCControlByBaseControlKey("mcbuttonSearch").FirstOrDefault(); if (pptlotButton == null) { base.LogError("{车报表} 缺少key值为pptlot查询按钮..."); return; } DbHelper dbHelper = NewDbHelper(pptlotButton.DesignSource); if (dbHelper == null) { return; } dbHelper.ClearParameter(); dbHelper.CommandType = CommandType.Text; string index = LotClass.dictonary[LotClass.page.ToString()].ToString(); dbHelper.CommandText = LotClass.GetDetailStr(index); DataTable detailtable = dbHelper.ToDataTable(); List initText = GetAllMCControlsByOption(DbOptionTypes.InitData);//获取待初始化数据 foreach (IBaseControl cl in initText) { cl.MCValue = detailtable.Rows[0][cl.MCKey].ToString(); } } } #endregion #region 尾页 public class LotReportLast : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); if (LotClass.dictonary.Count == 0) { MessageBox.Show(base.Language(302)); return; } LotClass.page = LotClass.dictonary.Count; DbMCControl pptlotButton = this.GetDbMCControlByBaseControlKey("mcbuttonSearch").FirstOrDefault(); if (pptlotButton == null) { base.LogError("{车报表} 缺少key值为pptlot查询按钮..."); return; } DbHelper dbHelper = NewDbHelper(pptlotButton.DesignSource); if (dbHelper == null) { return; } dbHelper.ClearParameter(); dbHelper.CommandType = CommandType.Text; string index = LotClass.dictonary[LotClass.page.ToString()].ToString(); dbHelper.CommandText = LotClass.GetDetailStr(index); DataTable detailtable = dbHelper.ToDataTable(); List initText = GetAllMCControlsByOption(DbOptionTypes.InitData);//获取待初始化数据 foreach (IBaseControl cl in initText) { cl.MCValue = detailtable.Rows[0][cl.MCKey].ToString(); } } } #endregion #region 画图 public class LotReportInitChart : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); if (LotClass.dictonary.Count == 0) return; DbHelper curveHelper = new DatabaseAction().NewDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Curve); if (curveHelper == null) { return; } curveHelper.ClearParameter(); curveHelper.CommandType = CommandType.Text; curveHelper.CommandText = "select top 1 * from dbo.Ppt_CurveData where barcode='" + LotClass.dictonary[LotClass.page.ToString()].ToString() + "'"; DataTable chartdetail = curveHelper.ToDataTable(); Control cl = GetControlById("MultiCurveLine");//声明曲线控件 MultiCurve mc = cl as MultiCurve; if (chartdetail == null || chartdetail.Rows.Count == 0) { mc.Clear(); return; } if (cl == null) { base.LogError("{车报表} 缺少折线图集合控件"); return; } mc.Clear(); //mc.Num = 1000; string[] mixing_Time = chartdetail.Rows[0]["Mixing_Time"].ToString().Split(':'); string[] mixing_Temps = chartdetail.Rows[0]["Mixing_Temp"].ToString().Split(':'); string[] mixing_Power = chartdetail.Rows[0]["Mixing_Power"].ToString().Split(':'); string[] mixing_Press = chartdetail.Rows[0]["Mixing_Press"].ToString().Split(':'); string[] mixing_Energy = chartdetail.Rows[0]["Mixing_Energy"].ToString().Split(':'); string[] mixing_Speed = chartdetail.Rows[0]["Mixing_Speed"].ToString().Split(':'); int beginIndex = 0; bool flag = true; double mixTime = 0; double pointValue1 = 0.0; double pointValue2 = 0.0; double pointValue3 = 0.0; double pointValue4 = 0.0; double pointValue5 = 0.0; for (int i = beginIndex; i < mixing_Time.Length - 1; i++) { if (!String.IsNullOrEmpty(mixing_Time[i])) { if (mixing_Time[i] != "0.00") { flag = false; break; } } } mc.IsUseMixTime = !flag; //是否使用密炼时间作为横坐标 for (int i = beginIndex; i < mixing_Temps.Length; i++) { flag = true; if (!double.TryParse(mixing_Time[i], out mixTime)) flag = false; if (!double.TryParse(mixing_Temps[i], out pointValue1)) flag = false; if (!double.TryParse(mixing_Power[i], out pointValue2)) flag = false; if (!double.TryParse(mixing_Press[i], out pointValue3)) flag = false; if (!double.TryParse(mixing_Energy[i], out pointValue4)) flag = false; if (!double.TryParse(mixing_Speed[i], out pointValue5)) flag = false; if (flag == true) { if (mc.IsUseMixTime) { if (mixTime > 0) { mc.MixTime = (int)mixTime; mc.PointValue1 = pointValue1; mc.PointValue2 = pointValue2; mc.PointValue3 = pointValue3; mc.PointValue4 = pointValue4; mc.PointValue5 = pointValue5; } } else { mc.PointValue1 = pointValue1; mc.PointValue2 = pointValue2; mc.PointValue3 = pointValue3; mc.PointValue4 = pointValue4; mc.PointValue5 = pointValue5; } } } } } #endregion #region 报表明细 public class PptLotFastReport : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); if (LotClass.dictonary.Count == 0) { MessageBox.Show(base.Language(303)); return; } string Barcode = LotClass.dictonary[LotClass.page.ToString()].ToString(); PptLotDetail pd = new PptLotDetail(); pd.BarCode = Barcode; pd.ReprotStart(); //pd.Show(); } } #endregion /// /// 曲线复位操作 /// public class ChartReset : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); Control cl = GetControlById("MultiCurveLine");//声明曲线控件 MultiCurve mc = cl as MultiCurve; mc.Reset(); } } public class ChartLeftScroll : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); Control cl = GetControlById("MultiCurveLine");//声明曲线控件 MultiCurve mc = cl as MultiCurve; mc.AxesScroll("Left"); } } public class ChartRightScroll : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); Control cl = GetControlById("MultiCurveLine");//声明曲线控件 MultiCurve mc = cl as MultiCurve; mc.AxesScroll("Right"); //mc.Tzoom("-"); } } public class ChartTopScroll : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); Control cl = GetControlById("MultiCurveLine");//声明曲线控件 MultiCurve mc = cl as MultiCurve; mc.AxesScroll("Top"); } } public class ChartBottomScroll : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); Control cl = GetControlById("MultiCurveLine");//声明曲线控件 MultiCurve mc = cl as MultiCurve; mc.AxesScroll("Bottom"); } } /// /// 放大 /// public class ChartAmplify : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); Control cl = GetControlById("MultiCurveLine");//声明曲线控件 MultiCurve mc = cl as MultiCurve; mc.Tzoom("+"); } } /// /// 缩小 /// public class ChartNarrow : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); Control cl = GetControlById("MultiCurveLine");//声明曲线控件 MultiCurve mc = cl as MultiCurve; mc.Tzoom("-"); } } }