Пример #1
0
        private void sbGetMoc_Click(object sender, EventArgs e)
        {
            string mocNo = textEdit1.Text;

            if (textEdit1.Text.IndexOf("-") < 0)
            {
                MessageBox.Show("請輸入正確的製令單號" + Environment.NewLine + "Ex : A511-20180500001");
                return;
            }

            SplashScreenManager.ShowDefaultWaitForm();
            clearAllMocCacheDtAndTreeList();
            DataTable sourceDt = MvDbDao.collectData_Moc(mocNo);

            // copy to cacheDt
            if (cacheMocDt != null)
            {
                cacheMocDt.Clear();
            }
            cacheMocDt           = sourceDt.Copy();
            treeList4.DataSource = sourceDt;

            // 不開放編輯功能
            treeList4.OptionsBehavior.ReadOnly = true;
            treeList4.OptionsBehavior.Editable = false;

            xtraTabControl1.TabPages[3].Text = "製令_" + mocNo;
            xtraTabControl1.SelectedTabPage  = xtraTabControl1.TabPages[3];
            SplashScreenManager.CloseForm(false);
        }
Пример #2
0
        private void sbtnGet_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();

            dt = MvDbDao.collectData_PurP17_VB6("20180508");
            treeList1.DataSource = dt;
        }
Пример #3
0
        private void sbGetSumByOrderType_Click(object sender, EventArgs e)
        {
            if (deStart.Text.Length == 0 || deEnd.Text.Length == 0)
            {
                MessageBox.Show("請先選取日期區間");
                return;
            }

            // 判斷start date 不能比end date晚
            DateTime dStart = DateTime.Parse(deStart.Text);
            DateTime dEnd   = DateTime.Parse(deEnd.Text);

            if (DateTime.Compare(dStart, dEnd) > 0)
            {
                MessageBox.Show("起始日不可大於結束日");
                return;
            }

            // 判斷區間不要超過一個月
            TimeSpan ts = dEnd - dStart;
            int      differenceInDays = ts.Days;

            if (differenceInDays > 180)
            {
                MessageBox.Show("日期區間請不要超過6個月");
                return;
            }

            // 判斷單別必需要有值
            if (cboOrderType.Text.Length == 0)
            {
                MessageBox.Show("請選取單別");
                return;
            }

            // 清除grid controll 資料
            gridControl1.DataSource = null;
            gridControl1.DataBindings.Clear();
            gridControl1.RefreshDataSource();
            gridView1.Columns.Clear();
            gridView1.RefreshData();

            // show wait process
            SplashScreenManager.ShowDefaultWaitForm();

            // 取得單別的統計資料
            DataTable dt = null;

            dt = MvDbDao.collectData_GetOrderTypeSummary(cboOrderType.Text, deStart.Text, deEnd.Text);

            if (dt == null)
            {
                MessageBox.Show("此單別尚未列入計算清單內, 或是該單別為已停用單別");
                return;
            }

            gridControl1.DataSource = dt;
            // close Wait Form
            SplashScreenManager.CloseForm(false);
        }
Пример #4
0
        private void frmTestParser_Load(object sender, EventArgs e)
        {
            // 第一次取得BomList
            DataTable tmpDt = null;

            tmpDt = MvDbDao.collectData_BomList();
            cboBomType.DataSource    = tmpDt.Copy();
            cboBomType.ValueMember   = "MC001";
            cboBomType.DisplayMember = "MB0012";
            cboBomType.Text          = "";
            cboBomType.SelectedValue = "";

            // 調整GridControl 為不可編輯
            gridView1.OptionsBehavior.Editable = false;
            gridView1.OptionsBehavior.ReadOnly = true;
            gridView1.RefreshData();

            // 第一次取得單別
            tmpDt = MvDbDao.collectData_Cmsmq();
            cboOrderType.DataSource    = tmpDt.Copy();
            cboOrderType.ValueMember   = "MQ001";
            cboOrderType.DisplayMember = "MQ001";
            cboOrderType.Text          = "";
            cboOrderType.SelectedValue = "";

            deStart.Properties.DisplayFormat.FormatString = "yyyy/MM/dd";
            deEnd.Properties.DisplayFormat.FormatString   = "yyyy/MM/dd";
            deStart.DateTime = DateTime.Today;
            deEnd.DateTime   = DateTime.Today;
        }
Пример #5
0
        private void sbCheckInvmb_Click(object sender, EventArgs e)
        {
            string[] tmpString = new string[3];
            tmpString[0] = "123";
            tmpString[1] = "1231";
            tmpString[2] = "1234";

            bool result = MvDbDao.checkData_hasIllegalItemInInvmb(tmpString);

            MessageBox.Show("resut is " + result);
        }
Пример #6
0
        private async void btnGetPortsFromDB_Click(object sender, EventArgs e)
        {
            clearAllText();
            MvItCiscoBo bo = new MvItCiscoBo();

            SplashScreenManager.ShowDefaultWaitForm();

            DataTable dt          = null;
            DataTable dtFromCisco = null;

            gridControl1.DataSource = null;
            gridControl1.DataBindings.Clear();
            gridControl1.RefreshDataSource();
            gridView1.Columns.Clear();
            gridView1.RefreshData();

            dt = MvDbDao.collectData_ItNetworkDevice();
            dt.Columns.Remove("SN");
            dt.Columns.Add("IsInCisco");

            //dtFromCisco = await bo.getStatusTableIncludeMacAddress(new string[] { "192.168.151.11" });
            dtFromCisco = await bo.getStatusTableIncludeMacAddress(GlobalConstant.MvMisCiscoIpList);

            Hashtable cacheResult = new Hashtable();
            string    matchKey    = string.Empty;

            // 將Cisco 資料放入HashTable
            foreach (DataRow drFromCisco in dtFromCisco.Rows)
            {
                matchKey = string.Format("{0}{1}{2}{3}", drFromCisco["IP"], drFromCisco["Port"], drFromCisco["MacAddress"], drFromCisco["Name"]);
                cacheResult.Add(matchKey, true);
            }

            matchKey = string.Empty;
            foreach (DataRow dr in dt.Rows)
            {
                matchKey = string.Format("{0}{1}{2}{3}", dr["DeviceIP"], dr["Port"], dr["Mac"], dr["No"]);
                if (cacheResult.Contains(matchKey) == true)
                {
                    dr["IsInCisco"] = "V";
                }
            }

            gridView1.Columns.Clear();
            gridControl1.DataSource            = dt;
            gridView1.OptionsBehavior.Editable = false;
            gridControl1.RefreshDataSource();
            gridView1.RefreshData();

            SplashScreenManager.CloseForm(false);
        }
