using Mesnac.Action.Base;
using Mesnac.Codd.Session;
using Mesnac.Controls.Base;
using Mesnac.Controls.Default;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Mesnac.Action.ChemicalWeighing.Report.GelDoser
{
///
/// 糊化机报表查询事件
///
public class SelectAction : ChemicalWeighingAction, IAction
{
public void Run(RuntimeParameter runtime)
{
base.RunIni(runtime); //必须要调用的
ICSharpCode.Core.LoggingService.Debug("糊化机报表-查询...");
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
{
ICSharpCode.Core.LoggingService.Error("获取本地数据连接失败...");
return;
}
dbHelper.ClearParameter();
StringBuilder sbSql = new StringBuilder(@" select objId, gelNo, recordTime, reportId, recipeCode, recipeName, planCode, planName,
Batch from Report_Gel
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;
if (startdate != null && starttime != null)
{
//Append
sbSql.AppendLine(@"AND recordTime>='" + Convert.ToDateTime(startdate.MCValue).ToString("yyyy-MM-dd") + " " + Convert.ToDateTime(starttime.MCValue).ToShortTimeString() + "' ");
}
else
{
ICSharpCode.Core.LoggingService.Debug("{糊化机报表-查询} 缺少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)
{
sbSql.AppendLine(@"AND recordTime<='" + Convert.ToDateTime(enddate.MCValue).ToString("yyyy-MM-dd") + " " + Convert.ToDateTime(endtime.MCValue).ToShortTimeString() + "' ");
}
else
{
ICSharpCode.Core.LoggingService.Debug("{糊化机报表-查询} 缺少key值为enddate或者enddate的时间查询条件...");
return;
}
var MCCombobox1 = GetAllControls().FirstOrDefault(x => x.Name == "MCCombobox1") as MCCombobox;
sbSql.Append(" and gelNo=" + MCCombobox1.MCValue);
sbSql.Append(" ORDER BY recordTime desc");
dbHelper.CommandText = sbSql.ToString();
dbHelper.CommandType = System.Data.CommandType.Text;
DataTable table = dbHelper.ToDataTable();
//刷新DataGridView数据
DbMCControl _dgvGelDoser = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "Report_GelDoser").FirstOrDefault();
if (_dgvGelDoser == null || !(_dgvGelDoser.BaseControl is DataGridView))
{
ICSharpCode.Core.LoggingService.Warn("{糊化机报表-查询} 缺少系统日志DataGridView控件...");
runtime.IsReturn = false;
return;
}
var newTalbe = GetDefalut();
foreach (DataRow row in table.Rows)
{
var dr = newTalbe.NewRow();
dr["gelNo"] = row["gelNo"];
dr["Batch"] = row["Batch"];
dr["reportId"] = row["reportId"];
dr["recordTime"] = row["recordTime"].ToString();
newTalbe.Rows.Add(dr);
}
_dgvGelDoser.BaseControl.BindDataSource = newTalbe;
Mesnac.Controls.Default.MultiColHeaderDgv clientGrid2 =
(GetAllControls().Where(x => x.Name.Contains("MultiColHeaderDgv2")).FirstOrDefault() as Mesnac.Controls.Default.MultiColHeaderDgv);
clientGrid2.DataSource = null;
var clientGrid1= GetAllControls().Where(x => x.Name.Contains("MultiColHeaderDgv1")).FirstOrDefault() as Mesnac.Controls.Default.MultiColHeaderDgv;
clientGrid1.DataSource = null;
}
public DataTable GetDefalut()
{
DataTable dt = new DataTable();
dt.Columns.Add("gelNo", typeof(string));
dt.Columns.Add("Batch", typeof(string));
dt.Columns.Add("recordTime", typeof(string));
dt.Columns.Add("reportId", typeof(string));
return dt;
}
}
}