using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
namespace NETERPNoWin
{
    public partial class MESMain : Form
    {
        public MESMain()
        {
            InitializeComponent();
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Enabled = false;
            //
            Pub_Class.ClsIni oIni = new Pub_Class.ClsIni();
            string sID = Pub_Class.ClsIni.ReadIni("UserInfo", "UserID", Pub_Class.ClsPub.AppPath + @"\" + "HXErp_SY.ini");
            string sName = Pub_Class.ClsIni.ReadIni("UserInfo", "UserName", Pub_Class.ClsPub.AppPath + @"\" + "HXErp_SY.ini");
            DBUtility.ClsPub.CurUserID = sID;
            DBUtility.ClsPub.CurUserName = sName;
            string sgnmc = Pub_Class.ClsIni.ReadIni("OPenWin", "gnmc", Pub_Class.ClsPub.AppPath + @"\" + "HXErp_SY.ini");
            if (sgnmc == "")
                return;
            Button cmd = (Button)GetControl(this, sgnmc);
            if (cmd == null)
                return;
            string cmdName = Pub_Class.ClsPub.isStrNull(cmd.Name);
            if (cmdName == "")
                return;
            CallOnClick(this, cmdName);
        }
        //根据tag获取控件
        public static Control GetControl(Control ctrl, string controlTag)
        {
            Control tempControl = null;
            //if the input control's name equals the input controlName,return the control
            if (Pub_Class.ClsPub.isStrNull(ctrl.Tag) == controlTag)
            {
                tempControl = ctrl;
            }
            else if (ctrl.Controls.Count != 0)//if the ctrl is not suitable,get its sub controls
            {
                foreach (Control subCtrl in ctrl.Controls)
                {
                    Control tb = GetControl(subCtrl, controlTag);
                    if (tb != null)
                    {
                        tempControl = tb;
                        break;
                    }
                }
            }
            return tempControl;
        }
         /// 
        /// 根据控件Name调用自身Click事件
        /// 
        /// 容器
        /// 控件Name
        public void CallOnClick(Control container, string controlName)
        {
            if (container.Controls.ContainsKey(controlName))
            {
                object o = container.Controls[controlName];
                object[] p = new object[1];
                p[0] = EventArgs.Empty;
                Type t = o.GetType();
                //MethodInfo m = t.GetMethod("OnClick", BindingFlags.NonPublic | BindingFlags.Instance);
                //m.Invoke(o, p);
            }
        }
        private void Sc_ICMOBillList_K3_Click(object sender, EventArgs e)
        {
            //WorkM.Sc_ICMOBillList_K3 oSc_ICMOBillList_K3 = new WorkM.Sc_ICMOBillList_K3();
            //oSc_ICMOBillList_K3.Show();
            Kanban.Sc_CGKB oSc_CGKB = new Kanban.Sc_CGKB();
            oSc_CGKB.ShowDialog();
        }
        private void Sc_MESBeginWorkBill_Fast_Click(object sender, EventArgs e)
        {
            //WorkM.Sc_MESBeginWorkBill_Fast oSc_MESBeginWorkBill_Fast = new WorkM.Sc_MESBeginWorkBill_Fast();
            //oSc_MESBeginWorkBill_Fast.ShowDialog();
        }
        private void Sc_MESBeginWorkBillList_Click(object sender, EventArgs e)
        {
            //WorkM.Sc_MESBeginWorkBillList oSc_MESBeginWorkBillList = new WorkM.Sc_MESBeginWorkBillList();
            //oSc_MESBeginWorkBillList.Show();
        }
        private void Sc_ProcExchReport_Fast_Click(object sender, EventArgs e)
        {
            //WorkM.Sc_ProcExchReport_Fast oSc_ProcExchReport_Fast = new WorkM.Sc_ProcExchReport_Fast();
            //oSc_ProcExchReport_Fast.ShowDialog();
        }
        private void Sc_ProcExchReportList_Click(object sender, EventArgs e)
        {
            //WorkM.Sc_ProcExchReportList oSc_ProcExchReportList = new WorkM.Sc_ProcExchReportList();
            //oSc_ProcExchReportList.Show();
        }
        private void Sc_WorkBillPlanReportKB_Click(object sender, EventArgs e)
        {
            Kanban.Sc_CJKB oSc_CJKB = new Kanban.Sc_CJKB();
            oSc_CJKB.ShowDialog();
        }
        private void Sc_WorkBillPlanSumReportKB_Click(object sender, EventArgs e)
        {
            Kanban.Sc_QLKB oSc_QLKB = new Kanban.Sc_QLKB();
            oSc_QLKB.ShowDialog();
        }
        private void cmdClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        private void Sc_BRFHKB_Click(object sender, EventArgs e)
        {
            Kanban.Sc_BRFHKB oSc_BRFHKB = new Kanban.Sc_BRFHKB();
            oSc_BRFHKB.ShowDialog();
        }
        private void Sc_BJQLFXB_Click(object sender, EventArgs e)
        {
            Kanban.Sc_BJQLFXB oSc_BJQLFXB = new Kanban.Sc_BJQLFXB();
            oSc_BJQLFXB.ShowDialog();
        }
        private void Sc_HZQLCGKB_Click(object sender, EventArgs e)
        {
            Kanban.Sc_HZQLCGKB oSc_HZQLCGKB = new Kanban.Sc_HZQLCGKB();
            oSc_HZQLCGKB.ShowDialog();
        }
        private void cmdSetKanbanIni_Click(object sender, EventArgs e)
        {
            Frm_MESSetIni oFrm_MESSetIni = new Frm_MESSetIni();
            oFrm_MESSetIni.ShowDialog();
        }
        private void Sc_WorkBillProcTestReportKB_Click(object sender, EventArgs e)
        {
            Kanban.Sc_WorkBillProcTestReportKB oSc_WorkBillProcTestReportKB = new Kanban.Sc_WorkBillProcTestReportKB();
            oSc_WorkBillProcTestReportKB.ShowDialog();
        }
        private void Sc_WorkBillProcMaterReportKB_Click(object sender, EventArgs e)
        {
            Kanban.Sc_WorkBillProcMaterReportKB oSc_WorkBillProcMaterReportKB = new Kanban.Sc_WorkBillProcMaterReportKB();
            oSc_WorkBillProcMaterReportKB.ShowDialog();
        }
        private void Cg_POOrderBillReportKB_Click(object sender, EventArgs e)
        {
            Kanban.Cg_POOrderBillReportKB oCg_POOrderBillReportKB = new Kanban.Cg_POOrderBillReportKB();
            oCg_POOrderBillReportKB.ShowDialog();
        }
        private void Sc_WorkBillProcTimeReportKB_Click(object sender, EventArgs e)
        {
            Kanban.Sc_WorkBillProcTimeReportKB oSc_WorkBillProcTimeReportKB = new Kanban.Sc_WorkBillProcTimeReportKB();
            oSc_WorkBillProcTimeReportKB.ShowDialog();
        }
        private void Sc_WorkBillProcProdReportKB_Click(object sender, EventArgs e)
        {
            Kanban.Sc_WorkBillProcProdReportKB oSc_WorkBillProcProdReportKB = new Kanban.Sc_WorkBillProcProdReportKB();
            oSc_WorkBillProcProdReportKB.ShowDialog();
        }
        private void Sc_WorkBillProcTimeReportKB2_Click(object sender, EventArgs e)
        {
            Kanban.Sc_WorkBillProcTimeReportKB2 oSc_WorkBillProcTimeReportKB2 = new Kanban.Sc_WorkBillProcTimeReportKB2();
            oSc_WorkBillProcTimeReportKB2.ShowDialog();
        }
        private void label1_Click(object sender, EventArgs e)
        {
            Kanban.Sc_CGKB oSc_CGKB = new Kanban.Sc_CGKB();
            oSc_CGKB.ShowDialog();
        }
        private void label6_Click(object sender, EventArgs e)
        {
            Kanban.Sc_CJKB oSc_CJKB = new Kanban.Sc_CJKB();
            oSc_CJKB.ShowDialog();
        }
        private void label7_Click(object sender, EventArgs e)
        {
            Kanban.Sc_QLKB oSc_QLKB = new Kanban.Sc_QLKB();
            oSc_QLKB.ShowDialog();
        }
        private void Sc_WGJCKKB_Click(object sender, EventArgs e)
        {
            Kanban.Sc_WGJCKKB oSc_WGJCKKB = new Kanban.Sc_WGJCKKB();
            oSc_WGJCKKB.ShowDialog();
        }
    }
}