void _CheckInPrice(BaseCar car, System.Windows.Controls.DataGridCellEditEndingEventArgs e) { if (e.EditAction == DataGridEditAction.Commit) { // var column = e.Column as DataGridBoundColumn; // if (column != null) // { // var t = (column.Binding as Binding); // var bindingPath = t.Path.Path; // if (bindingPath == "Col2") // { // int rowIndex = e.Row.GetIndex(); // var el = e.EditingElement as TextBox; // // rowIndex has the row index // // bindingPath has the column's binding // // el.Text has the new, user-entered value // } // else // { // // Тут уже фильтруем по значениеям // MessageBox.Show(t.Path.PathParameters.ToString()); // } // } _RecomputePrice_Copy(); } }
private void button_Click(object sender, RoutedEventArgs e) { var car = new BaseCar(); CarManager.Instance.carListPreOrder.Add(car); this.dataGrid_Copy.ItemsSource = null; this.dataGrid_Copy.ItemsSource = CarManager.Instance.carListPreOrder; _RecomputePrice_Copy(); }
public static void CreateDocument(string _номердоговора, string _имязаказчика, int _количествомашин, System.Windows.Controls.DataGrid _cars) { if (_количествомашин <= 0) { MessageBox.Show("Пустой заказ или машины не добавлены в обработку"); return; } try { //Create an instance for word app Microsoft.Office.Interop.Word.Application winword = new Microsoft.Office.Interop.Word.Application(); //Set status for word application is to be visible or not. winword.Visible = false; //Create a missing variable for missing value object missing = System.Reflection.Missing.Value; //Заголовок документа winword.Documents.Application.Caption = "Договор №" + _номердоговора + "-" + _имязаказчика; //Create a new document Microsoft.Office.Interop.Word.Document document = winword.Documents.Add(ref missing, ref missing, ref missing, ref missing); //Добавление верхнего колонтитула foreach (Microsoft.Office.Interop.Word.Section section in document.Sections) { Microsoft.Office.Interop.Word.Range headerRange = section.Headers[ Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range; headerRange.Fields.Add( headerRange, Microsoft.Office.Interop.Word.WdFieldType.wdFieldPage); headerRange.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter; headerRange.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdBlue; headerRange.Font.Size = 10; headerRange.Text = /*"Верхний колонтитул" + Environment.NewLine + "Договор №" + _номердоговора + "-" + _имязаказчика+*/ Environment.NewLine; } //Добавление нижнего колонтитула foreach (Microsoft.Office.Interop.Word.Section wordSection in document.Sections) { // Microsoft.Office.Interop.Word.Range footerRange = wordSection.Footers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range; //Установка цвета текста footerRange.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdDarkRed; //Размер footerRange.Font.Size = 10; //Установка расположения по центру footerRange.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter; //Установка текста для вывода в нижнем колонтитуле footerRange.Text = /*"Нижний колонтитул" + */ Environment.NewLine + ""; } //Добавление текста в документ document.Content.SetRange(0, 0); document.Content.Text = "Договор №" + _номердоговора + "-" + _имязаказчика + Environment.NewLine; //Добавление текста со стилем Заголовок 1 Microsoft.Office.Interop.Word.Paragraph para1 = document.Content.Paragraphs.Add(ref missing); object styleHeading1 = "Заголовок 1"; para1.Range.set_Style(styleHeading1); para1.Range.Text = "Договор №" + _номердоговора + "-" + _имязаказчика; para1.Range.InsertParagraphAfter(); // float _общаяЦена = (float)0.0; //Создание таблицы 5хn const int size = 5; Table firstTable = document.Tables.Add(para1.Range, _количествомашин + 1, size, ref missing, ref missing); firstTable.Borders.Enable = 1; foreach (Row row in firstTable.Rows) { foreach (Cell cell in row.Cells) { //Заголовок таблицы if (cell.RowIndex == 1) { // Базовая структура if (cell.ColumnIndex == 1) { cell.Range.Text = "Название модели"; cell.Range.Font.Bold = 1; //Задаем шрифт и размер текста cell.Range.Font.Name = "verdana"; cell.Range.Font.Size = 10; cell.Shading.BackgroundPatternColor = WdColor.wdColorGray25; //Выравнивание текста в заголовках столбцов по центру cell.VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter; cell.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; } else if (cell.ColumnIndex == 2) { cell.Range.Text = "Уникальный фабричный номер"; cell.Range.Font.Bold = 1; //Задаем шрифт и размер текста cell.Range.Font.Name = "verdana"; cell.Range.Font.Size = 10; cell.Shading.BackgroundPatternColor = WdColor.wdColorGray25; //Выравнивание текста в заголовках столбцов по центру cell.VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter; cell.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; } else if (cell.ColumnIndex == 3) { cell.Range.Text = "Дата производства исходной машины"; cell.Range.Font.Bold = 1; //Задаем шрифт и размер текста cell.Range.Font.Name = "verdana"; cell.Range.Font.Size = 10; cell.Shading.BackgroundPatternColor = WdColor.wdColorGray25; //Выравнивание текста в заголовках столбцов по центру cell.VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter; cell.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; } else if (cell.ColumnIndex == 4) { cell.Range.Text = "Дата получения машины заказчиком"; cell.Range.Font.Bold = 1; //Задаем шрифт и размер текста cell.Range.Font.Name = "verdana"; cell.Range.Font.Size = 10; cell.Shading.BackgroundPatternColor = WdColor.wdColorGray25; //Выравнивание текста в заголовках столбцов по центру cell.VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter; cell.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; } else if (cell.ColumnIndex == 5) { cell.Range.Text = "Цена"; cell.Range.Font.Bold = 1; //Задаем шрифт и размер текста cell.Range.Font.Name = "verdana"; cell.Range.Font.Size = 10; cell.Shading.BackgroundPatternColor = WdColor.wdColorGray25; //Выравнивание текста в заголовках столбцов по центру cell.VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter; cell.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; } } //Значения ячеек else { // к одномерному Row-2+Column BaseCar car = _cars.Items[cell.RowIndex - 2] as BaseCar; if (cell.ColumnIndex == 1) { cell.Range.Text = car.Название_Модели.ToString(); } else if (cell.ColumnIndex == 2) { cell.Range.Text = car.УникальныйФабричныйНомер.ToString(); } else if (cell.ColumnIndex == 3) { cell.Range.Text = car.ДатаПроизводстваИсходнойМашины.ToString(); } else if (cell.ColumnIndex == 4) { cell.Range.Text = car.ДатаПроизводстваЦелевойМашины.ToString(); } else if (cell.ColumnIndex == 5) { cell.Range.Text = car.Цена.ToString(); _общаяЦена += car.Цена; } } } } _ТекстДоговора(document, missing, _количествомашин, _общаяЦена); //Сохранение документа object filename = @"C:\res\" + _номердоговора + ".docx"; document.SaveAs(ref filename); if (MessageBox.Show("Document created successfully: on path:" + filename.ToString() + " Open in Word?", "Successfull", MessageBoxButtons.YesNo) == DialogResult.Yes) { winword.Visible = true; } else { //Закрытие текущего документа document.Close(ref missing, ref missing, ref missing); document = null; //Закрытие приложения Word winword.Quit(ref missing, ref missing, ref missing); winword = null; if (MessageBox.Show("Распечатать?", "Печать?", MessageBoxButtons.YesNo) == DialogResult.Yes) { using (PrintDialog pd = new PrintDialog()) { pd.ShowDialog(); ProcessStartInfo info = new ProcessStartInfo(filename.ToString()); info.Verb = "PrintTo"; info.Arguments = pd.PrinterSettings.PrinterName; info.CreateNoWindow = true; info.WindowStyle = ProcessWindowStyle.Hidden; Process.Start(info); } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }