Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сокращённые консультации к ГОС.doc
Скачиваний:
3
Добавлен:
21.09.2019
Размер:
377.34 Кб
Скачать

42. Отчёт. Создание отчета средствами мастера

Рассмотрим создание простого отчёта по таблице Orders базы данных TestData. Мастер отчётов запускается, через меню File → New после открытия таблицы. В открывшемся окне New следует выбрать пункт Report, после чего щёлкнуть по кнопке Wizard.

Прежде всего, мастер открывает окно Wizard Selection (Выбор мастера), где следует выбрать пункт Report Wizard (Мастер отчётов) для работы с одной таблицей или пункт One-to many (один ко многим) для работы с двумя таблицами.

Рассмотрим создание отчёта для одной таблицы. Как обычно, процесс создания отчёта средствами мастера включает несколько шагов. Прежде всего (Step 1), выбирается база данных, таблица и поля из неё, которые будут отображены в отчёте. Процесс выбора происходит так же, как при использовании других мастеров, например, при создании таблицы

На втором шаге (рис.40, 41) выбирается способ группировки записей в отчёте. Можно выбрать до трёх полей. При этом, прежде всего, данные упорядочиваются по полю 1, затем по следующим полям.

Здесь же, нажав кнопку Summary option…, можно выбрать опции группировки и включить в отчёт итоговую информацию. Программа VFP предлагает пять различных функций для вычисления итоговых значений:

  • SUM – сумма значений в выбранном поле;

  • AVG – среднее значение в поле;

  • COUNT – количество записей;

  • MIN – наименьшее значение в поле;

  • MAX – наибольшее значение в поле.

Функции SUM и AVG работают только с числовыми значениями.

В окне Summary Option можно, также, выбрать способ вывода итоговой информации. Можно выводить в отчёте всю информацию (Detail and Summary), только итоговую (Summary only) или отказаться от отображения итогов (No total). Кнопка Grouping option…позволяет выбрать опции группировки. Данные могут быть сгруппированы по полному содержанию поля или по начальным символам.

Далее, на шаге 3, выбирается стиль оформления отчёта. На шаге 4 можно определить положение листа бумаги, на который будет выводиться отчёт: вертикальное или горизонтальное. Пятый шаг позволяет определить способ сортировки записей, отображаемых в отчёте. Обратите внимание на то, что поля, уже выбранные в ходе шага 2, использовать нельзя. На последнем, шестом шаге, можно ознакомиться с видом отчёта, нажав кнопку Preview. Панель Print Preview (рис.42) позволяет: менять масштаб отображения отчёта; листать страницы отчёта; переходить к странице с указанным номером или направить отчёт на принтер. Ознакомившись с отчётом и выйдя из режима просмотра, можно сохранить отчёт, нажав кнопку Finish. Файл отчета получает расширение .frx. файл описания отчёта имеет расширение .frt.

Чтобы отчёт можно было запускать из окна проекта, его следует включить в проект, использовав кнопку Add окна проекта. Чтобы избежать выполнения этой операции, лучше запускать мастер создания отчётов сразу из окна проекта (New).

44. Формирование запросов средствами команд языка sql

Запрос предназначен для выборки из таблиц данных, отвечающих поставленным условиям. Для создания запроса можно использовать мастер или конструктор запросов. Использование мастера здесь не рассматривается.

Результатом запроса является таблица, которую можно отобразить на экране в режиме Browse (Просмотр), сохранить в виде новой таблицы, или вывести в виде отчета.

Для поиска данных могут быть использованы команды SQL, такие как LOCATE или SEEK. Но этим командам присущ общий недостаток: они не позволяют просматривать одновременно несколько записей, находящихся в разных строках таблицы. Запрос, напротив, предназначен для выборки группы записей, отвечающих поставленным условиям.

Команда SQL является мощным средством обработки запросов. С ее помощью из базы-источника выделяются нужные данные и пере­сылаются на экран или в файл-приемник. Данные могут быть из­влечены из разных таблиц, а также сгруппированы и упорядочены же­лаемым образом.

Команда SELECT имеет массу опций возможностей. Её неполный синтаксис:

SELECT <что выводится>

FROM <откуда (источник)> INTO <куда (получатель)>

WHERE <каким условиям должно отвечать>

GROUP BY <колонки, по которым выполняется группирование>

HAVING <условие группирования записей в одну строку>

ORDER BY <в каком порядке выводить данные>

Создание запроса всегда начинается с ключевого слова SELECT, после которого перечисляются поля таблицы, используемые для запроса. Перед именами полей лучше использовать псевдонимы таблицы. Если таблица входит в состав данных, необходимо указать имя БД, после которого нужно поставить восклицательный знак. Для свободной таблицы достаточно её имени. В таблице, используемой при создании запроса, поля могут иметь заголовки, записанные на английском или латиницей, например price (цена). Чтобы в результатах запроса заголовки выводились русскими буквами, нужно добавить в нужном месте слово AS, после которого указывается новый заголовок поля, причём кавычки необязательны.

Например, имеется база данных по автомобилям, из которой нужно выбрать автомобили, отвечающие определённым требованиям:

SELECT price AS Цена, year AS Год, marka AS Марка, color AS Цвет

FROM Auto! Propousal

WHERE price < 4000; AND marca = ’Ауди’ OR ’БМВ

Здесь из таблицы, содержащей сведения об автомашинах выбраны автомобили указанной марки, стоимостью менее $4000. При этом заголовки всех полей отчёта выводятся по-русски.

Чтобы отобразить записи в упорядоченном виде используется команда ORDER BY. Например, выше приведенный текст команды можно дополнить

ORDER BY price

Чтобы запретить вывод повторяющихся значений, можно добавить команду DISTINCT

Если необходимо включить в запрос данные из других таблиц, добавляется оператор объединения, например:

INNER JOIN Auto! Owner

ON Owners.address = ‘Посад’

Здесь мы дополнительно выводим данные по владельцам машин, проживающим в Посаде.