using DevExpress.XtraEditors; using System; using System.Drawing; using System.Web.UI.WebControls; using System.Windows.Forms; using ZJ_BYD.Common; using ZJ_BYD.DB; using ZJ_BYD.Model; using ZJ_BYD.Untils; namespace ZJ_BYD.UserControls.AHeadPara { public partial class EditAheadPara : XtraForm { private static int _id = 0; public EditAheadPara(int id = 0) { InitializeComponent(); _id = id; BindCombox.BindMachineTypeForAhead(cmbMachineType); if (_id > 0) { GetAheadParaById(); } } private void GetAheadParaById() { var model = AheadParaHelper.QueryAheadParaVM("", _id).First(); if (model != null) { cmbMachineType.SelectedItem = new ListItem { Text = model.MachineTypeCode, Value = $"{model.Category}_{model.MachineTypeCode}" }; cmbMachineType_SelectedValueChanged(this.cmbMachineType, new EventArgs()); cmbStation.SelectedItem = new ListItem { Text = $"{model.Category}_{model.LastStationName}({model.LastStationCode})", Value = model.LastStationCode }; txtPara.Text = model.PointCode; txtResultColName.Text = model.ResultColName; } } /// /// 机型下拉框Change事件 /// /// /// private void cmbMachineType_SelectedValueChanged(object sender, EventArgs e) { var selectedMachineType = this.cmbMachineType.SelectedItem as ListItem; cmbStation.Properties.Items.Clear(); var category = selectedMachineType.Value.Split('_')[0]; BindCombox.BindStationByCategory(cmbStation, category); } private void btnCancel_Click(object sender, EventArgs e) { this.Close(); } private void btnSave_Click(object sender, EventArgs e) { int row; var t_AheadPara = new T_AheadPara(); var flag = this.RegexSave(new Control[] { cmbMachineType, cmbStation, txtPara }, out _); if (!flag) { return; } splashScreenManager1.ShowWaitForm(); var selectedMachineType = cmbMachineType.SelectedItem as ListItem; var selectedStation = cmbStation.SelectedItem as ListItem; t_AheadPara.IpcId = Program.CurrentIpcId; t_AheadPara.LineCode = Program.CurrentLineCode; t_AheadPara.StationCode = Program.ActiveStatinCode; t_AheadPara.MachineTypeCode = selectedMachineType.Value.Split('_')[1]; t_AheadPara.LastStationCode = selectedStation != null ? selectedStation.Value : cmbStation.EditValue.ToString(); t_AheadPara.PointCode = txtPara.Text.Trim(); t_AheadPara.ResultColName = txtResultColName.Text.Trim(); t_AheadPara.Category = selectedStation.Text.Split('_')[0]; if (_id == 0) { t_AheadPara.CreatedBy = CurrentUser.UserName; if (CheckIsExistAheadPara(t_AheadPara)) { XtraMessageBox.Show("前置参数已存在!"); splashScreenManager1.CloseWaitForm(); return; } t_AheadPara.CreatedTime = DateTime.Now; row = AheadParaHelper.AddAheadPara(t_AheadPara); } else { t_AheadPara.Id = _id; t_AheadPara.UpdatedBy = CurrentUser.UserName; t_AheadPara.UpdatedTime = DateTime.Now; if (CheckIsExistAheadPara(t_AheadPara)) { XtraMessageBox.Show("前置参数已存在!"); splashScreenManager1.CloseWaitForm(); return; } row = AheadParaHelper.UpdateAheadPara(t_AheadPara); } if (row <= 0) { splashScreenManager1.CloseWaitForm(); XtraMessageBox.Show("操作失败!"); return; } splashScreenManager1.CloseWaitForm(); XtraMessageBox.Show("操作成功!"); DialogResult = DialogResult.OK; this.Close(); } /// /// 校验前置参数是否存在 /// /// /// private bool CheckIsExistAheadPara(T_AheadPara t_AheadPara) { var model = AheadParaHelper.QueryActiveAheadParas() .Where(m => m.IpcId == t_AheadPara.IpcId && m.LineCode == t_AheadPara.LineCode && m.StationCode == Program.ActiveStatinCode) .Where(m => m.MachineTypeCode == t_AheadPara.MachineTypeCode && m.LastStationCode == t_AheadPara.LastStationCode && m.PointCode == t_AheadPara.PointCode && m.Category == t_AheadPara.Category) .WhereIF(t_AheadPara.Id > 0, m => m.Id != t_AheadPara.Id).First(); return model != null; } #region 窗体移动 protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == 0x84) { switch (m.Result.ToInt32()) { case 1: m.Result = new IntPtr(2); break; } } } private Point mPoint; private void panelControl8_MouseDown(object sender, MouseEventArgs e) { mPoint = new Point(e.X, e.Y); } private void panelControl8_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { this.Location = new Point(this.Location.X + e.X - mPoint.X, this.Location.Y + e.Y - mPoint.Y); } } #endregion } }