using DevExpress.XtraGrid.Views.Grid; using DeviceRepair.Models; using DeviceRepairAndOptimization.Common; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Windows.Forms; namespace DeviceRepairAndOptimization.Pages.AM.FormVersion { public partial class pageFormVersionView : FormBase { #region Field Dictionary Icons = new Dictionary { { "Lock",DevExpress.Images.ImageResourceCache.Default.GetImageById(DevExpress.Images.DXImages.Cancel,DevExpress.Utils.Design.ImageSize.Size32x32,DevExpress.Utils.Design.ImageType.Colored) }, { "UnLock",DevExpress.Images.ImageResourceCache.Default.GetImageById(DevExpress.Images.DXImages.Apply,DevExpress.Utils.Design.ImageSize.Size32x32,DevExpress.Utils.Design.ImageType.Colored) }, }; private MaintenanceFormVersionInfo _CurrentData; public MaintenanceFormVersionInfo CurrentData { get { return _CurrentData; } set { _CurrentData = value; if (value == null) { btnEdit.Enabled = false; btnChangeStatus.Enabled = false; btnBind.Enabled = false; return; } btnEdit.Enabled = value.FormStatus; btnChangeStatus.Enabled = true; btnBind.Enabled = value.FormStatus; btnChangeStatus.Text = value.FormStatus ? "禁用" : "启用"; btnChangeStatus.ImageOptions.Image = value.FormStatus ? Icons["Lock"] : Icons["UnLock"]; } } private MaintenanceFormFilter _filter; public MaintenanceFormFilter Fitler { get { if (_filter == null) _filter = new MaintenanceFormFilter(); _filter.FilterText = btnFIlter.EditValue + ""; _filter.FormBelong = DeviceRepair.Models.Enum.EnumDeviceBelong.AM; return _filter; } } List Datas; #endregion public pageFormVersionView() { InitializeComponent(); InitializeGridConvert(); } /// /// 窗体加载完成 /// /// /// private void pageFormVersionView_Load(object sender, EventArgs e) { try { this.layoutControl1.AllowCustomization = false; gvControl.OptionsMenu.EnableColumnMenu = false; gvControl.OptionsBehavior.Editable = false; gvControl.OptionsBehavior.ReadOnly = true; gvControl.OptionsSelection.MultiSelect = true; gvControl.OptionsSelection.MultiSelectMode = GridMultiSelectMode.CheckBoxRowSelect; gvControl.OptionsSelection.EnableAppearanceFocusedCell = false; gvControl.OptionsScrollAnnotations.ShowSelectedRows = DevExpress.Utils.DefaultBoolean.False; foreach (DevExpress.XtraGrid.Columns.GridColumn item in gvControl.Columns) { item.OptionsColumn.AllowEdit = false; item.OptionsColumn.AllowGroup = DevExpress.Utils.DefaultBoolean.True; item.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.False; item.OptionsColumn.AllowShowHide = false; } InitiaLizeGridData(); } catch (Exception ex) { XtraMessageBoxHelper.Error(ex.Message); } } /// /// 自增长行号 /// /// /// private void gvControl_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e) { if (e.Info.IsRowIndicator && e.RowHandle >= 0) { e.Info.DisplayText = (e.RowHandle + 1).ToString(); e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; e.Appearance.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Center; } } /// /// 选择框标题 /// /// /// private void gvControl_CustomDrawColumnHeader(object sender, DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventArgs e) { if (e.Column != null && (e.Column.Caption == "Selection" || e.Column.FieldName == "DX$CheckboxSelectorColumn")) e.Info.Caption = "选择"; } /// /// 单元格点击 /// /// /// private void gvControl_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e) { if (e.Button != MouseButtons.Right) { gvControl.SelectRow(e.RowHandle); CurrentData = gvControl.GetRow(e.RowHandle) as MaintenanceFormVersionInfo; btnChangeStatus.ImageOptions.Image = CurrentData.FormStatus ? Icons["Lock"] : Icons["UnLock"]; } } #region Method /// /// 初始化表格控件 /// private void InitializeGridConvert() { gvControl.OptionsSelection.ShowCheckBoxSelectorInColumnHeader = DevExpress.Utils.DefaultBoolean.False; gcFormStatus.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom; gcFormStatus.DisplayFormat.Format = new TsSFCDevice.Control.CustomFormatProvider.StatusFormatter(); gcFormStatus.DisplayFormat.FormatString = "status"; } private void InitiaLizeGridData() { try { if (!GlobalInfo.HasRole("BIZ_AM_FormVersion_01")) { XtraMessageBoxHelper.Error($"当前账号缺少此操作的权限"); return; } splashScreenManager1.ShowWaitForm(); APIResponseData apiResponseData = Biz.FormManager.Instance.GetQuery(Fitler); if (!apiResponseData.IsSuccess) throw new Exception(apiResponseData.Message); Datas = apiResponseData.ToDeserializeObject>(); gcControl.DataSource = Datas; // 设置行号列宽度 SizeF size = this.CreateGraphics().MeasureString(Datas.Count.ToString(), this.Font); gvControl.IndicatorWidth = Convert.ToInt32(size.Width) + 30; splashScreenManager1.TryCloseWait(); } catch (Exception ex) { splashScreenManager1.TryCloseWait(); XtraMessageBoxHelper.Error(ex.Message); } } #endregion /// /// 新增 /// /// /// private async void btnAdd_Click(object sender, EventArgs e) { try { if (!GlobalInfo.HasRole("BIZ_AM_FormVersion_02")) { XtraMessageBoxHelper.Error($"当前账号缺少此操作的权限"); return; } using (pageFormVersionEdit view = new pageFormVersionEdit()) { if (view.ShowDialog() == DialogResult.OK) { splashScreenManager1.ShowWaitForm(); try { //上传到webservice APIResponseData apiResponseData = await Biz.FormManager.Instance.UploadFile(view.CurrentModel.FormPath); if (!apiResponseData.IsSuccess) { throw new ArgumentException(apiResponseData.Message); } view.CurrentModel.FormPath = apiResponseData.Data + ""; apiResponseData = Biz.FormManager.Instance.InsertSingle(view.CurrentModel); if (!apiResponseData.IsSuccess) { throw new ArgumentException(apiResponseData.Message); } MaintenanceFormVersionInfo Rtn = apiResponseData.ToDeserializeObject(); if (Rtn != null) { Datas.Add(Rtn); gvControl.RefreshData(); gvControl.FocusedRowHandle = gvControl.RowCount - 1; gvControl.SelectRow(gvControl.RowCount - 1); gvControl_RowCellClick(gvControl, new RowCellClickEventArgs(new DevExpress.Utils.DXMouseEventArgs(MouseButtons.Left, 1, 1, 1, 1), (gvControl.RowCount - 1), gcFormName)); } splashScreenManager1.TryCloseWait(); XtraMessageBoxHelper.Info("操作成功!"); } catch (Exception) { splashScreenManager1.TryCloseWait(); throw; } } } } catch (Exception ex) { XtraMessageBoxHelper.Error(ex.Message); } } /// /// 编辑 /// /// /// private void btnEdit_Click(object sender, EventArgs e) { if (!GlobalInfo.HasRole("BIZ_AM_FormVersion_03")) { XtraMessageBoxHelper.Error($"当前账号缺少此操作的权限"); return; } if (CurrentData == null) { XtraMessageBoxHelper.Error($"请选择要操作的内容!"); return; } using (pageFormVersionEdit view = new pageFormVersionEdit(CurrentData)) { if (view.ShowDialog() == DialogResult.OK) { splashScreenManager1.ShowWaitForm(); try { APIResponseData apiResponseData = Biz.FormManager.Instance.ChangeRemark(view.CurrentModel); if (!apiResponseData.IsSuccess) { throw new ArgumentException(apiResponseData.Message); } CurrentData.Remarks = view.CurrentModel.Remarks; MaintenanceFormVersionInfo Item = Datas.FirstOrDefault(x => x.AutoID == view.CurrentModel.AutoID); Item.Remarks = view.CurrentModel.Remarks; gvControl.RefreshData(); splashScreenManager1.TryCloseWait(); XtraMessageBoxHelper.Info("操作成功!"); } catch (Exception) { splashScreenManager1.TryCloseWait(); throw; } } } } /// /// 查询 /// /// /// private void btnFIlter_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e) { if (e.Button.Kind == DevExpress.XtraEditors.Controls.ButtonPredefines.Clear) { btnFIlter.EditValue = ""; } else { InitiaLizeGridData(); } } private void gvControl_SelectionChanged(object sender, DevExpress.Data.SelectionChangedEventArgs e) { gvControl.SelectionChanged -= gvControl_SelectionChanged; //清除所有选择 gvControl.ClearSelection(); gvControl.SelectRow(e.ControllerRow); gvControl.SelectionChanged += gvControl_SelectionChanged; } private void btnFIlter_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)ConsoleKey.Enter) { InitiaLizeGridData(); } } /// /// 修改状态 /// /// /// private void btnChangeStatus_Click(object sender, EventArgs e) { if (!GlobalInfo.HasRole("BIZ_AM_FormVersion_05")) { XtraMessageBoxHelper.Error($"当前账号缺少此操作的权限"); return; } if (CurrentData == null) { XtraMessageBoxHelper.Error($"请选择要操作的内容!"); return; } try { if (XtraMessageBoxHelper.Ask($"确认{(CurrentData.FormStatus ? "禁用" : "启用")}点检表{CurrentData.FormName}-{CurrentData.VersionRev}?") == DialogResult.Cancel) { return; } splashScreenManager1.ShowWaitForm(); bool ChangeStatus = !CurrentData.FormStatus; APIResponseData apiResponseData = Biz.FormManager.Instance.DataStatusChange(new MaintenanceFormFilter { PrimaryKey = CurrentData.AutoID, FormStatus = ChangeStatus }); if (!apiResponseData.IsSuccess) { throw new ArgumentException(apiResponseData.Message); } foreach (MaintenanceFormVersionInfo item in Datas) { if (item.AutoID == CurrentData.AutoID) { item.FormStatus = ChangeStatus; CurrentData = null; CurrentData = item; break; } } gvControl.RefreshData(); splashScreenManager1.TryCloseWait(); } catch (Exception ex) { splashScreenManager1.TryCloseWait(); XtraMessageBoxHelper.Error(ex.Message); } } /// /// 点检表维护设备绑定 /// /// /// private void btnBind_Click(object sender, EventArgs e) { try { if (!GlobalInfo.HasRole("BIZ_AM_FormVersion_04")) { XtraMessageBoxHelper.Error($"当前账号缺少此操作的权限"); return; } if (CurrentData == null) { XtraMessageBoxHelper.Error($"请选择要操作的数据!"); return; } if (CurrentData.FormStatus) { DriveMaintenance.page_AssignDriveTree view = new DriveMaintenance.page_AssignDriveTree(CurrentData); if (view.ShowDialog(this) == DialogResult.OK) { XtraMessageBoxHelper.Info("操作成功!"); } } else { XtraMessageBoxHelper.Error("点检表已锁定,不可操作!"); } } catch (Exception ex) { XtraMessageBoxHelper.Error(ex.Message); } } } }