using System; using System.Collections.Generic; using System.Linq; using System.Text; using Mesnac.Action.Base; using Mesnac.Codd.Session; using Mesnac.Basic; using System.Data; using Mesnac.Controls.Base; using Mesnac.Controls.Default; using System.Windows.Forms; namespace Mesnac.Action.Intake.Qingquan.Report { #region 报表窗体 加载 public class ReportLoad : IntakeAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); List mcControllist = GetAllDbMCControlsByOption(DbOptionTypes.Query);//获取所有待初始化控件 IBaseControl startdate = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "startdate").FirstOrDefault().BaseControl; if (startdate != null) { startdate.MCValue = DateTime.Now.AddDays(-1).ToShortDateString(); } else { base.LogError("缺少key值为startdate的查询条件..."); return; } IBaseControl enddate = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "enddate").FirstOrDefault().BaseControl; if (enddate != null) { enddate.MCValue = DateTime.Now; } else { base.LogError("缺少key值为enddate的查询条件..."); return; } } } #endregion #region 查询输送报表 /// ///查询输送报表 /// public class ReportQuery : IntakeAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); List mcControllist = GetAllDbMCControlsByOption(DbOptionTypes.Query);//获取所有待初始化控件 IBaseControl startdate = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "startdate").FirstOrDefault().BaseControl; if (startdate == null) { base.LogError("缺少key值为startdate的查询条件..."); return; } else { // startdate.MCValue = DateTime.Now.AddDays(-1).ToShortDateString(); } IBaseControl enddate = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "enddate").FirstOrDefault().BaseControl; if (enddate == null) { base.LogError("缺少key值为enddate的查询条件..."); return; } IBaseControl starttime = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "starttime").FirstOrDefault().BaseControl; if (starttime == null) { base.LogError("缺少key值为starttime的查询条件..."); return; } else { } IBaseControl endtime = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "endtime").FirstOrDefault().BaseControl; if (endtime == null) { base.LogError("缺少key值为endtime的查询条件..."); return; // enddate.MCValue = DateTime.Now; } else { //base.LogError("缺少key值为endtime的查询条件..."); //return; } DbMCControl clientGridControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "ppt_FeedingData").LastOrDefault(); if (clientGridControl == null) { base.LogError("缺少本机台计划网格控件..."); return; } StringBuilder sqlsb = new StringBuilder(); sqlsb.AppendLine(@"select count(*) as CountNum, Mater_name, Dest_bin, Equip_id from ppt_FeedingData "); sqlsb.AppendLine(@" WHERE 1=1"); sqlsb.AppendLine(@"AND Trans_Date>='" + Convert.ToDateTime(startdate.MCValue).ToString("yyyy-MM-dd") + " " + Convert.ToDateTime(starttime.MCValue).ToShortTimeString() + "' "); sqlsb.AppendLine(@"AND Trans_Date<='" + Convert.ToDateTime(enddate.MCValue).ToString("yyyy-MM-dd") + " " + Convert.ToDateTime(endtime.MCValue).ToShortTimeString() + "' "); sqlsb.AppendLine(@"GROUP BY Mater_name, Dest_bin, Equip_id ORDER BY Equip_id, dest_bin "); DbHelper dbHelper = NewDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local); if (dbHelper == null) { return; } dbHelper.ClearParameter(); dbHelper.CommandType = CommandType.Text; string sqlstr = sqlsb.ToString(); dbHelper.CommandText = sqlstr; DataTable table = dbHelper.ToDataTable(); if (clientGridControl != null && clientGridControl.BaseControl != null) { clientGridControl.BaseControl.BindDataSource = null; clientGridControl.BaseControl.BindDataSource = table; } } } #endregion #region 报表明细查询 public class ReportDetailQuery : IntakeAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); List mcControllist = GetAllDbMCControlsByOption(DbOptionTypes.Query);//获取所有待初始化控件 MCDataGridView mcdgv = runtime.Sender as MCDataGridView; DbMCControl planlotgrid = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "ppt_FeedingData").LastOrDefault(); //物料编码 IBaseControl lblSerialID = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "lblserialid").FirstOrDefault().BaseControl; lblSerialID.MCValue = string.Empty; string materName = mcdgv.SelectedRows[0].Cells["Mater_name"].Value.ToString(); string equipId = mcdgv.SelectedRows[0].Cells["Equip_id"].Value.ToString(); string destBin = mcdgv.SelectedRows[0].Cells["Dest_bin"].Value.ToString(); //拼接SQL语句BEGIN IBaseControl lblmaterName = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "lblmatername").FirstOrDefault().BaseControl; IBaseControl lblequipId = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "lblequipid").FirstOrDefault().BaseControl; IBaseControl lbldestBin = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "lbldestbin").FirstOrDefault().BaseControl; lblmaterName.MCValue = materName.Trim(); lblequipId.MCValue = equipId.Trim(); lbldestBin.MCValue = destBin.Trim(); 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; 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 (starttime == null || endtime == null) { base.LogError("{批报表} 缺少key值为starttime或者endtime的时间查询条件..."); return; } DbMCControl planlotdetailgrid = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "ppt_FeedingData").FirstOrDefault(); planlotdetailgrid.BaseControl.BindDataSource =ReportCommon.GetReportDetail(Mesnac.Basic.DataSourceFactory.MCDbType.Local,startdate.MCValue.ToString(),starttime.MCValue.ToString(),enddate.MCValue.ToString(),endtime.MCValue.ToString(),materName,equipId,destBin);// table; } } #endregion #region 选中报表明细时候显示曲线 public class ReportDetailChartQuery : IntakeAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); List mcControllist = GetAllDbMCControlsByOption(DbOptionTypes.Query);//获取所有待初始化控件 MCDataGridView mcdgv = runtime.Sender as MCDataGridView; IBaseControl lblSerialID = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "lblserialid").FirstOrDefault().BaseControl; string serialID = mcdgv.SelectedRows[0].Cells["Serial_ID"].Value.ToString(); lblSerialID.MCValue = serialID; } } #endregion #region 画图 public class LotReportInitChart : IntakeAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); List mcControllist = GetAllDbMCControlsByOption(DbOptionTypes.Query);//获取所有待初始化控件 IBaseControl lblSerialID = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "lblserialid").FirstOrDefault().BaseControl; if (lblSerialID.MCValue.ToString() == "") { MessageBox.Show("请选择输送的详情信息!"); return; } ReportChart r = new ReportChart(lblSerialID.MCValue.ToString().Trim()); r.ShowDialog(); } } #endregion }