Пример #7
0
        private void sbQuery_Click(object sender, EventArgs e)
        {
            _MajorDt = null;

            // 判斷日期
            if (deStart.Text.Length == 0 || deEnd.Text.Length == 0)
            {
                MessageBox.Show("請先選取日期區間");
                return;
            }

            // 判斷start date 不能比end date晚
            DateTime dStart = DateTime.Parse(deStart.Text);
            DateTime dEnd   = DateTime.Parse(deEnd.Text);

            if (DateTime.Compare(dStart, dEnd) > 0)
            {
                MessageBox.Show("起始日不可大於結束日");
                return;
            }

            // 判斷區間不要超過一個月
            TimeSpan ts = dEnd - dStart;
            int      differenceInDays = ts.Days;

            if (differenceInDays > 180)
            {
                MessageBox.Show("日期區間請不要超過180天");
                return;
            }

            try
            {
                using (SqlConnection connection = MvDbConnector.getErpDbConnection(MvCompanySite.MACHVISION))
                {
                    connection.Open();
                    //_majorDt = MvDbDao.CollectData_CustomerOrder(connection, _customerOrderTypes, "20200125", "20200523");
                    _MajorDt = MvDbDao.CollectData_CustomerOrder(connection, _CustomerOrderTypes, deStart.DateTime.ToString("yyyyMMdd"), deEnd.DateTime.ToString("yyyyMMdd"));
                }
            }
            catch (SqlException)
            {
                MessageBox.Show("Cant fetch data from ERP, Please inform MIS to check this issue");
                return;
            }

            gridControl1.DataSource            = _MajorDt;
            gridView1.OptionsBehavior.Editable = false;
            gridView1.RefreshData();
        }
Пример #8
0
        private void btnGetBomList_Click(object sender, EventArgs e)
        {
            DataTable tmpDt = null;

            tmpDt = MvDbDao.collectData_BomList();
            cboBomType.DataSource    = tmpDt;
            cboBomType.ValueMember   = "MC001";
            cboBomType.DisplayMember = "MB0012";
            cboBomType.Text          = "";
            cboBomType.SelectedValue = "";

            BomView.Columns.Add("BomId");
            BomView.Columns.Add("BomName");
            BomView.View = View.Details;

            enableObject(true, false);
            btnGetBomList.Visible = false;
        }
Пример #9
0
        private void sbBomP07_Click(object sender, EventArgs e)
        {
            string bomId = "21506066V01";

            //bomId = "21511015V02";

            // show wait process
            SplashScreenManager.ShowDefaultWaitForm();

            DataTable dt = new DataTable();

            //dt = MvDbDao.collectData_BomP07_VB6(bomId, false);
            dt = MvDbDao.collectData_BomP07_Thin(bomId);

            gridControl1.DataSource = dt;

            //Close Wait Form
            SplashScreenManager.CloseForm(false);
        }
Пример #10
0
        private void sbtnGet_Click(object sender, EventArgs e)
        {
            string mocNo = textEdit1.Text;

            if (textEdit1.Text.IndexOf("-") < 0)
            {
                MessageBox.Show("請輸入正確的製令單號" + Environment.NewLine + "Ex : A511-20180500001");
                return;
            }

            SplashScreenManager.ShowDefaultWaitForm();
            DataTable sourceDt = MvDbDao.collectData_Moc(mocNo);

            treeList1.DataSource = sourceDt;
            // 不開放編輯功能
            treeList1.OptionsBehavior.ReadOnly = true;
            treeList1.OptionsBehavior.Editable = false;
            treeList1.OptionsView.AutoWidth    = false;
            // 只要最後一列設定BestFit即可
            treeList1.Columns[treeList1.Columns.Count - 1].BestFit();
            SplashScreenManager.CloseForm(false);
        }
Пример #11
0
        private void sbQueryUser_Click(object sender, EventArgs e)
        {
            if (deStart.Text.Length == 0 || deEnd.Text.Length == 0)
            {
                MessageBox.Show("請先選取日期區間");
                return;
            }

            // 判斷start date 不能比end date晚
            DateTime dStart = DateTime.Parse(deStart.Text);
            DateTime dEnd   = DateTime.Parse(deEnd.Text);

            if (DateTime.Compare(dStart, dEnd) > 0)
            {
                MessageBox.Show("起始日不可大於結束日");
                return;
            }

            // 判斷區間不要超過一個月
            TimeSpan ts = dEnd - dStart;
            int      differenceInDays = ts.Days;

            if (differenceInDays > 31)
            {
                MessageBox.Show("日期區間請不要超過1個月");
                return;
            }

            _majorDt = null;
            _majorDt = MvDbDao.collectData_ItMxMail_20190904(deStart.Text, deEnd.Text);
            gridControl1.DataSource = _majorDt;
            hideGridViewForAll(ref gridView1);
            showGridViewForQuery(ref gridView1);
            gridView1.OptionsBehavior.Editable = false;
            gridView1.RefreshData();
        }
Пример #12
0
        private void sbCreateA121_Click(object sender, EventArgs e)
        {
            DataTable     majorData = null;
            StringBuilder sb        = new StringBuilder();


            //using (TransactionScope scope = new TransactionScope())
            //{
            //    SqlConnection connection = MvDbConnector.Connection_ERPDB2_Dot_MVTEST;
            //    SqlCommand command = connection.CreateCommand();
            //    try
            //    {
            //        command.CommandTimeout = 3;
            //        connection.Open();

            //        // 新增INVTA
            //        sb.AppendLine(string.Format(@"SELECT TOP 0 * from MVTEST.dbo.INVTA"));
            //        command.CommandText = sb.ToString();
            //        majorData = MvDbConnector.queryDataBySql(command);

            //        //做完以後
            //        scope.Complete();
            //    }
            //    catch (SqlException se)
            //    {
            //        //發生例外時,會自動rollback
            //        throw se;
            //    }
            //    finally
            //    {
            //        command.Dispose();
            //        connection.Close();
            //        connection.Dispose();
            //    }
            //}

            // using sql bulkcopy
            DataRow dr = null;

            using (TransactionScope scope = new TransactionScope())
            {
                SqlConnection connection = MvDbConnector.Connection_ERPDB2_Dot_MVTEST;

                try
                {
                    connection.Open();

                    // Get Data schema INVTA
                    sb.AppendLine(string.Format(@"SELECT TOP 0 * from MVTEST.dbo.INVTA"));
                    majorData = MvDbConnector.queryDataBySql(connection, sb.ToString());

                    // add simulate data
                    dr = MvDbDao.simulateData_INVTA(majorData);
                    majorData.Rows.Add(dr);

                    // use BulkCopy insert to DB
                    using (SqlBulkCopy sbc = new SqlBulkCopy(connection))
                    {
                        // set number of records to be processed
                        sbc.BatchSize            = 300;
                        sbc.DestinationTableName = ErpTableName.INVTA.ToString();

                        // Add column mappings
                        foreach (DataColumn column in majorData.Columns)
                        {
                            sbc.ColumnMappings.Add(new SqlBulkCopyColumnMapping(column.ColumnName, column.ColumnName));
                        }

                        // write to server
                        sbc.WriteToServer(majorData);
                    }

                    // Get Data schema INVTB
                    sb.Clear();
                    sb.AppendLine(string.Format(@"SELECT TOP 0 * from MVTEST.dbo.INVTB"));
                    majorData.Clear();
                    majorData.Columns.Clear();
                    majorData = MvDbConnector.queryDataBySql(connection, sb.ToString());

                    // add simulate data
                    dr = MvDbDao.simulateData_INVTB(connection, majorData, "10101001");
                    majorData.Rows.Add(dr);

                    // use BulkCopy insert to DB
                    using (SqlBulkCopy sbc = new SqlBulkCopy(connection))
                    {
                        // set number of records to be processed
                        sbc.BatchSize            = 300;
                        sbc.DestinationTableName = ErpTableName.INVTB.ToString();

                        // Add column mappings
                        foreach (DataColumn column in majorData.Columns)
                        {
                            sbc.ColumnMappings.Add(new SqlBulkCopyColumnMapping(column.ColumnName, column.ColumnName));
                        }

                        // write to server
                        sbc.WriteToServer(majorData);
                    }

                    scope.Complete();
                }
                catch (SqlException se)
                {
                    // 發生例外時,會自動rollback
                    throw se;
                }
                finally
                {
                    connection.Close();
                    connection.Dispose();
                }
            }

            sb = null;
        }
