FrmUserM.cs 11.8 KB
using TSA_V.Common;
using TSA_V.DeviceLibrary;
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;
using System.IO;
using TSA_V.LoadCSVLibrary;
using Asa;

namespace TSA_V
{
    public partial class FrmUserM : FrmBase
    {
        public static FrmUserM instance = new FrmUserM();
        private FrmUserM()
        {
            InitializeComponent();
        }

        private void FrmPointType_Load(object sender, EventArgs e)
        {
           // SetSkin(this);
            loadPositionList(); 
            LanguageProcess();
            LanguagePro();
        }
        private void LanguagePro()
        {
           
            this.Column_Name.HeaderText = ResourceCulture.GetString(ResourceCulture.Col_Name, "名称");
            this.Column_Limit.HeaderText = ResourceCulture.GetString(ResourceCulture.Col_Count, "权限"); 
            this.Column_Pwd.HeaderText = ResourceCulture.GetString(ResourceCulture.Col_Position, "密码"); 
            this.Column_Del.HeaderText = ResourceCulture.GetString(ResourceCulture.ItemText_Delete, "删除");
            this.Column_Del.Text = ResourceCulture.GetString(ResourceCulture.ItemText_Delete, "删除");
            this.Column_Del.ToolTipText = ResourceCulture.GetString(ResourceCulture.ItemText_Delete, "删除");

        }
    
        private void loadPositionList()
        {
            cmbLevel.Items.Clear();
            cmbLevel.Items.Add(Asa.UserLimit.Admin);
            cmbLevel.Items.Add(Asa.UserLimit.User );
            cmbLevel.Items.Add(Asa.UserLimit.Debug );
            cmbLevel.Items.Add(Asa.UserLimit.None); 
            cmbLevel.SelectedIndex = 2;
        }
        
        private void LoadList()
        {
            FormManager.userManager.Value.lget
        }
       
        private DataGridViewRow SetRowInfo(DataGridViewRow view, Asa.Users user)
        {
            if (view == null)
            {
                view = new DataGridViewRow();
                view.CreateCells(dgvList);
            }
            view.Cells[Column_Name.Index].Value = user.Name.ToString(); 
            view.Cells[this.Column_Pwd.Index].Value = user.Password.ToString();
            view.Cells[Column_Limit.Index].Value = user.Limit.ToString();
         
            return view;
        }
        

        private void btnNew_Click(object sender, EventArgs e)
        { 
            FrmAddCom frm = new FrmAddCom();
            this.Visible = false;
            frm.ShowDialog(); 
            this.Visible = true;
        } 


        private void btnSave_Click(object sender, EventArgs e)
        {
           
                if (dgvList.SelectedRows != null && dgvList.SelectedRows.Count > 0)
                {
                    int rowIndex = dgvList.SelectedRows[0].Index;
               
                    DataGridViewRow row = dgvList.Rows[rowIndex];
                    Users obj = getRowPointInfo(row);
                    if (obj == null)
                    {
                        MessageBox.Show(ResourceCulture.GetString(ResourceCulture.SelectC,"请选择元器件!"));
                        return;
                    }
                    if (cmbLevel.SelectedIndex < 0)
                    {
                        MessageBox.Show(ResourceCulture.GetString(ResourceCulture.SelectCPosition,"请选择元器件位置!"));
                        cmbLevel.Focus();
                        return;
                    }
                    TSAVPosition position = (TSAVPosition)cmbLevel.SelectedItem;
                 
                    obj.ComponentName = FormUtil.getValue(txtName);
                    obj.ComponentDes = FormUtil.getValue(txtDes);
                    obj.ComCount = FormUtil.GetIntValue(txtCount);
                    obj.Notes = FormUtil.getValue(txtNotes);
                    obj.PartNum = FormUtil.getValue(txtPartNum);

                    obj.PositionNum = position.PositionNum;

                    if (obj.ComponentName.Equals(""))
                    {
                        MessageBox.Show(ResourceCulture.GetString(ResourceCulture.WriteComName,"请输入元器件名称!"));
                        txtName.Focus();
                        return;
                    }
                    //if (obj.PositionNum.Equals(""))
                    //{
                    //    MessageBox.Show("请输入元器件所在位置!");
                    //    this.txtPosition.Focus();
                    //    return;
                    //}
                    if (obj.ComCount<=0)
                    {
                        MessageBox.Show(ResourceCulture.GetString(ResourceCulture.WriteComNum,"请输入元器件数量!"));
                        txtCount.Focus();
                        return;
                    }

                    CSVReaderBomManager.SaveComponet(cmbList.Text, obj);
                    //ComponentManager.Update(obj);
                    SetRowInfo(dgvList.Rows[rowIndex], obj);
                    MessageBox.Show(ResourceCulture.GetString(ResourceCulture.ComSaveOk,"元器件【{0}】保存成功!", obj.PartNum + "-" + obj.ComponentName ));
                    groupInfo.Text = ResourceCulture.GetString(ResourceCulture.ComInfo,"元器件【{0}】的基本信息",obj.PartNum + "-" + obj.ComponentName);
                }
            }
         

        private void btnDel_Click(object sender, EventArgs e)
        {
            if (dgvList.SelectedRows != null && dgvList.SelectedRows.Count > 0)
            {
                int rowIndex = dgvList.SelectedRows[0].Index;
                DeleteCom(rowIndex);
            }
        }

