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.DryMixer
{
/// <summary>
/// 干混机报表查询事件
/// </summary>
public class SelectAction : ChemicalWeighingAction , IAction
{
public void Run ( RuntimeParameter runtime )
{
base . RunIni ( runtime ) ; //必须要调用的
var MCCombobox1 = GetAllControls ( ) . FirstOrDefault ( x = > x . Name = = "MCCombobox1" ) as MCCombobox ;
ICSharpCode . Core . LoggingService < SelectAction > . Debug ( "干混机报表-查询..." ) ;
DbHelper dbHelper = Mesnac . Basic . DataSourceFactory . Instance . GetDbHelper ( Mesnac . Basic . DataSourceFactory . MCDbType . Local ) ;
if ( dbHelper = = null )
{
ICSharpCode . Core . LoggingService < ExportAction > . Error ( "获取本地数据连接失败..." ) ;
return ;
}
dbHelper . ClearParameter ( ) ;
StringBuilder sbSql = new StringBuilder ( @" select objId, reportId, recipeCode, recipeName, planCode, planName, recordTime, dryNo, Batch from Report_Dry where 1=1 " ) ;
List < DbMCControl > 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 < SelectAction > . 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 < SelectAction > . Debug ( "{干混机报表-查询} 缺少key值为enddate或者enddate的时间查询条件..." ) ;
return ;
}
//MCCombobox1
sbSql . Append ( " and dryNo=" + MCCombobox1 . MCValue ) ;
sbSql . Append ( " ORDER BY recordTime desc" ) ;
dbHelper . CommandText = sbSql . ToString ( ) ;
dbHelper . CommandType = System . Data . CommandType . Text ;
DataTable table = dbHelper . ToDataTable ( ) ;
//刷新DataGridView数据
DbMCControl _dgvDryMixer = this . GetDbMCControlByKey ( Mesnac . Basic . DataSourceFactory . MCDbType . Local , "Report_DryMixer" ) . FirstOrDefault ( ) ;
if ( _dgvDryMixer = = null | | ! ( _dgvDryMixer . BaseControl is DataGridView ) )
{
ICSharpCode . Core . LoggingService < SelectAction > . Warn ( "{干混机报表-查询} 缺少系统日志DataGridView控件..." ) ;
runtime . IsReturn = false ;
return ;
}
var newTalbe = GetDefalut ( ) ;
foreach ( DataRow row in table . Rows )
{
var dr = newTalbe . NewRow ( ) ;
dr [ "dryNo" ] = row [ "dryNo" ] ;
dr [ "Batch" ] = row [ "Batch" ] ;
dr [ "reportId" ] = row [ "reportId" ] ;
dr [ "recordTime" ] = row [ "recordTime" ] . ToString ( ) ;
newTalbe . Rows . Add ( dr ) ;
}
_dgvDryMixer . BaseControl . BindDataSource = newTalbe ;
}
public DataTable GetDefalut ( )
{
DataTable dt = new DataTable ( ) ;
dt . Columns . Add ( "dryNo" , typeof ( string ) ) ;
dt . Columns . Add ( "Batch" , typeof ( string ) ) ;
dt . Columns . Add ( "recordTime" , typeof ( string ) ) ;
dt . Columns . Add ( "reportId" , typeof ( string ) ) ;
return dt ;
}
}
}