using Mesnac.Action.Base; using Mesnac.Codd.Session; 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 { /// /// 干混机报表明细查询事件 /// public class SelectRowAction : ChemicalWeighingAction, IAction { private Control _clientGridControl = null; //多维表控件 public void Run(RuntimeParameter runtime) { base.RunIni(runtime); //必须要调用的 ICSharpCode.Core.LoggingService.Debug("干混机报表-明细查询..."); //获取报表数据 DbMCControl _dgvDryMixer = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "Report_DryMixer").FirstOrDefault(); if (_dgvDryMixer == null || !(_dgvDryMixer.BaseControl is DataGridView)) { ICSharpCode.Core.LoggingService.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.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; } } } }