diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/LjPlanning/LjPlanningPlcHelp.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/LjPlanning/LjPlanningPlcHelp.cs
index ac913aa..a9e52ba 100644
--- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/LjPlanning/LjPlanningPlcHelp.cs
+++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/LjPlanning/LjPlanningPlcHelp.cs
@@ -158,7 +158,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipePlcViews.Count(); i++)
{
var view = recipePlcViews[i];
- Dowd(begin, view);
+ Dowd2(begin, view);
begin += 10;
}
@@ -166,7 +166,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipeSteps.Count(); i++)
{
var view = recipeSteps[i];
- DowSteps(begin, view);
+ DowSteps2(begin, view);
begin += 12;
}
@@ -183,7 +183,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipePlcViews.Count(); i++)
{
var view = recipePlcViews[i];
- Dowd(begin, view);
+ Dowd2(begin, view);
begin += 10;
}
@@ -195,7 +195,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipeSteps.Count(); i++)
{
var view = recipeSteps[i];
- DowSteps(begin, view);
+ DowSteps2(begin, view);
begin += 12;
}
@@ -210,7 +210,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipePlcViews.Count(); i++)
{
var view = recipePlcViews[i];
- Dowd(begin, view);
+ Dowd2(begin, view);
begin += 10;
}
@@ -221,7 +221,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipeSteps.Count(); i++)
{
var view = recipeSteps[i];
- DowSteps(begin, view);
+ DowSteps2(begin, view);
begin += 12;
}
@@ -236,7 +236,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipePlcViews.Count(); i++)
{
var view = recipePlcViews[i];
- Dowd(begin, view);
+ Dowd2(begin, view);
begin += 10;
}
@@ -245,7 +245,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipeSteps.Count(); i++)
{
var view = recipeSteps[i];
- DowSteps(begin, view);
+ DowSteps2(begin, view);
begin += 12;
}
@@ -263,7 +263,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipePlcViews.Count(); i++)
{
var view = recipePlcViews[i];
- Dowd(begin, view);
+ Dowd2(begin, view);
begin += 10;
}
@@ -274,7 +274,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipeSteps.Count(); i++)
{
var view = recipeSteps[i];
- DowSteps(begin, view);
+ DowSteps2(begin, view);
begin += 12;
}
@@ -289,7 +289,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipePlcViews.Count(); i++)
{
var view = recipePlcViews[i];
- Dowd(begin, view);
+ Dowd2(begin, view);
begin += 10;
}
@@ -301,7 +301,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipeSteps.Count(); i++)
{
var view = recipeSteps[i];
- DowSteps(begin, view);
+ DowSteps2(begin, view);
begin += 12;
}
@@ -316,7 +316,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipePlcViews.Count(); i++)
{
var view = recipePlcViews[i];
- Dowd(begin, view);
+ Dowd2(begin, view);
begin += 10;
}
@@ -327,7 +327,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipeSteps.Count(); i++)
{
var view = recipeSteps[i];
- DowSteps(begin, view);
+ DowSteps2(begin, view);
begin += 12;
}
@@ -343,7 +343,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipePlcViews.Count(); i++)
{
var view = recipePlcViews[i];
- Dowd(begin, view);
+ Dowd2(begin, view);
begin += 10;
}
@@ -351,7 +351,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipeSteps.Count(); i++)
{
var view = recipeSteps[i];
- DowSteps(begin, view);
+ DowSteps2(begin, view);
begin += 12;
}
@@ -639,7 +639,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipePlcViews.Count(); i++)
{
var view = recipePlcViews[i];
- Dowd(begin, view);
+ Dowd2(begin, view);
begin += 10;
}
@@ -647,7 +647,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
for (int i = 0; i < recipeSteps.Count(); i++)
{
var view = recipeSteps[i];
- DowSteps(begin, view);
+ DowSteps2(begin, view);
begin += 12;
}
@@ -671,6 +671,33 @@ namespace Mesnac.Action.ChemicalWeighing.LjPlanning
}
+ private static void Dowd2(int start, RecipePlcView view)
+ {
+ int bin = start;
+ PlcConnect.Instance.Write($"DB2104.{bin}.0", view.Bin);
+ int set = start + 2;
+ PlcConnect.Instance.Write($"DB2104.{set}.0", view.Set);
+ int tolerance = start + 6;
+ PlcConnect.Instance.Write($"DB2104.{tolerance}.0", view.Tolerance);
+
+ }
+
+ private static void DowSteps2(int start, Step step)
+ {
+ int mixCode = start;
+ var info = PlcConnect.Instance.Write($"DB2104.{mixCode}.0", step.MixCode);
+ int mixTime = start + 2;
+ PlcConnect.Instance.Write($"DB2104.{mixTime}.0", step.MixTime);
+
+ int mixTemp = start + 4;
+ PlcConnect.Instance.Write($"DB2104.{mixTemp}.0", step.MixTemp);
+ int mixSpeed = start + 8;
+
+ PlcConnect.Instance.Write($"DB2104.{mixSpeed}.0", step.MixSpeed);
+ }
+
+
+
private static void Dowd(int start, RecipePlcView view)
{
int bin = start;
diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Mesnac.Action.ChemicalWeighing.csproj b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Mesnac.Action.ChemicalWeighing.csproj
index 36cc135..7ca50c1 100644
--- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Mesnac.Action.ChemicalWeighing.csproj
+++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Mesnac.Action.ChemicalWeighing.csproj
@@ -635,7 +635,6 @@
-
@@ -644,6 +643,7 @@
+
diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/DryMixer/SelectRowAction.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/DryMixer/SelectRowAction.cs
index 4448fb8..0da7748 100644
Binary files a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/DryMixer/SelectRowAction.cs and b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/DryMixer/SelectRowAction.cs differ
diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/Sb.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/Sb.cs
new file mode 100644
index 0000000..119cdfb
--- /dev/null
+++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/Sb.cs
@@ -0,0 +1,240 @@
+using Mesnac.Action.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
+{
+ public class Sb : 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.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;
+
+ //获取数据链接
+ var dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
+
+ 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();
+
+ string bathNo = "0";
+
+ foreach (DataRow row in table.Rows)
+ {
+ string a = row["批次号"].ToString().Trim();
+ if (a != "0")
+ {
+ bathNo = a; break;
+ }
+ }
+
+
+ float zt = 0;
+
+ foreach (DataRow row in table.Rows)
+ {
+ string a = row["批次号"].ToString().Trim();
+ if (a == "0")
+ {
+ row["批次号"] = bathNo;
+ }
+
+ var aaa= Convert.ToSingle(row["实际重量"]);
+
+ zt+= aaa;
+
+ row["实际重量"] = Convert.ToSingle(row["实际重量"]).ToString("#0.00");
+ row["实际公差"] = Convert.ToSingle(row["实际公差"]).ToString("#0.00");
+ }
+
+
+ var dts=table.NewRow();
+ dts[1] = "总计";
+ dts["实际重量"] = zt.ToString("#0.00");
+
+ table.Rows.Add(dts);
+
+ clientGrid.DataSource = null;
+
+ clientGrid.DataSource = table;
+
+ dbHelper.ClearParameter();
+
+ string sql = $"select t1.actCode, t1.mixBatch as 批次,t1.mixStep as 步号,t1.actCode as 动作,\r\n " +
+ $" t1.mixTime as 时间,t1.mixTemp as 温度,t1.mixSpeed as 速度, t1.recordTime as 记录时间 from" +
+ $" Report_DryMixer_Detail t1\r\n\r\nwhere t1.reportId='{lR_planID}' order by actCode";
+
+ dbHelper.CommandText = sql.ToString();
+ dbHelper.CommandType = System.Data.CommandType.Text;
+
+ DataTable tableB = dbHelper.ToDataTable();
+ DataTable newTable = GetDefault();
+
+ var dateNow = DateTime.Now;
+ Dictionary dic = new Dictionary();
+ Dictionary Newdic = new Dictionary();
+
+
+ foreach (DataRow row in tableB.Rows)
+ {
+ var dr = newTable.NewRow();
+ dr["批次"] = row["批次"];
+ dr["步号"] = row["步号"];
+ dr["动作"] = DryStepConvert(Convert.ToInt32(row["actCode"]));
+ dr["时间"] = ConverToTime(Convert.ToInt32(row["时间"]));
+ dr["速度"] = row["速度"];
+ dr["记录时间"] = row["记录时间"];
+ dr["速度"] = Convert.ToSingle(row["速度"]).ToString("#0.00");
+
+ dateNow = Convert.ToDateTime(row["记录时间"].ToString());
+ dic.Add(Convert.ToInt32(dr["步号"]), Convert.ToInt32(row["时间"]));
+ newTable.Rows.Add(dr);
+ }
+
+ for (int i = 1; i < 11; i++)
+ {
+ var miao = dic.Where(x => x.Key >= i).Select(x => x.Value).Sum();
+ Newdic.Add(i, dateNow.AddSeconds(-miao));
+ }
+
+ foreach (System.Data.DataRow row in newTable.Rows)
+ {
+ var bu = Convert.ToInt32(row["步号"]);
+ if (Newdic.ContainsKey(bu))
+ {
+ var dt = Newdic[bu];
+ row["记录时间"] = dt.ToString("yyyy-MM-dd HH:mm:ss");
+ }
+
+ }
+
+ clientGrid2.DataSource = newTable;
+
+ }
+ }
+
+ string ConverToTime(int duration)
+ {
+ TimeSpan ts = new TimeSpan(0, 0, Convert.ToInt32(duration));
+ string str = "";
+ if (ts.Hours > 0)
+ {
+ str = ts.Hours.ToString() + "小时 " + ts.Minutes.ToString() + "分钟 " + ts.Seconds + "秒";
+ }
+ if (ts.Hours == 0 && ts.Minutes > 0)
+ {
+ str = ts.Minutes.ToString() + "分钟 " + ts.Seconds + "秒";
+ }
+ if (ts.Hours == 0 && ts.Minutes == 0)
+ {
+ str = ts.Seconds + "秒";
+ }
+ return str;
+ }
+
+
+ private DataTable GetDefault()
+ {
+ var tableNewB = new DataTable();
+ tableNewB.Columns.Add("批次", typeof(string));
+ tableNewB.Columns.Add("步号", typeof(string));
+ tableNewB.Columns.Add("动作", typeof(string));
+ tableNewB.Columns.Add("时间", typeof(string));
+ //tableNewB.Columns.Add("温度", typeof(string));
+ tableNewB.Columns.Add("速度", typeof(string));
+ tableNewB.Columns.Add("记录时间", typeof(string));
+
+ return tableNewB;
+ }
+
+ private string DryStepConvert(int code)
+ {
+ switch (code)
+ {
+ case 1: return "加粉料";
+ case 4: return "搅拌";
+ case 6: return "等待排料";
+ default: return "无";
+ }
+ }
+
+ }
+}
+
diff --git a/Main/MCEdit/Data/EventConfig/小料称量/榄菊报表.干混机报表.xml b/Main/MCEdit/Data/EventConfig/小料称量/榄菊报表.干混机报表.xml
index 77cc748..f22b3d8 100644
--- a/Main/MCEdit/Data/EventConfig/小料称量/榄菊报表.干混机报表.xml
+++ b/Main/MCEdit/Data/EventConfig/小料称量/榄菊报表.干混机报表.xml
@@ -44,7 +44,7 @@
-
+