LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Как обнов...
 RE: Как обновлять список доступных операций?
 
 15.06.2007 21:04:16
N_A
31 сообщения


RE: Как обновлять список доступных операций?
Вариант «Старкрафт»: построить строение3 нельзя т.к. нет строения2 ,а построить строение2 нельзя т.к. нет строения1 (т.е. Каждая операция хранит инфу только одного условия доступности (операции) )
1. Для анализа доступности операции нужно «пройтись» по списку уже сделанных операций(если в нем есть необходимая операция то наша доступна, если нет то недоступна)

2.У вас для добавления 3 нужно добавить 4,5 и 7. В данном варианте, например, для добавл. 3 нужна 4, для добавл 4 нужна 7 , для добавл 7 нужна 5. (прошлись по цепочке (рекурсивно))

3. Можно расширить алгоритм, заменив цепочку (список) древом, (это позволит указывать более 1-го условия для операции)

4. Если этот вариант проходит, то остается «только лишь!» реализовать это на компе:)

Вариант «Герои» (если мне не изменяет память): построить строение3 нельзя т.к. нет строения1 ,2…
(т.е. Каждая операция хранит инфу о всех условиях доступности (операции) )

1. Для анализа доступности операции нужно просмотреть список сделанных операций (если в нем есть все необходимые операция то наша доступна, если хотя бы одной нет, то недоступна)

Аналогично с взаимоисключающими операциями.

Ради интереса сделал SQL запросы на выбор доступных операций и на первый, и на второй вариант, причем обошлось без подчиненных запросов и VBA.
Но объяснять лень, т.к. устал печатать.:)
Может сам уже разобрался(если нет, то пиши - продолжу...)




P.S. Проблемы с базой данных
Автор: N_A от 27.06.2003 18:06:53 Источник ...
 15.06.2007 21:04:16
Benko
8 сообщения


Если б все так просто было б:)
Мне ж не только нужно проверять, доступна операция или нет. Мне нужно автоматически добавлять сопутствующие операции. Кроме того, даже ограничившись проверкой, все равно все не так просто. Там сложная логика, например: операция 5 доступна, если (выбрана операция 2 и при этом не выбрана операция 4) или если (выбрана операция 3 и при этом не выбрана операция 2).
Но интересный вариант решения у меня уже есть: операции кодировать бинарно: 100000000000 - первая операция, 010000000000 - вторая и т.д. Затем с каждой операцией хранить маску типа 100111010100 - это те операции, которые должны быть выбраны, чтобы была доступна данная операция. Если чего-то нет - добавлять автоматом, а если что-то лишнее - то или убавлять автоматом или совсем убрать операцию из доступных.
Подсказали на другом форуме. Круто!


P.S. Проблемы с базой данных
Автор: Константин Бенко от 01.07.2003 15:06:04 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Как обнов...
ПоискПоиск  Список форумовСписок форумов  
right