Пример #13
0
        private void sbParserRdDiffBomExcel_Click(object sender, EventArgs e)
        {
            gridControl1.DataSource = null;
            gridControl1.DataBindings.Clear();
            gridControl1.RefreshDataSource();
            gridView1.Columns.Clear();
            gridView1.RefreshData();

            Workbook workbook = new Workbook();
            bool     isLoad   = false;
            //isLoad = workbook.LoadDocument(@"D:\\1.xlsx", DocumentFormat.Xlsx);
            //Console.WriteLine("result = " + isLoad);

            ArrayList itemList = new ArrayList();


            DataTable dt = new DataTable();

            using (FileStream stream = new FileStream(@"D:\99_TempForProgram\\差異料清單表_OK_AOI4.0 R167.xlsx", FileMode.Open))
            {
                isLoad = workbook.LoadDocument(stream, DocumentFormat.Xlsx);
                if (isLoad == false)
                {
                    MessageBox.Show("請確認EXCEL檔案是否已解密");
                    return;
                }

                // 判斷Sheet只能有一個, 等要release再打開
                //if(workbook.Sheets.Count != 1)
                //{
                //    MessageBox.Show(string.Format("請確認EXCEL檔案內只有一個sheet{0}該檔現有個sheets : {1}", Environment.NewLine, workbook.Sheets.Count));
                //    return;
                //}

                // 定義column
                dt = new DataTable();
                dt.Columns.Add("Item");
                dt.Columns.Add("Add");
                dt.Columns.Add("Delete");
                dt.Columns.Add("Change");
                dt.Columns.Add("OrgA8");
                dt.Columns.Add("NewA8");
                dt.Columns.Add("A8Name");
                dt.Columns.Add("OrgCount");
                dt.Columns.Add("NewCount");
                dt.Columns.Add("IsNew");
                dt.Columns.Add("IsRDConfirm");
                dt.Columns.Add("Owner");
                dt.Columns.Add("Module");
                dt.Columns.Add("Remark");
                // 取得sheet 內容
                Worksheet sheet = workbook.Worksheets[workbook.Sheets.Count - 1];


                Range range = sheet.GetUsedRange();
                Console.WriteLine("column count = " + range.ColumnCount);
                Console.WriteLine("row count = " + range.RowCount);

                // 取得欄位標題資訊
                int j = 1;
                textBox1.Text = sheet.GetCellValue(1, 1).ToString();
                textBox2.Text = sheet.GetCellValue(1, 2).ToString();
                textBox3.Text = sheet.GetCellValue(j, 3).ToString();
                textBox4.Text = sheet.GetCellValue(j, 4).ToString();
                textBox5.Text = sheet.GetCellValue(j, 5).ToString();
                textBox6.Text = sheet.GetCellValue(j, 6).ToString();

                // 取得欄位修改內容
                j = 2;
                for (int i = 9; i <= range.RowCount; i++)
                {
                    if (sheet.GetCellValue(j, i).IsEmpty == true)
                    {
                        break;
                    }
                    j = 1;
                    DataRow dr = dt.NewRow();
                    dr["Item"]   = sheet.GetCellValue(j, i);
                    dr["Add"]    = sheet.GetCellValue(++j, i);
                    dr["Delete"] = sheet.GetCellValue(++j, i);
                    dr["Change"] = sheet.GetCellValue(++j, i);
                    dr["OrgA8"]  = sheet.GetCellValue(++j, i);

                    if (dr["OrgA8"].ToString().Equals("N/A") == false)
                    {
                        itemList.Add(dr["OrgA8"].ToString());
                    }

                    dr["NewA8"] = sheet.GetCellValue(++j, i);
                    if (dr["NewA8"].ToString().Equals("N/A") == false)
                    {
                        itemList.Add(dr["NewA8"].ToString());
                    }

                    dr["A8Name"]      = sheet.GetCellValue(++j, i);
                    dr["OrgCount"]    = sheet.GetCellValue(++j, i);
                    dr["NewCount"]    = sheet.GetCellValue(++j, i);
                    dr["IsNew"]       = sheet.GetCellValue(++j, i);
                    dr["IsRDConfirm"] = sheet.GetCellValue(++j, i);
                    dr["Owner"]       = sheet.GetCellValue(++j, i);
                    dr["Module"]      = sheet.GetCellValue(++j, i);
                    dr["Remark"]      = sheet.GetCellValue(++j, i);
                    dt.Rows.Add(dr);
                }
            }


            gridControl1.DataSource            = dt;
            gridView1.OptionsBehavior.Editable = false;
            gridView1.OptionsBehavior.ReadOnly = true;
            gridView1.RefreshData();


            // 判斷品號是否有不存在DB的資料, 如果有, 直接跳出訊息說明
            bool result = MvDbDao.checkData_hasIllegalItemInInvmb((string[])itemList.ToArray(typeof(string)));

            MessageBox.Show("resut is " + result);
        }
