private void CallGetNewBOMFun() { try { List <Entity.DTO.DTO_MBOM> ds = new List <Entity.DTO.DTO_MBOM>(); PLM.GetPLMBOM(tboxPartNum.Text, ds); ds = ds.OrderBy(o => o.PartNum).ThenBy(o => o.MtlSeq).ToList(); BOMDS = ds; this.BeginInvoke(new Action(() => { dataGridViewMain.DataSource = ds; tabControlMain.SelectedIndex = 0; tabControlMain.SelectedTab.Text = "PLM_BOM数据"; CurrentDgv = this.dataGridViewMain; if (ds.Count > 0) { BindTreeView(ds, tboxPartNum.Text, treeViewLeft); } DataCount = ds.Count; BtnGetNewBOM.Enabled = true; })); } catch (Exception err) { Utilities.Log(err); MessageBox.Show(err.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void buttonGetBOM_Click(object sender, EventArgs e) { string contents = textBoxPartNums.Text.Trim(); string[] PartNums = contents.Split(new string[] { "\r\n" }, StringSplitOptions.None); var lists = new List <Entity.DTO.DTO_MBOM>(); foreach (var item in PartNums) { var exMBOM = PLM.GetPLMBOM(item); lists = lists.Union(exMBOM).ToList(); } foreach (var item in lists) { item.RevisionNum = textBoxPartRev.Text; } BOM = Utilities.MapTo <List <ExportDto.MBOM> >(lists); dataGridViewBOM.DataSource = BOM; tabControl1.SelectedIndex = 2; }
/// <summary> /// 获取新BOM /// </summary> private void CallGetNewBOM(string[] PartNumArr, bool IsOnly) { if (PartNumArr.Length > 0 && !IsOnly) { if (DataNewBOM == null) { List <Entity.DTO.DTO_MBOM> lists = new List <Entity.DTO.DTO_MBOM>(); foreach (string PartNum in PartNumArr) { //lists = lists.Union(PLM.GetPLMBOM(PartNum)).ToList(); PLM.GetPLMBOM(PartNum, lists); } List <ExportDto.MBOM> data = Utilities.MapTo <List <ExportDto.MBOM> >(lists); data = data.OrderBy(o => o.PartNum).ThenBy(o => o.MtlSeq).ToList(); DataNewBOM = Utility.ListToDataTable(data, "_", "#"); } } Utility.ExportExcel(DataNewBOM, SaveFolderPath + "\\BOM.xls"); pecentExe += 20; lblStatus = "新BOM数据已就绪..."; }
private void BtnOK_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(tBoxPartNum.Text)) { MessageBox.Show("物料编码必填!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (string.IsNullOrEmpty(tBoxJobNum.Text) && radioJob.Checked) { MessageBox.Show("工单号必填!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } BtnOK.Text = "对比中..."; BtnOK.Enabled = false; Task.Run(() => { //获取ERP设计BOM ERP_DES_BOM = new List <DTO_MBOM>(); ERP.GetERPBOM(tBoxPartNum.Text, ERP_DES_BOM, true, textBoxRev.Text); if (radioJob.Checked) { //获取工单BOM var JobAsmblDatas = ERP.GetJobAsmbl(tBoxJobNum.Text); var JobMtlDatas = ERP.GetJobMtl(tBoxJobNum.Text); ERP_JOB_BOM = new List <DTO_MBOM>(); string mainPart = ""; try { mainPart = JobAsmblDatas.Where(o => o.JobNum == tBoxJobNum.Text && o.BomLevel == 0).FirstOrDefault().PartNum; } catch { } ERP.GetJobBom(ERP_JOB_BOM, JobAsmblDatas, JobMtlDatas, mainPart); } else { //获取PLMBOM PLM_BOM = new List <DTO_MBOM>(); PLM.GetPLMBOM(tBoxPartNum.Text, PLM_BOM); } //List<DTO_MBOM> BOM_DIFF = CompareBOM(tBoxPartNum.Text, tBoxJobNum.Text); this.BeginInvoke(new Action(() => { BtnOK.Text = "开始对比"; BtnOK.Enabled = true; #region 导出对比结果 //var dt = Utility.ListToDataTable(BOM_DIFF, "_", "#"); //string rnd = Random.Next(0, 9999).ToString(); string filepath = SaveFolderPath + "\\" + tBoxPartNum.Text + "BOM_DIFF.xls"; long ticks = DateTime.Now.Ticks; if (radioJob.Checked) { filepath = SaveFolderPath + "\\DES_JOB_" + tBoxPartNum.Text + "_" + tBoxJobNum.Text + "_Compare" + ticks.ToString() + ".xls"; CreateDIFFBook(filepath, ERP_DES_BOM, ERP_JOB_BOM, "设计BOM", "工单BOM"); } else { filepath = SaveFolderPath + "\\DES_PLM_" + tBoxPartNum.Text + "_Compare" + ticks.ToString() + ".xls"; CreateDIFFBook2(filepath, ERP_DES_BOM, PLM_BOM, "PLMBOM", "设计BOM"); } //Utility.ExportExcel(dt, SaveFolderPath + "\\" + tBoxPartNum.Text + "BOM_DIFF" + rnd + ".xls"); System.Diagnostics.Process.Start(filepath); #endregion })); }); }