FrmIDConfig.cs 8.5 KB

using OnlineStore.Common;
using OnlineStore.DeviceLibrary;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace OnlineStore.ACSingleStore
{
    public partial class FrmIdConfig : FrmBase
    {
        public delegate void PwdOK(int type);
        public event PwdOK PwdOKFun;
        private int StoreId = 0;
        public FrmIdConfig()
        {
            //StoreId = storeId;
            InitializeComponent();
        }

        private void FrmPwd_Load(object sender, EventArgs e)
        {
            LoadData();
        }

        private void LoadData()
        {
            this.DialogResult = DialogResult.None;
            txthttpAddr.Text = ConfigAppSettings.GetValue(Setting_Init.http_server);
            txtLineAddr.Text = ConfigAppSettings.GetValue(Setting_Init.LineServerIp);
            cmbId.Items.Clear();
            for (int i = 1; i <= 12; i++)
            {
                cmbId.Items.Add("D"+i);

            }
            if (StoreId > 0 && StoreId <= cmbId.Items.Count)
            {
                cmbId.SelectedIndex = StoreId - 1;
            }
            chbDebug.Checked = StoreManager.Store.IsDebug;

            LoadPos();
        }

         private List<string> allList1 = new List<string>();
        private List<string> allList2 = new List<string>();
        private void LoadPos()
        {
            allList1 = new List<string>(StoreManager.Store.BoxMap[1].PositionNumList);
            allList1.Insert(0, " ---暂无--- ");
            LoadLocationCom(1, 7, cmbPosition7, allList1);
            LoadLocationCom(1, 11, cmbPosition11, allList1);
            LoadLocationCom(1, 13, cmbPosition13, allList1);
            LoadLocationCom(1, 15, cmbPosition15, allList1);
            allList2 = new List<string>(StoreManager.Store.BoxMap[2].PositionNumList);
            allList2.Insert(0, " ---暂无--- ");
            LoadLocationCom(2, 7, cmbBox2_7, allList2);
            LoadLocationCom(2, 11, cmbBox2_11, allList2);
            LoadLocationCom(2, 13, cmbBox2_13, allList2);
            LoadLocationCom(2, 15, cmbBox2_15, allList2);
        }

        private void LoadLocationCom(int storeId,int width,ComboBox com,List<string> allList)
        {
            com.DataSource =new List<string>( allList);
            string posId = StoreManager.GetLocationPosId(storeId, width);
            int index = allList.IndexOf(posId);
            if (index >0)
            {
                com.SelectedIndex = index;
            }
            else
            {
                com.SelectedIndex = 0; 
            }
            foreach(string str in allList)
            { 
                com.AutoCompleteCustomSource.Add(str);
            }
            com.AutoCompleteSource = AutoCompleteSource.CustomSource;
        }

        private void btnNext_Click(object sender, EventArgs e)
        {
           
        }

        private void btnBack_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
            this.Close();
        }

        private void FrmPwd_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode.Equals(Keys.Enter))
            {
                btnNext_Click(null, null);
            }
        }

        private void txtPwd_KeyDown(object sender, KeyEventArgs e)
        { 
            if (e.KeyCode.Equals(Keys.Enter))
            {
                btnNext_Click(null, null);
            }else if (e.KeyCode.Equals(Keys.Escape))
            {
                btnBack_Click(null, null);
            }
        }

        private void FrmPwd_Shown(object sender, EventArgs e)
        { 

        }

        private void btnReset_Click(object sender, EventArgs e)
        {
            txthttpAddr.Text = "http://192.168.101.11/myproject/";
            txtLineAddr.Text = "192.168.101.10";
        }

        private void cmbPosition7_MouseLeave(object sender, EventArgs e)
        {
            try
            {
                ComboBox box = (ComboBox)sender;
                string value = box.Text;
                if (allList1.Contains(value.Trim()))
                {

                }
                else
                {
                    box.Text = allList1[0];
                }
            }
            catch (Exception ex)
            {
                LogUtil.error("cmbPosition7_MouseLeave 出错:" + ex.ToString());
            }
        }

        private void btnSavePosID_Click(object sender, EventArgs e)
        {
        }

        private void SaveP(int storeId, ComboBox box, int width)
        {
            if (storeId.Equals(1))
            {
                string value = box.Text;
                if (!allList1.Contains(value))
                {
                    box.Text = allList1[0];
                    value = allList1[0];
                }
                if (value.Equals(allList1[0]))
                {
                    value = "";
                }
                ConfigAppSettings.SaveValue(Setting_Init.Location_PosID_ + storeId + "_" + width, value);
            }
            else if (storeId.Equals(2))
            {
                string value = box.Text;
                if (!allList2.Contains(value))
                {
                    box.Text = allList2[0];
                    value = allList2[0];
                }
                if (value.Equals(allList2[0]))
                {
                    value = "";
                }
                ConfigAppSettings.SaveValue(Setting_Init.Location_PosID_ + storeId + "_" + width, value);
            }
        }

        private void cmbId_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void SaveConfig()
        {
            int index = cmbId.SelectedIndex + 1;
            DialogResult result = MessageBox.Show("更改料仓编号为[" + index + "],需要重启客户端", "确认提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
            if (result.Equals(DialogResult.OK))
            {
                //  < add key = "Store_CID" value = "line-ac-01" />
                //  <add key ="Store_ID" value ="1"/>
                string storeCID = "line-ac-" + index.ToString().PadLeft(2, '0');
                string storeId = index.ToString();
                ConfigAppSettings.SaveValue(Setting_Init.Store_CID, storeCID);
                ConfigAppSettings.SaveValue(Setting_Init.Store_ID, storeId);
                //如果总配置文件存在,保存到总的配置文件
                string filePath = Application.StartupPath + ConfigAppSettings.GetValue(Setting_Init.Store_Position_Config);
                LoadCSVLibrary.CSVPositionReader<ACStorePosition>.UpdatePostion(filePath, index);

                string httpstr = txthttpAddr.Text.Trim();
                ConfigAppSettings.SaveValue(Setting_Init.http_server, httpstr);
                string lineStr = txtLineAddr.Text.Trim();
                ConfigAppSettings.SaveValue(Setting_Init.LineServerIp, lineStr);
                StoreManager.Store.IsDebug = chbDebug.Checked;
                ConfigAppSettings.SaveValue(Setting_Init.IsInDebug, chbDebug.Checked ? 1 : 0);
                MessageBox.Show("保存成功,请重启客户端");
                this.DialogResult = DialogResult.OK;
            }
        }
        private void SavePosition()
        {

            try
            {
                SaveP(1,cmbPosition7, 7);
                SaveP(1,cmbPosition11, 11);
                SaveP(1,cmbPosition13, 13);
                SaveP(1,cmbPosition15, 15);

                SaveP(2, cmbBox2_7, 7);
                SaveP(2, cmbBox2_11, 11);
                SaveP(2, cmbBox2_13, 13);
                SaveP(2, cmbBox2_15, 15);
                MessageBox.Show("保存定位库位成功");
            }
            catch (Exception ex)
            {
                LogUtil.error("btnSavePosID_Click 出错:" + ex.ToString());
            }
        }
        private void cmbBox2_15_MouseLeave(object sender, EventArgs e)
        {
            try
            {
                ComboBox box = (ComboBox)sender;
                string value = box.Text;
                if (allList2.Contains(value.Trim()))
                {

                }
                else
                {
                    box.Text = allList2[0];
                }
            }
            catch (Exception ex)
            {
                LogUtil.error("cmbBox2_15_MouseLeave 出错:" + ex.ToString());
            }
        }
    }
}