        private Users getRowPointInfo(DataGridViewRow row)
        {
            Users user = new Users();
            try
            {
                if (row.Cells[Column_Name.Name].Value == null)
                {
                    return null;
                }
                user.Name = row.Cells[this.Column_Name.Name].Value.ToString();
                user.Password = row.Cells[this.Column_Pwd.Name].Value.ToString();
                user.Limit = (UserLimit)Convert.ToInt32(row.Cells[this.Column_Limit.Name].Value.ToString());

            }
            catch (Exception ex)
            {
                LogUtil.error("保存数据出错:" + ex.ToString());
                MessageBox.Show(ResourceCulture.GetString(ResourceCulture.CheckComNum, "请检查元器件数据是否正确!"));
                return null;
            }
            return user;
        }
        private void showDetail(int rowIndex)
        {
            DataGridViewRow row = dgvList.Rows[rowIndex];
            ComponetInfo obj = getRowPointInfo(row);
            if (obj == null)
            {
                MessageBox.Show(ResourceCulture.GetString(ResourceCulture.ChoiceCom,"请选择元器件!"));
                return;
            }
            txtPartNum.Tag = obj;
            txtName.Text = obj.ComponentName;
            txtDes.Text = obj.ComponentDes;
            txtCount.Text = obj.ComCount.ToString();
            txtPartNum.Text = obj.PartNum;
            txtNotes.Text = obj.Notes;
            //txtPosition.Text = obj.PositionNum;
            int index = -1;
            foreach (TSAVPosition p in allPosition)
            {
                index++;
                if (p.PositionNum.Equals(obj.PositionNum))
                {
                    break;
                }
            }
            if (index >= 0)
            {
                this.cmbLevel.SelectedIndex = index;
            }
            groupInfo.Text = ResourceCulture.GetString(ResourceCulture.ChoiceLibrary, "元器件【{0}】的基本信息",obj.PartNum+"-"+obj.ComponentName);
        }
        private void DeleteCom(int rowIndex)
        {
            DataGridViewRow row = dgvList.Rows[rowIndex];
            ComponetInfo obj = getRowPointInfo(row);
            if (MessageBox.Show(
                ResourceCulture.GetString(ResourceCulture.SureDelCom, "确认要删除元器件【{0}】吗?", obj.PartNum + "-" + obj.ComponentName),
                ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示"),
 
                MessageBoxButtons.OKCancel,
                MessageBoxIcon.Question) != DialogResult.OK)
            {
                return;
            }
            else
            {
                CSVReaderBomManager.RemoveCom(cmbList.Text, obj); 
                this.dgvList.Rows.RemoveAt(rowIndex);
                MessageBox.Show(ResourceCulture.GetString(ResourceCulture.DelComOk,"元器件【{0}】删除成功!",obj.PartNum + "-" + obj.ComponentName)
                    ,ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示"));
            }
        }

        private void btnBack_Click(object sender, EventArgs e)
        {
            //this.Close();
            this.Visible = false;
            FrmMenu.frmMain.Visible = true;
        }

        private void dgvList_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex != -1 && e.ColumnIndex >= 0)
            {
                string name = this.dgvList.Columns[e.ColumnIndex].Name;
                if (name.Equals(this.Column_Del.Name))
                {
                    DeleteCom(e.RowIndex);
                }  
            }
        }

        private void dgvList_SelectionChanged(object sender, EventArgs e)
        {
            if (dgvList.SelectedRows != null && dgvList.SelectedRows.Count > 0)
            {
                int rowIndex = dgvList.SelectedRows[0].Index;
                showDetail(rowIndex);
            }
        }

        private void btnDownLoad_Click(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); 
            sfd.FileName = ResourceCulture.GetString( "元器件库模板");
            sfd.Filter = @"csv|*.csv";
            DialogResult result = sfd.ShowDialog();

            if (result.Equals(DialogResult.OK))
            {
                string filePath = sfd.FileName;
                //if (Directory.Exists(filePath))
                {
                    string sourcePath = Application.StartupPath + ConfigAppSettings.GetValue(Setting_Init.Componet_Template);
                    if (File.Exists(filePath))
                    {
                        File.Delete(filePath);
                    }
                    //复制文件 
                    File.Copy(sourcePath, filePath); 
                    MessageBox.Show(ResourceCulture.GetString(ResourceCulture.DemoSave,"模板已保存在:" )+ filePath);
                }
            }
        }

        private void BtnBeiLiao_Click(object sender, EventArgs e)
        {
            if (cmbList.SelectedIndex >= 0)
            {
                string key = cmbList.Text;
                List<ComponetInfo> list = CSVReaderBomManager.GetComList(key);
                FrmPutCom frm = new FrmPutCom();
                if (frm.SetOperateInfo(key, list))
                {
                    this.Visible = false;
                    frm.ShowDialog();
                    this.Visible = true;
                    cmbList_SelectedIndexChanged(null, null);
                }
            }
            else
            {
                MessageBox.Show(ResourceCulture.GetString(ResourceCulture.ChoiceLibrary,"请先选择一个元器件库"));
            }
        }

     

        private void FrmComponentList_FormClosing(object sender, FormClosingEventArgs e)
        {
            this.Visible = false;
            FrmMenu.frmMain.Visible = true;
            e.Cancel = true;
        }
     
        private void FrmComponentList_VisibleChanged(object sender, EventArgs e)
        {
            if (this.Visible)
            {
                LanguagePro();
            }
        } 
    }
}