Пример #14
0
        /// <summary>
        /// 取得Mv網段 alive PC 與DB Table PCList的差異
        /// </summary>
        /// <returns></returns>
        public DataTable compareMvNetworkByPcName(string[] ipRange)
        {
            DataTable resultData = new DataTable("Result");

            // 定義result data的header
            foreach (string header in mvPCListHeader)
            {
                resultData.Columns.Add(header);
            }
            // 忽略大小寫
            Hashtable hashByIp   = new Hashtable(StringComparer.OrdinalIgnoreCase);
            Hashtable hashByName = new Hashtable(StringComparer.OrdinalIgnoreCase);

            // 先用IP掃描所有網段
            foreach (string ipLan in ipRange)
            {
                // 取得IP Lan 範圍
                IPEnumeration IPList = null;
                IPList = getIpRange(ipLan);

                string hostName = string.Empty;
                foreach (IPAddress ip in IPList)
                {
                    bool result = MvNetworker.isPingAlive(ip);
                    // ping 沒回應, 繼續下個IP
                    if (result == false)
                    {
                        continue;
                    }

                    try
                    {
                        // 取host name
                        IPHostEntry host = Dns.GetHostEntry(ip);
                        hostName = host.HostName;

                        hashByIp.Add(ip.ToString(), hostName);
                        // 只有取的到hostname的, 才放入hashByName, 供後續比對使用
                        hashByName.Add(hostName, ip.ToString());
                    }
                    catch (SocketException)
                    {
                        hashByIp.Add(ip.ToString(), hostName);
                    }
                }
            }
            // 用itReportLog內的資料判斷是否相同及存在
            DataTable pcList = MvDbDao.queryData_ItReportLog();
            // 因為IP會一直改變, 但DomainName不會變
            // 此部份的判斷邏輯會以DomainName為主
            string ipInTable     = string.Empty;
            string pcNameInTable = string.Empty;
            string pcNameInTableWithoutDomain = string.Empty;
            string pcNameInHash   = string.Empty;
            string ipInHashByName = string.Empty;

            // 1. 由Table PCList 比對 掃描網段的資料
            foreach (DataRow dr in pcList.Rows)
            {
                ipInTable = dr["NetworkIP"].ToString();
                pcNameInTableWithoutDomain = dr["PCName"].ToString();
                pcNameInTable = string.Format("{0}.{1}.{2}", dr["PCName"].ToString(), MvAdConnector.DomainOffice, MvAdConnector.DomainMv);

                DataRow newDr = resultData.NewRow();
                // 先用DomainName判斷是否存在Hash Table內
                // 不存在, 直接判斷該record資料已失效
                if (hashByName.Contains(pcNameInTable) == false)
                {
                    newDr["NetworkIP"]    = ipInTable;
                    newDr["PCName"]       = pcNameInTable;
                    newDr["IsSamePCName"] = "N";
                    newDr["Action"]       = "Delete";
                    newDr["Remark"]       = string.Empty;
                    resultData.Rows.Add(newDr);
                    continue;
                }
                // 存在, 取出IP做後續判斷
                ipInHashByName = hashByName[pcNameInTable].ToString();
                if (ipInHashByName.Equals(dr["NetworkIP"]) == true)
                {
                    // 判斷IP相同, 回傳不需修改
                    newDr["NetworkIP"]    = ipInTable;
                    newDr["PCName"]       = pcNameInTable;
                    newDr["IsSamePCName"] = "Y";
                    newDr["Action"]       = string.Empty;
                    newDr["Remark"]       = string.Empty;
                    hashByIp.Remove(ipInTable);
                }
                else
                {
                    // 判斷IP不同, 將要變更IP的結果存至Action
                    newDr["NetworkIP"]    = ipInTable;
                    newDr["PCName"]       = pcNameInTable;
                    newDr["IsSamePCName"] = "Y";
                    newDr["Action"]       = "ChangeIp";
                    newDr["Remark"]       = ipInHashByName;
                    // 並將要變更的IP從hash中移除
                    hashByIp.Remove(ipInHashByName);
                }
                resultData.Rows.Add(newDr);
            }
            // 2. 未被移除的資料, 即為新增, 需放入Result data
            foreach (DictionaryEntry de in hashByIp)
            {
                DataRow newDr = resultData.NewRow();
                newDr["NetworkIP"]    = de.Key;
                newDr["PCName"]       = de.Value.ToString().Replace(string.Format(".{0}.{1}", MvAdConnector.DomainOffice, MvAdConnector.DomainMv), "");
                newDr["IsSamePCName"] = "N";
                newDr["Action"]       = "New";
                newDr["Remark"]       = string.Empty;
                resultData.Rows.Add(newDr);
            }
            return(resultData);
        }
Пример #15
0
        private void cboReportType_SelectedIndexChanged(object sender, EventArgs e)
        {
            // 如果沒被選取, 則直接離開
            if (cboReportType.SelectedIndex < 0)
            {
                return;
            }
            string result = cboReportType.SelectedValue.ToString();

            // 如果有值再判斷是否要intial value
            if (result.Length == 0)
            {
                return;
            }

            // Find the report type
            DataTable tmpDt = null;

            DefinedReport.ErpReportType reportList = DefinedReport.ErpReportType.NONE;
            try
            {
                reportList = (DefinedReport.ErpReportType)Enum.Parse(typeof(DefinedReport.ErpReportType), result);
            }
            catch (ArgumentException)
            { }

            switch (reportList)
            {
            case DefinedReport.ErpReportType.MocP10Auto:
                groupBom.Enabled      = false;
                chkBomListBox.Enabled = false;
                groupDate.Enabled     = true;
                enableObject(true, false, false);

                break;

            case DefinedReport.ErpReportType.BomP09:
                // initial button value
                tmpDt = MvDbDao.collectData_BomList();
                cboBomType.DataSource    = tmpDt;
                cboBomType.ValueMember   = "MC001";
                cboBomType.DisplayMember = "MB0012";
                cboBomType.Text          = "";
                cboBomType.SelectedValue = "";
                enableObject(false, true, false);

                break;

            case DefinedReport.ErpReportType.BomP09_Multi:
                // initial button value
                tmpDt = MvDbDao.collectData_BomList();
                chkBomListBox.DataSource    = tmpDt;
                chkBomListBox.ValueMember   = "MC001";
                chkBomListBox.DisplayMember = "MB0012";
                enableObject(false, false, true);

                break;

            default:

                enableObject(false, false, false);
                // do nothing
                return;
            }
        }
