6. Выбор полей результирующей таблицы
Для выбора полей, которые должны присутствовать в результирующей таблице, вам необходимо отобразить их в списке Selected field вкладки выбора полей запроса (рис.3).
Для выбора полей результирующей таблицы откройте вкладку «Fields», выделите в списке Available fields поля, которые собираетесь отобразить в запросе, и с помощью кнопки Add перенесите их в список Selected fields. Кнопка Add All позволяет произвести выбор сразу всех полей таблицы. Если вам нужно выбрать большую часть полей, воспользуйтесь этой кнопкой, а затем выделите курсором поля, которые вы не собираетесь помещать в запрос, и удалите их из списка Selected fields c помощью кнопки Remove.
Порядок полей в списке Selected fields определяет порядок появления их в результирующей таблице. Для того чтобы изменить расположение поля в этом списке, установите курсор на маркер перемещения (слева от поля) и переместите поле в требуемое место.
Просмотр результатов выборки
Просмотреть результаты текущего запроса можно следующим образом:
- нажмите кнопку Run на стандартной панели инструментов
- выполните команду Query | Run Query
- выполните команду Run Query всплывающего меню
Результаты выборки выводятся в режиме BROWSE.
Столбцы в результирующей таблице расположены в том порядке, в каком вы выбирали поля на вкладке «Fields». Однако, если этот порядок вас не устраивает, вы можете его изменить. Для этого возьмите мышью заголовок столбца и перенесите его влево или вправо. Заголовок столбца следует за мышью. Затем отпустите кнопку мыши там, где по вашему мнению должен быть расположен этот столбец.
С помощью мыши вы также можете изменить ширину столбца, чтобы просматривать большее количество столбцов на экране. Для этого поместите курсор мыши на вертикальную линию, разделяющую заголовки столбцов. Курсор мыши превратится в двунаправленную стрелку. Нажмите кнопку мыши и перенесите разделитель, изменяя ширину столбца.
7. Создание в запросах вычисляемых полей
В результате выполнения запроса Visual FoxPro позволяет вам не только выбирать из таблицы содержащуюся в ней информацию, но также производить вычисления и отображать результат вычисления в результирующей таблице. Таким образом, вы можете получить данные, отсутствующие в исходной таблице. При выполнении запроса вы можете вычислять значения по одному или нескольким полям исходной таблицы. Например, вы можете использовать вычисляемые поля для объединения нескольких полей исходной таблицы в одно выходное поле.
Чтобы включить в запрос функцию поля или выражение, на вкладке «Fields» в поле Function and expression введите выражение для вычисления или нажмите кнопку вызова построителя выражения, расположенную с правой стороны данного поля, и в окне диалога «Expression Builder» создайте выражение для вычисляемого поля. Затем нажмите кнопку Add для переноса данного выражения в список выходных полей запроса.
Создайте запрос из таблицы Customer, в котором выберем код покупателя и вычисляемое поле, содержащее объединение фамилии и инициалов покупателя:
Откройте окно запроса для таблицы Customer.
Выберите поле icdCustomer.
Для объединения фамилии и инициалов нажмите кнопку вызова построителя выражения рядом с полем Function and expression вкладки «Fields», и в окне диалога «Expression Builder» создайте следующее выражение:
ALLTRIM(Customer.cLastName)+” ”+SUBSTR(Customer.cFirstName,1,1)+”.” + SUBSTR(Customer.cSecondName,1,1)+”.”
Нажмите кнопку Add, и поле разместится в списке Selected fields.На этом формирование запроса завершено.
Сортировка и фильтрация данных.
На практике в большинстве случаев требуется получить не все записи исходной таблицы, а лишь ту часть, которая удовлетворяет определенным условиям.
Для задания условия выбора необходимо ввести требуемые значения в соответствующих полях вкладки «Filter». Тем самым вы создаете шаблон, с которым Visual FoxPro при выполнении запроса будет сравнивать все записи исходной таблицы. В результирующую таблицу будут помещены только те данные, значения которых совпали с шаблоном.
Выберем данные обо всех покупателях с фамилией «Иванов».
Откройте окно конструктора запросов для таблицы Customer.
Выберите на вкладке «Fields» поля cLastName, cFirstName, cSecondName и yCreditLimit.
Для задания условия выбора записей перейдите на вкладку «Filter». В столбце Field Name из раскрывающегося списка полей исходной таблицы выберите cLastName. В списке вариантов сравнения выберите значение = =. В текстовом поле столбца Example введите Иванов.
Для выполнения запроса нажмите кнопку Run. На экране появится результирующая таблица, которая содержит записи о покупателях, имеющих фамилию «Иванов».