Example #1
0
 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();
     }
 }
Example #2
0
        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();
        }
Example #3
0
        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);
            }
        }