Ejemplo n.º 1
0
        static void OneTable()  //обработка одной таблицы
        {
            Console.Clear();

            //открыли, прочитали DOC файл
            DOCFile doc = new DOCFile(
                FileEventProcessor,
                FileEventProcessor);

            doc.ReadOneFile();

            if (doc.filePath == null)
            {
                return;
            }

            CalibrationTable CT = new CalibrationTable( //создаем градуировочную таблицу
                doc.fileId[0],
                CTEventProcessor,
                CTEventProcessor,
                CTEventProcessor,
                CTEventProcessor,
                CTEventProcessor,
                CTEventProcessor,
                CTEventProcessor,
                CTEventProcessor);

            if (CT.ReadTable(doc.fileData[0]))
            {
                CT.RepairTable(RepairVolumeInconcictensy);
            }

            //зададим базу уровней
            CT.ChangeLevelBase(DefaultLevelBase);

            //создали, записали TXT файл
            TXTFile txt = new TXTFile(
                FileEventProcessor,
                FileEventProcessor,
                FileEventProcessor,
                FileEventProcessor);

            txt.WriteFile(CT, doc.filePath[0], WriteValcomHeader);

            OneTableMenu(CT); //вызываем меню для таблицы
        }
Ejemplo n.º 2
0
        static void OneTableMenu(CalibrationTable CT, string path = null, bool ExitIfTrue = true) //меню работы с одной таблицей
        {
            int MenuChoice = 0,                                                                   //выбранное доп. меню
                ItemChoice = 0;                                                                   //выбранный пункт  меню

            Menu.DoubleColor[] colorScheme = new Menu.DoubleColor[2];
            colorScheme[0] = new Menu.DoubleColor();
            colorScheme[1] = new Menu.DoubleColor(ConsoleColor.Yellow);

            Menu M = new Menu(
                new string[] { "Таблица: " + CT.CTid, "Опции (<Tab> для перехода)" },
                new string[][] { new string[] { }, new string[] { } },
                null,
                0,
                colorScheme);

            do
            {
                M.Items = new string[][] {
                    new string[]
                    {
                        "1. Отобразить таблицу",
                        "2. Изменить базу уровней на " + ((CT.levelBase == LevelBase.Centimeters)?"мм":"см"),
                        "3. Правка значений в таблице",
                        "4. Проверить таблицу",
                        "5. Исправить таблицу",
                        "6. Сортировать",
                        "7. Сохранить",
                        "8. " + ((ExitIfTrue)?"Выход":"Назад")
                    },
                    new string[]
                    {
                        "Исправлять непоследовательность объемов: " + ((RepairVolumeInconcictensy)?"да":"нет"),
                        "Записывать заголовок Valcom: " + ((WriteValcomHeader)?"да":"нет")
                    }
                };

                M.MenuCicle(out MenuChoice, out ItemChoice);
                switch (MenuChoice)
                {
                case -1:        //отмена меню
                    break;

                case 0:
                    switch (ItemChoice)
                    {
                    case 0:             //1. Отобразить таблицу
                        CT.ShowTable();
                        break;

                    case 1:             //2. Изменить базу уровней
                        switch (CT.levelBase)
                        {
                        case LevelBase.Millimeters:
                            CT.ChangeLevelBase(LevelBase.Centimeters);
                            break;

                        case LevelBase.Centimeters:
                            CT.ChangeLevelBase(LevelBase.Millimeters);
                            break;
                        }
                        break;

                    case 2:             //3. Правка значений в таблице
                        ChangeTableMenu(CT);
                        break;

                    case 3:             //3. Проверить таблицу
                        CT.CheckTable();
                        Console.BackgroundColor = ConsoleColor.Black;
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("\n\nДля продолжения нажмите любую клавишу...");
                        Console.ReadKey(true);
                        break;

                    case 4:             //4. Исправить таблицу
                        CT.RepairTable(RepairVolumeInconcictensy);
                        Console.BackgroundColor = ConsoleColor.Black;
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("\n\nДля продолжения нажмите любую клавишу...");
                        Console.ReadKey(true);
                        break;

                    case 5:             //5. Сортировать
                        CT.SortTable();
                        Console.BackgroundColor = ConsoleColor.Black;
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("\n\nДля продолжения нажмите любую клавишу...");
                        Console.ReadKey(true);
                        break;

                    case 6:             //6. Сохранить
                        TXTFile tf = new TXTFile(
                            FileEventProcessor,
                            FileEventProcessor,
                            FileEventProcessor,
                            FileEventProcessor);
                        tf.WriteFile(CT, path, WriteValcomHeader);
                        break;

                    case 7:             //7. Выход
                        ExitApp = ExitIfTrue;
                        break;

                    default:            //ошибка меню
                        Console.Clear();
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("Ошибка в работе доп. 0 меню одной таблицы!!!\n\nНажмите любую клавишу для выхода...");
                        Console.ReadKey(true);
                        ExitApp = true;
                        break;
                    }
                    break;

                case 1:
                    switch (ItemChoice)
                    {
                    case 0:
                        Menu M4 = new Menu(
                            new string[] { "Исправлять непоследовательность объемов?" },
                            new string[][] { new string[] { "Да", "Нет" } },
                            null,
                            0,
                            new Menu.DoubleColor[] { new Menu.DoubleColor(ConsoleColor.Yellow) });
                        int MenuChoice4 = 0,
                            ItemChoice4 = 0;
                        M4.MenuCicle(out MenuChoice4, out ItemChoice4);
                        switch (MenuChoice4)
                        {
                        case 0:
                            switch (ItemChoice4)
                            {
                            case 0:                 //Да
                                RepairVolumeInconcictensy = true;
                                break;

                            case 1:                 //Нет
                                RepairVolumeInconcictensy = false;
                                break;
                            }
                            break;
                        }
                        break;

                    case 1:
                        Menu M2 = new Menu(
                            new string[] { "Записывать в выходные файлы заголовок Valcom?" },
                            new string[][] { new string[] { "Да", "Нет" } },
                            null,
                            0,
                            new Menu.DoubleColor[] { new Menu.DoubleColor(ConsoleColor.Yellow) });
                        int MenuChoice2 = 0,
                            ItemChoice2 = 0;
                        int curItem2    = (WriteValcomHeader) ? 0 : 1;
                        M2.MenuCicle(out MenuChoice2, out ItemChoice2, 0, curItem2);
                        switch (MenuChoice2)
                        {
                        case 0:
                            switch (ItemChoice2)
                            {
                            case 0:                 //Да
                                WriteValcomHeader = true;
                                break;

                            case 1:                 //Нет
                                WriteValcomHeader = false;
                                break;
                            }
                            break;

                        default:
                            Console.Clear();
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.WriteLine("Ошибка в работе меню опций!!!\n\nНажмите любую клавишу для выхода...");
                            Console.ReadKey(true);
                            ExitApp = true;
                            break;
                        }
                        break;

                    default:
                        Console.Clear();
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("Ошибка в работе доп. 1 меню одной таблицы!!!\n\nНажмите любую клавишу для выхода...");
                        Console.ReadKey(true);
                        ExitApp = true;
                        break;
                    }
                    break;

                default:
                    Console.Clear();
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Ошибка в работе меню одной таблицы!!!\n\nНажмите любую клавишу для выхода...");
                    Console.ReadKey(true);
                    ExitApp = true;
                    break;
                }
            } while (!(MenuChoice == -1 || MenuChoice == 0 && ItemChoice == 7) && !ExitApp);
        }