Пользовательский интерфейс WPF, позволяющий пользователю создавать сложные запросы и выводить дерево выражений - PullRequest
2 голосов
/ 29 декабря 2011

Я собираюсь сделать build - это пользовательский интерфейс, который позволит опытному пользователю создавать сложные запросы.

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

Требуется:

Чтобы иметь возможность указать некоторую логику типа 'where-clause', такую ​​как: Age>21 and (Citizen=True or HasGreeCard=True), но без необходимости вводить код запроса, вместо этого используйте пользовательский интерфейс с ограниченными параметрами и проверку синтаксиса на лету (например, без закрытой скобки или окончания термина оператором).

Я видел подобные вещи во многих бизнес-приложениях, где вы можете сказать «добавить условие», и в пользовательском интерфейсе появляется следующая строка:

 Dropdown of fields     Dropdown of ops (=, >, etc)     Blank box for entry

И вы можете добавить больше строк, и все строки будут помечены как "и", но вы также можете выбрать ИЛИ несколько или вставить круглые скобки (подробности или с помощью отступа), а НЕ строку, вставлять, удалять и перемещать строки вокруг и т. д.

Не обязательно, но приятно:

  • WPF - я могу конвертировать из winforms.
  • Расширяемость с помощью ОО-конструкций.
  • Проверить правильность запроса.
  • Излучает дерево выражений System.Linq.Expressions или аналогичную структуру данных.
  • Если он пытается выполнить запрос, мне это не нужно; но я не против удалить его.

1 Ответ

0 голосов
/ 30 декабря 2011

Эта проблема уже была решена средствами управления DevExpress. Гугл их FilterControl для wpf. Это может быть легко приспособлено к вашим потребностям, вы можете добавлять и удалять операции, и после этого конвертировать выражения в SQL-запрос или реализовывать ivisitor и выполнять уравнения или другое поколение ...

...