using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using QMAPP.WinForm.Common; using QMAPP.Entity; using QMAPP.ServicesAgent; using QMAPP.FJC.Entity.Operation; using QMFrameWork.Common.Serialization; using QMAPP.WinForm.Forms.Operation; using QMAPP.FJC.Entity.Basic; using QMAPP.MD.Entity.Bucket; using QMAPP.MD.Entity; namespace QMAPP.WinForm.Forms.Injection { public partial class SewingPrint : Form { //获取服务代理 QMAPP.ServicesAgent.ServiceAgent _agent = ClientContext.GetServiceAgent(); List paramcolumns = new List(); FileSynchronizers.IFileSynchronizer sync; public SewingPrint() { InitializeComponent(); } private void InjectionCodePrint_Load(object sender, EventArgs e) { LoadMachineList(); SetConnectState(0); //this.radioButSignal.Checked = true; PrintTempleCopyClass printClass = new PrintTempleCopyClass(); printClass.CopyPrintTemple("InjectionCodePrint"); cbPrintCount.SelectedIndex = 3; cbPrintSpan.SelectedIndex = 3; } #region 加载零件号 /// /// 加载设备列表 /// private void LoadMachineList() { #region var material = new Material(); material.MATERIAL_TYPE_CODE = "IP_FENGREN"; //零件号类型 var materialResult = _agent.InvokeServiceFunction>("MaterialBLL_GetMaterialList", material); materialResult.Insert(0, new Material { }); this.cbMould.DataSource = materialResult; this.cbMould.DisplayMember = "MATERIAL_NAME"; this.cbMould.ValueMember = "MATERIAL_CODE"; #endregion } #endregion #region 打印 /// /// 打印 /// /// /// private void tsbPrint_Click(object sender, EventArgs e) { //窗体数据校验 string errorMessae = ErrorCheck(); if (errorMessae != "") { MessageBox.Show(errorMessae, Resource1.ConfirmTitle, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } tsbPrint.Enabled = false; CodeCreatePrint(); tsbPrint.Enabled = true; } private void CodeCreatePrint() { Material materialInfo = new Material(); materialInfo.MATERIAL_CODE = cbMould.SelectedValue.ToString(); materialInfo.MATERIAL_NAME = cbMould.Text; DataResult> resultList = _agent.InvokeServiceFunction>>("MainOperationBLL_GetPrintCodeForMP4", materialInfo); //var machine = new MachineInfo(); //machine.MACHINENAME = ""; //machine.MACHINECODDE = ""; //machine.WORKCENTER_CODE = ""; //machine.WORKCELL_CODE = ""; //DataResult> resultList = _agent.InvokeServiceFunction>>("MainOperationBLL_GetPrintCodeWithParam", materialListInfo, machine, model, "", new Dictionary()); try { Print(resultList.Result, true); } catch (Exception e) { var ss = e.Message; } } private void CodeCreatePrint(string header, string datarow, char[] dataSeparator) { List materialListInfo = GetSelectedMaterials(); //var machine = comMachine.SelectedItem as MachineInfo; var model = cbMould.SelectedItem as MachineInfoModels; if (model == null) { model = new MachineInfoModels(); } string tableName = paramcolumns.FirstOrDefault().PARATABLENAME; Dictionary param=new Dictionary(); param.Add("PARAMETER_COLUMNS",header); var paramvalue=datarow.Split(dataSeparator); for(int j=0;j> resultList = _agent.InvokeServiceFunction>>("MainOperationBLL_GetPrintCodeWithParam", materialListInfo,machine,model,tableName,param); //Print(resultList.Result,false); } private void Print(List codeList,bool IsManual) { List labels = new List(); //打印条码 string typeTem = ""; string typeData = ""; foreach (PrintCode item in codeList) { //创建新行 var row = new DataGridViewRow(); if (DGView.Rows.Count == 0) { var index = this.DGView.Rows.Add(); row = DGView.Rows[index]; } else { this.DGView.Rows.InsertCopy(0, 0); row = DGView.Rows[0]; } //对datagridview赋值 row.Cells["MATERIAL_NAME"].Value = item.MATERIAL_NAME; row.Cells["PRODUCTCODE"].Value = item.PRODUCTCODE; row.Cells["MAINCODE"].Value = item.MAINCODE; row.Cells["CREATETIME"].Value = DateTime.Now; if (DGView.Rows.Count > 200) { DGView.Rows.RemoveAt(200); } //班次信息 string shiftCode = ClientContext.produceShift.PRODUCESHIFTTCODE; item.ShiftCode = shiftCode; DGView.AutoGenerateColumns = false; typeTem = item.PRINT_TEMPALTE_TEM; typeData = item.PRINT_TEMPALTE_DATA; //QM.Assist.LabelInfo ll = new QM.Assist.LabelInfo(); //ll.BarCode = item.MATERIAL_NAME + "," + item.PRODUCTCODE + "," + item.MAINCODE + "," + shiftCode + "," + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //QM.Assist.PrintUtil.LabelList2.Add(ll); PrintTemplate.InjectLabel label = new PrintTemplate.InjectLabel { CreateDate = DateTime.Now, //MachineCode = comMachine.SelectedValue + "", MaterialCode = item.PRODUCTCODE, MaterialName = item.MATERIAL_NAME, ModelCode = cbMould.SelectedValue + "", SerialNumber = item.MAINCODE, ShiftCode = shiftCode, IsManualPrint = IsManual }; labels.Add(label); } string path = System.Configuration.ConfigurationManager.AppSettings["Template_Local_Path"]; if (!System.IO.Directory.Exists(path)) { System.IO.Directory.CreateDirectory(path); } FastReport.Report fr = new FastReport.Report(); fr.RegisterData(labels, "Labels"); if (!System.IO.File.Exists(string.Format("{0}\\{1}.frx", path, typeTem))) { if (System.IO.File.Exists(string.Format("PrintTemplate\\{1}.frx", path, typeTem))) { System.IO.File.Copy(string.Format("PrintTemplate\\{1}.frx", path, typeTem) , string.Format("{0}\\{1}.frx", path, typeTem)); } else { fr.FileName = string.Format("{0}\\{1}.frx", path, typeTem); fr.Design(true); fr.Save(string.Format("{0}\\{1}.frx", path, typeTem)); } } fr.Load(string.Format("{0}\\{1}.frx", path, typeTem)); if (cbTemplateDesign.Enabled && cbTemplateDesign.Checked) { try { fr.Design(true); } catch (Exception e) { var ss = e.Message; } } else { try { fr.PrintSettings.ShowDialog = false; fr.Print(); } catch (Exception e) { var ss = e.Message; } #region 张松男20210802 修改 增加新版注塑投料条码绑定 foreach (var la in labels) { var material_T = new BucketMaterialClass() { MaterialCode = la.MaterialCode }; var List = _agent.InvokeServiceFunction>(B9BasicService.RawMaterialBLL_GetListTo.ToString(), material_T); if (List != null && List.Count > 0) { foreach (var raw in List) { var record = new RawMaterialRecord(); record.MaterialCode = la.MaterialCode; record.MaterialName = la.MaterialName; record.ProductCode = la.SerialNumber; record.RawMaterialPID = raw.PID; record.MachineCode = la.MachineCode; _agent.InvokeServiceFunction>(B9BasicService.RawMaterialRecordBLL_Insert.ToString(), record); } } } #endregion } try { fr.Dispose(); } catch (Exception e) { var ss = e.Message; } //QM.Assist.PrintUtil pu = new QM.Assist.PrintUtil(); //pu.PrintLabel2(System.Configuration.ConfigurationManager.AppSettings["proPath"].ToString // (), System.Configuration.ConfigurationManager.AppSettings[typeTem + "temPath"].ToString // (), System.Configuration.ConfigurationManager.AppSettings[typeData + "dataPath"].ToString // ()); } private List GetSelectedMaterials() { List materialListInfo = new List(); Material concationMaterial = new Material(); //int i= Convert.ToInt32( this.txtNum.Text); //if (this.radioButSignal.Checked == true) //{ // string materialcode1 = this.txtMaterialCode.Text; // concationMaterial.MATERIAL_CODE = materialcode1; // materialListInfo.Add(concationMaterial); //} //else if (this.radioButDouble.Checked == true) //{ // concationMaterial.MATERIAL_CODE = this.txtMaterialCode.Text; // materialListInfo.Add(concationMaterial); // if (!string.IsNullOrEmpty(this.comboxMaterial.SelectedValue.ToString())) // { // Material concationMaterial2 = new Material(); // concationMaterial2.MATERIAL_CODE = this.comboxMaterial.SelectedValue.ToString(); // materialListInfo.Add(concationMaterial2); // } //} //else if (this.radioButFourth.Checked == true) //{ // concationMaterial.MATERIAL_CODE = this.txtMaterialCode.Text; // materialListInfo.Add(concationMaterial); // if (!string.IsNullOrEmpty(this.txtMaterial2.Text)) // { // Material concationMaterial3 = new Material(); // concationMaterial3.MATERIAL_CODE = this.txtMaterial2.Text.Substring(this.txtMaterial2.Text.LastIndexOf(":") + 1); // materialListInfo.Add(concationMaterial3); // } // if (!string.IsNullOrEmpty(this.txtMaterial3.Text)) // { // Material concationMaterial4 = new Material(); // concationMaterial4.MATERIAL_CODE = this.txtMaterial3.Text.Substring(this.txtMaterial3.Text.LastIndexOf(":") + 1); // materialListInfo.Add(concationMaterial4); // } // if (!string.IsNullOrEmpty(this.txtMaterial4.Text)) // { // Material concationMaterial5 = new Material(); // concationMaterial5.MATERIAL_CODE = this.txtMaterial4.Text.Substring(this.txtMaterial4.Text.LastIndexOf(":") + 1); // materialListInfo.Add(concationMaterial5); // } //} return materialListInfo; } #endregion #region 校验 /// /// 校验 /// /// private string ErrorCheck() { #region string strMessage = ""; if (cbMould.Items.Count > 0 && cbMould.SelectedIndex < 0) { strMessage += "请选择零件!" + "\r\n"; } //注塑零件 if (this.txtMaterialCode.Text == null || this.txtMaterialCode.Text == string.Empty) { strMessage += Resource1.MaterialChoiceValidate + "\r\n"; } return strMessage; #endregion } #endregion #region 窗体关闭 /// /// 窗体关闭 /// /// /// private void tsbClose_Click(object sender, EventArgs e) { this.Close(); } #endregion #region 点击选择零件信息 /// /// 点击选择零件信息 /// /// /// private void btnChoiceMaterial_Click(object sender, EventArgs e) { MaterialTreeForm materialForm = new MaterialTreeForm(); var ret= materialForm.ShowDialog(); if (ret == DialogResult.OK) { this.txtMaterialCode.Text = materialForm.MaterialCode; this.textMaterialName.Text = materialForm.MaterialName; bool maintype = materialForm.MainType; if (maintype) { //this.groupBox3.Enabled = true; } else { //this.groupBox3.Enabled = false; } } } #endregion /// /// 所选零件发生改变 /// /// /// private void txtMaterialCode_TextChanged(object sender, EventArgs e) { //radioButSignal.Checked = true; } private void btnStart_Click(object sender, EventArgs e) { //窗体数据校验 string errorMessae = ErrorCheck(); if (errorMessae != "") { MessageBox.Show(errorMessae, Resource1.ConfirmTitle, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } btnStart.Enabled = false; btnStop.Enabled = true; cbPrintCount.Enabled = false; cbPrintSpan.Enabled = false; lblLastCount.Text = cbPrintCount.Text; tsbPrint.Enabled = false; //btnChoiceMaterial.Enabled = false; //groupBox3.Enabled = false; //printtimer = int.Parse(cbPrintSpan.Text.Trim('s')); LockPrintMode(2); } private void btnStop_Click(object sender, EventArgs e) { btnStart.Enabled = true; btnStop.Enabled = true; cbPrintCount.Enabled = true; cbPrintSpan.Enabled = true; //lblLastCount.Text = cbPrintCount.Text; tsbPrint.Enabled = true; //btnChoiceMaterial.Enabled = true; //groupBox3.Enabled = true; LockPrintMode(-1); } int printtimer = 0; private void timer2_Tick(object sender, EventArgs e) { if (!btnStart.Enabled) { int span=int.Parse(cbPrintSpan.Text.Trim('s')); if (printtimer >= span) { printtimer = 0; CodeCreatePrint(); var lastcount = int.Parse(lblLastCount.Text) - 1; lblLastCount.Text = lastcount + ""; if (lastcount <= 0) { btnStop_Click(sender, e); } } else { printtimer++; } } else { printtimer = 0; } } private void comMachine_SelectedIndexChanged(object sender, EventArgs e) { //var selectmachine = comMachine.SelectedItem as MachineInfo; //if (selectmachine != null && !string.IsNullOrEmpty(selectmachine.PID)) //{ // var mouldList = _agent.InvokeServiceFunction>(B9BasicService.MachineInfoModelBLL_GetAllList.ToString(), new MachineInfoModels { MID = "INJ_MODEL" }).OrderBy(p => p.MODELCODE).ToList(); // mouldList.Insert(0, new MachineInfoModels { }); // cbMould.DisplayMember = "MODELNAME"; // cbMould.ValueMember = "MODELCODE"; // cbMould.DataSource = mouldList.ToList(); // if (selectmachine.ISCONTROL == "1") // { // HideTimerPrint(true); // } // else // { // HideTimerPrint(false); // } //} } private void txtCode_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter)//如果输入的是回车键 { } } private void btnStartFileScan_Click(object sender, EventArgs e) { //窗体数据校验 string errorMessae = ErrorCheck(); if (errorMessae != "") { MessageBox.Show(errorMessae, Resource1.ConfirmTitle, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //var selectmachine= comMachine.SelectedItem as MachineInfo; //if (selectmachine != null&&!string.IsNullOrEmpty(selectmachine.PID)) //{ // //txtFilePath.Text = selectmachine.EQUIPMENT_DIRECTORY; // var columns = _agent.InvokeServiceFunction>>("ProcessParameterBLL_GetAllList", new ProcessParameter { MACHINECODDE = selectmachine.MACHINECODDE }).Result; // if (columns != null) // { // paramcolumns = columns; // } // else // { // paramcolumns = new List(); // } // //lvParamRecords.Items.Clear(); // //lvParamRecords.Columns.Clear(); // //var c1=lvParamRecords.Columns.Add("扫描时间"); // //c1.Width=180; // foreach (var col in paramcolumns) // { // //var c= lvParamRecords.Columns.Add(col.PARADESCRIBE); // } // if (selectmachine.EQUIPMENT_TYPE_CODE == "HaitianInjection") // { // sync = new FileSynchronizers.HaitianInjectionFileSynchronizer(selectmachine); // } // else if (selectmachine.EQUIPMENT_TYPE_CODE == "EngelInjection") // { // sync = new FileSynchronizers.EngelInjectionFileSynchronizer(selectmachine); // } // else // { // MessageBox.Show("注塑机型号未设定!", Resource1.ConfirmTitle, MessageBoxButtons.OK, MessageBoxIcon.Warning); // return; // } // sync.NewRecordFound += new EventHandler(sync_NewRecordFound); // sync.ExceptionCatched += new EventHandler(sync_ExceptionCatched); // //sync.Start(cbSkipHistory.Checked); // SetConnectState(1); // //btnStartFileScan.Enabled = false; // //btnStopFileScan.Enabled = true; // LockPrintMode(0); //} //else //{ // MessageBox.Show("请选择注塑机!", Resource1.ConfirmTitle, MessageBoxButtons.OK, MessageBoxIcon.Warning); //} } /// /// 设置连接状态 /// /// 0:停止 1:正常 2:断开 void SetConnectState(int state) { switch (state) { case 0: { //txtConnectState.Text = "扫描停止"; //picConnectState.Image = WinForm.Resource1.stop; break; } case 1: { //txtConnectState.Text = "扫描正常"; //picConnectState.Image = WinForm.Resource1.reload; break; } case 2: { //txtConnectState.Text = "连接断开"; //picConnectState.Image = WinForm.Resource1.no; break; } } } /// /// 锁定打印模式 /// /// -1 解锁; 0 联机; 1 手动; 2 定时; void LockPrintMode(int mode) { for(int i=0;i /// 隐藏定时打印模式 /// void HideTimerPrint(bool hide) { if (hide) { if (tpPrintMode.Controls.Contains(tpTimer)) //tpPrintMode.Controls[tpTimer.Name].Visible = !hide; tpPrintMode.Controls.Remove(tpTimer); } else { if (!tpPrintMode.Controls.Contains(tpTimer)) //tpPrintMode.Controls[tpTimer.Name].Visible = !hide; tpPrintMode.Controls.Add(tpTimer); } } private void InjectionCodePrint_FormClosed(object sender, FormClosedEventArgs e) { if (sync != null) { sync.Stop(); } } private void btnLockMachine_Click(object sender, EventArgs e) { LockMachine(true); /* if (this.btnLockMachine.Tag.ToString().Equals("0")) { LockMachine(false); } else { LockMachine(true); }*/ } #region 设备锁定 /// /// 设备锁定 /// /// private void LockMachine(bool lockFlag) { //this.comMachine.Enabled = lockFlag; ////this.comProductType.Enabled = lockFlag; //if (lockFlag) //{ // this.btnLockMachine.Text = "锁定"; // this.btnLockMachine.Tag = "0"; //} //else //{ // ClientContext.MachineInfo = this.comMachine.SelectedItem as MachineInfo; // string locationfile = System.Configuration.ConfigurationManager.AppSettings["loactionfile"]; // System.IO.File.WriteAllText(locationfile, this.comMachine.SelectedValue.ToString()); // this.btnLockMachine.Text = "解锁"; // this.btnLockMachine.Tag = "1"; //} } #endregion private void cbMould_SelectedIndexChanged(object sender, EventArgs e) { if (cbMould.SelectedValue != null && cbMould.SelectedValue.ToString() != "QMAPP.MD.Entity.Material") { textMaterialName.Text = cbMould.Text; txtMaterialCode.Text = cbMould.SelectedValue.ToString(); } else { textMaterialName.Text = ""; txtMaterialCode.Text = ""; } } } }