You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

121 lines
4.3 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Mesnac.Action.Base;
using Mesnac.Action.ChemicalWeighing.DBHelper;
using Mesnac.Action.ChemicalWeighing.Entity;
using Mesnac.Controls.Base;
using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Drawing.Printing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Timers;
using System.Windows.Forms;
namespace Mesnac.Action.ChemicalWeighing.Report.BinReport
{
/// <summary>
///料仓库存警告报表
/// </summary>
class InitFormAction : ChemicalWeighingAction, IAction
{
private DbMCControl _dg = null;
public static event EventHandler OnRefreshBinEvent;//刷新料仓
private RuntimeParameter _runtime;
bool flag=true;
public void Run(RuntimeParameter runtime)
{
base.RunIni(runtime); //必须要调用的
this._runtime = runtime;
ICSharpCode.Core.LoggingService<InitFormAction>.Debug("仓库报警报表-窗体初始化...");
this._dg = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "Pmt_Bin").FirstOrDefault();
if (_dg == null)
{
ICSharpCode.Core.LoggingService<BinAlarmAction>.Warn("{仓库报警报表} 缺少控件...");
runtime.IsReturn = false;
return;
}
#region 触发事件, 刷新客户端计划
this.InitData();
#endregion
#region 根据状态处理背景色
DataGridView clientGrid = this._dg.BaseControl as DataGridView;
SetBackColor(clientGrid);
#endregion
}
private void InitData()
{
if (flag)
{
flag = false;
//System.Timers.Timer timer = new System.Timers.Timer(5000);
//timer.Elapsed += new ElapsedEventHandler(StartServer);
//timer.AutoReset = true;
//timer.Enabled = true;
//timer.Start();
StartServer();
}
}
private void StartServer()//object sender, ElapsedEventArgs e
{
if (OnRefreshBinEvent != null)
{
OnRefreshBinEvent(this._runtime.BaseControl.MCRoot, System.EventArgs.Empty);
}
}
#region 设置(网格控件)计划状态背景色
/// <summary>
/// 设置计划状态背景色
/// </summary>
/// <param name="grid"></param>
public static void SetBackColor(DataGridView grid)
{
lock (String.Empty)
{
try
{
if (grid == null || grid.Visible == false)
{
ICSharpCode.Core.LoggingService.Warn("设置料仓报警背景色失败网格控件为null或不可见");
return;
}
grid.ClearSelection(); //清空选中行
grid.ColumnHeadersHeight = 25;
grid.ColumnHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
grid.RowHeadersVisible = false;
grid.RowTemplate.Height = 28;
grid.RowsDefaultCellStyle.Font = new System.Drawing.Font("宋体", 12, System.Drawing.FontStyle.Bold);
foreach (DataGridViewRow row in grid.Rows)
{
decimal limitWeight = Convert.ToDecimal(row.Cells["LimitWeight"].Value.ToString());
decimal binWeight = Convert.ToDecimal(row.Cells["BinWeight"].Value.ToString());
if (limitWeight > binWeight)
{
row.DefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(255, 0, 0); //灰色
}
}
}
catch (Exception ex)
{
ICSharpCode.Core.LoggingService<InitFormAction>.Error("设置料仓报警背景色失败:" + ex.Message);
}
}
}
#endregion
}
}