Вы можете отфильтровать записи в представлении без создания отдельных представлений для каждого фильтра, создав параметрическое представление. Параметрическое представление использует SQL SELECT выражение,  содержащее оператор WHERE, который определяет условие фильтра с использованием параметра. Параметр принимает значения, которые могут быть переданы через окно диалога с пользователем или программно. Имена параметров могут содержать любую комбинацию символов, чисел и одиночных кавычек 

Определение параметра для фильтра

  1. Откройте представление в Конструкторе Представлений (View Designer)  и щелкните на закладке Filter.

  2. На закладке Filter создайте фильтр или выберите существующий.

  3. В поле Example введите имя параметра.

    NoteСовет

    Для запроса значения пераметра, когда открывается представление, поставьте перед именем параметра вопросительный знак (?). Когда вы открываете представление, появляется диалоговое окно и запрашивает у вас значение параметра.

    NoteПримечание

    Имя параметра вычисляется как выражение Visual FoxPro. Если вычисление неудачно, Visual FoxPro запрашивает значение параметра.  Значение параметра  передается источнику данных как часть SQL SELECT выражения.

Для более подробной информации см. Как редактировать представления  и закладка Filter в Конструкторах Запросов и Представлений

Создание параметрического представления программно

  1. Используйте команду CREATE SQL VIEW с оператором AS  при составлении SQL SELECT выражения.

  2. В оператор WHERE SQL SELECT выражения  включите условие фильтрации, содержащее имя параметра в соответсвующем месте.

Для более подробной информации см. команда CREATE SQL VIEW и команда SELECT - SQL

Например, следующий код открывает базу данных Northwind (из примеров) и создает параметрическое представление, содержащее все записи из таблицы Customers, у которых  поле Country равно значению параметра cCountry:

  CopyCode imageКопировать код
OPEN DATABASE HOME(2) + "Northwind\Northwind"
CREATE SQL VIEW Customer_Remote_View ;
AS SELECT * FROM Customers WHERE Customers.Country = ?cCountry

Когда нижеприведенный код окрывает представление, появляется диалоговое окно для запроса значения параметра. После того, как вы  введете значение параметра, команда  BROWSE откроет окно с результатами:

  CopyCode imageКопировать код
USE Customer_Remote_View
BROWSE

Следующий код удаляет представление из базы данных Northwind, когда вы завершите:

  CopyCode imageКопировать код
DELETE VIEW Customer_Remote_View

Вы можете передать значение параметра программно вместо запроса его значения. Нижеприведенный код создает то же самое параметрическое представление, но не содержит вопросительного знака. Затем код программно присваивает значение "Sweden" параметру cCountry. Когда вы открываете представление, значение параметра передаётся в представление, и команда  BROWSE откроет окно с результатами:

  CopyCode imageКопировать код
OPEN DATABASE HOME(2) + "Northwind\Northwind"
CREATE SQL VIEW Customer_Remote_View ;
AS SELECT * FROM Customers WHERE Customers.Country = cCountry
cCountry = 'Sweden'
USE Northwind!Customer_Remote_View
BROWSE

Следующий код удаляет представление из базы данных Northwind, когда вы завершите:

  CopyCode imageКопировать код
DELETE VIEW Customer_Remote_View

Смотрите также