private void InitialLabel(PartInfo sPartInfo, Dictionary <string, List <string> > DicToolNoControl) { try { //設定基礎資料資訊 CusName.Text = sPartInfo.CusName; PartNo.Text = sPartInfo.PartNo; CusRev.Text = sPartInfo.CusRev; OpRev.Text = sPartInfo.OpRev; OIS.Text = sPartInfo.OpNum; ToolNoCombo.Items.AddRange(DicToolNoControl.Keys.ToArray()); //由料號取得DB中PEMain的資訊 comPEMain = session.QueryOver <Com_PEMain>() .Where(x => x.partName == sPartInfo.PartNo) .And(x => x.customerVer == sPartInfo.CusRev) .And(x => x.opVer == sPartInfo.OpRev) .SingleOrDefault <Com_PEMain>(); //由PEMain與OIS取得DB中PartOperation的資訊 comPartOperation = session.QueryOver <Com_PartOperation>() .Where(x => x.comPEMain == comPEMain) .And(x => x.operation1 == sPartInfo.OpNum) .SingleOrDefault <Com_PartOperation>(); //由PartOperation取得DB中DraftingVer的資訊 comMEMain = session.QueryOver <Com_MEMain>() .Where(x => x.comPartOperation == comPartOperation) .List <Com_MEMain>(); //設定圖版 foreach (Com_MEMain i in comMEMain) { DraftingRev.Items.Add(i.draftingVer); } if (DraftingRev.Items.Count == 1) { DraftingRev.Text = DraftingRev.Items[0].ToString(); } //設定ToolPathPanel foreach (KeyValuePair <string, List <string> > kvp in DicToolNoControl) { foreach (string i in kvp.Value) { GridRow row = new GridRow(kvp.Key, i); panel.Rows.Add(row); } } } catch (System.Exception ex) { } }
public static bool SetFixInsPanelData(Com_PartOperation comPartOperation, string cus, string partNo, string cusVer, string opVer, string op1, ref GridPanel FixInsPanel) { try { IList <Com_FixInspection> listComFixIns = session.QueryOver <Com_FixInspection>().Where(x => x.comPartOperation == comPartOperation).List(); //int FixInsCount = -1; foreach (Com_FixInspection i in listComFixIns) { //FixInsCount++; object[] o = new object[] { false, i.fixPartName, i.fixinsDescription, i.fixinsNo, i.fixinsERP }; FixInsPanel.Rows.Add(new GridRow(o)); //FixInsPanel.GetCell(FixInsCount, 0).Value = false; //string pdfString = string.Format(@"{0}\{1}\{2}\{3}\{4}\{5}\{6}\{7}", OutputForm.EnvVariables.env_Task, cus, partNo, cusVer, opVer, "OP" + op1, "OIS", i.fixPartName); //string[] pdfFiles = System.IO.Directory.GetFileSystemEntries(pdfString, "*.pdf"); //if (pdfFiles.Length > 0) //{ // o = new object[] { false, i.fixPartName + ".pdf", "", "", "" }; // FixInsPanel.Rows.Add(new GridRow(o)); //} } //將模檢治具的PDF拉到外面搜尋 string pdfString = string.Format(@"{0}\{1}\{2}\{3}\{4}\{5}\{6}", OutputForm.EnvVariables.env_Task, cus, partNo, cusVer, opVer, "OP" + op1, "OIS"); string[] pdfFiles = Directory.GetDirectories(pdfString); foreach (string i in pdfFiles) { string[] pdfPath = System.IO.Directory.GetFileSystemEntries(i, "*.pdf"); foreach (string y in pdfPath) { object[] o = new object[] { false, Path.GetFileName(y), "", "", "" }; FixInsPanel.Rows.Add(new GridRow(o)); } } //if (pdfFiles.Length > 0) //{ // o = new object[] { false, i.fixPartName + ".pdf", "", "", "" }; // FixInsPanel.Rows.Add(new GridRow(o)); //} } catch (System.Exception ex) { return(false); } return(true); }
public static bool GetCom_PartOperation(string op1, Com_PEMain comPEMain, out Com_PartOperation comPartOperation) { comPartOperation = new Com_PartOperation(); try { comPartOperation = FixInsUploadDlg.session.QueryOver <Com_PartOperation>().Where(x => x.comPEMain.peSrNo == comPEMain.peSrNo).Where(x => x.operation1 == op1).SingleOrDefault <Com_PartOperation>(); if (comPartOperation == null) { System.Windows.Forms.MessageBox.Show("資料庫無此製程序,無法上傳"); return(false); } } catch (System.Exception ex) { return(false); } return(true); }
public static bool GetCom_PartOperation(PartInfo sPartInfo, Com_PEMain comPEMain, out Com_PartOperation comPartOperation) { comPartOperation = new Com_PartOperation(); try { comPartOperation = session.QueryOver <Com_PartOperation>() .Where(x => x.comPEMain.peSrNo == comPEMain.peSrNo) .And(x => x.operation1 == sPartInfo.OpNum) .SingleOrDefault <Com_PartOperation>(); if (comPartOperation == null) { return(false); } } catch (System.Exception ex) { return(false); } return(true); }
public static bool SetTEPanelData(Com_PartOperation comPartOperation, string cus, string partNo, string cusVer, string opVer, string op1, ref GridPanel TEPanel) { try { List <string> ExcelData = new List <string>(); GridComboBoxExEditControl singleCell; IList <Com_TEMain> comTEMain = session.QueryOver <Com_TEMain>() .Where(x => x.comPartOperation == comPartOperation).List <Com_TEMain>(); int TECount = -1; foreach (Com_TEMain i in comTEMain) { #region 由teExcelSrNo取得對應的ExcelType Sys_TEExcel sysTEExcel = session.QueryOver <Sys_TEExcel>() .Where(x => x.teExcelSrNo == i.sysTEExcel.teExcelSrNo).SingleOrDefault <Sys_TEExcel>(); ExcelData = new List <string>(); status = GetExcelForm.GetTEExcelForm(sysTEExcel.teExcelType, out ExcelData); if (!status) { return(false); } #endregion #region 插入Panel TECount++; object[] o = new object[] { false, sysTEExcel.teExcelType, i.ncGroupName, "" , string.Format("{0}_{1}_{2}資料夾" , partNo , cusVer , opVer) }; TEPanel.Rows.Add(new GridRow(o)); TEPanel.GetCell(TECount, 0).Value = false; TEPanel.GetCell(TECount, 3).EditorType = typeof(GridComboBoxExEditControl); singleCell = TEPanel.GetCell(TECount, 3).EditControl as GridComboBoxExEditControl; //singleCell.Items.Add(""); foreach (string tempStr in ExcelData) { singleCell.Items.Add(tempStr); } if (singleCell.Items.Count == 1) { TEPanel.GetCell(TECount, 3).Value = singleCell.Items[0].ToString(); } else { TEPanel.GetCell(TECount, 3).Value = "(雙擊)選擇表單"; } #endregion } #region 取得ToolList的表單格式 ExcelData = new List <string>(); status = GetExcelForm.GetTEExcelForm("ToolList", out ExcelData); if (!status) { return(false); } #endregion foreach (Com_TEMain i in comTEMain) { #region 找ToolList資料,並插入Panel IList <Com_ToolList> comToolList = session.QueryOver <Com_ToolList>().Where(x => x.comTEMain == i).List(); if (comToolList.Count == 0) { continue; } else { TECount++; object[] o = new object[] { false, "ToolList", i.ncGroupName, "" , string.Format("{0}_{1}_{2}資料夾" , partNo , cusVer , opVer) }; TEPanel.Rows.Add(new GridRow(o)); TEPanel.GetCell(TECount, 0).Value = false; TEPanel.GetCell(TECount, 3).EditorType = typeof(GridComboBoxExEditControl); singleCell = TEPanel.GetCell(TECount, 3).EditControl as GridComboBoxExEditControl; //singleCell.Items.Add(""); foreach (string tempStr in ExcelData) { singleCell.Items.Add(tempStr); } if (singleCell.Items.Count == 1) { TEPanel.GetCell(TECount, 3).Value = singleCell.Items[0].ToString(); } else { TEPanel.GetCell(TECount, 3).Value = "(雙擊)選擇表單"; } } #endregion } #region 找NC資料夾,並插入Panel string CAMFolderPath = string.Format(@"{0}\{1}\{2}\{3}\{4}\{5}\{6}", OutputForm.EnvVariables.env_Task, cus, partNo, cusVer, opVer, "OP" + op1, "CAM"); //string CAMFolderPath = string.Format(@"{0}\{1}\{2}\{3}\{4}\{5}\{6}", CaxEnv.GetGlobaltekEnvDir() + "\\Task", cus, partNo, cusVer, opVer, "OP" + op1, "CAM"); string[] NCFolder = Directory.GetDirectories(CAMFolderPath); foreach (string item in NCFolder) { if (!item.Contains("NC")) { continue; } TECount++; object[] o = new object[] { false, "NC程式", Path.GetFileNameWithoutExtension(item), "" , string.Format("{0}_{1}_{2}資料夾" , partNo , cusVer , opVer) }; TEPanel.Rows.Add(new GridRow(o)); } #endregion } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); return(false); } return(true); }
public static bool SetMEPanelData(Com_PartOperation comPartOperation, string cus, string partNo, string cusVer, string opVer, string op1, ref GridPanel MEPanel) { try { Com_MEMain comMEMain1 = new Com_MEMain(); IList <Com_Dimension> listComDimension1 = new List <Com_Dimension>(); CaxSQL.GetCom_MEMain(comPartOperation, out comMEMain1); CaxSQL.GetListCom_Dimension(comMEMain1, out listComDimension1); //Com_MEMain comMEMain = session.QueryOver<Com_MEMain>() // .Where(x => x.comPartOperation == comPartOperation).SingleOrDefault<Com_MEMain>(); //IList<Com_Dimension> listComDimension = session.QueryOver<Com_Dimension>() // .Where(x => x.comMEMain == comMEMain).List<Com_Dimension>(); int MECount = -1; foreach (Com_Dimension i in listComDimension1) { //2017.02.14判斷是否已經有插入過 bool IsExist = false; for (int y = 0; y < MEPanel.Rows.Count; y++) { if (i.excelType == MEPanel.GetCell(y, 1).Value.ToString()) { IsExist = true; } } if (IsExist) { continue; } MECount++; //由excelType取得廠區專用的Excel路徑 List <string> ExcelData = new List <string>(); status = GetExcelForm.GetMEExcelForm(i.excelType, out ExcelData); if (!status) { return(false); } object[] o = new object[] { false, i.excelType, i.draftingVer, "" , string.Format("{0}_{1}_{2}資料夾" , partNo , cusVer , opVer) }; MEPanel.Rows.Add(new GridRow(o)); MEPanel.GetCell(MECount, 0).Value = false; MEPanel.GetCell(MECount, 3).EditorType = typeof(GridComboBoxExEditControl); GridComboBoxExEditControl singleCell = MEPanel.GetCell(MECount, 3).EditControl as GridComboBoxExEditControl; //singleCell.Items.Add(""); foreach (string tempStr in ExcelData) { singleCell.Items.Add(tempStr); } if (singleCell.Items.Count == 1) { MEPanel.GetCell(MECount, 3).Value = singleCell.Items[0].ToString(); } else { MEPanel.GetCell(MECount, 3).Value = "(雙擊)選擇表單"; } } #region 找OIS資料夾,並插入Panel string OISFolderPath = string.Format(@"{0}\{1}\{2}\{3}\{4}\{5}\{6}", OutputForm.EnvVariables.env_Task, cus, partNo, cusVer, opVer, "OP" + op1, "OIS"); //string OISFolderPath = string.Format(@"{0}\{1}\{2}\{3}\{4}\{5}\{6}", CaxEnv.GetGlobaltekEnvDir() + "\\Task", cus, partNo, cusVer, opVer, "OP" + op1, "OIS"); string[] OISFolder = Directory.GetFileSystemEntries(OISFolderPath, "*.pdf"); foreach (string item in OISFolder) { if (!item.Contains(".pdf")) { continue; } MECount++; object[] o = new object[] { false, "PDF", Path.GetFileNameWithoutExtension(item), "", string.Format("{0}_{1}_{2}資料夾", partNo, cusVer, opVer) }; MEPanel.Rows.Add(new GridRow(o)); } #endregion } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); return(false); } return(true); }
private void OK_Click(object sender, EventArgs e) { try { #region (註解中)檢查PC有無Excel在執行 //bool flag = false; //foreach (var item in Process.GetProcesses()) //{ // if (item.ProcessName == "EXCEL") // { // flag = true; // break; // } //} //if (flag) //{ // MessageBox.Show("請先關閉所有Excel再重新執行輸出,如沒有EXCEL在執行,請開啟工作管理員關閉背景EXCEL"); // return; //} #endregion bool flag = false; Dictionary <string, List <Sys_TipTop> > DicToolERP = new Dictionary <string, List <Sys_TipTop> >(); if (productNo.Text != "") { if (!File.Exists("D:\\Knife.xls")) { MessageBox.Show("TipTop的文件不存在,無法比對資料,僅由UG資料輸出"); flag = true; goto ExportFromUG; } string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=D:\\Knife.xls;" + "Extended Properties='Excel 8.0;" + "HDR=YES;" + "IMEX=1'"; OleDbConnection GetXLS = new OleDbConnection(strCon); GetXLS.Open(); System.Data.DataTable Table = GetXLS.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); //查詢此Excel所有的工作表名稱 //List<Sys_TipTop> ListSheetA = new List<Sys_TipTop>(); string SelectSheetName = ""; foreach (DataRow row in Table.Rows) { //抓取Xls各個Sheet的名稱(+'$')-有的名稱需要加名稱'',有的不用 SelectSheetName = (string)row["TABLE_NAME"]; //工作表名稱有特殊字元、空格,需加'工作表名稱$',ex:'Sheet_A$' //工作表名稱沒有特殊字元、空格,需加工作表名稱$,ex:SheetA$ //所有工作表名稱為Sheet1,讀取此工作表的內容 if (SelectSheetName == "工作表1$") { //select 工作表名稱 OleDbCommand cmSheetA = new OleDbCommand(" SELECT * FROM [工作表1$] ", GetXLS); OleDbDataReader drSheetA = cmSheetA.ExecuteReader(); //讀取工作表SheetA資料 //List<string> ListSheetA = new List<string>(); while (drSheetA.Read()) { if (drSheetA[0].ToString() == "") { break; } List <Sys_TipTop> ListSheetA = new List <Sys_TipTop>(); status = DicToolERP.TryGetValue(drSheetA[0].ToString(), out ListSheetA); if (!status) { ListSheetA = new List <Sys_TipTop>(); Sys_TipTop sSys_TipTop = new Sys_TipTop(); sSys_TipTop.productNo = drSheetA[0].ToString(); sSys_TipTop.stepNo = drSheetA[1].ToString(); sSys_TipTop.partNo = drSheetA[2].ToString(); sSys_TipTop.ois = drSheetA[3].ToString(); sSys_TipTop.erpNo = drSheetA[4].ToString(); sSys_TipTop.toolNo = drSheetA[5].ToString(); sSys_TipTop.usedCount = drSheetA[6].ToString(); sSys_TipTop.toolLife = drSheetA[7].ToString(); sSys_TipTop.toolChangeTime = drSheetA[8].ToString(); sSys_TipTop.toolSpec = drSheetA[9].ToString(); ListSheetA.Add(sSys_TipTop); DicToolERP.Add(drSheetA[0].ToString(), ListSheetA); } else { Sys_TipTop sSys_TipTop = new Sys_TipTop(); sSys_TipTop.productNo = drSheetA[0].ToString(); sSys_TipTop.stepNo = drSheetA[1].ToString(); sSys_TipTop.partNo = drSheetA[2].ToString(); sSys_TipTop.ois = drSheetA[3].ToString(); sSys_TipTop.erpNo = drSheetA[4].ToString(); sSys_TipTop.toolNo = drSheetA[5].ToString(); sSys_TipTop.usedCount = drSheetA[6].ToString(); sSys_TipTop.toolLife = drSheetA[7].ToString(); sSys_TipTop.toolChangeTime = drSheetA[8].ToString(); sSys_TipTop.toolSpec = drSheetA[9].ToString(); ListSheetA.Add(sSys_TipTop); DicToolERP[drSheetA[0].ToString()] = ListSheetA; } } /*步驟4:關閉檔案*/ //結束關閉讀檔(必要,不關會有error) drSheetA.Close(); GetXLS.Close(); } } } else { flag = true; } ExportFromUG: excelApp = new ApplicationClass(); book = null; sheet = null; oRng = null; excelApp.Visible = false; book = excelApp.Workbooks.Open(ToolListPath); sheet = (Worksheet)book.Sheets[1]; oRng = (Range)sheet.Cells; oRng[52, 10] = PartNo; //Insert所需欄位並填入資料 //新版CurrentRow從7開始、ToolNumberColumn從1開始、ToolNameColumn從8開始 //舊版CurrentRow從8開始、ToolNumberColumn從2開始、ToolNameColumn從3開始 int CurrentRow = 6, ToolNumberColumn = 1, ToolERPColumn = 2, ToolCutterQtyColumn = 3, ToolCutterLifeColumn = 4, ToolFluteQtyColumn = 5, ToolTitleColumn = 6, ToolSpecColumn = 8, ToolNoteColumn = 10; //將相同刀號記錄起來,只輸出一筆資料 Dictionary <string, OperData> DicToolData = new Dictionary <string, OperData>(); //for (int i = 0; i < panel.Rows.Count; i++) //{ // OperData toolData = new OperData(); // status = DicToolData.TryGetValue(ReplaceToolNumber(panel.GetCell(i, 0).Value.ToString()), out toolData); // if (!status) // { // toolData.ERP_NO = panel.GetCell(i, 1).Value.ToString(); // toolData.CUTTER_QTY = panel.GetCell(i, 2).Value.ToString(); // toolData.CUTTER_LIFE = panel.GetCell(i, 3).Value.ToString(); // toolData.FLUTE_QTY = panel.GetCell(i, 4).Value.ToString(); // toolData.TITLE = panel.GetCell(i, 5).Value.ToString(); // toolData.SPECIFICATION = panel.GetCell(i, 6).Value.ToString(); // toolData.NOTE = panel.GetCell(i, 7).Value.ToString(); // DicToolData.Add(ReplaceToolNumber(panel.GetCell(i, 0).Value.ToString()), toolData); // } //} if (flag) { int StartRow = 0, EndRow = 0; oRng = (Range)sheet.Cells; foreach (KeyValuePair <string, List <OperData> > kvp in DicNCData) { if (CurrentNCName != kvp.Key) { continue; } foreach (OperData i in kvp.Value) { CurrentRow = CurrentRow + 1; StartRow = CurrentRow; oRng[CurrentRow, ToolNumberColumn] = i.ToolNumber;//暫時不寫TOOL_NO,原因是有些刀子不是用系統掉進來會沒有屬性 oRng[CurrentRow, ToolERPColumn] = i.ERP_NO; oRng[CurrentRow, ToolCutterQtyColumn] = i.CUTTER_QTY; oRng[CurrentRow, ToolCutterLifeColumn] = i.CUTTER_LIFE; oRng[CurrentRow, ToolFluteQtyColumn] = i.FLUTE_QTY; oRng[CurrentRow, ToolTitleColumn] = i.TITLE; oRng[CurrentRow, ToolSpecColumn] = i.SPECIFICATION; oRng[CurrentRow, ToolNoteColumn] = i.NOTE; if (i.ACCESSORY != "") { // xxx!QQ!TC10D20FL5R2SD10L40 ? zxb!zxv!zxc ? 34!23!12 string[] SplitAccessory = i.ACCESSORY.Split('?'); foreach (string j in SplitAccessory) { CurrentRow = CurrentRow + 1; string[] Spliti = j.Split('!'); oRng[CurrentRow, ToolERPColumn] = Spliti[0]; oRng[CurrentRow, ToolTitleColumn] = Spliti[1]; oRng[CurrentRow, ToolSpecColumn] = Spliti[2]; } } EndRow = CurrentRow; //合併儲存格 sheet.get_Range("A" + StartRow, "A" + EndRow).Merge(false); } } //foreach (KeyValuePair<string, OperData> kvp in DicToolData) //{ // CurrentRow = CurrentRow + 1; // oRng[CurrentRow, ToolNumberColumn] = kvp.Key; // oRng[CurrentRow, ToolERPColumn] = kvp.Value.ERP_NO; // oRng[CurrentRow, ToolCutterQtyColumn] = kvp.Value.CUTTER_QTY; // oRng[CurrentRow, ToolCutterLifeColumn] = kvp.Value.CUTTER_LIFE; // oRng[CurrentRow, ToolFluteQtyColumn] = kvp.Value.FLUTE_QTY; // oRng[CurrentRow, ToolTitleColumn] = kvp.Value.TITLE; // oRng[CurrentRow, ToolSpecColumn] = kvp.Value.SPECIFICATION; // oRng[CurrentRow, ToolNoteColumn] = kvp.Value.NOTE; //} oRng[51, 10] = "OIS-" + comboBoxNCName.Text.Split('P')[1].Split('_')[0]; } else { //判斷TipTopExcel與UG的資料整理出要輸出的資料 Dictionary <string, List <Sys_TipTop> > DicExportData = new Dictionary <string, List <Sys_TipTop> >(); foreach (KeyValuePair <string, List <Sys_TipTop> > i in DicToolERP) { if (i.Key != productNo.Text) { continue; } foreach (KeyValuePair <string, OperData> j in DicToolData) { foreach (Sys_TipTop k in i.Value) { if (k.ois != ois.Text) { continue; } if (k.toolNo != j.Key) { continue; } List <Sys_TipTop> temp = new List <Sys_TipTop>(); status = DicExportData.TryGetValue(j.Key, out temp); if (!status) { temp = new List <Sys_TipTop>(); Sys_TipTop sSys_TipTop = new Sys_TipTop(); sSys_TipTop.productNo = k.productNo; sSys_TipTop.stepNo = k.stepNo; sSys_TipTop.partNo = k.partNo; sSys_TipTop.ois = k.ois; sSys_TipTop.erpNo = k.erpNo; sSys_TipTop.toolNo = k.toolNo; sSys_TipTop.usedCount = k.usedCount; sSys_TipTop.toolLife = k.toolLife; sSys_TipTop.toolChangeTime = k.toolChangeTime; sSys_TipTop.toolSpec = k.toolSpec; sSys_TipTop.toolUGSpec = j.Value.SPECIFICATION; temp.Add(sSys_TipTop); DicExportData.Add(j.Key, temp); } else { Sys_TipTop sSys_TipTop = new Sys_TipTop(); sSys_TipTop.productNo = k.productNo; sSys_TipTop.stepNo = k.stepNo; sSys_TipTop.partNo = k.partNo; sSys_TipTop.ois = k.ois; sSys_TipTop.erpNo = k.erpNo; sSys_TipTop.toolNo = k.toolNo; sSys_TipTop.usedCount = k.usedCount; sSys_TipTop.toolLife = k.toolLife; sSys_TipTop.toolChangeTime = k.toolChangeTime; sSys_TipTop.toolSpec = k.toolSpec; sSys_TipTop.toolUGSpec = j.Value.SPECIFICATION; temp.Add(sSys_TipTop); DicExportData[j.Key] = temp; } } } } oRng = (Range)sheet.Cells; foreach (KeyValuePair <string, List <Sys_TipTop> > kvp in DicExportData) { foreach (Sys_TipTop i in kvp.Value) { CurrentRow = CurrentRow + 1; oRng[CurrentRow, ToolNumberColumn] = i.toolNo; oRng[CurrentRow, ToolERPColumn] = i.erpNo; oRng[CurrentRow, ToolCutterQtyColumn] = "1"; oRng[CurrentRow, ToolCutterLifeColumn] = i.toolLife; oRng[CurrentRow, ToolFluteQtyColumn] = i.usedCount; oRng[CurrentRow, ToolTitleColumn] = i.toolSpec; oRng[CurrentRow, ToolSpecColumn] = i.toolUGSpec; } } } if (Is_Local != null) { ISession session = MyHibernateHelper.SessionFactory.OpenSession(); Com_PEMain comPEMain = new Com_PEMain(); #region 由料號查peSrNo try { comPEMain = session.QueryOver <Com_PEMain>().Where(x => x.partName == sPartInfo.PartNo) .Where(x => x.customerVer == sPartInfo.CusRev) .Where(x => x.opVer == sPartInfo.OpRev) .SingleOrDefault <Com_PEMain>(); } catch (System.Exception ex) { MessageBox.Show("1.資料庫中沒有此料號的紀錄,無法上傳刀具清單資料"); return; } #endregion Com_PartOperation comPartOperation = new Com_PartOperation(); #region 由peSrNo和OpNum查partOperationSrNo try { comPartOperation = session.QueryOver <Com_PartOperation>() .Where(x => x.comPEMain.peSrNo == comPEMain.peSrNo) .Where(x => x.operation1 == sPartInfo.OpNum) .SingleOrDefault <Com_PartOperation>(); } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); MessageBox.Show("2.資料庫中沒有此料號的紀錄,無法上傳刀具清單資料"); return; } #endregion #region 比對資料庫TEMain是否有同筆數據 IList <Com_TEMain> DBData_ComTEMain = session.QueryOver <Com_TEMain>().List <Com_TEMain>(); bool Is_Exist = false; Com_TEMain currentComTEMain = new Com_TEMain(); foreach (Com_TEMain i in DBData_ComTEMain) { if (i.comPartOperation == comPartOperation && i.ncGroupName == CurrentNCName) { Is_Exist = true; currentComTEMain = i; break; } } #endregion if (Is_Exist) { #region 刪除Com_ToolList IList <Com_ToolList> DB_ToolList = session.QueryOver <Com_ToolList>() .Where(x => x.comTEMain.teSrNo == currentComTEMain.teSrNo).List <Com_ToolList>(); using (ITransaction trans = session.BeginTransaction()) { foreach (Com_ToolList i in DB_ToolList) { session.Delete(i); } trans.Commit(); } #endregion foreach (KeyValuePair <string, List <OperData> > kvp in DicNCData) { if (CurrentNCName != kvp.Key) { continue; } foreach (OperData i in kvp.Value) { Com_ToolList comToolList = new Com_ToolList(); comToolList.comTEMain = currentComTEMain; comToolList.toolNumber = i.TOOL_NO; comToolList.erpNumber = i.ERP_NO; comToolList.cutterQty = i.CUTTER_QTY; comToolList.cutterLife = i.CUTTER_LIFE; comToolList.fluteQty = i.FLUTE_QTY; comToolList.title = i.TITLE; comToolList.specification = i.SPECIFICATION; comToolList.note = i.NOTE; comToolList.accessory = i.ACCESSORY; using (ITransaction trans = session.BeginTransaction()) { session.Save(comToolList); trans.Commit(); } } } //foreach (KeyValuePair<string, OperData> kvp in DicToolData) //{ // Com_ToolList comToolList = new Com_ToolList(); // comToolList.comTEMain = currentComTEMain; // comToolList.toolNumber = kvp.Key; // comToolList.erpNumber = kvp.Value.ERP_NO; // comToolList.cutterQty = kvp.Value.CUTTER_QTY; // comToolList.cutterLife = kvp.Value.CUTTER_LIFE; // comToolList.fluteQty = kvp.Value.FLUTE_QTY; // comToolList.title = kvp.Value.TITLE; // comToolList.specification = kvp.Value.SPECIFICATION; // comToolList.note = kvp.Value.NOTE; // using (ITransaction trans = session.BeginTransaction()) // { // session.Save(comToolList); // trans.Commit(); // } //} } } //oRng = (Range)sheet.Cells; //foreach (KeyValuePair<string,string> kvp in DicToolData) //{ // CurrentRow = CurrentRow + 1; // oRng[CurrentRow, ToolNumberColumn] = kvp.Key; // oRng[CurrentRow, ToolNameColumn] = kvp.Value; //} //oRng = (Range)sheet.Cells; //for (int i = 0; i < panel.Rows.Count; i++) //{ // //取得Row,Column // CurrentRow = CurrentRow + 1; // //新版 // oRng[CurrentRow, ToolNumberColumn] = panel.GetCell(i, 1).Value.ToString(); // oRng[CurrentRow, ToolNameColumn] = panel.GetCell(i, 2).Value.ToString(); // //舊版 // //oRng[CurrentRow, OpNameColumn] = panel.GetCell(i, 0).Value.ToString(); // //oRng[CurrentRow, ToolNumberColumn] = panel.GetCell(i, 1).Value.ToString(); // //oRng[CurrentRow, ToolNameColumn] = panel.GetCell(i, 2).Value.ToString(); // //oRng[CurrentRow, ToolDescColumn] = panel.GetCell(i, 3).Value.ToString(); //} MessageBox.Show("刀具清單【完成】"); } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); MessageBox.Show("刀具清單【失敗】"); } finally { book.SaveAs(OutputPath, XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); book.Close(Type.Missing, Type.Missing, Type.Missing); excelApp.Quit(); } this.Close(); }
private void InitialLabel(PartInfo sPartInfo, string OpName) { try { //設定基礎資料資訊 CusName.Text = sPartInfo.CusName; PartNo.Text = sPartInfo.PartNo; CusRev.Text = sPartInfo.CusRev; OpRev.Text = sPartInfo.OpRev; OIS.Text = sPartInfo.OpNum; //由料號取得DB中PEMain的資訊 comPEMain = session.QueryOver <Com_PEMain>() .Where(x => x.partName == sPartInfo.PartNo) .And(x => x.customerVer == sPartInfo.CusRev) .And(x => x.opVer == sPartInfo.OpRev) .SingleOrDefault <Com_PEMain>(); //由PEMain與OIS取得DB中PartOperation的資訊 comPartOperation = session.QueryOver <Com_PartOperation>() .Where(x => x.comPEMain == comPEMain) .And(x => x.operation1 == sPartInfo.OpNum) .SingleOrDefault <Com_PartOperation>(); //由PartOperation取得DB中DraftingVer的資訊 comMEMain = session.QueryOver <Com_MEMain>() .Where(x => x.comPartOperation == comPartOperation) .List <Com_MEMain>(); foreach (Com_MEMain i in comMEMain) { DraftingRev.Items.Add(i.draftingVer); } if (DraftingRev.Items.Count == 1) { DraftingRev.Text = DraftingRev.Items[0].ToString(); } //設定程式資訊 OperationName.Text = OpName; foreach (KeyValuePair <ExportShopDocDlg.ControlDimen_Key, List <ExportShopDocDlg.ControlDimen_Value> > kvp in ExportShopDocDlg.DicControlDimen) { if (kvp.Key.OperationName != OpName) { continue; } ToolNo.Text = kvp.Key.ToolNo; ToolName.Text = kvp.Key.ToolName; ToolHolder.Text = kvp.Key.ToolHolder; foreach (ExportShopDocDlg.ControlDimen_Value i in kvp.Value) { if (i.ControlBallon == "" || i.TheoryTolRange == "" || i.ControlTolRange == "") { break; } DraftingRev.Text = i.DraftingRev; GridRow row = new GridRow(i.ControlBallon, i.TheoryTolRange, i.ControlTolRange, "刪除"); panel.Rows.Add(row); } } } catch (System.Exception ex) { } }
private void Upload_Click(object sender, EventArgs e) { try { int SheetCount = 0; NXOpen.Tag[] SheetTagAry = null; theUfSession.Draw.AskDrawings(out SheetCount, out SheetTagAry); //判斷是否需要出PDF List <DrawingSheet> drawingSheets = new List <DrawingSheet>(); for (int j = 0; j < SheetCount; j++) { drawingSheets.Add((DrawingSheet)NXObjectManager.Get(SheetTagAry[j])); } if (this.ExportPDF.Checked) { if (!Directory.Exists(this.L_Folder)) { Directory.CreateDirectory(this.L_Folder); } string str1 = string.Format(@"{0}\{1}.pdf", this.L_Folder, Path.GetFileNameWithoutExtension(FixInsUploadDlg.displayPart.FullPath)); CaxME.CreateOISPDF(drawingSheets, str1); //傳OIS圖到SERVER if (!Directory.Exists(S_Folder)) { System.IO.Directory.CreateDirectory(S_Folder); } CaxPublic.DirectoryCopy(this.L_Folder, S_Folder, true); } //取得WorkPart資訊並檢查資料是否完整 DadDimension.WorkPartAttribute sWorkPartAttribute = new DadDimension.WorkPartAttribute(); status = DadDimension.GetWorkPartAttribute(workPart, out sWorkPartAttribute); if (!status) { if (this.ExportPDF.Checked) { MessageBox.Show("量測資訊不足,僅上傳PDF檔案,上傳完成!"); } else { MessageBox.Show("量測資訊不足,無法上傳資料!"); } this.Close(); return; } //if (sWorkPartAttribute.draftingVer == "" || sWorkPartAttribute.draftingDate == "" || // sWorkPartAttribute.partDescription == "" || sWorkPartAttribute.material == "") //{ // MessageBox.Show("量測資訊不足"); // this.Close(); // return; //} //取得所有量測尺寸資料 List <DadDimension> listDimensionData = new List <DadDimension>(); for (int i = 0; i < SheetCount; i++) { //打開Sheet並記錄所有OBJ NXOpen.Drawings.DrawingSheet CurrentSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[i]); CurrentSheet.Open(); CurrentSheet.View.UpdateDisplay(); DisplayableObject[] SheetObj = CurrentSheet.View.AskVisibleObjects(); status = Com_FixDimension.RecordFixDimension(SheetObj, sWorkPartAttribute, ref listDimensionData); if (!status) { this.Close(); return; } } //將圖片存到本機Globaltek內 for (int i = 0; i < PicNameStr.Length; i++) { string destFileName = string.Format(@"{0}\{1}", this.L_Folder, PicNameStr[i]); File.Copy(PicPathStr[i], destFileName, true); } //由料號查Com_PEMain Com_PEMain cCom_PEMain = new Com_PEMain(); status = CaxSQL.GetCom_PEMain(cCaxUpLoad.CusName, cCaxUpLoad.PartName, cCaxUpLoad.CusRev, cCaxUpLoad.OpRev, out cCom_PEMain); if (!status) { return; } //由Com_PEMain和Op查Com_PartOperation Com_PartOperation cCom_PartOperation = new Com_PartOperation(); status = CaxSQL.GetCom_PartOperation(cCom_PEMain, cCaxUpLoad.OpNum, out cCom_PartOperation); if (!status) { return; } #region 比對資料庫FixInspection是否有同筆數據 bool Is_Exit = true; Com_FixInspection cCom_FixInspection = new Com_FixInspection(); CaxSQL.GetCom_FixInspection(cCom_PartOperation, Path.GetFileNameWithoutExtension(workPart.FullPath), out cCom_FixInspection); if (cCom_FixInspection == null) { Is_Exit = false; } if (Is_Exit && eTaskDialogResult.Yes == CaxPublic.ShowMsgYesNo("此檢、治具已存在上一筆資料,是否更新?")) { #region 刪除Com_FixDimension IList <Com_FixDimension> listComFixDimension = new List <Com_FixDimension>(); CaxSQL.GetListCom_FixDimension(cCom_FixInspection, out listComFixDimension); foreach (Com_FixDimension i in listComFixDimension) { CaxSQL.Delete <Com_FixDimension>(i); } #endregion #region 刪除Com_FixInspection CaxSQL.Delete <Com_FixInspection>(cCom_FixInspection); #endregion Is_Exit = false; } if (!Is_Exit) { cCom_FixInspection = new Com_FixInspection() { comPartOperation = cCom_PartOperation, fixinsDescription = this.Desc.Text, fixinsERP = this.ERPNo.Text, fixinsNo = this.FixInsNo.Text, fixPicPath = this.S_PicPath, fixPartName = Path.GetFileNameWithoutExtension(FixInsUploadDlg.workPart.FullPath) }; IList <Com_FixDimension> listCom_FixDimension = new List <Com_FixDimension>(); foreach (DadDimension i in listDimensionData) { //Com_FixDimension cCom_FixDimension = new Com_FixDimension() //{ // comFixInspection = comFixInspection //}; ////cCom_FixDimension.comFixInspection = comFixInspection; //CaxME.MappingData(i, ref cCom_FixDimension); //listCom_FixDimension.Add(cCom_FixDimension); Com_FixDimension cCom_FixDimension = new Com_FixDimension(); cCom_FixDimension.MappingData(i); cCom_FixDimension.comFixInspection = cCom_FixInspection; listCom_FixDimension.Add(cCom_FixDimension); } cCom_FixInspection.comFixDimension = listCom_FixDimension; CaxSQL.Save <Com_FixInspection>(cCom_FixInspection); //傳OIS圖到SERVER if (!Directory.Exists(S_Folder)) { System.IO.Directory.CreateDirectory(S_Folder); } CaxPublic.DirectoryCopy(this.L_Folder, S_Folder, true); } #endregion MessageBox.Show("上傳完成"); base.Close(); } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); } }
private void OK_Click(object sender, EventArgs e) { CaxPart.SaveAll(); //Part上傳 List <string> ListPartName = new List <string>(); status = CaxMEUpLoad.UploadPart(DicPartDirData, out ListPartName); //status = Function.UploadPart(DicPartDirData, out ListPartName); if (!status) { this.Close(); return; } System.IO.File.WriteAllLines(string.Format(@"{0}\{1}\{2}", sDownUpLoadDat.Server_ShareStr, "OP" + cCaxMEUpLoad.OpNum, "PartNameText_OIS.txt"), ListPartName.ToArray()); //新增TE的下載文件 if (TEDownloadText.Count > 0) { string PartNameText_CAM = string.Format(@"{0}\{1}\{2}", sDownUpLoadDat.Server_ShareStr, "OP" + cCaxMEUpLoad.OpNum, "PartNameText_CAM.txt"); foreach (string i in TEDownloadText) { using (StreamWriter sw = File.AppendText(PartNameText_CAM)) { sw.WriteLine(i); } } } #region (註解)Excel上傳 /* * //Excel上傳 * if (File.Exists(sExcelDirData.ExcelIPQCLocalDir)) * { * try * { * File.Copy(sExcelDirData.ExcelIPQCLocalDir, sExcelDirData.ExcelIPQCServerDir, true); * } * catch (System.Exception ex) * { * CaxLog.ShowListingWindow("IPQC.xls上傳失敗"); * this.Close(); * } * } * * if (File.Exists(sExcelDirData.ExcelSelfCheckLocalDir)) * { * try * { * File.Copy(sExcelDirData.ExcelSelfCheckLocalDir, sExcelDirData.ExcelSelfCheckServerDir, true); * } * catch (System.Exception ex) * { * CaxLog.ShowListingWindow("SelfCheck.xls上傳失敗"); * this.Close(); * } * } * * if (File.Exists(sExcelDirData.ExcelIQCLocalDir)) * { * try * { * File.Copy(sExcelDirData.ExcelIQCLocalDir, sExcelDirData.ExcelIQCServerDir, true); * } * catch (System.Exception ex) * { * CaxLog.ShowListingWindow("IQC.xls上傳失敗"); * this.Close(); * } * } * * if (File.Exists(sExcelDirData.ExcelFAILocalDir)) * { * try * { * File.Copy(sExcelDirData.ExcelFAILocalDir, sExcelDirData.ExcelFAIServerDir, true); * } * catch (System.Exception ex) * { * CaxLog.ShowListingWindow("FAI.xls上傳失敗"); * this.Close(); * } * } * * if (File.Exists(sExcelDirData.ExcelFQCLocalDir)) * { * try * { * File.Copy(sExcelDirData.ExcelFQCLocalDir, sExcelDirData.ExcelFQCServerDir, true); * } * catch (System.Exception ex) * { * CaxLog.ShowListingWindow("FQC.xls上傳失敗"); * this.Close(); * } * } */ #endregion int SheetCount = 0; NXOpen.Tag[] SheetTagAry = null; theUfSession.Draw.AskDrawings(out SheetCount, out SheetTagAry); List <NXOpen.Drawings.DrawingSheet> listDrawingSheet = new List <NXOpen.Drawings.DrawingSheet>(); for (int i = 0; i < SheetCount; i++) { //打開Sheet並記錄所有OBJ NXOpen.Drawings.DrawingSheet CurrentSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[i]); listDrawingSheet.Add(CurrentSheet); } #region 輸出OIS //輸出PDF if (ExportPFD.Checked == true) { //建立PFD資料夾 string PFDFullPath = string.Format(@"{0}\{1}", sDownUpLoadDat.Local_Folder_OIS, cCaxMEUpLoad.PartName + "_OIS" + cCaxMEUpLoad.OpNum + ".pdf"); CaxME.CreateOISPDF(listDrawingSheet, PFDFullPath); //OIS資料夾上傳 status = CaxPublic.DirectoryCopy(sDownUpLoadDat.Local_Folder_OIS, sDownUpLoadDat.Server_Folder_OIS, true); if (!status) { MessageBox.Show("OIS資料夾複製失敗,請聯繫開發工程師"); this.Close(); } } #endregion #region 資料上傳至Database //取得WorkPart資訊並檢查資料是否完整 DadDimension.WorkPartAttribute sWorkPartAttribute = new DadDimension.WorkPartAttribute(); //status = Function.GetWorkPartAttribute(workPart, out sWorkPartAttribute); status = DadDimension.GetWorkPartAttribute(workPart, out sWorkPartAttribute); if (!status) { MessageBox.Show("量測資訊不足,僅上傳CAD檔案,上傳完成!"); this.Close(); return; } #region 取得所有量測尺寸資料 /* * //取得泡泡特徵,並記錄總共有幾個泡泡,後續比對數量用 * IdSymbolCollection BallonCollection = workPart.Annotations.IdSymbols; * IdSymbol[] BallonAry = BallonCollection.ToArray(); * int balloonCount = 0; * foreach (IdSymbol i in BallonAry) * { * try * { * i.GetStringAttribute("BalloonAtt"); * balloonCount++; * } * catch (System.Exception ex) * { * continue; * } * } * * List<CaxME.DimensionData> listDimensionData = new List<CaxME.DimensionData>(); * List<int> listBalloonCount = new List<int>(); * NXOpen.Drawings.DrawingSheet FirstSheet = null; * while (listBalloonCount.Count != balloonCount) * { * for (int i = 0; i < SheetCount; i++) * { * //打開Sheet並記錄所有OBJ * NXOpen.Drawings.DrawingSheet CurrentSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[i]); * if (CurrentSheet.Name == "S1") * { * FirstSheet = CurrentSheet; * } * CurrentSheet.Open(); * CurrentSheet.View.UpdateDisplay(); * DisplayableObject[] SheetObj = CurrentSheet.View.AskVisibleObjects(); * status = CaxME.RecordDimension(SheetObj, sWorkPartAttribute, ref listDimensionData); * if (!status) * { * this.Close(); * return; * } * } * foreach (CaxME.DimensionData i in listDimensionData) * { * if (!listBalloonCount.Contains(i.ballonNum)) * { * listBalloonCount.Add(i.ballonNum); * } * } * * } */ //List<CaxME.DimensionData> listDimensionData = new List<CaxME.DimensionData>(); List <DadDimension> listDimensionData = new List <DadDimension>(); NXOpen.Drawings.DrawingSheet FirstSheet = null; for (int i = 0; i < SheetCount; i++) { //打開Sheet並記錄所有OBJ NXOpen.Drawings.DrawingSheet CurrentSheet = (NXOpen.Drawings.DrawingSheet)NXObjectManager.Get(SheetTagAry[i]); if (CurrentSheet.Name == "S1") { FirstSheet = CurrentSheet; } CurrentSheet.Open(); CurrentSheet.View.UpdateDisplay(); DisplayableObject[] SheetObj = CurrentSheet.View.AskVisibleObjects(); status = Com_Dimension.RecordDimension(SheetObj, sWorkPartAttribute, ref listDimensionData); if (!status) { this.Close(); return; } } #endregion //切回首頁 if (FirstSheet != null) { FirstSheet.Open(); } //由料號查Com_PEMain Com_PEMain cCom_PEMain = new Com_PEMain(); status = CaxSQL.GetCom_PEMain(cCaxMEUpLoad.CusName, cCaxMEUpLoad.PartName, cCaxMEUpLoad.CusRev, cCaxMEUpLoad.OpRev, out cCom_PEMain); if (!status) { return; } //由Com_PEMain和Op查Com_PartOperation Com_PartOperation cCom_PartOperation = new Com_PartOperation(); status = CaxSQL.GetCom_PartOperation(cCom_PEMain, cCaxMEUpLoad.OpNum, out cCom_PartOperation); if (!status) { return; } #region (註解)由excelType查meExcelSrNo //Sys_MEExcel sysMEExcel = new Sys_MEExcel(); //try //{ // sysMEExcel = session.QueryOver<Sys_MEExcel>().Where(x => x.meExcelType == meExcelType).SingleOrDefault<Sys_MEExcel>(); //} //catch (System.Exception ex) //{ // MessageBox.Show("資料庫中沒有此料號的紀錄,故無法上傳量測尺寸,僅成功上傳實體檔案"); // return; //} #endregion #region 比對資料庫MEMain是否有同筆數據 IList <Com_MEMain> ListCom_MEMain = new List <Com_MEMain>(); CaxSQL.GetListCom_MEMain(out ListCom_MEMain); bool Is_Exist = false; Com_MEMain currentComMEMain = new Com_MEMain(); foreach (Com_MEMain i in ListCom_MEMain) { if (i.comPartOperation == cCom_PartOperation) { Is_Exist = true; currentComMEMain = i; break; } } #endregion #region 如果本次上傳的資料不存在於資料庫,則開始上傳資料;如果已存在資料庫,則詢問是否要更新尺寸 bool Is_Update = true; if (Is_Exist) { if (eTaskDialogResult.Yes == CaxPublic.ShowMsgYesNo("此料號已存在上一次的標註尺寸資料,是否更新?")) { #region 刪除Com_Dimension資料表 IList <Com_Dimension> ListCom_Dimension = new List <Com_Dimension>(); CaxSQL.GetListCom_Dimension(currentComMEMain, out ListCom_Dimension); foreach (Com_Dimension i in ListCom_Dimension) { CaxSQL.Delete <Com_Dimension>(i); } #endregion #region 刪除Com_MEMain資料表 Com_MEMain cCom_MEMain = new Com_MEMain(); CaxSQL.GetCom_MEMain(cCom_PartOperation, out cCom_MEMain); CaxSQL.Delete <Com_MEMain>(cCom_MEMain); #endregion } else { Is_Update = false; } } if (Is_Update) { #region 整理資料並上傳 try { Com_MEMain cCom_MEMain = new Com_MEMain(); cCom_MEMain.comPartOperation = cCom_PartOperation; //cCom_MEMain.sysMEExcel = sysMEExcel; cCom_MEMain.partDescription = sWorkPartAttribute.partDescription; cCom_MEMain.createDate = sWorkPartAttribute.createDate; cCom_MEMain.material = sWorkPartAttribute.material; cCom_MEMain.draftingVer = sWorkPartAttribute.draftingVer; IList <Com_Dimension> listCom_Dimension = new List <Com_Dimension>(); foreach (DadDimension i in listDimensionData) { Com_Dimension cCom_Dimension = new Com_Dimension(); cCom_Dimension.MappingData(i); cCom_Dimension.comMEMain = cCom_MEMain; listCom_Dimension.Add(cCom_Dimension); //Com_Dimension cCom_Dimension = new Com_Dimension(); //cCom_Dimension.comMEMain = cCom_MEMain; //CaxME.MappingData(i, ref cCom_Dimension); //listCom_Dimension.Add(cCom_Dimension); } cCom_MEMain.comDimension = listCom_Dimension; CaxSQL.Save <Com_MEMain>(cCom_MEMain); } catch (System.Exception ex) { MessageBox.Show("上傳資料庫時發生錯誤,僅上傳實體檔案"); } #endregion } #endregion #endregion CaxPart.Save(); MessageBox.Show("上傳完成!"); this.Close(); }