|
|
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using DevExpress.XtraEditors; using ICSSoft.Frame.User.BLL; using ICSSoft.Base.Language.Tool; using ICSSoft.Base.UserControl.MessageControl; using ICSSoft.Frame.Data.BLL; using System.Data.SqlClient; using ICSSoft.Base.Config.AppConfig; using ICSSoft.Frame.Data.Entity; using ICSSoft.Base.Report.Filter; using ICSSoft.Base.Config.DBHelper; using ICSSoft.Base.UserControl.FormControl; using ICSSoft.Base.ReferForm.AppReferForm; using ICSSoft.Frame.APP;
namespace ICSSoft.Frame.APP { public partial class FormICSStorageConnect : DevExpress.XtraEditors.XtraForm { string whcSerial = "";
#region 构造函数
public FormICSStorageConnect(string _whcSerial, string WhCode, string Whname) { InitializeComponent(); this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); whcSerial = _whcSerial; txtWorkPoint.Text = AppConfig.WorkPointCode + " " + AppConfig.WorkPointName; txtWhcode.Text = WhCode; txtWhName.Text = Whname; chargeState(""); //Search(whcSerial);
} #endregion
#region 移动窗体
private const int WM_NCHITTEST = 0x84; private const int HTCLIENT = 0x1; private const int HTCAPTION = 0x2; //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
//系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
//假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
//同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
//重写窗体,使窗体可以不通过自带标题栏实现移动
protected override void WndProc(ref Message m) {
//当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
//当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
//这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
//注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
switch (m.Msg) { case WM_NCHITTEST: base.WndProc(ref m); if ((int)m.Result == HTCLIENT) m.Result = (IntPtr)HTCAPTION; return; } //拦截双击标题栏、移动窗体的系统消息
if (m.Msg != 0xA3) { base.WndProc(ref m); }
} #endregion
#region 退出
private void btnClose_Click(object sender, EventArgs e) { AppConfig.CloseFormShow(this.Text); this.Close(); }
private void btnExit_Click(object sender, EventArgs e) { AppConfig.CloseFormShow(this.Text); this.Close(); } #endregion
private void chargeState(string value) { switch (value) { case "": btnModify.Enabled = true; btnAdd.Enabled = false; btnDel.Enabled = false; btnSave.Enabled = false; btnCancle.Enabled = false;
// btnRefresh.Enabled = false;
btnExit.Enabled = true; grvDetail.OptionsBehavior.ReadOnly = true; grvDetail.OptionsBehavior.Editable = false; break; case "修改": btnModify.Enabled = false; btnAdd.Enabled = true; btnDel.Enabled = true; btnSave.Enabled = true; btnCancle.Enabled = true;
//btnRefresh.Enabled = false;
btnExit.Enabled = true;
grvDetail.OptionsBehavior.ReadOnly = true; grvDetail.OptionsBehavior.Editable = true; break; default: btnModify.Enabled = true; btnAdd.Enabled = false; btnDel.Enabled = false; btnSave.Enabled = false; btnCancle.Enabled = false;
// btnRefresh.Enabled = false;
btnExit.Enabled = true; grvDetail.OptionsBehavior.ReadOnly = true; grvDetail.OptionsBehavior.Editable = false; break;
} }
private void btnModify_Click(object sender, EventArgs e) { chargeState("修改"); }
private void btnAdd_Click(object sender, EventArgs e) { grvDetail.PostEditor(); this.Validate(); grvDetail.AddNewRow(); grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle,colSerial,AppConfig.GetGuid()); grvDetail.AddNewRow(); grvDetail.DeleteRow(grvDetail.FocusedRowHandle); }
private void btnDel_Click(object sender, EventArgs e) { grvDetail.PostEditor(); this.Validate(); if (grvDetail.FocusedRowHandle < 0) { return; } grvDetail.DeleteRow(grvDetail.FocusedRowHandle); }
private void btnSave_Click(object sender, EventArgs e) { grvDetail.PostEditor(); this.Validate(); List<string> mess = new List<string>(); List<string> whList = new List<string>(); for (int i = 0; i < grvDetail.RowCount; i++) { if (grvDetail.GetRowCellValue(i, colStorage2Serial2).ToString() == "") { mess.Add("第"+(i+1)+"行不能为空"); } if (whList.Contains(grvDetail.GetRowCellValue(i, colStorage2Serial2).ToString())) { mess.Add("第" + (i + 1) + "行重复"); } whList.Add(grvDetail.GetRowCellValue(i, colStorage2Serial2).ToString()); } if (mess.Count != 0) { ICSBaseSimpleCode.AppshowMessageBox(mess); return; }
Dictionary<string, string> ConnList = new Dictionary<string, string>(); for (int i = 0; i < grvDetail.RowCount; i++) { ConnList.Add(grvDetail.GetRowCellValue(i, colSerial).ToString(), grvDetail.GetRowCellValue(i, colStorage2Serial2).ToString()); } ICSStorageBLL.SaveConnect(AppConfig.AppConnectString, whcSerial, ConnList); chargeState(""); Search(whcSerial); }
private void btnCancle_Click(object sender, EventArgs e) { grvDetail.PostEditor(); this.Validate(); if (ICSBaseSimpleCode.AppshowMessageBoxRepose("确定取消保存") == System.Windows.Forms.DialogResult.OK) { chargeState(""); } }
private void Search(string Strorge1) { string str = @"SELECT a.Serial ,
a.Storage1Serial AS Storage1Serial , b1.StorageCode AS StorageCode1, b1.StorageName AS StorageName1, C1.WorkPointCode AS StorageCode1, C1.WorkPointName AS WorkPointName1, C1.ServerName AS ServerName1, C1.DataBaseName AS DataBaseName1, a.Storage2Serial AS Storage2Serial2, b2.StorageCode AS StorageCode2, b2.StorageName AS StorageName2, c2.WorkPointCode AS WorkPointCode2, c2.WorkPointName AS WorkPointName2, c2.ServerName AS ServerName2, c2.DataBaseName AS DataBaseName2, a.MUSER , a.MUSERName , a.MTIME FROM [ICSStorage2Storage] a WITH(NOLOCK) right JOIN dbo.ICSStorage b1 WITH(NOLOCK) ON a.Storage1Serial = b1.Serial left JOIN dbo.ICSStorage b2 WITH(NOLOCK) ON a.Storage2Serial = b2.Serial left JOIN dbo.Sys_WorkPoint c1 WITH(NOLOCK) ON b1.WorkPoint = c1.WorkPointCode left JOIN dbo.Sys_WorkPoint c2 WITH(NOLOCK) ON b2.WorkPoint = c2.WorkPointCode where a.Storage1Serial = '{0}'";
str = string.Format(str, Strorge1); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, str).Tables[0]; grdDetail.DataSource = dt; }
private void btnRefresh_Click(object sender, EventArgs e) { Search(whcSerial); }
private void repWhSelect_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e) { string str = @"SELECT Serial
,[StorageCode] AS 仓库编码 ,[StorageName] AS 仓库名称 ,[WorkPoint] AS 站点编码,b.WorkPointName AS 站点名称 FROM [ICSStorage] a INNER JOIN dbo.Sys_WorkPoint b ON a.WorkPoint = b.WorkPointCode WHERE WorkPointCode != '{0}'";
str = string.Format(str, AppConfig.WorkPointCode); DataTable czData = DBHelper.ExecuteDataset(AppConfig.FrameConnectString, CommandType.Text, str).Tables[0]; FormDataRefer reForm = new FormDataRefer(); reForm.FormTitle = "对应仓库选择"; reForm.DataSource = czData; reForm.MSelectFlag = true; reForm.RowIndexWidth = 35; reForm.HideCols.Add("Serial"); reForm.Width = 800; reForm.Height = 900; if (reForm.ShowDialog() == DialogResult.OK) { string Serial = ""; foreach (DataRow dr in reForm.ReturnData.Rows) { Serial = dr["Serial"].ToString();
grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colStorage2Serial2, Serial); grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colStorageCode2, dr["仓库编码"]); grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colStorageName2, dr["仓库名称"]); grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colWorkPointCode2, dr["站点编码"]); grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colWorkPointName2, dr["站点名称"]); }
} }
private void grvDetail_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { if (grvDetail.OptionsBehavior.Editable == false) { return; } if (e.Column == colStorage2Serial2) {
} }
} }
|