public static void Print(device dev) { try { //Если файл существует - затираем /* StreamWriter toFile = new StreamWriter("receipt.html", false, System.Text.Encoding.Default); * List<string> bufSet = Settings.readSettings(); * toFile.Write("<!DOCTYPE HTML><html><body><b><font size =\"5\">\"" + bufSet[0] + "\"</font><br>т. <font size =\"4\">" + bufSet[1] + "</font> <br>" + bufSet[2] + " <br>" + bufSet[3] + "<br> <br></b>"); * toFile.Close(); * aboutRepair(dev); * termOfService(); * aboutRepair(dev); */ List <string> bufSet = Settings.readSettings(); StringBuilder htmlText = new StringBuilder("<!DOCTYPE HTML><html><body><b><font size =\"5\">\"" + bufSet[0] + "\"</font><br>т. <font size =\"4\">" + bufSet[1] + "</font> <br>" + bufSet[2] + " <br>" + bufSet[3] + "<br> <br></b>"); AboutRepair(dev, htmlText); TermOfService(htmlText); AboutRepair(dev, htmlText); WebBrowser webBrowserForPrinting = new WebBrowser(); webBrowserForPrinting.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(PrintDocument); webBrowserForPrinting.DocumentText = htmlText.ToString(); } catch (Exception er) { System.Windows.MessageBox.Show(er.ToString() + Environment.NewLine + "Ошибка при печати документа"); } }
public static void WriteToFile(device dev, int poz = -1) { try { using (FileStream toFile = new FileStream("repairs.txt", FileMode.Open)) { byte[] textToByte; //Если не передано координат для записи if (poz == -1) { toFile.Seek(0, SeekOrigin.End); //Если уже есть записи - записать знак перехода на новую строку if (toFile.Length > 0) { textToByte = System.Text.Encoding.Default.GetBytes(Environment.NewLine); toFile.Write(textToByte, 0, textToByte.Length); } } //Если переданы координаты для записи - установить курсор else { toFile.Seek(poz, SeekOrigin.Begin); } //Записать объект в файл textToByte = System.Text.Encoding.Default.GetBytes(dev.ID + "| " + Convert.ToInt32(dev.Status) + "| " + dev.Type + "| " + dev.Manufact + "| " + dev.Model + "| " + dev.Break + "| " + dev.Phone + "| " + dev.Serial + "| " + dev.Komplekt + "| " + dev.External + "| " + dev.PrePay + "| " + dev.PreCost + "| " + dev.Client + "| " + dev.Date + "| " + dev.Cost + "| " + dev.Comment + "| " + dev.WhatIsDone + "~ "); toFile.Write(textToByte, 0, textToByte.Length); } } catch (Exception er) { System.Windows.MessageBox.Show(er.ToString() + Environment.NewLine + "Ошибка записи ремонта в файл"); } }
public static List <device> ReadFromFile() { List <device> devList = new List <device>(); try { //Если файла нет - создать if (!File.Exists("repairs.txt")) { FileStream file = File.Create("repairs.txt"); file.Close(); } //Иначе открываем файл else { StreamReader fromFile = new StreamReader("repairs.txt", System.Text.Encoding.Default); //Если файл пустой - закрываем без чтения if (fromFile.Peek() == -1) { fromFile.Close(); } //Если есть записи - считываем else { const int length = 17; int y = 0; string bufLine, buf = ""; string[] buffer = new string[17]; while ((bufLine = fromFile.ReadLine()) != null) { for (int i = 0; y < length; i++) { //Посимвольно считываем файл пока не встретим разделитель if (bufLine[i] != '|' && bufLine[i] != '~') { buf += bufLine[i]; } //После встречи разделителя записываем объект в буферный массив else { //MessageBox.Show(buf); buffer[y++] = buf; buf = ""; if (bufLine[i] == '~') { y = length; break; } //Перепрыгиваем разделитель i++; } } y = 0; device bufObj = new device(buffer[0], buffer[1], buffer[2], buffer[3], buffer[4], buffer[5], buffer[6], buffer[7], buffer[8], buffer[9], buffer[10], buffer[11], buffer[12], buffer[13], buffer[14], buffer[15], buffer[16]); //MessageBox.Show(bufObj.ID); devList.Insert(0, bufObj); } fromFile.Close(); } } } catch (Exception er) { System.Windows.MessageBox.Show(er.ToString() + Environment.NewLine + "Ошибка считывания ремонтов из файла"); } return(devList); }
// static void aboutRepair(device dev) static void AboutRepair(device dev, StringBuilder htmlText) { try { /* StreamWriter toFile = new StreamWriter("receipt.html", true, System.Text.Encoding.Default); * toFile.Write("<table><tr><th><b>Квитанция о приеме оборудования на ремонт</b></th></tr></table>"); * toFile.Write("<table border =\"1\"><tr><td align =\"right\" width =\"20 %\"><b>Устройство</b></td><td> " + dev. Type + " " + dev. Manufact + " " + dev. Model + "</td></tr>"); * toFile.Write("<tr><td align =\"right\" width =\"20%\"><b>Серийный номер</b></td> <td> " + dev. Serial + " </td> </tr>"); * toFile.Write("<tr><td align =\"right\" width =\"20 %\"><b>Комплектность</b></td><td> " + dev. Komplekt + "</td></tr>"); * toFile.Write("<tr><td align =\"right\" width =\"20 %\"><b>Внешний вид</b></td><td> " + dev. External + "</td></tr>"); * toFile.Write("<tr><td align =\"right\" width =\"20 %\"><b>Предоплата</b></td><td> "); * if (dev. PrePay > 0) * { * toFile.Write(dev.PrePay); * } * else * { * toFile.WriteLine("Без предоплаты"); * } * toFile.Write("</td></tr>"); * toFile.Write("<tr><td align =\"right\" width =\"20 %\"><b>Предварительная стоимость</b></td><td> "); * if (dev. PreCost > 0) * { * toFile.WriteLine(dev. PreCost); * } * else * { * toFile.WriteLine("После диагностики"); * } * toFile.Write("</td></tr>"); * toFile.Write("<tr><td align =\"right\" width =\"20 %\"><b>Клиент</b></td><td> " + dev. Client + "</td></tr>"); * toFile.Write("<tr><td align =\"right\" width =\"20 %\"><b>Телефон клиента</b></td><td> " + dev. Phone + "</td></tr>"); * toFile.Write("<tr><td align =\"right\" width =\"20 %\"><b>Дата приема</b></td><td> " + dev. Date + "</td></tr>"); * toFile.WriteLine("<table><tr><th><b>Неисправность со слов клиента</b></th></tr></table>"); * toFile.WriteLine("<table border =\"1\"><tr align =\"center\"><td><br>" + dev. Break + "<br><br></td></tr></table>"); * toFile.Close(); */ htmlText.Append("<table><tr><th><b>Квитанция о приеме оборудования на ремонт</b></th></tr></table>"); htmlText.Append("<table border =\"1\"><tr><td align =\"right\" width =\"20 %\"><b>Устройство</b></td><td> " + dev.Type + " " + dev.Manufact + " " + dev.Model + "</td></tr>"); htmlText.Append("<tr><td align =\"right\" width =\"20%\"><b>Серийный номер</b></td> <td> " + dev.Serial + " </td> </tr>"); htmlText.Append("<tr><td align =\"right\" width =\"20 %\"><b>Комплектность</b></td><td> " + dev.Komplekt + "</td></tr>"); htmlText.Append("<tr><td align =\"right\" width =\"20 %\"><b>Внешний вид</b></td><td> " + dev.External + "</td></tr>"); htmlText.Append("<tr><td align =\"right\" width =\"20 %\"><b>Предоплата</b></td><td> "); if (dev.PrePay > 0) { htmlText.Append(dev.PrePay); } else { htmlText.Append("Без предоплаты"); } htmlText.Append("</td></tr>"); htmlText.Append("<tr><td align =\"right\" width =\"20 %\"><b>Предварительная стоимость</b></td><td> "); if (dev.PreCost > 0) { htmlText.Append(dev.PreCost); } else { htmlText.Append("После диагностики"); } htmlText.Append("</td></tr>"); htmlText.Append("<tr><td align =\"right\" width =\"20 %\"><b>Клиент</b></td><td> " + dev.Client + "</td></tr>"); htmlText.Append("<tr><td align =\"right\" width =\"20 %\"><b>Телефон клиента</b></td><td> " + dev.Phone + "</td></tr>"); htmlText.Append("<tr><td align =\"right\" width =\"20 %\"><b>Дата приема</b></td><td> " + dev.Date + "</td></tr>"); htmlText.Append("<table><tr><th><b>Неисправность со слов клиента</b></th></tr></table>"); htmlText.Append("<table border =\"1\"><tr align =\"center\"><td><br>" + dev.Break + "<br><br></td></tr></table>"); } catch (Exception er) { System.Windows.MessageBox.Show(er.ToString() + Environment.NewLine + "Ошибка при создании квитанции (описание ремонта)"); } }
public AddorChangeRepair(device obj, int index, bool trigger) { indexBuf = index; dev = obj; try { InitializeComponent(); //System.Windows.Input.Keyboard.Focus(TXclient.Text); TXclient.Focus(); if (trigger) { TXcost.Focus(); LabelClient.Visibility = Visibility.Collapsed; TXclient.Visibility = Visibility.Collapsed; LabelPhone.Visibility = Visibility.Collapsed; TXphone.Visibility = Visibility.Collapsed; LabelManufact.Visibility = Visibility.Collapsed; TXmanufact.Visibility = Visibility.Collapsed; LabelModel.Visibility = Visibility.Collapsed; TXmodel.Visibility = Visibility.Collapsed; LabelSerial.Visibility = Visibility.Collapsed; TXserial.Visibility = Visibility.Collapsed; LabelBreak.Visibility = Visibility.Collapsed; TXbreak.Visibility = Visibility.Collapsed; LabelPrePay.Visibility = Visibility.Collapsed; TXprePay.Visibility = Visibility.Collapsed; LabelPreCost.Visibility = Visibility.Collapsed; TXpreCost.Visibility = Visibility.Collapsed; LabelType.Visibility = Visibility.Collapsed; TXtype.Visibility = Visibility.Collapsed; LabelExternal.Visibility = Visibility.Collapsed; TXexternal.Visibility = Visibility.Collapsed; LabelKomplekt.Visibility = Visibility.Collapsed; TXkomplekt.Visibility = Visibility.Collapsed; Add.Click += ClickSave; Add.Click -= ClickChange; Add.Click -= ClickAdd; } else { TXclient.Text = obj.Client; TXphone.Text = obj.Phone; TXmanufact.Text = obj.Manufact; TXmodel.Text = obj.Model; TXserial.Text = obj.Serial; TXbreak.Text = obj.Break; TXprePay.Text = Convert.ToString(obj.PrePay); TXpreCost.Text = Convert.ToString(obj.PreCost); TXcomment.Text = obj.Comment; TXmanufact.ItemsSource = readFromList("InManufact.txt"); TXbreak.ItemsSource = readFromList("InBreak.txt"); Add.Click += ClickChange; Add.Click -= ClickAdd; Add.Click -= ClickSave; } TXcost.Text = Convert.ToString(obj.Cost); } catch (Exception er) { MessageBox.Show(er.ToString() + Environment.NewLine + "Ошибка в окне добавления ремонта"); } }