using Mesnac.Action.Base ;
using Mesnac.Codd.Session ;
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 SelectRowAction : ChemicalWeighingAction , IAction
{
private Control _clientGridControl = null ; //多维表控件
public void Run ( RuntimeParameter runtime )
{
base . RunIni ( runtime ) ; //必须要调用的
var MCCombobox1 = GetAllControls ( ) . FirstOrDefault ( x = > x . Name = = "MCCombobox1" ) as MCCombobox ;
ICSharpCode . Core . LoggingService < SelectAction > . Debug ( "干混机报表-明细查询..." ) ;
//获取报表数据
DbMCControl _dgvDryMixer = this . GetDbMCControlByKey ( Mesnac . Basic . DataSourceFactory . MCDbType . Local , "Report_DryMixer" ) . FirstOrDefault ( ) ;
if ( _dgvDryMixer = = null | | ! ( _dgvDryMixer . BaseControl is DataGridView ) )
{
ICSharpCode . Core . LoggingService < SelectRowAction > . Warn ( "{生产报表} 缺少干混机报表DataGridView控件..." ) ;
runtime . IsReturn = false ;
return ;
}
DataGridView _DryMixerGridView = _dgvDryMixer . BaseControl as DataGridView ;
this . _clientGridControl = GetAllControls ( ) . Where ( x = > x . Name . Contains ( "MultiColHeaderDgv1" ) ) . FirstOrDefault ( ) ;
Mesnac . Controls . Default . MultiColHeaderDgv clientGrid = ( this . _clientGridControl as Mesnac . Controls . Default . MultiColHeaderDgv ) ;
Mesnac . Controls . Default . MultiColHeaderDgv clientGrid2 = ( GetAllControls ( ) . Where ( x = > x . Name . Contains ( "MultiColHeaderDgv2" ) ) . FirstOrDefault ( ) as Mesnac . Controls . Default . MultiColHeaderDgv ) ;
#region 明细控件格式化
clientGrid . myColHeaderTreeView = null ;
clientGrid . DataSource = null ;
clientGrid . iNodeLevels = 0 ;
clientGrid . ColLists . Clear ( ) ;
clientGrid . ColumnHeadersHeight = 23 ;
clientGrid . ScrollBars = ScrollBars . Both ;
clientGrid . AllowUserToAddRows = false ;
clientGrid . RowsDefaultCellStyle . Alignment = DataGridViewContentAlignment . MiddleCenter ;
clientGrid . AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode . Fill ;
clientGrid . ColumnHeadersDefaultCellStyle . Font = new System . Drawing . Font ( "宋体" , 12 ) ;
clientGrid . DefaultCellStyle . Font = new System . Drawing . Font ( "宋体" , 10 ) ;
clientGrid . ColumnHeadersDefaultCellStyle . Alignment = DataGridViewContentAlignment . MiddleCenter ;
clientGrid2 . myColHeaderTreeView = null ;
clientGrid2 . DataSource = null ;
clientGrid2 . iNodeLevels = 0 ;
clientGrid2 . ColLists . Clear ( ) ;
clientGrid2 . ColumnHeadersHeight = 23 ;
clientGrid2 . ScrollBars = ScrollBars . Both ;
clientGrid2 . AllowUserToAddRows = false ;
clientGrid2 . RowsDefaultCellStyle . Alignment = DataGridViewContentAlignment . MiddleCenter ;
clientGrid2 . AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode . Fill ;
clientGrid2 . ColumnHeadersDefaultCellStyle . Font = new System . Drawing . Font ( "宋体" , 12 ) ;
clientGrid2 . DefaultCellStyle . Font = new System . Drawing . Font ( "宋体" , 10 ) ;
clientGrid2 . ColumnHeadersDefaultCellStyle . Alignment = DataGridViewContentAlignment . MiddleCenter ;
# endregion
//获取选中行的ReportId, 关联获取明细数据并赋值给明细控件
if ( _DryMixerGridView . SelectedRows . Count = = 1 )
{
string lR_planID = _DryMixerGridView . SelectedRows [ 0 ] . Cells [ "reportId" ] . Value as string ;
//获取数据链接
DbHelper dbHelper = Mesnac . Basic . DataSourceFactory . Instance . GetDbHelper ( Mesnac . Basic . DataSourceFactory . MCDbType . Local ) ;
if ( dbHelper = = null )
{
ICSharpCode . Core . LoggingService < ExportAction > . Error ( "获取本地数据连接失败..." ) ;
return ;
}
dbHelper . ClearParameter ( ) ;
//获取明细数据
StringBuilder sqlStr = new StringBuilder ( @ "select t1.batch as 批次号,t2.MName as 物料,
t1 . actValue as 实 际 重 量 , t1 . actToler as 实 际 公 差
from Report_DryDos_Detail t1
left join lj_stock_material t2 on t1 . matCode = t2 . Code
where t2 . MTypeId = 1 and t1 . reportId = @reportId ");
dbHelper . CommandText = sqlStr . ToString ( ) ;
dbHelper . CommandType = System . Data . CommandType . Text ;
dbHelper . AddParameter ( "@reportId" , lR_planID ) ;
DataTable table = dbHelper . ToDataTable ( ) ;
clientGrid . DataSource = table ;
dbHelper . ClearParameter ( ) ;
string sql = $"select t1.mixBatch as 批次,t1.mixStep as 步号,t2.ActionName as 动作,t1.mixTime as 时间,t1.mixTemp as 温度,t1.mixSpeed as 速度 from Report_DryMixer_Detail t1\r\nleft join ActionCode t2 on t2.Code=t1.actCode\r\nwhere t2.DeviceUnitId=1 and t1.reportId='{lR_planID}' order by actCode" ;
dbHelper . CommandText = sql . ToString ( ) ;
dbHelper . CommandType = System . Data . CommandType . Text ;
DataTable tableB = dbHelper . ToDataTable ( ) ;
clientGrid2 . DataSource = tableB ;
}
}
}
}