Пример #16
0
        private void sbOpenFile_Click(object sender, EventArgs e)
        {
            // 開檔, Parsing 差異料清單
            OpenFileDialog dialog = new OpenFileDialog();

            dialog.Title  = "Open an Excel File";
            dialog.Filter = "Excel Files|*.xls;*.xlsx";
            // If the file name is not an empty string open it for saving.

            string filePathAndName = string.Empty;

            if (dialog.ShowDialog() == DialogResult.OK && dialog.FileName != null)
            {
                filePathAndName = dialog.FileName;
            }
            else
            {
                return;
            }

            // 讀取檔案內容, 並判斷是否有不合法的料號在內
            SplashScreenManager.ShowDefaultWaitForm();

            // 清空原始 treelist元件
            clearAllCacheData();
            // initial hash tables

            bool      isSuccess  = false;
            Workbook  workbook   = new Workbook();
            ArrayList itemList   = new ArrayList();
            DataTable excelToDt  = null;
            DataTable tempItemDt = null;

            // 讀取xlsx or xls
            string extensionName = Path.GetExtension(filePathAndName);

            using (FileStream stream = new FileStream(filePathAndName, FileMode.Open))
            {
                if (".xlsx".Equals(extensionName))
                {
                    isSuccess = workbook.LoadDocument(stream, DocumentFormat.Xlsx);
                }
                else
                {
                    isSuccess = workbook.LoadDocument(stream, DocumentFormat.Xls);
                }
            }

            if (isSuccess == false)
            {
                MessageBox.Show("請確認EXCEL檔案是否已解密");
                return;
            }

            // 判斷Sheet只能有一個, 等要release再打開
            if (workbook.Sheets.Count != 1)
            {
                MessageBox.Show(string.Format("請確認EXCEL檔案內只有一個sheet{0}該檔現有個sheets : {1}", Environment.NewLine, workbook.Sheets.Count));
                return;
            }

            // 取得sheet 內容
            Worksheet sheet = workbook.Worksheets[workbook.Sheets.Count - 1];
            Range     range = sheet.GetUsedRange();


            // 取得欄位標題資訊
            int j = 4;

            string[] excelHeader = new string[13];
            for (int i = 0; i < excelHeader.Length; i++)
            {
                excelHeader[i] = sheet.GetCellValue(i, j).ToString();
            }

            // 定義column
            excelToDt = CustomStructure.cloneExcelPrDtColumn();

            // 取得欄位內容
            // 判斷工號必需要完全相同
            string empNo = string.Empty;

            for (int i = 5; i <= range.RowCount; i++)
            {
                j = 0;
                DataRow dr = excelToDt.NewRow();
                dr["TB043"] = sheet.GetCellValue(j, i);
                dr["TA012"] = sheet.GetCellValue(++j, i);
                if (i == 5)
                {
                    empNo = dr["TA012"].ToString();
                }
                if (empNo.Length == 0)
                {
                    MessageBox.Show("請購人員不允許為空值");
                    return;
                }
                dr["TB004"] = sheet.GetCellValue(++j, i);
                // 判斷品號為空值時, 停止再向下parsing
                if (sheet.GetCellValue(j, i).IsEmpty == true)
                {
                    break;
                }
                // 當判斷品號不為空值時, 加判斷工號是否相同
                // 如不相同, 也不允許再往下執行
                if (empNo.Equals(dr["TA012"].ToString()) == false)
                {
                    MessageBox.Show("該Excel內含2組以上的工號, 不允許匯入作業");
                    return;
                }
                itemList.Add(dr["TB004"]);
                dr["TB005"] = sheet.GetCellValue(++j, i);
                dr["TB006"] = sheet.GetCellValue(++j, i);
                dr["TB009"] = sheet.GetCellValue(++j, i);
                dr["TB008"] = sheet.GetCellValue(++j, i);
                dr["TB011"] = sheet.GetCellValue(++j, i);
                dr["TB010"] = sheet.GetCellValue(++j, i);
                dr["TB012"] = sheet.GetCellValue(++j, i);
                dr["TB029"] = sheet.GetCellValue(++j, i);
                dr["TB201"] = sheet.GetCellValue(++j, i);
                dr["TA202"] = sheet.GetCellValue(++j, i);
                excelToDt.Rows.Add(dr);
            }

            // 判斷料號是否有不存在DB的資料
            // 如果有, 存入cacheillegalItem, 後續顯示訊息判斷使用
            tempItemDt = MvDbDao.checkData_hasIllegalItemListInInvmb((string[])itemList.ToArray(typeof(string)));
            // 依判斷是否有非合法的Item執行後續判斷
            // 即便有不合法的Item, 介面還是要顯示出來, 因為要提供使用者檢查使用
            // 判斷excel轉成data table後的欄位正確性查檢
            // 只有有問題的時候, 才需要取得BackColorList
            bool isIllegal = checkDataValidAndSetBackColor(excelToDt, tempItemDt, ref hashTreeListBackColor[0]);

            if (tempItemDt != null && tempItemDt.Rows.Count >= 1 || isIllegal == true)
            {
                // 判斷excel轉成data table後的欄位正確性查檢
                // 只有有問題的時候, 才需要取得BackColorList
                // checkDataValidAndSetBackColor(dt, tempItemDt, ref hashTreeListBackColor[0]);
                MessageBox.Show("部份料號不存在DB, 或Excel內容有不正確欄位");
            }
            else
            {
                cachePrDt = excelToDt.Copy();
            }
            // 設定各Sheet 權限
            // 不開放編輯功能, 或隱藏欄位等
            treeList1.DataSource = excelToDt;
            setColumnsCaption(ref excelHeader, ref treeList1);

            //treeList1.Columns["MB004"].Visible = false;

            treeList1.BestFitColumns();
            treeList1.OptionsView.AutoWidth    = false;
            treeList1.OptionsBehavior.ReadOnly = true;
            treeList1.OptionsBehavior.Editable = false;

            // 命名每個Pages
            xtraTabControl1.TabPages[0].Text = "EXCEL_PR";
            xtraTabControl1.SelectedTabPage  = xtraTabControl1.TabPages[0];

            SplashScreenManager.CloseForm(false);
        }
Пример #17
0
        private void sbtnGetBomList_Click(object sender, EventArgs e)
        {
            if (isInitialBomList == true)
            {
                // 第一次取得BomList
                DataTable tmpDt = null;
                tmpDt = MvDbDao.collectData_BomList();
                cboBomType.DataSource    = tmpDt;
                cboBomType.ValueMember   = "MC001";
                cboBomType.DisplayMember = "MB0012";
                cboBomType.Text          = "";
                cboBomType.SelectedValue = "";
                isInitialBomList         = false;
                return;
            }

            string result = cboBomType.SelectedValue == null ? "" : cboBomType.SelectedValue.ToString();

            if (result.Length == 0)
            {
                MessageBox.Show("Please choice the bom");
                return;
            }
            // show wait process
            SplashScreenManager.ShowDefaultWaitForm();

            clearAllBomCacheDtAndTreeList();
            // initial hash tables
            for (int i = 0; i < hashTreeListBackColor.Length; i++)
            {
                hashTreeListBackColor[i] = new Hashtable();
            }

            MvBomCompareBo bo       = new MvBomCompareBo();
            DataSet        sourceDs = null;

            // get source data set
            sourceDs = bo.GetDevDataSet_BomP09_Thin(result, true).Copy();
            DataTable sourceDt = sourceDs.Tables[result + "_Filter"].Copy();
            DataTable filterDt = sourceDs.Tables[result + "_Filter"].Copy();

            sourceDt.TableName = sourceDt.TableName.Replace("_Filter", "");
            filterDt.TableName = filterDt.TableName.Replace("_Filter", "");

            DataTable tempDt = null;

            // 找出選配
            tempDt = bo.getOptionalItem(filterDt);

            // 檢查選配是否合理
            // LV=1, 選配, LV=2, 不可以有再製
            bool checkValid = false;

            checkValid = bo.checkOptionalItemValid(tempDt);
            if (checkValid == false)
            {
                // 只顯示optional 的部份
                tempDt.Columns.Remove("AmountSpace");
                tempDt.Columns.Remove("NameSpaceNoVer");
                tempDt.Columns.Remove("Column9");
                tempDt.Columns["ModuleLv1"].SetOrdinal(6);
                treeList2.DataSource = tempDt.Clone();
                showTreeListByLevel(treeList2, tempDt, ref hashTreeListBackColor[1], false, true);
                setColumnsCaption(ref treeList2);
                MessageBox.Show("LV=1的選配展開後含再製件, 請確認Bom表選配內容是否正確");
                return;
            }

            // 確認資料正確性均合理後, 再copy至cacheBomDt
            // set cache datatable
            if (cacheBomDt != null)
            {
                cacheBomDt.Clear();
            }
            cacheBomDt = filterDt.Copy();


            // 第1個Table的特別處理
            sourceDt.Columns["ModuleLv1"].SetOrdinal(6);

            treeList1.DataSource = sourceDt.Clone();
            hashTreeListBackColor[0].Clear();
            showTreeListByLevel(treeList1, sourceDt, ref hashTreeListBackColor[0], false, false);
            setColumnsCaption(ref treeList1);

            // 第2個Table的特別處理
            tempDt.Columns["ModuleLv1"].SetOrdinal(6);
            treeList2.DataSource = tempDt.Clone();
            showTreeListByLevel(treeList2, tempDt, ref hashTreeListBackColor[1], false, true);
            setColumnsCaption(ref treeList2);


            // 設定各Sheet的Sheet權限
            // 不開放編輯功能, 或隱藏欄位等
            treeList1.Columns["RowId"].Visible          = false;
            treeList1.Columns["NameSpace"].Visible      = false;
            treeList1.Columns["NameSpaceNoVer"].Visible = false;
            treeList2.Columns["AmountSpace"].Visible    = false;
            treeList1.Columns["Column9"].Visible        = false;
            treeList1.Columns["MD013"].Visible          = false;
            treeList2.Columns["RowId"].Visible          = false;
            treeList2.Columns["NameSpace"].Visible      = false;
            treeList2.Columns["NameSpaceNoVer"].Visible = false;
            treeList2.Columns["AmountSpace"].Visible    = false;
            treeList2.Columns["Column9"].Visible        = false;
            treeList2.Columns["MD013"].Visible          = false;
            treeList2.Columns["OrgLV"].Visible          = false;

            treeList1.BestFitColumns();
            treeList2.BestFitColumns();

            treeList1.OptionsView.AutoWidth = false;
            treeList2.OptionsView.AutoWidth = false;

            treeList1.OptionsBehavior.ReadOnly = true;
            treeList2.OptionsBehavior.ReadOnly = true;

            treeList1.OptionsBehavior.Editable = false;
            treeList2.OptionsBehavior.Editable = false;

            treeList2.ExpandAll();
            treeList2.OptionsView.ShowCheckBoxes = true;
            treeList2.OptionsBehavior.AllowRecursiveNodeChecking = true;

            // 命名每個Pages
            xtraTabControl1.TabPages[0].Text = "Original_Bom";
            xtraTabControl1.SelectedTabPage  = xtraTabControl1.TabPages[0];
            //Close Wait Form
            SplashScreenManager.CloseForm(false);
        }
