天津投入产出系统后端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

237 lines
8.4 KiB

using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using QMAPP.FJC.Entity.Injection;
using QMAPP.ServicesAgent;
using QMAPP.FJC.Entity.BZD;
using DCS.Common;
using QMAPP.FJC.Entity.Basic;
using QMAPP.WinForm.Common;
using QMAPP.Entity;
using QMAPP.FJC.Entity.MD;
using QMAPP.FJC.Entity.Operation;
using PrintCode = QMAPP.FJC.Entity.Operation.PrintCode;
namespace QMAPP.WinForm.Forms.Injection
{
/// <summary>
///
/// </summary>
public partial class InjectPrintForm : Form
{
//获取服务代理
QMAPP.ServicesAgent.ServiceAgent _agent = ClientContext.GetServiceAgent();
List<BZDConfig> _bzdConfig = null;
//string txtMaterialCode = "";
//string textMaterialName = "";
//Product _CurrentProduct = null;
private InjectPasswordForm _InjectPasswordForm;
/// <summary>
///
/// </summary>
public InjectPrintForm(InjectPasswordForm InjectPasswordForm)
{
InitializeComponent();
LoadMachineList();
infolabel.Text = "";
infolabel.ForeColor = Color.Red;
_InjectPasswordForm = InjectPasswordForm;
}
#region 打印按钮
/// <summary>
/// 打印按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
try
{
if (string.IsNullOrEmpty(txtProductCode.Text))
{
infolabel.Text = "请扫描或填写装配码!";
txtProductCode.Focus();
return;
}
//*****************************
_agent.InvokeServiceFunction<int>(B9IPCService.BarCodeReplacementBLL_Insert.ToString(), new BarCodeReplacement() { ProductCode = txtProductCode.Text,Type="注塑条码补打" });
Print(txtProductCode.Text,true);
txtProductCode.Text = "";
//txtMaterialCode = "";
//textMaterialName = "";
}
catch (Exception exception)
{
txtProductCode.Text = "";
MessageBox.Show("打印失败!");
throw;
}
}
#endregion
private void Print(string code, bool IsManual)
{
var MachineCode = "";
List<PrintTemplate.InjectLabel> labels = new List<PrintTemplate.InjectLabel>();
string shiftCode = ClientContext.produceShift.PRODUCESHIFTTCODE;
var selectmachine = comMachine.SelectedItem as MachineInfo;
if (selectmachine != null && !string.IsNullOrEmpty(selectmachine.PID))
{
MachineCode = selectmachine.MACHINECODDE;
}
List<Material> materialListInfo = new List<Material>();
var concationMaterial = new Material();
string materialcode1 = this.txtMaterialCode.Text;
concationMaterial.MATERIAL_CODE = materialcode1;
materialListInfo.Add(concationMaterial);
var machine = comMachine.SelectedItem as MachineInfo;
var model = cbMould.SelectedItem as MachineInfoModels;
if (model == null)
{
model = new MachineInfoModels();
}
DataResult<List<PrintCode>> resultList = _agent.InvokeServiceFunction<DataResult<List<PrintCode>>>("MainOperationBLL_GetPrintCodeWithParam", materialListInfo, machine, model, "", new Dictionary<string, string>());
var resule = resultList.Result;
string typeTem = "InjectLabel100x30";
if (resule != null && resule.Count > 0)
{
foreach (PrintCode item in resultList.Result)
{
typeTem = item.PRINT_TEMPALTE_TEM;
PrintTemplate.InjectLabel label = new PrintTemplate.InjectLabel
{
CreateDate = DateTime.Now,
MachineCode = comMachine.SelectedValue + "",
MaterialCode = txtMaterialCode.Text.ToString(),
MaterialName = item.MATERIAL_NAME,
ModelCode = cbMould.SelectedValue + "",
SerialNumber = code,
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));
//fr.Design(false);
fr.PrintSettings.ShowDialog = false;
fr.Print();
fr.Dispose();
//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
// ());
}
#region 点击选择零件信息
/// <summary>
/// 点击选择零件信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
#region 加载设备列表
/// <summary>
/// 加载设备列表
/// </summary>
private void LoadMachineList()
{
#region
BasicData basicData = new BasicData();
var machinelist = basicData.GetMachineInfoAndModelList(new string[] { "1" }, true);
this.comMachine.DataSource = machinelist;
this.comMachine.DisplayMember = "MACHINENAME";
this.comMachine.ValueMember = "MACHINECODDE";
comMachine_SelectedIndexChanged(null, null);
#endregion
}
#endregion
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<List<MachineInfoModels>>(B9BasicService.MachineInfoModelBLL_GetAllList.ToString(), new MachineInfoModels { MID = "INJ_MODEL" });
mouldList.Insert(0, new MachineInfoModels { });
cbMould.DisplayMember = "MODELNAME";
cbMould.ValueMember = "MODELCODE";
cbMould.DataSource = mouldList;
}
}
}
}