Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Форма конструктора логических выражений / 3 сообщений из 3, страница 1 из 1
10.09.2012, 11:19
    #37950646
BlackSmoke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма конструктора логических выражений
День добрый!

У меня есть таблица, в ней содержится список ссылок на переменные и условия с чем их сравнивать
Например

ID_Переменной Условие Значение
101 > 15
102 = 20
103 not 12

Есть процедура которая просто проверяет все условия и что-то там делает когда все условия выполнены.
Нужно усложнить все это, чтобы не просто все условия выполнялись, но чтобы можно было использовать скобки и условия AND и OR.
Сложностей со сборкой и проверкой строки условия нет никаких.

Суть проблемы:
1 Как и где хранить скобки и условия
2 Как должен выглядеть интерфейс пользователя для конструирования такого выражения? В данный момент это просто таблица.
...
Рейтинг: 0 / 0
10.09.2012, 14:21
    #37950990
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма конструктора логических выражений
BlackSmoke1 Как и где хранить скобки и условия
2 Как должен выглядеть интерфейс пользователя для конструирования такого выражения? В данный момент это просто таблица.
Скобки и операции требуют введения приоритета. Судя по постановке вопроса, редактировать будет удобно в виде дерева. Хранить - либо в виде сформированного выражения, либо опять же в виде дерева.
...
Рейтинг: 0 / 0
10.09.2012, 14:43
    #37951042
Alexsalog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма конструктора логических выражений
Я эту проблему решил, приняв за постулат, что все логические выражения это набор:

Код: sql
1.
(<NOT>Выражение OR <NOT>Выражение OR <NOT>Выражение ...) AND (<NOT>Выражение OR <NOT>Выражение OR <NOT>Выражение ...)


Достаточно универсальная концепция. Согласно правилам булевой алгебры таким образом можно представить что угодно.

Интерфейс для этого дела выглядит как список (озаглавлен: И условия):

Код: sql
1.
2.
3.
(<NOT>Выражение1 OR <NOT>Выражение2 OR <NOT>Выражение3 ...) 
(<NOT>Выражение4 OR <NOT>Выражение5 OR <NOT>Выражение6 ...)
(<NOT>Выражение7 OR <NOT>Выражение8 OR <NOT>Выражение9 ...)



При нажатии на строчку (например на первую) появляется новый список ( озаглавлен: ИЛИ условия)::

Код: sql
1.
2.
3.
<NOT>Выражение1 
<NOT>Выражение2 
<NOT>Выражение3
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Форма конструктора логических выражений / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]