Пример #18
0
        private void btnCompare_Click_Thin(object sender, EventArgs e)
        {
            DataTable tmpDt = new DataTable();

            if (isInitialBomList == true)
            {
                // 第一次取得BomList

                tmpDt = MvDbDao.collectData_BomList();
                cboBomType.DataSource    = tmpDt;
                cboBomType.ValueMember   = "MC001";
                cboBomType.DisplayMember = "MB0012";
                cboBomType.Text          = "";
                cboBomType.SelectedValue = "";
                isInitialBomList         = false;
                return;
            }

            if (BomView.Items.Count < 2)
            {
                MessageBox.Show("請選擇2個bom表");
                return;
            }

            // 取得已選取的list
            List <string> selectedList = new List <string>();

            foreach (var item in BomView.Items)
            {
                string row = (item as ListViewItem).Text;
                selectedList.Add(row);
            }

            // 判斷是否選取相同的Bom表
            if (selectedList[0].Equals(selectedList[1]) == true)
            {
                MessageBox.Show("請不要選取相同的bom表比對");
                return;
            }

            // show wait process
            SplashScreenManager.ShowDefaultWaitForm();

            DataSet        sourceDs = new DataSet();
            MvBomCompareBo bo       = new MvBomCompareBo();

            sourceDs = bo.CollectSourceDsProcess_BomP09_Thin(selectedList.ToArray <string>()).Copy();

            // filter data
            DataTable sourceDt1 = sourceDs.Tables[0].Copy();
            DataTable sourceDt2 = sourceDs.Tables[1].Copy();
            DataSet   summaryDs = new DataSet();
            DataSet   tmpDs     = new DataSet();

            // show tree list node
            // 設定column
            DataTable filterDt1 = bo.filterDataByRdRule(sourceDt1, true);
            DataTable filterDt2 = bo.filterDataByRdRule(sourceDt2, true);

            DataTable dtIncludeNameSpace1;
            DataTable dtIncludeNameSpace2;
            DataTable summaryDt;

            dtIncludeNameSpace1 = bo.extendBomNameSpace(filterDt1, true);
            dtIncludeNameSpace2 = bo.extendBomNameSpace(filterDt2, true);

            summaryDs = bo.compareBomByRuleRd_v2(dtIncludeNameSpace1, dtIncludeNameSpace2, false);
            tmpDs     = bo.compareBomByRuleRd_v2(dtIncludeNameSpace2, dtIncludeNameSpace1, true);

            // 顯示Detail Summary相關資訊
            // 相同的資料不用再呈現差異的比對資訊
            tmpDt = summaryDs.Tables["Same"];
            tmpDt.Columns.Remove("CompareLV");
            tmpDt.Columns.Remove("CompareA8");
            tmpDt.Columns.Remove("CompareMD006");
            tmpDt.Columns.Remove("ModuleLv1");
            treeList3.DataSource = tmpDt.Copy();
            summaryDt            = summaryDs.Tables["Different"];
            summaryDt.Merge(tmpDs.Tables["Different"]);
            treeList4.DataSource = summaryDt.Copy();
            setCompareDetailColumnsCaption(ref treeList3, ref treeList4);

            // 顯示SummaryBom相關資訊 for RD
            tmpDt = new DataTable();
            tmpDt = bo.generateSummaryTableByRd(summaryDt, true);
            treeList5.DataSource = tmpDt.Copy();
            setSummaryDetailColumnsCaption(ref treeList5);

            // 整理SummaryBom For Pur
            tmpDt = bo.generateSummaryTableByPur(summaryDt);
            treeList6.DataSource = tmpDt.Copy();
            setSummaryColumnsCaption(ref treeList6);

            // initial hash tables
            for (int i = 0; i < hashTreeListBackColor.Length; i++)
            {
                hashTreeListBackColor[i] = new Hashtable();
            }

            // 注意 ParentFieldName必需在 showTreeListByLevel之前
            // 只要設定過, Level的功能會失效
            treeList1.DataSource      = dtIncludeNameSpace1.Clone();
            treeList1.ParentFieldName = dtIncludeNameSpace1.TableName;
            hashTreeListBackColor[0].Clear();
            showTreeListByLevel(treeList1, dtIncludeNameSpace1, ref hashTreeListBackColor[0], false);
            setColumnsCaption(ref treeList1);

            // 注意 ParentFieldName必需在 showTreeListByLevel之前
            // 只要設定過, Level的功能會失效
            treeList2.DataSource      = dtIncludeNameSpace2.Clone();
            treeList2.ParentFieldName = dtIncludeNameSpace2.TableName;
            hashTreeListBackColor[1].Clear();
            showTreeListByLevel(treeList2, dtIncludeNameSpace2, ref hashTreeListBackColor[1], false);
            setColumnsCaption(ref treeList2);

            xtraTabControl1.TabPages[0].Text = string.Format("{0} vs {1}", filterDt1.TableName, filterDt2.TableName);
            xtraTabControl1.TabPages[1].Text = "CompareDetail";
            xtraTabControl1.TabPages[2].Text = "SummaryDetail";
            xtraTabControl1.TabPages[3].Text = "Summary";

            // Sheet1,2 不開放編輯功能, treeList 1,2,3,4
            // Sheet3,4 開放編輯功能, 這些資料都只能是read only
            treeList1.OptionsBehavior.ReadOnly = true;
            treeList2.OptionsBehavior.ReadOnly = true;
            treeList3.OptionsBehavior.ReadOnly = true;
            treeList4.OptionsBehavior.ReadOnly = true;
            treeList5.OptionsBehavior.ReadOnly = true;
            treeList6.OptionsBehavior.ReadOnly = true;

            treeList1.OptionsBehavior.Editable = false;
            treeList2.OptionsBehavior.Editable = false;
            treeList3.OptionsBehavior.Editable = false;
            treeList4.OptionsBehavior.Editable = false;
            treeList5.OptionsBehavior.Editable = false;
            treeList6.OptionsBehavior.Editable = false;

            treeList1.Columns["NameSpace"].Visible      = false;
            treeList1.Columns["NameSpaceNoVer"].Visible = false;
            treeList1.Columns["MD013"].Visible          = false;
            treeList1.Columns["AmountSpace"].Visible    = false;
            treeList1.Columns["RowId"].Visible          = false;

            treeList2.Columns["NameSpace"].Visible      = false;
            treeList2.Columns["NameSpaceNoVer"].Visible = false;
            treeList2.Columns["MD013"].Visible          = false;
            treeList2.Columns["AmountSpace"].Visible    = false;
            treeList2.Columns["RowId"].Visible          = false;

            //Close Wait Form
            SplashScreenManager.CloseForm(false);
        }
