using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using WMS.Frm.Base; using WMS.Model.Stock; using WMS.Common; using System.Collections; using WMS.Model.Base; using DevExpress.XtraCharts; using System.Threading; using DevExpress.Utils; using WMS.Business; using WMS.Business.Report; using WMS.Business.Stock; using DevExpress.XtraGrid.Views.Grid; using DevExpress.XtraExport.Helpers; using WMS.DBUtility; using DevExpress.Emf; namespace WMS.FrmReport { public partial class FrmMIStockSearch : FormBase { /// /// 库存Model /// MIStockModel miStockModel = new MIStockModel(); /// /// 库存List /// List miStockList = new List(); public StorageAreaLocationModel loc; /// /// 无参构造 /// public FrmMIStockSearch() { InitializeComponent(); } /// /// 通用查询 /// /// public override void LoadListData(DataTable table) { miStockList = ConvertHelper.ConvertToList(table); GVMiStock.RefreshData(); } /// /// 窗体加载 /// /// /// public void FrmMIStockSearch_Load(object sender, EventArgs e) { BindMiStockData( ); } /// /// 绑定库存数据 /// /// public void BindMiStockData() { DevExpress.Utils.WaitDialogForm loadForm = new DevExpress.Utils.WaitDialogForm("请稍后...", "正在查询数据请等待..."); miStockList = IBussFactory.Instance().GetMiStockForLookUp(); if (miStockList != null) { bgsStock.DataSource = miStockList; } loadForm.Dispose(); loadForm.Close(); //new Thread(delegate() //{ // string errText = string.Empty; // try // { // this.Invoke(new MethodInvoker(delegate // { // })); // } // catch (Exception) // { // SystemCommon.ShowInfoMessageBox("error"); // } //}).Start(); } /// /// 构造函数 传参查询 /// /// public void BindMiStockDataByLoc(StorageAreaLocationModel lo) { new Thread(delegate() { string errText = string.Empty; try { this.Invoke(new MethodInvoker(delegate { miStockModel = new MIStockModel(); miStockModel.STORAGE_ID = lo.STORAGE_ID; miStockModel.AREA_ID = lo.STORAGE_AREA_ID; miStockModel.LOCATION_ID = lo.LOCATION_ID; // miStockList = new List(); miStockList.Clear(); miStockList = IBussFactory.Instance().GetMiStockForLookUp(); if (miStockList != null) { GCMiStock.DataSource = miStockList; GVMiStock.RefreshData(); if (miStockList.Count > 0) { foreach (MIStockModel item in miStockList) { item.DUE_DATE = item.PRODUCTION_DATE.AddMonths(Convert.ToInt32(item.PERIOD)); } bgsStock.DataSource = miStockList; } } })); } catch (Exception) { SystemCommon.ShowInfoMessageBox("获取数据失败,请检查网络连接!"); } }).Start(); } /// /// 刷新 /// public void Refresh() { BindMiStockData(); } /// /// 导出 /// public void Export() { GCMiStock.ShowExportDialog(); } /// /// 导入 /// public void Import() { OpenFileDialog fileDialog = new OpenFileDialog(); fileDialog.Title = "Import"; fileDialog.Filter = "Excel(*.xls;*.xlsx)|*.xls;*.xlsx"; DialogResult dialogResult = fileDialog.ShowDialog(this); if (dialogResult == DialogResult.OK) { Hashtable ht = new Hashtable(); ht.Add("GOODS_ID", "GOODS ID"); ht.Add("GOODS_NAME", "GOODS_NAM"); ht.Add("SHELVES_NUM", "Qty"); ht.Add("DOCCTNUMBER", "Sheet_no"); ht.Add("LOCATION_ID", "LOCATION"); ht.Add("CTl", "Pallet"); List list = NPOIHelper.Import(fileDialog, ht); //if (list == null) //{ // return; //} //list.RemoveAll(p => string.IsNullOrEmpty(p.LOCATION_ID));//p.SHELVES_NUM == 0 || if (list.Count > 0) { //保存 string errText = string.Empty; try { errText = IBussFactory.Instance().AddMIStockList(list); } catch (Exception) { SystemCommon.ShowErrorMessageBox("error!"); return; } if (errText.Trim().Length== 0) { SystemCommon.ShowInfoMessageBox("sucess"); Refresh(); } else { SystemCommon.ShowErrorMessageBox(errText); Refresh(); } } } } /// /// 清空按钮 /// public void Clear() { } /// /// 条件查询 /// /// /// public void Search() { GCMiStock.Focus(); BindMiStockData(); } private void btnSearch_Click(object sender, EventArgs e) { // chartControl1.Series.Clear(); } private void GVMiStock_DoubleClick(object sender, EventArgs e) { // xtraTabControl1.SelectedTabPageIndex = 1; // chartControl1.Series.Clear(); MIStockModel m = this.GVMiStock.GetFocusedRow() as MIStockModel; // xtraTabPage2.Text = m.GOODS_NAME + " - 商品走势"; MIStockBackModel mm = new MIStockBackModel(); List llist = new List(); mm.GOODS_ID = m.GOODS_ID; mm.STORAGE_ID = m.STORAGE_ID; mm.AREA_ID = m.AREA_ID; mm.LOCATION_ID = m.LOCATION_ID; mm.TIMESTART = Convert.ToDateTime(DateTime.Now.AddDays(-(DateTime.Now.Day - 1)).AddMonths(-1).ToString("yyyy-MM-dd")); mm.TIMEEND = DateTime.Now; string errText = string.Empty; string strResult = string.Empty; try { llist = IBussFactory.Instance().DayReportData(mm); } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } } private void GVBackReport_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { if (e.Column.FieldName == "OPERATOR_TYPE") { if (e.Value == null) { return; } switch (e.Value.ToString().Trim()) { case "0": e.DisplayText = "入库"; break; case "1": e.DisplayText = "出库"; break; case "2": e.DisplayText = "调整"; break; default: e.DisplayText = "其他"; break; } } } private void btnClear_Click(object sender, EventArgs e) { } private void GVMiStock_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e) { //t.STS when '0' then '正常' when '1' then '出库中' when '2' then '已下发堆垛机' when '6' then '堆垛机完成' when '9' then '手持拣货完成' when '10' then '库存扣除处理中' //GridView View = sender as GridView; //if (e.Column.FieldName == "手持拣货完成")//设背景 //{ // //int pointID = (gridView1.GetRow(e.RowHandle) as object).BgColor; // e.Appearance.BackColor = Color.Yellow; //} ////else if (e.Column.FieldName == "BgColor2")//设渐变背景 ////{ //// //int pointID = (gridView1.GetRow(e.RowHandle) as object).BgColor; //// e.Appearance.BackColor = Color.Red; //// e.Appearance.BackColor2 = Color.FromArgb(255, 255, 255); //// e.Appearance.ForeColor = Color.Red;//Color.FromArgb(42, 173, 231); ////} //else /*if (e.Column.FieldName == "FontColor")//设字体颜色*/ //{ // //int pointID = (gridView1.GetRow(e.RowHandle) as object).BgColor; // e.Appearance.BackColor = Color.Transparent;//Color.FromArgb(42, 173, 231); //} if (e.RowHandle >= 0) // { string status_MES = GVMiStock.GetRowCellDisplayText(e.RowHandle, GVMiStock.Columns["STSEBS"]);//获取限制变色条件行的值 // 获取行的数据 DataRow rowInfo = GVMiStock.GetRow(e.RowHandle) as DataRow; string status = GVMiStock.GetRowCellDisplayText(e.RowHandle, GVMiStock.Columns["STSEBS"]);//获取限制变色条件行的值 { // 假设你有一个字段叫 "Status" 用来决定颜色 //string status = rowInfo["STS"].ToString(); if (status == "mes上报失败"||status=="未上报mes") { e.Appearance.BackColor = Color.Red; // 设置背景色 } else /*if (status == "Inactive")*/ { e.Appearance.BackColor = Color.Transparent; // 设置背景色 } } } } //private void button1_Click(object sender, EventArgs e) //{ // string sql = " SELECT * FROM T_MI_STOCK where stsebs in(2,9)"; // DataSet dt= OracleHelper.ExecuteDataset(CommandType.Text, sql); // if (dt.Tables[0].Rows.Count>0) // { // for (int i = 0; i < dt.Tables[0].Rows.Count; i++) // { // string STORAGE_ID = dt.Tables[0].Rows[i]["STORAGE_ID"].ToString(); //字库编号 // string LOCATION_ID = dt.Tables[0].Rows[i]["LOCATION_ID"].ToString(); // string BARCODE = dt.Tables[0].Rows[i]["BARCODE"].ToString();//外箱子 + 内箱子条码 // string CUSTOMER_ID = dt.Tables[0].Rows[i]["CUSTOMER_ID"].ToString();//客户代码 // string newLoc = STORAGE_ID + "-WMS-00"; // string strJsonRK = GetWmsData("http://" + MesIpPort + "/Camstar/PackStock.asmx/PackStockIn?pkwPackLot=" + BARCODE + "&pCustPackId=&pSubInventory=" + STORAGE_ID + "&pLocation=" + newLoc + "", ""); // if (errText.Length > 0) // { // AddText("WCS定时上报mes成功回传MES异常:" + errText); // continue; // } // if (strJsonRK.Length > 0) // { // AddText("WCS定时上报mes成功回传MES返回:" + strJsonRK); // if (!strJsonRK.Contains("当前工位 '成品仓'") && strJsonRK.Contains("Error")) // { // if (DataClass.Instance().Update_T_MI_STOCK_STSEBS(LOCATION_ID, BARCODE, "9")) // { // AddText("WCS定时上报mes成功回传MES错误:编号:" + BARCODE + "," + strJsonRK + ",更新数据库状态9成功"); // } // else // { // AddText("WCS定时上报mes成功回传MES错误:编号:" + BARCODE + "," + strJsonRK + ",更新数据库状态9失败"); // } // AddText("WCS定时上报mes成功回传MES错误:编号:" + BARCODE + "," + strJsonRK + ""); // } // else // { // if (DataClass.Instance().Update_T_MI_STOCK_STSEBS(LOCATION_ID, BARCODE, "1")) // { // AddText("WCS定时上报mes成功回传MES成功:编号:" + BARCODE + "," + strJsonRK + ",更新数据库状态1成功"); // } // else // { // AddText("WCS定时上报mes成功回传MES成功:编号:" + BARCODE + "," + strJsonRK + ",更新数据库状态1失败"); // } // } // } // } // } // //string errTex.Rt = ""; // //DataSet dt = IBussFactory.Instance().STATUS_GET(); // //DataSet dt = DataClass.Instance().SELECTT_MI_STOCK_9(ref errText); // //if (dt != null && dt.Tables[0].Rows.Count > 0) // //{ // // for (int i = 0; i < dt.Tables[0].Rows.Count; i++) // // { // // string STORAGE_ID = dt.Tables[0].Rows[i]["STORAGE_ID"].ToString(); //字库编号 // // string LOCATION_ID = dt.Tables[0].Rows[i]["LOCATION_ID"].ToString(); // // string BARCODE = dt.Tables[0].Rows[i]["BARCODE"].ToString();//外箱子 + 内箱子条码 // // string CUSTOMER_ID = dt.Tables[0].Rows[i]["CUSTOMER_ID"].ToString();//客户代码 // // string newLoc = STORAGE_ID + "-WMS-00"; // // string strJsonRK = GetWmsData("http://" + MesIpPort + "/Camstar/PackStock.asmx/PackStockIn?pkwPackLot=" + BARCODE + "&pCustPackId=&pSubInventory=" + STORAGE_ID + "&pLocation=" + newLoc + "", ""); // // if (errText.Length > 0) // // { // // AddText("WCS入装箱线成功回传MES异常:" + errText); // // continue; // // } // // if (strJsonRK.Length > 0) // // { // // AddText("WCS入装箱线成功回传MES返回:" + strJsonRK); // // if (strJsonRK.Contains("Error")) // // { // // if (DataClass.Instance().Update_T_SSX_TASK(BARCODE, dt.Tables[0].Rows[i]["CTL"].ToString(), "10")) // // { // // AddText("WCS入装箱线成功回传MES错误:编号:" + BARCODE + "," + strJsonRK + ",更新数据库状态10成功"); // // } // // else // // { // // AddText("WCS入装箱线成功回传MES错误:编号:" + BARCODE + "," + strJsonRK + ",更新数据库状态9失败"); // // } // // AddText("WCS入装箱线成功回传MES错误:编号:" + BARCODE + "," + strJsonRK + ""); // // } // // else // // { // // if (DataClass.Instance().Update_T_SSX_TASK(BARCODE, dt.Tables[0].Rows[i]["CTL"].ToString(), "1")) // // { // // AddText("WCS入装箱线成功回传MES成功:编号:" + BARCODE + "," + strJsonRK + ",更新数据库状态1成功"); // // } // // else // // { // // AddText("WCS入装箱线成功回传MES成功:编号:" + BARCODE + "," + strJsonRK + ",更新数据库状态1失败"); // // } // // } // // } // // } // //} //} private void button2_Click(object sender, EventArgs e) { // 1. 初始化 DataSet(无需提前声明,直接接收查询结果) string sql = "SELECT DISTINCT CTL FROM T_MI_STOCK where STS=0"; DataSet ds = OracleHelper.ExecuteDataset(CommandType.Text, sql); // 2. 安全获取行数(处理可能的空表或查询失败) int rowCount = ds?.Tables?.Count > 0 ? ds.Tables[0].Rows.Count : 0; // 3. 将行数显示到 textBox1(确保控件存在且可写) textBox1.Text = rowCount.ToString(); } } }