2012-04-09 2 views
2

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

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

я пытался добавить вычисляемое поле в таблице финансовых операций, но это не имеет никакого смысла ..

, что я должен делать в таком роде ситуации?

благодарит заранее.

С уважением,

ответ

1

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

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

Например, скажем, что у меня есть таблица проектов с полем «Часы». Сначала я создаю запрос на основе проектов, где я добавляю фильтр, например «Name содержит NameParam». Сделайте этот параметр видимым на экране (используйте эту статью в качестве руководства: http://blogs.msdn.com/b/bethmassi/archive/2010/11/09/creating-a-custom-search-screen-in-visual-studio-lightswitch.aspx)
Теперь я использую трюк, это техника, которую я видел, я не на 100% удобен с ней, основан на факт, что до сих пор событие Changed текстового поля, связанного с параметром запроса, происходит после выполнения экранного запроса, но оно работает с текущей версией LS. В конструкторе выберите параметр запроса (в левой части экрана) и добавьте код для события «Изменено». В этом обработчике событий вы можете рассчитать поля, которые хотите. Например, у меня есть 2 переменные (уже определены как элементы данных):

RecordsCount = ProjectsByName.Count.ToString() 
TotalHours = ProjectsByName.Sum(Function(project) project.Hours) 

(VB код)
Каждый раз, когда вы вводите что-то на текстовом поле Имя и нажмите ввод или вкладку из, запрос выполняется с новые критерии, то обработчик события «Изменено» и свойства обновляют их значение.
Что-то, о чем нужно помнить, заключается в том, что для этого нужно отключить пейджинг. В противном случае он рассчитает результаты текущей страницы.
Если требуется пейджинг, вы всегда можете выполнить второй запрос, чтобы получить итоговые результаты.

 Смежные вопросы

  • Нет связанных вопросов^_^