Редактор фильтра в БД для Delphi

Илья15 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
11.03.2011

Необходимо разработать компонент на основе компонента TTreeView для редактирования фильтра для записей из БД.

У компонента есть поле Fields: TStrings, с помощью которого ему сообщается, какие поля участвуют в фильтрации. Текущий корневой элемент фильтра содержит отдельные элементы фильтра и группы элементов. Элемент фильтра – это тройка "название поля"-"условие"-"значение" . Условия для фильтра бывают: равен, не равен, меньше Чем, меньше чем или равен, больше чем, больше чем или равен, содержит, не содержит, определен (не пустой), не определен (пустой). Считается, элементы фильтра в данной группе объединяются с условиями И, И НЕ, ИЛИ, ИЛИ НЕ. Должна быть возможность редактировать фильтр средствами Object Pascal. Фильтр должен выдавать строку SQL-кода, подставив которую вместо ... в запрос "SELECT * FROM table WHERE ..." – можно получить нужные элементы. Примерный вид, как хотелось бы видеть фильтр, показан на рисунке. Картинка взята из программы AllSubmitter.

По задумке, код должен быть автономен от неродных для Delphi пакетов, но если предложите какие-то лучшие варианты – обсудим.

Пишите ориентировочную стоимость работ и время выполнения, исходя из этого буду выбирать исполнителя.