Если бы не периодические изменения, можно было бы все сделать как mayton2019 предложил.
Но вот из-за того, что производство будет менять свои требования, и возник вопрос.
С учетом полученных ответов и идей вариант решения сейчас видится таким: Описание опций и взаимосвязей:
ListOptions – список, в котором хранятся опции и их параметры (позиция опции в коде заказа, ее описание, мин и макс значения параметра, флаг доступности) и ссылка на другой список ListRelatons, элементами которого являются зависимые и параметры накладываемых ограничений (мин и макс значения параметра, флаг доступности опции).
Для хранения списков можно использовать базу данных или Excel. Процедура конфигурирования:
Создается ListConfiguration, в который копируется ListOptions.
В интерфейсе пользователя настраиваются контролы (как mayton2019 предложил) в соответствии с текущими данными из ListConfiguration.
При выборе пользователем какой-либо опции алгоритм выполняет проход по списку ListRelatons для выбранной опции и применяет ограничения из него к параметрам опций в ListConfiguration. Если ранее выбранные параметры для опции выходят за обновленные параметры пользователю выдается сообщение.
Если выбраны не все позиции (продукт сконфигурирован не полностью), то переход на шаг 2.
Если есть комментарии/замечания таком по варианту – пишите, пожалуйста.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Если бы не периодические изменения, можно было бы все сделать как mayton2019 предложил.
Но вот из-за того, что производство будет менять свои требования, и возник вопрос.
С учетом полученных ответов и идей вариант решения сейчас видится таким:
Описание опций и взаимосвязей:
ListOptions – список, в котором хранятся опции и их параметры (позиция опции в коде заказа, ее описание, мин и макс значения параметра, флаг доступности) и ссылка на другой список ListRelatons, элементами которого являются зависимые и параметры накладываемых ограничений (мин и макс значения параметра, флаг доступности опции).
Для хранения списков можно использовать базу данных или Excel.
Процедура конфигурирования:
Если есть комментарии/замечания таком по варианту – пишите, пожалуйста.