349 lines
12 KiB
C#
349 lines
12 KiB
C#
using GeBoShi.SysCtrl;
|
|
using GeBoShi.UI;
|
|
using GeBoShi.UI.Load;
|
|
using GeBoShi.UI.Product;
|
|
using GeBoShi.UI.SysSet;
|
|
using HZH_Controls.Forms;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace GeBoShi
|
|
{
|
|
public partial class Main : Form
|
|
{
|
|
public Main()
|
|
{
|
|
InitializeComponent();
|
|
UIStyle.SetUIStyle(this);
|
|
|
|
this.uiTitel1.FatherForm = this;
|
|
this.uiTitel1.UserMenuStrip = this.menuStrip1;
|
|
this.uiTitel1.ShowContrlBox(true, true, true);
|
|
this.uiTitel1.ShowMenu();
|
|
|
|
this.DoubleBuffered = true;//设置本窗体
|
|
SetStyle(ControlStyles.UserPaint, true);
|
|
SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.
|
|
SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲
|
|
}
|
|
|
|
#region 初始化
|
|
/// <summary>
|
|
/// 初始化
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private bool InitSystem()
|
|
{
|
|
//进入初始化,初始化失败则中断
|
|
InitFrm initFrm = new InitFrm();
|
|
initFrm.ShowDialog();
|
|
if (initFrm.DialogResult == DialogResult.OK)
|
|
{
|
|
//初始化成功
|
|
}
|
|
else
|
|
{
|
|
initFrm.Dispose();
|
|
return false;
|
|
}
|
|
initFrm.Dispose();
|
|
return true;
|
|
}
|
|
#endregion
|
|
|
|
#region 界面刷新
|
|
private void ResetUI(bool clearSN)
|
|
{
|
|
|
|
//保持产品名称和料号
|
|
//txtProductName.Text = txtProductCode.Text = txtProductSN.Text = "";
|
|
if (clearSN)
|
|
cbPdtSN.Text = "";
|
|
|
|
this.lstLog.Items.Clear();
|
|
|
|
this.tsbtnImpStop.Enabled = false;
|
|
this.tsbtnStart.Enabled = true;
|
|
this.tsbtnStop.Enabled = false;
|
|
|
|
this.cbPdtSN.Enabled = true;
|
|
this.cbProductCode.Enabled = true;
|
|
this.cbProductBatch.Enabled = true;
|
|
this.cbProductReelNum.Enabled = true;
|
|
this.cbProductNum.Enabled = true;
|
|
|
|
tslabelTime.Text = "实时测试:0.00s";
|
|
|
|
this.Refresh();
|
|
}
|
|
#endregion
|
|
|
|
#region 权限判断
|
|
private void UserRightCheck()
|
|
{
|
|
this.tsmPdtMgr.Enabled = SysMgr.Instance.UserMgr.RightControl(MaiMuControl.SysStatusMgr.UserMgr.UserRightEnum.Product);
|
|
this.tsmSysDataFind.Visible = SysMgr.Instance.UserMgr.RightControl(MaiMuControl.SysStatusMgr.UserMgr.UserRightEnum.Statistics);
|
|
|
|
this.tsmUserList.Enabled = SysMgr.Instance.UserMgr.RightControl(MaiMuControl.SysStatusMgr.UserMgr.UserRightEnum.User);
|
|
this.tsmUserRight.Enabled = SysMgr.Instance.UserMgr.RightControl(MaiMuControl.SysStatusMgr.UserMgr.UserRightEnum.Role);
|
|
if (this.tsmUserList.Enabled == false && this.tsmUserRight.Enabled == false)
|
|
this.tsmSysUserMgr.Visible = false;
|
|
else
|
|
this.tsmSysUserMgr.Visible = true;
|
|
|
|
this.tsmDebug.Enabled = SysMgr.Instance.UserMgr.RightControl(MaiMuControl.SysStatusMgr.UserMgr.UserRightEnum.Debug);
|
|
this.tsmSysSet.Enabled = SysMgr.Instance.UserMgr.RightControl(MaiMuControl.SysStatusMgr.UserMgr.UserRightEnum.ParamsSetting);
|
|
|
|
if (this.tsmDebug.Enabled == false && this.tsmSysSet.Enabled == false)
|
|
this.stmSysSet.Visible = false;
|
|
else
|
|
this.stmSysSet.Visible = true;
|
|
}
|
|
#endregion
|
|
|
|
#region 运行判断
|
|
/// <summary>
|
|
/// 系统是否在运行
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private bool SystemIsRun()
|
|
{
|
|
if (SysMgr.Instance.IsRuning)
|
|
{
|
|
FrmDialog.ShowDialog(this, "设备正在运行中!", "警告", false);
|
|
//MessageBox.Show("设备正在运行中!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
#endregion
|
|
|
|
#region 界面事件
|
|
private void Main_Load(object sender, EventArgs e)
|
|
{
|
|
//登入
|
|
if (SysMgr.Instance.LoginSystem())
|
|
{
|
|
//登入成功
|
|
if (InitSystem())
|
|
{
|
|
this.Cursor = Cursors.WaitCursor;
|
|
|
|
//this.WindowState = FormWindowState.Normal;
|
|
this.Top = 0;
|
|
this.Left = 0;
|
|
this.Width = SystemInformation.WorkingArea.Width;
|
|
this.Height = SystemInformation.WorkingArea.Height;
|
|
//this.WindowState = FormWindowState.Maximized;
|
|
//this.splitContainer1.SplitterDistance = this.Width / 3;
|
|
|
|
ResetUI(true);
|
|
this.Show();
|
|
this.tsslLoginInfo.Text = $"操作员:{SysMgr.Instance.UserMgr.LoginUser.Code}({SysMgr.Instance.UserMgr.LoginUser.Name})";
|
|
this.statusStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow;
|
|
this.tsslLoginTime.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
|
|
this.tsslLoginInfo.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
|
|
this.tsAxisState.Text = "";
|
|
|
|
|
|
|
|
//更新数据库格式
|
|
Service.InitDB.initDB(ConfMgr.Instance.DBConStr);
|
|
//权限判断
|
|
UserRightCheck();
|
|
//开启后台
|
|
//timer1.Enabled = true;
|
|
//backgroundWorkerDo = true;
|
|
//backgroundWorker1.RunWorkerAsync();
|
|
//s_BackWorker = true;
|
|
//backgroundWorker.RunWorkerAsync();
|
|
|
|
//开启云端连接
|
|
//SysMgr.Instance.InitCloudConnect();
|
|
//开启产品服务
|
|
//SysMgr.Instance.InitPdtService();
|
|
//开启处理事件反馈
|
|
//SysMgr.Instance.InitDefectEvent();
|
|
//加载产品料号
|
|
//SysMgr.Instance.LoadProductCodeList();
|
|
//加载产品选择
|
|
//LoadPdtList(SysMgr.Instance.ProductCodeList);
|
|
//LoadSNList(SysMgr.Instance.ProductSNList);
|
|
this.Cursor = Cursors.Default;
|
|
|
|
//运行前检测磁盘空间
|
|
SysMgr.CheckDisk(this);
|
|
}
|
|
else
|
|
{
|
|
Application.Exit();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Application.Exit();
|
|
}
|
|
}
|
|
|
|
private void Main_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
//backgroundWorkerDo = false;
|
|
Thread.Sleep(300);
|
|
if (SystemIsRun())
|
|
{
|
|
DialogResult dr = DialogResult.Cancel;
|
|
if (SysMgr.Instance.IsInit)
|
|
{
|
|
dr = FrmDialog.ShowDialog(this, "确定要退出当前系统?", "警告", true);
|
|
}
|
|
else
|
|
dr = DialogResult.OK;
|
|
if (dr == DialogResult.Cancel)
|
|
{
|
|
e.Cancel = true;
|
|
}
|
|
else
|
|
{
|
|
Thread.Sleep(300);
|
|
if (SysMgr.Instance.IsInit)
|
|
SysMgr.Instance.Close();
|
|
//SysMgr.Instance.MainRuning -= main_running;
|
|
}
|
|
}
|
|
else
|
|
e.Cancel = true;
|
|
}
|
|
|
|
private void Main_SizeChanged(object sender, EventArgs e)
|
|
{
|
|
if (this.WindowState == FormWindowState.Maximized)
|
|
{
|
|
this.WindowState = FormWindowState.Normal;
|
|
this.Top = 0;
|
|
this.Left = 0;
|
|
this.Width = SystemInformation.WorkingArea.Width;
|
|
this.Height = SystemInformation.WorkingArea.Height;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 菜单
|
|
|
|
#region 退出
|
|
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
#endregion
|
|
|
|
#region 用户
|
|
private void tsmUserRight_Click(object sender, EventArgs e)
|
|
{
|
|
SysMgr.Instance.UserPermissiomMgr();
|
|
}
|
|
private void tsmUserList_Click(object sender, EventArgs e)
|
|
{
|
|
SysMgr.Instance.UserListMgr();
|
|
}
|
|
#endregion
|
|
|
|
#region 系统设置
|
|
private void MainFrm_Paint(object sender, PaintEventArgs e)
|
|
{
|
|
this.tsbtnReset.Visible = ConfMgr.Instance.SysConfigParams.ShowResetBtn;
|
|
}
|
|
|
|
private void tsmSysSet_Click(object sender, EventArgs e)
|
|
{
|
|
if (SystemIsRun())
|
|
{
|
|
SysMgr.Instance.StatusMgr.GotoSetParams();
|
|
SysMgr.Instance.SendStatus();
|
|
SysSetFrm frm = new SysSetFrm();
|
|
frm.ShowDialog();
|
|
MainFrm_Paint(null, null);
|
|
SysMgr.Instance.StatusMgr.GotoNormalStandby();
|
|
SysMgr.Instance.SendStatus();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region 检测管理
|
|
private string[] pdtlistData;
|
|
|
|
private void LoadPdtList(List<string> list)
|
|
{
|
|
this.cbDefectCode.Items.Clear();
|
|
this.pdtlistData = list.ToArray();
|
|
cbDefectCode.Items.AddRange(pdtlistData);//比使用DataSource速度要快一些
|
|
cbDefectCode.TextUpdate += cobList_TextUpdate;//重新绑定事件
|
|
cbDefectCode.KeyDown += CobList_KeyDown;
|
|
this.cbDefectCode.Text = "";
|
|
cbDefectCode.Focus();
|
|
cbDefectCode.SelectAll();
|
|
}
|
|
|
|
private void tsmPdtMgr_Click(object sender, EventArgs e)
|
|
{
|
|
if (SystemIsRun())
|
|
{
|
|
ProductListFrm frm = new ProductListFrm();
|
|
frm.ShowDialog();
|
|
//加载产品料号
|
|
SysMgr.Instance.LoadProductCodeList();
|
|
//加载产品选择
|
|
LoadPdtList(SysMgr.Instance.ProductCodeList);
|
|
}
|
|
}
|
|
private void CobList_KeyDown(object sender, KeyEventArgs e)
|
|
{
|
|
ComboBox ctrl = sender as ComboBox;
|
|
if (e.KeyCode == Keys.Enter)
|
|
{
|
|
if (ctrl.Items.Count == 1)
|
|
ctrl.Text = ctrl.Items[0].ToString();
|
|
}
|
|
}
|
|
|
|
private void cobList_TextUpdate(object sender, EventArgs e)
|
|
{
|
|
ComboBox ctrl = sender as ComboBox;
|
|
if (ctrl.Text != null)
|
|
{
|
|
string str = ctrl.Text; //获取cb_material控件输入内
|
|
//清空combobox
|
|
ctrl.DataSource = null;
|
|
ctrl.Items.Clear();
|
|
|
|
string[] workOrderFiltered;
|
|
|
|
workOrderFiltered = pdtlistData.Where(x => x.IndexOf(str, StringComparison.CurrentCultureIgnoreCase) != -1).ToArray();//忽略大小写
|
|
ctrl.Items.AddRange(workOrderFiltered);//比使用DataSource速度要快一些
|
|
|
|
// 不存在符合条件时
|
|
//设置光标位置,若不设置:光标位置始终保持在第一列,造成输入关键词的倒序排列
|
|
ctrl.Cursor = Cursors.Default; //保持鼠标指针原来状态,有时候鼠标指针会被下拉框覆盖,所以要进行一次设置
|
|
if (workOrderFiltered.Length > 0)
|
|
{
|
|
if (!ctrl.DroppedDown)
|
|
ctrl.DroppedDown = true; // 自动弹出下拉框
|
|
}
|
|
|
|
ctrl.SelectionStart = str.Length; // 设置光标位置,若不设置:光标位置始终保持在第一列,造成输入关键词的倒序排列
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
}
|