C # Разрешить пользователю вводить условные правила - PullRequest
2 голосов
/ 06 октября 2010

Я пишу код изолированно, то есть я работаю на себя.Мне нужен совет о том, как вы могли бы реализовать следующие функциональные возможности или если уже есть какие-то инструменты, помогающие упростить эту задачу.

У меня есть сценарий (приложение C #), в котором я хотел бычтобы пользователь мог вводить условные правила, которые затем будут использоваться в других местах программы для различных вычислений.

В качестве простого примера, скажем, у нас есть свойство TimeRequiredForJob, и нам нужно рассчитать это в программе на основеправила пользователя.Простым правилом может быть

TimeRequiredForJob = 200 воздушных шаров, умноженных на 5 минут каждый, или TimeRequiredForJob = 20% от HoursInAf днем ​​

Я предполагаю, что довольно сложно увидеть, что я ищу, так чтоследующее изображение поможет: DevExpress XtraGrid Filter Example

Это от DevExpress XtraGrid и позволяет пользователю фильтровать данные, отображаемые в сетке, на основе пользовательских правил фильтрации пользователя.Я хотел бы реализовать нечто подобное, но иметь возможность сохранять правила в базе данных и использовать эти правила позже в приложении.

Любые предложения или советы приветствуются.

[Позднее редактирование]

На самом деле я получаю некоторую полезную информацию от этого вопроса , но любая дополнительная информация будет оценена.

1 Ответ

3 голосов
/ 06 октября 2010

Забыв на секунду о графическом интерфейсе, вам сначала нужно будет создать какой-то процессор оценки правил.

Эта статья о создании Evaluation Engine может оказаться полезной.Он описывает обработку текстовых выражений в форму, которая может быть оценена.

Когда у вас есть способ представления этих правил (либо в виде структуры объекта, либо в виде текстовых выражений), задача создания графического интерфейса пользователя в соответствии с вашими конкретными требованиямистанет легче.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...