Пример #19
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            DataSet ds        = new DataSet();
            bool    blnResult = false;

            // get the report start's date and end date
            startDate = dateTimePicker1.Value;
            endDate   = dateTimePicker2.Value;


            if (startDate.CompareTo(endDate) > 0)
            {
                if (DateTime.Compare(startDate.Date, endDate.Date) != 0)
                {
                    MessageBox.Show("結束日期需大於等於起始日期");
                    return;
                }
            }

            string result = cboReportType.SelectedValue == null ? "" : cboReportType.SelectedValue.ToString();

            if (result.Length == 0)
            {
                MessageBox.Show("Please choice the report type");
                return;
            }

            // Find the report type
            DefinedReport.ErpReportType reportList = DefinedReport.ErpReportType.NONE;

            try
            {
                reportList = (DefinedReport.ErpReportType)Enum.Parse(typeof(DefinedReport.ErpReportType), result);
            }
            catch (ArgumentException)
            { }

            MvExcelReport report = new MvExcelReport();

            switch (reportList)
            {
            case DefinedReport.ErpReportType.MocP10Auto:

                endDate         = System.DateTime.Now;
                startDate       = DateTime.Parse(endDate.AddMonths(-4).ToShortDateString());
                fileNameAndPath = string.Format("{0}{1}_{2}.xlsx", workingDirectory, DefinedReport.ErpReportType.MocP10Auto.ToString(), endDate.ToString("yyyyMMdd"));

                Console.WriteLine(System.DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss.fff") + " start report");
                ds = MvDbDao.collectData_MocP10Auto_VB6(System.DateTime.Now);

                blnResult = report.generateMocP10Auto(fileNameAndPath, ds);
                if (blnResult == false)
                {
                    MessageBox.Show("generate MocP10Auto fail");
                }
                else
                {
                    MessageBox.Show(string.Format("generate {0} done {1}{2}", DefinedReport.ErpReportType.MocP10Auto.ToString(), Environment.NewLine, fileNameAndPath));
                }

                break;

            case DefinedReport.ErpReportType.BomP09:

                result = cboBomType.SelectedValue == null ? "" : cboBomType.SelectedValue.ToString();
                if (result.Length == 0)
                {
                    MessageBox.Show("Please choice the BOM type");
                    return;
                }

                ds = MvDbDao.collectData_BomP09_VB6(new string[] { result });
                fileNameAndPath = string.Format("{0}{1}_{2}.xlsx", workingDirectory, DefinedReport.ErpReportType.BomP09.ToString(), endDate.ToString("yyyyMMdd"));
                blnResult       = report.generateBomP09_NoPrice(fileNameAndPath, ds);
                if (blnResult == false)
                {
                    MessageBox.Show("generate MocP10Auto fail");
                }
                else
                {
                    MessageBox.Show(string.Format("generate {0} done {1}{2}", DefinedReport.ErpReportType.BomP09.ToString(), Environment.NewLine, fileNameAndPath));
                }

                break;

            case DefinedReport.ErpReportType.BomP09_Multi:

                if (chkBomListBox.CheckedItems.Count <= 0)
                {
                    MessageBox.Show("please checked more than one");
                    return;
                }

                List <string> selectedList = new List <string>();
                foreach (var itemChecked in chkBomListBox.CheckedItems)
                {
                    var row = (itemChecked as DataRowView).Row;
                    selectedList.Add(row["MC001"].ToString());
                }

                ds = MvDbDao.collectData_BomP09_VB6(selectedList.ToArray <string>());
                fileNameAndPath = string.Format("{0}{1}_{2}.xlsx", workingDirectory, DefinedReport.ErpReportType.BomP09_Multi.ToString(), endDate.ToString("yyyyMMdd"));
                blnResult       = report.generateBomP09_NoPrice(fileNameAndPath, ds);

                if (blnResult == false)
                {
                    MessageBox.Show("generate MocP10Auto fail");
                }
                else
                {
                    MessageBox.Show(string.Format("generate {0} done {1}{2}", DefinedReport.ErpReportType.BomP09_Multi.ToString(), Environment.NewLine, fileNameAndPath));
                }

                break;

            default:

                MessageBox.Show("Can't find the report type as " + result);
                break;
            }
        }
        private void sbtnGetBomList_Click(object sender, EventArgs e)
        {
            if (isInitialBomList == true)
            {
                // 第一次取得BomList
                DataTable tmpDt = null;
                tmpDt = MvDbDao.collectData_BomList();
                cboBomType.DataSource    = tmpDt;
                cboBomType.ValueMember   = "MC001";
                cboBomType.DisplayMember = "MB0012";
                cboBomType.Text          = "";
                cboBomType.SelectedValue = "";
                isInitialBomList         = false;
                return;
            }

            string result = cboBomType.SelectedValue == null ? "" : cboBomType.SelectedValue.ToString();

            if (result.Length == 0)
            {
                MessageBox.Show("Please choice the bom");
                return;
            }
            // show wait process
            SplashScreenManager.ShowDefaultWaitForm();

            MvBomCompareBo bo = new MvBomCompareBo();

            // initial hash tables
            for (int i = 0; i < hashTreeListBackColor.Length; i++)
            {
                hashTreeListBackColor[i] = new Hashtable();
            }

            // get source data set by stored procedure
            DataSet sourceDs;

            sourceDs = bo.GetDevDataSet_BomP09_Thin(result, false).Copy();
            DataTable sourceDt = sourceDs.Tables[result].Copy();

            treeList1.DataSource = sourceDt.Clone();
            hashTreeListBackColor[0].Clear();
            showTreeListByLevel(treeList1, sourceDt, ref hashTreeListBackColor[0], false);
            setColumnsCaption(ref treeList1);

            // get source data set by optional data
            DataSet sourceDsOptional;

            sourceDsOptional = bo.GetDevDataSet_BomP09_Thin(result, false).Copy();
            DataTable sourceDtOptional = sourceDsOptional.Tables[result].Copy();

            treeList2.DataSource = sourceDtOptional.Clone();
            hashTreeListBackColor[1].Clear();
            showTreeListByLevel(treeList2, sourceDtOptional, ref hashTreeListBackColor[1], false);
            setColumnsCaption(ref treeList2);

            // Sheet1,2 不開放編輯功能, treeList 1,2,3
            //treeList1.OptionsBehavior.ReadOnly = true;
            treeList2.OptionsBehavior.ReadOnly = true;

            treeList1.OptionsBehavior.Editable = false;
            treeList2.OptionsBehavior.Editable = false;

            // Sheet1 show checkbox
            treeList1.OptionsView.ShowCheckBoxes = true;

            treeList1.OptionsBehavior.AllowRecursiveNodeChecking = true;

            //Close Wait Form
            SplashScreenManager.CloseForm(false);
        }
