예제 #1
0
        private void print_control_check()
        {
            StringBuilder print_string = new StringBuilder();

            int width_of_symbols = MainStaticClass.Width_Of_Symbols;

            if (width_of_symbols == 0)
            {
                MessageBox.Show("Не задана ширина печати, печать выполнена не будет ", "Ошибка настройки программы");
                return;
            }
            //using (StreamWriter sw = new StreamWriter(Application.StartupPath + "/PrintCheck.txt"))
            //{
            //sw.WriteLine("ЧИСТЫЙ ДОМ - Магазин низких цен №1");


            print_string.Append("ЧИСТЫЙ ДОМ - Магазин низких цен №1" + "\r\n");
            //sw.WriteLine("       << ЧИСТЫЙ ДОМ >>");
            //sw.WriteLine("бытовая химия - косметика - парфюмерия");
            print_string.Append("бытовая химия - косметика - парфюмерия" + "\r\n");
            //sw.WriteLine("_______________________________________");
            print_string.Append("---------------------------------------" + "\r\n");


            print_string.Append(MainStaticClass.Nick_Shop + " К №" + MainStaticClass.CashDeskNumber + " " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " " + MainStaticClass.Cash_Operator + "\r\n");

            string number = "";

            NpgsqlConnection conn = MainStaticClass.NpgsqlConn();

            try
            {
                string query = "SELECT MAX(document_number)  FROM checks_header  where date_time_write<'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "'";
                conn.Open();
                NpgsqlCommand command = new NpgsqlCommand(query, conn);
                number = command.ExecuteScalar().ToString();
            }
            catch (NpgsqlException ex)
            {
                MessageBox.Show(ex.Message);
                number = "Ошибка при получении номера";
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                number = "Ошибка при получении номера";
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }

            print_string.Append("Предыдущий чек № " + number + "\r\n");


            //if (DialogResult.OK == MessageBox.Show("Печатать чек ?", "Печатать чек ?", MessageBoxButtons.OKCancel))
            //{
            PrintDocument pd = new PrintDocument();

            pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
            //pd.PrinterSettings.PrinterName = PrinterSettings.InstalledPrinters[0];
            pd.PrinterSettings.PrinterName = PrinterSettings.InstalledPrinters[MainStaticClass.get_num_text_pinter()];
            count_pages = -1;
            string TFF = print_string.ToString();

            TFF        = TFF.Replace("\r\n", "|");
            print_data = TFF.Split('|');
            pd.Print();
            //}
        }