using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Collections.Specialized; using DeiNiu.Wms.CE.Util; namespace DeiNiu.Wms.CE { public partial class LocationMgr : basicForm { //StockLocationServiceClient client { get; set; } #region 自定义 string goods_id = string.Empty; string null_locationid = string.Empty; int volType = -100; int tag=-1; decimal volCnt =0m; DataTable dt; int ye = 0; int index = 0; string locationVolume = string.Empty; #endregion public LocationMgr() { setTitle(); InitializeComponent(); location_txt.Focus(); initialStatusCom(); // client = new StockLocationServiceClient(WcfHelp.getBasicBinding(), WcfHelp.getEndpoint("StockLocationService")); } /// /// 扫描货位触发enter事件,获取货位信息 /// 0,锁定 1,解锁 2,修改库容 3,初始化界面 /// /// /// private void location_txt_KeyUp(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { lacationid_lab.Text = ""; string str = location_txt.Text.Trim(); if (string.IsNullOrEmpty(str) || str.Length < 8) { MessageBox.Show("货位码无效!"); location_txt.Focus(); return; } lacationid_lab.Text = location_txt.Text.Trim(); location_txt.Text = ""; showeq(str); // button1.Enabled = warehousetype >=-100 ? false : true; } } /// /// 设置货位 /// /// /// /// /// 更改库容量 /// /// /// private void button1_Click(object sender, EventArgs e) { try { //if (warehousetype == -1) //{ // MessageBox.Show("空货位不能修改库容量!"); // return; //} if (Convert.ToDouble(textBox1.Text) > 0) { UpdateVolume(); } else MessageBox.Show("请输入数字!"); textBox1.Focus(); } catch { MessageBox.Show("格式不对!"); } } /// /// 清除界面数据 /// private void clear() { null_locationid = string.Empty; goods_name.Text = spec.Text = count.Text = batch.Text = product_date.Text = ext_date.Text = company_lab.Text = unit.Text = ""; goods_id = string.Empty; bigcount_lab.Text = "200"; textBox1.Text = "0"; label12.Text = "0"; ye = 0; index = 0; } /// /// /// /// private void showeq(string location_id)//获取货位上商品的基本信息 { if (string.IsNullOrEmpty(bigcount_lab.Text.Trim())) bigcount_lab.Text = "200"; if (string.IsNullOrEmpty(textBox1.Text.Trim())) textBox1.Text = "0"; dt = new DataTable(); Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; try { dt = client.getStockLocation(location_id); //查询货位上商品的基本信息 } catch (Exception er) { Cursor.Current = System.Windows.Forms.Cursors.Default; //MessageBox.Show("发生错误:" + er.Message); showErrorMsg(er); return; } Cursor.Current = System.Windows.Forms.Cursors.Default; SetValue(0, dt); } private void UpdateStatic() { bool succeed = false; Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; try { succeed = client.upLocationStatus(lacationid_lab.Text, tag, LoginInfo.UserId, LoginInfo.Token); } catch (Exception er) { Cursor.Current = System.Windows.Forms.Cursors.Default; // MessageBox.Show("发生错误:" + er.Message); showErrorMsg(er); return; } Cursor.Current = System.Windows.Forms.Cursors.Default; if (succeed) { /* if (tag == 1) { MessageBox.Show("货位锁定成功!"); location_txt.Focus(); return; } else { MessageBox.Show("货位解锁成功!"); location_txt.Focus(); return; } */ MessageBox.Show("货位状态更新成功"); } else { MessageBox.Show("更改状态失败"); location_txt.Focus(); return; } } private void UpdateVolume() { if (string.IsNullOrEmpty(bigcount_lab.Text.Trim())) bigcount_lab.Text = "200"; if (string.IsNullOrEmpty(textBox1.Text.Trim())) textBox1.Text = "0"; Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; decimal sl = Convert.ToDecimal(textBox1.Text.ToString()) * Convert.ToDecimal(bigcount_lab.Text.ToString()); bool succeed = false; Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; try { succeed = client.updateGoodsLocationVolume(goods_id, volType, sl, LoginInfo.UserId, LoginInfo.Token); } catch (Exception er) { Cursor.Current = System.Windows.Forms.Cursors.Default; MessageBox.Show("发生错误:" + er.Message); return; } Cursor.Current = System.Windows.Forms.Cursors.Default; if (succeed) { MessageBox.Show("更改库容成功"); label12.Text = sl.ToString(); location_txt.Focus(); volCnt = Convert.ToDecimal(textBox1.Text.ToString()); return; } else { MessageBox.Show("更改库容失败!!!"); textBox1.Focus(); return; } } private void label15_ParentChanged(object sender, EventArgs e) { } private void button2_Click(object sender, EventArgs e) { if (lacationid_lab.Text == "") { MessageBox.Show("请扫描货位!!"); location_txt.Focus(); return; } try { // if(checkBox1.Checked != (tag==1)){ if (comStatus.SelectedIndex!= tag) { tag = comStatus.SelectedIndex; UpdateStatic(); } if(volCnt ==-100 || !textBox1.Enabled){ return; } decimal newVolCnt = 0m; try { newVolCnt = Convert.ToDecimal(textBox1.Text.ToString()); if (newVolCnt <= 0) { MessageBox.Show("请输入正确的数量"); textBox1.Focus(); return; } } catch { MessageBox.Show("请输入正确的数量"); textBox1.Focus(); return; } if (volCnt != newVolCnt && newVolCnt > 0) { UpdateVolume(); } } catch(Exception ex) { //MessageBox.Show(ex.Message); showErrorMsg(ex); } } private void textBox1_TextChanged(object sender, EventArgs e) { } private void label2_ParentChanged(object sender, EventArgs e) { } /// /// 上一页 /// /// /// private void up_bt_Click(object sender, EventArgs e) { if (index < ye) { index--; SetValue(index, dt); } } /// /// 下一页 /// /// /// private void down_bt_Click(object sender, EventArgs e) { if (index < ye) { index++; SetValue(index, dt); } } /// /// 绑定数据到界面 /// /// /// private void SetValue(int index0, DataTable dt) { Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; ye = dt.Rows.Count; row_lab.Text = String.Format("{0}/{1}页", ye>0?index0 + 1:index0, ye); down_bt.Enabled = up_bt.Enabled = true; if (ye < 2) { up_bt.Enabled = down_bt.Enabled = false; } else { if (index0 == 0) //首页 { up_bt.Enabled = false; } else if ((index0 + 1) == ye) //最后一页 { down_bt.Enabled = false; } } int y = index0; if (dt.Rows.Count > 0) { lacationid_lab.Text = dt.Rows[y]["locationId"].ToString(); tag = Convert.ToInt16(dt.Rows[y]["locState"].ToString()); checkBox1.Checked = tag == 1; comStatus.SelectedIndex = tag; volType = Convert.ToInt16(dt.Rows[y]["volType"].ToString()); goods_name.Text = dt.Rows[y]["goodsName"].ToString(); spec.Text = dt.Rows[y]["spec"].ToString(); count.Text = dt.Rows[y]["avCount"].ToString(); batch.Text = dt.Rows[y]["batch"].ToString(); product_date.Text = dt.Rows[y]["productdate"].ToString(); ext_date.Text = dt.Rows[y]["validdate"].ToString(); company_lab.Text = dt.Rows[y]["manufacturer"].ToString(); unit.Text = dt.Rows[y]["unit"].ToString(); goods_id = dt.Rows[y]["goodsid"].ToString(); bigcount_lab.Text = dt.Rows[y]["bigcount"].ToString(); if (dt.Rows[y]["VolType"].ToString() == "0") { locationVolume = dt.Rows[y]["bulkmax"].ToString(); } if (dt.Rows[y]["VolType"].ToString() == "-1") { locationVolume = dt.Rows[y]["bulkmax1"].ToString(); } if (dt.Rows[y]["VolType"].ToString() == "1") { locationVolume = dt.Rows[y]["batchMax1"].ToString(); } if (dt.Rows[y]["VolType"].ToString() == "2") { locationVolume = dt.Rows[y]["batchMax2"].ToString(); } if (dt.Rows[y]["VolType"].ToString() == "3") { locationVolume = dt.Rows[y]["batchMax3"].ToString(); } if (string.IsNullOrEmpty(locationVolume) == true) { locationVolume = "0"; } volCnt = Convert.ToDecimal(locationVolume) / Convert.ToDecimal(bigcount_lab.Text.Trim()); textBox1.Text = (volCnt).ToString(); label12.Text = locationVolume; textBox1.Enabled = true; } else { /* dt = new DataTable(); Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; try { dt = client.getLocation(location_id); //查空货位信息 } catch (Exception er) { Cursor.Current = System.Windows.Forms.Cursors.Default; MessageBox.Show("发生错误:" + er.Message); return; } Cursor.Current = System.Windows.Forms.Cursors.Default; */ clear(); volType = -100; if (dt.Rows.Count > 0) { tag = Convert.ToInt16(dt.Rows[y]["state"].ToString()); checkBox1.Checked = tag == 1; textBox1.Enabled = false; } else { lacationid_lab.Text = ""; MessageBox.Show("货位不存在!!!"); location_txt.Focus(); } location_txt.Focus(); } Cursor.Current = System.Windows.Forms.Cursors.Default; } private void initialStatusCom() { Dictionary dic = new Dictionary(); dic[0] = ((enumStockLocationState)0).ToString(); dic[1] = ((enumStockLocationState)1).ToString(); ; dic[2] = ((enumStockLocationState)2).ToString(); ; dic[3] = ((enumStockLocationState)3).ToString(); dic[4] = ((enumStockLocationState)4).ToString(); Utils.initialComboBoxs(comStatus, dic); } } }