Пример #1
0
        private void button2_Click(object sender, EventArgs e)
        {
            Editable_Params EP = (Editable_Params)Serializer.LoadFromXML("Parameters.xml", typeof(Editable_Params));

            // Сюда вставляем добавление параметров

            ///////////////////////////////////////

            EP.SaveToXML("Parameters.xml");
        }
Пример #2
0
        private void button1_Click(object sender, EventArgs e)
        {
            // Сообщим, что начали работать
            Progress.Counting = true;
            Progress.Process  = "Подготовка к расчётам";
            Progress.Abort    = false;

            //Отключим все кнопки
            button1.Enabled = false;
            button3.Enabled = false;

            //И включим кнопку аборта
            button4.Visible = true;

            //Вычисление времени работы. Начальная точка
            DateTime StartTime = DateTime.Now;


            //Загрузка номеров строк
            Colomn_Numbers Colomn_N = (Colomn_Numbers)Serializer.LoadFromXML("Colomns.xml", typeof(Colomn_Numbers));

            // Загрузка констант из файла
            Editable_Params Params = (Editable_Params)Serializer.LoadFromXML("Parameters.xml", typeof(Editable_Params));

            if (Progress.Abort)
            {
                Stop();
                return;
            }

            // Запросим DealerContractCode
            string DCC = Input_String.GetString("DealerContractCode", "Введите начальный DealerContractCode:", Convert.ToInt32(Params.Const.DealerContractCode));

            if (DCC == "@Cancel@")
            {
                Stop(); return;
            }
            Params.Const.DealerContractCode = DCC;

            // Создание массива
            Contracts = new List <CONTRACT>();

            // Определение файла с информацией и папки, куда складывать всё.
            string ExcelFileName = OpenFile();

            if (ExcelFileName == "<Cancel>")
            {
                return;
            }

            string OutputDirectory = OpenDirectory();

            if (OutputDirectory == "<Cancel>")
            {
                return;
            }

            // Загрузка таблицы
            Excel_Table Table;

            try
            {
                Table = Excel_Table.LoadFromFile(ExcelFileName);
            }
            catch (Exception)
            {
                MessageBox.Show("Ошибка открытия файла «" + ExcelFileName + "»", "Ошибка");
                return;
            }

            // Вставка контента в объекты
            Progress.Process = "Обработка данных";
            for (int i = 1; i < Table.Table_Height; i++)
            {
                Contracts.Add(GetContract(Table, i, Params, Colomn_N));
                Progress.Position = Progress.Done + i;
                Application.DoEvents();
                if (Progress.Abort)
                {
                    Stop();
                    return;
                }
            }
            Progress.Done += Table.Table_Height;


            // Загрузка шаблона
            string Example = File.ReadAllText("Example.xml", Encoding.GetEncoding("Windows-1251"));

            // Вставка данных в шаблон и сохранение этого безобразия.
            Progress.Process = "Экспорт данных в XML";
            for (int i = 0; i < Contracts.Count; i++)
            {
                File.WriteAllText(OutputDirectory + "\\" + Contracts[i].DealerCode + "_" + Contracts[i].DealerPointCode + "_" + Contracts[i].DealerContractCode + ".xml",
                                  Contracts[i].ToXMLString(Example), Encoding.GetEncoding("Windows-1251"));
                Progress.Position = Progress.Done + i;
                Application.DoEvents();
                if (Progress.Abort)
                {
                    Stop();
                    return;
                }
            }

            // Запишем последнее значение DealerContractCode + 1
            Params.Const.DealerContractCode = (Convert.ToInt32(Params.Const.DealerContractCode) + Contracts.Count).ToString();
            Params.SaveToXML("Parameters.xml");

            DateTime EndTime = DateTime.Now;
            TimeSpan period  = EndTime - StartTime;

            Stop();

            MessageBox.Show("Экспорт завёршён.\nВремя работы: " + period.ToString("hh\\:mm\\:ss"), "Завершение работы");
        }