duhe
2024-04-21 b5aa18d743e508088a37c502a9351c0cbdbbd93f
WarM/ÌõÂë´òÓ¡/Gy_BarCodeBill_automaticallyByPLC_New.cs
@@ -12,6 +12,7 @@
using System.Net;
using System.Drawing.Printing;
using System.IO;
using System.Management;
namespace WarM
{
@@ -345,7 +346,6 @@
            Display();
            Display4();
        }
        //重置按纽
@@ -3946,6 +3946,35 @@
                    return;
                }
                if (textBox_IPParams.Text == "")
                {
                    MessageBox.Show("请设置IP地址!");
                    return;
                }
                if (textBox_PortParams.Text == "")
                {
                    MessageBox.Show("请设置端口号!");
                    return;
                }
                if (comboBox_PrinterParams.Text == "")
                {
                    MessageBox.Show("请选择打印机!");
                    return;
                }
                if (textBox_PrintModelParams.Text == "")
                {
                    MessageBox.Show("请设置打印模板!");
                    return;
                }
                if (!judgePrinterIsConnected())
                {
                    MessageBox.Show("打印机处于离线状态,请检查!");
                    return;
                }
                socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPAddress iPAddress = IPAddress.Parse(textBox_IPParams.Text);
                IPEndPoint point = new IPEndPoint(iPAddress, Convert.ToInt32(textBox_PortParams.Text));
@@ -3990,11 +4019,15 @@
                            //设置打印模板,打印
                            grdList.Rows[0].Cells[0].Value = "*";
                            Report = new GridppReport();
                            Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\" + textBox_PrintModelParams + ".grf");  //here .
                            Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\" + textBox_PrintModelParams.Text + ".grf");  //here .
                            Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord);
                            Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable);
                            Report.PrintEnd += new _IGridppReportEvents_PrintEndEventHandler(ReportPrintEnd);
                            Report.Print(true);
                            if (comboBox_PrinterParams.Text != "")
                            {
                                Report.Printer.PrinterName = comboBox_PrinterParams.Text;
                            }
                            Report.Print(false);
                        }
                        //重新加载该物料当天生成的条码
@@ -4069,6 +4102,8 @@
                sw.Close();
                fs1.Close();
            }
            MessageBox.Show("保存成功!");
        }
        private void readParams()
@@ -4135,5 +4170,42 @@
        {
            saveParams();
        }
        //判断打印机是否可用
        private bool judgePrinterIsConnected()
        {
            //获取电脑连接的打印机列表
            ManagementObjectSearcher searcher = new
            ManagementObjectSearcher("SELECT * FROM Win32_Printer");
            //匹配设置的打印机,并判断是否可用
            string printerName = "";
            foreach (ManagementObject printer in searcher.Get())
            {
                printerName = printer["Name"].ToString().ToLower();
                if (printerName.Equals(comboBox_PrinterParams.Text.ToLower()))
                {
                    string HPrinterName = printer.Properties["Name"].Value.ToString();                      //获取打印机名称
                    string HPrinterPort = printer.Properties["PortName"].Value.ToString();                  //获取打印机端口号
                    string HPrinterDefault =  printer.Properties["Default"].Value.ToString();               //获取打印机是否是默认打印机
                    string HPrinterWorkStatus = printer.Properties["PrinterStatus"].Value.ToString();       //获取打印机工作状态(1:其他,2:未知,3:空闲,4:打印,5:预热,6:停止打印,7:脱机)
                    string HIsOffOnline = printer.Properties["WorkOffline"].Value.ToString();               //获取打印机是否离线
                    string isConnected = printer["WorkOffline"].ToString().ToLower();
                    if (isConnected.Equals("true"))
                    {
                        return false;
                    }
                    else
                    {
                        return true;
                    }
                }
            }
            return false;
        }
    }
}