Exemple #1
0
        private void GenerateOrder()
        {
            List <List <int> > filialMarks = new List <List <int> >();

            int firstCheckBoxColumnIndex = gridOrder.Columns.IndexOf(gridOrder.Columns[OrderFileGenerator.filialNames.First()]);
            int columnCount = gridOrder.Columns.Count;
            int rowCount    = gridOrder.Rows.Count;

            for (int i = 0; i < rowCount; i++)
            {
                List <int> list = new List <int>();

                for (int j = firstCheckBoxColumnIndex; j < columnCount; j++)
                {
                    if (Convert.ToBoolean(gridOrder.Rows[i].Cells[j].Value))
                    {
                        list.Add(j - firstCheckBoxColumnIndex);
                    }
                }

                if (list.Count == 0)
                {
                    list.Add((int)OrderFileGenerator.Filials.Minsk);
                }

                filialMarks.Add(list);
            }

            if (filialMarks.Count == 0)
            {
                MessageBox.Show("Нет данных для генерации выписки", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            OrderFileGenerator.SaveOrderIntoFile(prologue, document, filialMarks, epilogue);
        }
Exemple #2
0
        private void GenerateOrder()
        {
            DialogResult result         = DialogResult.None;
            bool         everythingIsOk = true;

            if (gridOrder.ColumnCount == 0)
            {
                MessageBox.Show("Нет данных для генерации выписки", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            try
            {
                toolStripStatusLabel.Text = loadingString;
                String date = tableOrder.Rows[0].Field <String>(columnNames.First());
                if (!OrderFileGenerator.ConnectToExcelRegisterAndGetInformation(date))
                {
                    result = MessageBox.Show("Возникли проблемы с файлом реестра. Не найдены записи на требуемую дату: " +
                                             date, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (System.Runtime.InteropServices.COMException exc)
            {
                everythingIsOk = false;
                result         = MessageBox.Show("Возникли проблемы с файлом реестра. Не найдена страница с именем " +
                                                 Properties.Settings.Default.RegisterSheetName + ". Проверьте имя страницы и файл реестра.\n" + exc.Message,
                                                 "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                toolStripStatusLabel.Text = String.Empty;

                if (result == DialogResult.OK)
                {
                    result = MessageBox.Show("Хотите продолжить генерацию выписки без импорта данных из реестра? " +
                                             "(Т.е. если сумма одна на несколько филиалов, то она дублируется во всех филиалах, а ее " +
                                             "изменение придется выполнять вручную)", "Предложение", MessageBoxButtons.YesNo,
                                             MessageBoxIcon.Question);
                }
            }

            if (result == DialogResult.Yes || everythingIsOk)
            {
                List <List <int> > filialMarks = new List <List <int> >();

                int firstCheckBoxColumnIndex = gridOrder.Columns.IndexOf(gridOrder.Columns[OrderFileGenerator.filialNames.First()]);
                int columnCount = gridOrder.Columns.Count;
                int rowCount    = gridOrder.Rows.Count;

                for (int i = 0; i < rowCount; i++)
                {
                    List <int> list = new List <int>();

                    for (int j = firstCheckBoxColumnIndex; j < columnCount; j++)
                    {
                        if (Convert.ToBoolean(gridOrder.Rows[i].Cells[j].Value))
                        {
                            list.Add(j - firstCheckBoxColumnIndex);
                        }
                    }

                    if (list.Count == 0)
                    {
                        list.Add((int)OrderFileGenerator.Filials.Minsk);
                    }

                    filialMarks.Add(list);
                }

                if (filialMarks.Count == 0)
                {
                    MessageBox.Show("Нет данных для генерации выписки", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                try
                {
                    OrderFileGenerator.SaveOrderIntoFile(prologue, document, filialMarks, epilogue);
                }
                catch (Exception exc)
                {
                    MessageBox.Show(exc.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                finally
                {
                    OrderFileGenerator.Register.Close(false, false, false);
                    //         OrderFileGenerator.ExcelApp.Quit();
                    GC.Collect();
                }
            }
            else
            {
                OrderFileGenerator.Register.Close(false, false, false);
                //      OrderFileGenerator.ExcelApp.Quit();
                GC.Collect();
            }
        }