FrmIDConfig.cs 6.4 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(int storeId)
        {
            StoreId = storeId;
            InitializeComponent();
        }

        private void FrmPwd_Load(object sender, EventArgs e)
        {
            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 <= 18; i++)
            {
                cmbId.Items.Add(i);

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

            LoadPos();
        }
        private List<string> allList = new List<string>();
        private void LoadPos()
        {
              allList = new List<string>(StoreManager.Store.PositionNumList);
            allList.Insert(0, " ---暂无--- ");
            LoadLocationCom(7, cmbPosition7, allList);
            LoadLocationCom(11, cmbPosition11, allList);
            LoadLocationCom(13, cmbPosition13, allList);
            LoadLocationCom(15, cmbPosition15, allList);
             
        }

        private void LoadLocationCom(int width,ComboBox com,List<string> allList)
        {
            com.DataSource =new List<string>( allList);
            string posId = StoreManager.GetLocationPosId(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)
        {
            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 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 (allList.Contains(value.Trim())){

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

        private void btnSavePosID_Click(object sender, EventArgs e)
        {
            try
            {
                SaveP(cmbPosition7, 7);
                SaveP(cmbPosition11, 11);
                SaveP(cmbPosition13, 13);
                SaveP(cmbPosition15, 15);
                MessageBox.Show("保存定位库位成功");
            }catch(Exception ex)
            {
                LogUtil.error("btnSavePosID_Click 出错:" + ex.ToString());
            }
        }

       private void SaveP(ComboBox box,int width)
        {
            string value = box.Text;
            if (!allList.Contains(value) )
            {
                box.Text = allList[0];
                value = allList[0];
            }
            if (value.Equals(allList[0]))
            {
                value = "";
            }
            ConfigAppSettings.SaveValue(Setting_Init.Location_PosID_ + width, value);
        }

     
    }
}