using Seagull.BarTender.Print; using System; using System.Drawing; using System.Drawing.Printing; using System.Windows.Forms; using UAS_MES_NEW.DataOperate; using UAS_MES_NEW.Entity; using UAS_MES_NEW.PublicMethod; namespace UAS_MES_NEW.SystemSetting { public partial class SystemSetting_PrinterTest : Form { Engine engine = new Engine(); LabelFormatDocument format; DataHelper dh = SystemInf.dh; public SystemSetting_PrinterTest() { InitializeComponent(); } private void PrintTest_Click(object sender, EventArgs e) { PrintDocument print = new PrintDocument(); print.PrinterSettings.PrinterName = PrinterList.Text; print.PrintPage += Print_PrintPage; print.Print(); } private void Print_PrintPage(object sender, PrintPageEventArgs e) { Graphics g = e.Graphics; float leftMargin = 10f; //左边距 SolidBrush myBrush = new SolidBrush(Color.Black);//刷子 float yPosition = 5f;//行定位 Font printFont = new Font("微软雅黑", 20f, FontStyle.Bold);//设置字体 yPosition += printFont.GetHeight(g);//另起一行 g.DrawString("成功连接此打印机", printFont, myBrush, leftMargin, yPosition, new StringFormat()); } private void Setting_Click(object sender, EventArgs e) { PrintDialog printd = new PrintDialog(); printd.PrinterSettings.PrinterName = PrinterList.Text; printd.ShowDialog(); } private void Export_Click(object sender, EventArgs e) { if (SN.Checked) { //if (!dh.CheckExist("make", "ma_code='" + ma_code.Text + "'")) //{ // MessageBox.Show("工单号不存在"); // return; //} for (int i = int.Parse(Rn.Text); i < (int.Parse(Num.Text) + int.Parse(Rn.Text)); i = i + 1) { int temp = i; for (int j = 0; j < format.SubStrings.Count; j++) { switch (format.SubStrings[j].Name) { case "SN": format.SubStrings[j].Value = (ma_code.Text +lpad(1, Date.Value.Year.ToString())+ lpad(2, Date.Value.Month.ToString()) + lpad(2, Date.Value.Day.ToString()) + lpad(4, (temp).ToString())+last.Text); //if (!dh.CheckExist("makesnlist", "msl_sncode='" + format.SubStrings[j].Value + "'")) //{ // dh.ExecuteSql("insert into makesnlist(msl_id,msl_indate,msl_makecode,msl_sncode,msl_type)values(makesnlist_seq.nextval,sysdate,'" + ma_code.Text + "','" + format.SubStrings[j].Value + "','before')", "insert"); //}; break; case "MAKE": format.SubStrings[j].Value = ma_code.Text; //if (!dh.CheckExist("makesnlist", "msl_sncode='" + format.SubStrings[j].Value + "'")) //{ // dh.ExecuteSql("insert into makesnlist(msl_id,msl_indate,msl_makecode,msl_sncode,msl_type)values(makesnlist_seq.nextval,sysdate,'" + ma_code.Text + "','" + format.SubStrings[j].Value + "','before')", "insert"); //}; break; case "LTNO": format.SubStrings[j].Value = lpad(1, Date.Value.Year.ToString()) + lpad(2, Date.Value.Month.ToString()) + lpad(2, Date.Value.Day.ToString()) ; //if (!dh.CheckExist("makesnlist", "msl_sncode='" + format.SubStrings[j].Value + "'")) //{ // dh.ExecuteSql("insert into makesnlist(msl_id,msl_indate,msl_makecode,msl_sncode,msl_type)values(makesnlist_seq.nextval,sysdate,'" + ma_code.Text + "','" + format.SubStrings[j].Value + "','before')", "insert"); //}; break; case "NUM": format.SubStrings[j].Value = lpad(4, (temp).ToString()); //if (!dh.CheckExist("makesnlist", "msl_sncode='" + format.SubStrings[j].Value + "'")) //{ // dh.ExecuteSql("insert into makesnlist(msl_id,msl_indate,msl_makecode,msl_sncode,msl_type)values(makesnlist_seq.nextval,sysdate,'" + ma_code.Text + "','" + format.SubStrings[j].Value + "','before')", "insert"); //}; break; default: break; } } //LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "打印工单条码", "打印成功", "", ""); format.PrintSetup.PrinterName = PrinterList.Text; format.PrintSetup.IdenticalCopiesOfLabel = 1; format.Print(); } } } private static string lpad(int length, string number) { while (number.Length < length) { number = "0" + number; } number = number.Substring(number.Length - length, length); return number; } private void SystemSetting_PrinterTest_Load(object sender, EventArgs e) { ma_code.TableName = "make left join product on ma_prodcode=pr_code"; ma_code.SelectField = "ma_code # 工单号,ma_prodcode # 产品编号,ma_qty # 工单数量,pr_orispeccode # 型号,pr_spec # 产品规格,ma_softversion # 软件版本,ma_salecode # 销售单号,pr_sendchecktype # 产品送检方式"; ma_code.FormName = Name; ma_code.SetValueField = new string[] { "ma_code", "ma_prodcode", "ma_qty", "pr_orispeccode pr_spec", "ma_softversion", "ma_salecode", "nvl(pr_sendchecktype,'LineCode')pr_sendchecktype" }; ma_code.Condition = "ma_statuscode='STARTED'"; ma_code.DbChange += Ma_code_DbChange; engine.Start(); format = engine.Documents.Open(Application.StartupPath + "/20X10打印标签.btw"); //format1 = engine.Documents.Open(Application.StartupPath + "/Material.btw"); } private void Ma_code_DbChange(object sender, EventArgs e) { } private void SN_CheckedChanged(object sender, EventArgs e) { if (SN.Checked) { ma_code.Visible = true; label4.Visible = true; Rn.Visible = true; label3.Visible = true; } else { Rn.Visible = false; label3.Visible = false; ma_code.Visible = false; label4.Visible = false; } } } }