Пример #21
0
        private void btnLogin_Click(object sender, EventArgs e)
        {
            // 輸入ad帳號的登入密碼 + 認證
            bool   result     = false;
            string userName   = txtAccount.Text.Trim();
            string passWord   = txtPassWord.Text.Trim();
            string domainName = MvAdConnector.DomainOffice;

            if (userName.Length == 0)
            {
                MessageBox.Show("請輸入AD帳號");
                txtAccount.Focus();
                return;
            }

            if (passWord.Length == 0)
            {
                MessageBox.Show("請輸入AD密碼");
                txtPassWord.Focus();
                return;
            }

            // 先parse出company, 以利下面連線判斷
            GlobalMvVariable.MvAdCompany          = (MvCompanySite)Enum.Parse(typeof(MvCompanySite), cboCompany.Text, false);
            GlobalMvVariable.UserData.CompanySite = (MvCompanySite)Enum.Parse(typeof(MvCompanySite), cboCompany.Text, false);

            // 連線至LDAP 確認使用者帳密是否合法
            result = MvAdConnector.validateUser(userName, passWord, domainName);
            // 目前問AD的功能已失效, 要重新改寫, 暫時不卡密碼
            result = true;
            if (result == false)
            {
                MessageBox.Show("帳號或密碼錯誤, 請重新輸入");
                txtAccount.Clear();
                txtPassWord.Clear();
                txtAccount.Focus();
                return;
            }

            // 連線至mvWorkFlow 確認使用者是否在職
            result = MvDbDao.validateUserFromMvWorkFlow(userName, passWord);
            if (result == false)
            {
                MessageBox.Show("該帳號人員已離職, 請重新輸入");
                txtAccount.Clear();
                txtPassWord.Clear();
                txtAccount.Focus();
                return;
            }

            // 連線至ERP GP 確認使用者是否在職
            //result = MvDbDao.validateUserFromErpGP(GlobalMvVariable.MvAdCompany, userName, passWord);
            result = true;
            if (result == false)
            {
                MessageBox.Show("該帳號人員無ERP權限, 請重新輸入");
                txtAccount.Clear();
                txtPassWord.Clear();
                txtAccount.Focus();
                return;
            }

            // 取得工號及部門代碼
            GlobalMvVariable.UserData.AdAccount = userName;
            GlobalMvVariable.UserData.Password  = passWord;

            result = MvDbDao.getUserInfo(ref GlobalMvVariable.UserData);
            if (result == false)
            {
                MessageBox.Show("該帳號人員無mvWorkFlow系統權限, 請重新輸入");
                txtAccount.Clear();
                txtPassWord.Clear();
                txtAccount.Focus();
                GlobalMvVariable.UserData.clear();
                return;
            }


            // 存入全域變數
            GlobalMvVariable.MvAdUserName = userName;
            GlobalMvVariable.MvAdPassword = passWord;

            // 進入Main頁面
            new frmMainDev().Show();
            this.Hide();
            // 這個部份有改過Program.cs, 才可以使用此方式
            // 否則會直接關掉Project
            this.Close();
        }
Пример #22
0
        private void sbtnGetBomList_Click(object sender, EventArgs e)
        {
            if (isInitialBomList == true)
            {
                // 第一次取得BomList
                DataTable tmpDt = null;
                tmpDt = MvDbDao.collectData_BomList();
                cboBomType.DataSource    = tmpDt;
                cboBomType.ValueMember   = "MC001";
                cboBomType.DisplayMember = "MB0012";
                cboBomType.Text          = "";
                cboBomType.SelectedValue = "";
                isInitialBomList         = false;
                return;
            }

            string result = cboBomType.SelectedValue == null ? "" : cboBomType.SelectedValue.ToString();

            if (result.Length == 0)
            {
                MessageBox.Show("Please choice the bom");
                return;
            }
            // show wait process
            SplashScreenManager.ShowDefaultWaitForm();

            MvBomCompareBo bo = new MvBomCompareBo();
            DataSet        sourceDs;

            // get source data set
            //sourceDs = bo.GetBomP07InfoByDev(result, false).Copy();
            sourceDs = bo.GetDevDataSet_BomP09_Thin(result, false).Copy();
            DataTable sourceDt = sourceDs.Tables[result].Copy();
            DataTable filterDt = sourceDs.Tables[result + "_Filter"].Copy();
            DataTable mocDt;

            // convert bom to moc
            mocDt    = bo.convertBomToMoc(filterDt);
            tmpMocDt = mocDt.Clone();

            // initial hash tables
            for (int i = 0; i < hashTreeListBackColor.Length; i++)
            {
                hashTreeListBackColor[i] = new Hashtable();
            }

            // 第1個Table的特別處理
            treeList1.DataSource = sourceDt.Clone();
            hashTreeListBackColor[0].Clear();
            showTreeListByLevel(treeList1, sourceDt, ref hashTreeListBackColor[0], false);
            setColumnsCaption(ref treeList1);

            // 第2個Table的特別處理
            filterDt.Columns.Remove("AmountSpace");
            treeList2.DataSource = filterDt.Clone();
            hashTreeListBackColor[1].Clear();
            showTreeListByLevel(treeList2, filterDt, ref hashTreeListBackColor[1], false);
            setColumnsCaption(ref treeList2);

            // 第3個Table的特別處理
            mocDt.Columns.Remove("MD006");
            mocDt.Columns["RealAmount"].SetOrdinal(5);
            mocDt.Columns["ModuleLv1"].SetOrdinal(7);
            treeList3.DataSource = mocDt.Clone();
            hashTreeListBackColor[2].Clear();
            showTreeListByLevel(treeList3, mocDt, ref hashTreeListBackColor[2], false);
            setColumnsCaption(ref treeList3);

            xtraTabControl1.TabPages[0].Text = sourceDt.TableName;
            xtraTabControl1.TabPages[1].Text = sourceDt.TableName + "_虛擬製令";

            // Sheet1,2 不開放編輯功能, treeList 1,2,3
            treeList1.Columns["MD013"].Visible = false;
            treeList2.Columns["MD013"].Visible = false;

            treeList1.OptionsView.AutoWidth = false;
            treeList2.OptionsView.AutoWidth = false;
            treeList3.OptionsView.AutoWidth = false;

            treeList1.OptionsBehavior.ReadOnly = true;
            treeList2.OptionsBehavior.ReadOnly = true;
            treeList3.OptionsBehavior.ReadOnly = true;

            treeList1.OptionsBehavior.Editable = false;
            treeList2.OptionsBehavior.Editable = false;
            treeList3.OptionsBehavior.Editable = false;

            //Close Wait Form
            SplashScreenManager.CloseForm(false);
        }