Visual FoxPro   Обзор графических пакетов 3GL   Компьютерная графика к экономической информатике   к 4GL - визуальному программированию

Программирование в VisualFoxPro 7.0

Создание и печать отчетов

В предыдущих двух главах вы познакомились с инструментами VisualFoxPro, предназначенными для создания форм. Не менее мощные средства предоставляются в распоряжение разработчика для создания отчетов. Прочитав эту главу, вы узнаете, что такое отчет и познакомитесь со средствами создания и печати отчетов в Visual FoxPro.

  Что такое отчет

Отчет представляет собой форматированное представление данных, выводимое на экран, принтер или в файл. Отчет, создаваемый в Visual FoxPro, может быть представлен в табличном виде или в свободной форме. Табличный отчет — это напечатанная таблица, в которой строка представляет собой запись, а каждый из элементов строки содержит поле исходной таблицы или вычисляемое поле. Данные в таблице упорядочены. Табличные отчеты используются для печати данных, представленных в виде списка. При подготовке писем, почтовых этикеток поля используемых в отчете таблиц должны располагаться в специально выделенных для них местах. В этом случае табличный отчет не подходит и используются отчеты в свободной форме. При создании такого отчета вы можете воспользоваться стандартным форматом, автоматически создаваемым Visual FoxPro для каждой таблицы, при котором поля исходной таблицы располагаются вертикально. Используя конструктор отчетов, вы можете разрабатывать собственные форматы отчета, где поля исходной таблицы будут расположены там, где вам нужно.

  Рекомендации по созданию отчета

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

Получив четкие ответы на поставленные вопросы, вы облегчите свою работу при создании отчета.

Создавая первые отчеты, прежде чем приступить к работе с конструктором отчетов, прорисуйте формат отчета на бумаге. Это избавит вас от ошибок и сократит время, затрачиваемое на разработку отчета.

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

  Средства создания отчетов

В Visual FoxPro для создания отчетов можно использовать следующие средства.

При создании отчета можно использовать любые средства, предлагаемые Visual FoxPro, какие вам кажутся более удобными. Конечно, больше возможностей предоставляет конструктор отчетов, позволяющий создавать отчеты как в табличном виде, так и в свободной форме. Разработке отчетов средствами конструктора будет посвящена следующая глава.

  Использование мастера для создания однотабличного отчета

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

Для запуска мастера отчетов выполните одно из следующих действий:

Рассмотрим создание однотабличного отчета с помощью мастера.

  1. Откройте создаваемый вами проект, например Sales.
  2. Откройте базу данных проекта. Для этого на вкладке Data (Данные) установите курсор на ее названии и нажмите кнопку Open (Открыть) окна проекта. При этом на стандартной панели инструментов в списке Databases (Базы данных) появится название открытой базы данных.
  3. Перейдите на вкладку Documents (Документы) и выберите группу Reports(Отчеты).
  4. Нажмите кнопку New (Новый) окна проекта (рис. 7.1).
  5. В открывшемся диалоговом окне New Report (Новый отчет) (рис. 7.2) выберите опцию Report Wizard (Мастер отчета).
  6. После запуска мастера для построения отчета на экране открывается диалоговое окно (рис. 7.3), в котором вы должны указать тип создаваемого отчета (табл. 7.1).
gl7-1.jpg

Рис. 7.1. Группа Reports в окне создания проекта

gl7-2.jpg

Рис. 7.2. Диалоговое окно New Report

Таблица 7.1. Типы отчетов

Тип отчета Описание
One-to-Many Report Wizard (Мастер отчетов с отношением "один-ко-многим") Создает отчет для таблиц с отношением "один-ко-многим"
Report Wizard {Мастер отчетов) Создает простой однотабличный отчет

Для создания простого однотабличного отчета выберите значение ReportWizard и нажмите кнопку ОК.

gl7-3.jpg

Рис. 7.3. Диалоговое окно для выбора типа создаваемого отчета

  1. Открывается первое диалоговое окно мастера (рис, 7.4), в котором необходимо указать таблицу, для которой вы создаете отчет, и выбрать размещаемые в отчете поля. В области Databases and tables (Базы данных и таблицы) расположены два списка. Верхний список содержит открытые базы данных, а нижний — таблицы выбранной из верхнего списка базы. Выберите из верхнего списка необходимую базу данных, а из нижнего —таблицу, для которой создаете отчет.
gl7-4.jpg

Рис. 7.4. Окно создания однотабличного отчета с помощью мастера

Замечание

Может оказаться, что в диалоговом окне мастера списки области Databasesand tables (Базы данных и таблицы) пусты или содержат не те данные, которые вы предполагаете использовать для построения отчета. Такая ситуация возникает в том случае, если предварительно вы не открыли необходимую базу данных. Ничего страшного. Для выбора базы данных и входящих в нее таблиц нажмите кнопку, расположенную рядом со списком баз данных. На экране откроется диалоговое окно Open (Открыть), позволяющее найти таблицу, которая будет использоваться в отчете.

  1. После выбора таблицы, для которой создается отчет, список Availablefields (Имеющиеся поля) будет содержать перечень всех полей таблицы. Вам необходимо из данного перечня перенести в список Selected fields (Выбранные поля) поля, которые вы хотите разместить в создаваемом отчете. Для переноса полей используйте располагающиеся между списками кнопки. После формирования списка отображаемых в отчете полей нажмите кнопку Next (Далее) для перехода к следующему шагу в создании отчета.
  2. В следующем диалоговом окне мастера создания отчета необходимо указать поля, по которым будет осуществляться группировка данных в отчете (рис. 7.5).
gl7-5.jpg

Рис. 7.5. Определение полей для группировки данных в отчете

В центре диалогового окна расположены три раскрывающихся списка, позволяющих задать до трех группировок данных в отчете. Эти списки содержат все поля таблицы. Для осуществления группировки данных в отчете выберите нужное поле из раскрывающегося списка 1. При создании второй и третьей группировки используются, соответственно, списки 2 и 3.

  1. Для задания интервала группировки нажмите кнопку Grouping options(Опции группировки). Открывается диалоговое окно Grouping Intervals(Интервалы группировки) (рис. 7.6). Раскрывающийся список Groupingintervals (Интервалы группировки) этого окна содержит значения, описанные в табл. 7.2.

Таблица 7,2. Описание интервалов группировки раскрывающегося списка Grouping intervals

Интервал группировки Описание
Entire Field (Полное поле) Интервал группировки задается исходя из полного значения поля таблицы
1st Letter (1 буква) Группировка осуществляется по первой букве значения поля таблицы
2, 3, 4, 5 Initial Letters (2, 3, 4, 5 начальных букв) Группировка осуществляется по 2, 3, 4 или 5первым буквам значения поля таблицы соответственно

Установите необходимое значение и нажмите кнопку ОК.

gl7-6.jpg

 Рис. 7.6. Диалоговое окно Grouping Intervals

  1. Для формирования в отчете итоговых значений воспользуйтесь диалоговым окном Summary Options (Итоговые опции). В нем содержится таблица, строками которой являются поля таблицы, а столбцами - возможные итоговые значения отчета (табл. 7.3.)

Таблица 7.3. Итоговые значения отчета

Столбец Назначение
Field Наименование поля таблицы, по которому будет вычисляться итоговое значение в отчете
Sum При установке флажка в отчет будет помещена итоговая сумма поданному полю
Avg При установке флажка в отчет будет помещено итоговое среднее значение по данному полю
Count При установке флажка в отчет будет помещено итоговое количество строк
Min При установке флажка в отчет будет помещено минимальное значение поля таблицы
Max При установке флажка в отчет будет помещено максимальное значение поля таблицы

Установите флажки для тех итоговых значений, которые хотите разместить в отчете.

gl7-8.jpg

Рис. 7.7. Диалоговое окно Summary Options

В диалоговом окне Summary Options (Итоговые опции) под таблицей расположен переключатель, управляющий отображением в отчете областей данных (табл. 7.4).

Таблица 7.4. Назначение опций переключателя окна Summary Options

Опция Назначение
Detail and Summary (Область данных и итоги) При установке этой опции в отчете отображается область данных, промежуточные итоговые значения по группировкам и конечные итоговые значения по отчету
Summary only (Только итоги) При установке данной опции в отчете отображается область данных и конечные итоговые значения по отчету
No totals (Нет итогов) Если выбрана эта опция, то в отчете будет отображаться только область данных

В нижнем правом углу диалогового окна Summary Options (Итоговые опции) расположен флажок Calculate percent of total for sums (Вычислить процент итоговых сумм), позволяющий в качестве итогового значения печатать процент промежуточного итогового суммарного значения от конечного итогового суммарного значения по отчету.

Завершив в диалоговом окне Summary Options (Итоговые опции) все необходимые установки, нажмите кнопку ОК.

  1. В следующем диалоговом окне мастера задается стиль отображения объектов в отчете (рис. 7.8).
gl7-9.jpg

Рис. 7.8. Выбор стиля отображения объектов отчета

Список Style (Стиль) содержит несколько вариантов отображения объектов (полей, линий, заголовков и т. д.) в отчете. При выборе стиля мастер позволяет просмотреть, как будут выглядеть элементы отчета. Для этого используется область просмотра в верхнем левом углу диалогового окна. Выбрав стиль, нажмите кнопку Next (Далее), чтобы перейти к следующему шагу.

  1. На четвертом шаге создания отчета необходимо указать порядок размещения объектов в отчете (рис. 7.9) и ориентацию страницы отчета. После того как вы установили требуемые опции, нажмите кнопку Next (Далее).
gl7-10.jpg

Рис. 7.9. Установка порядка размещения объектов в отчете

  1. На пятом шаге создания отчета с помощью мастера задаются поля, по которым требуется упорядочение данных в отчете (рис. 7.10). Для формирования списка полей, по которым будет осуществляться сортировка, из списка Available fields or index tag (Выбранные поля и индексы), содержащего перечень всех полей отчета и индексов таблицы, перенесите в список Selected fields (Выбранные поля) требуемые поля в том порядке, в каком будут упорядочиваться данные. Для переноса полей используйте кнопку Add(Добавить) или двойной щелчок мыши на наименовании поля.
gl7-11.jpg

Рис. 7.10. Установка критерия упорядочения данных

Используя опции Ascending (По возрастанию) и Descending (По убыванию), укажите тип сортировки выбранного поля: по возрастанию или по убыванию соответственно.

Сформировав список полей и указав тип сортировки, нажмите кнопку Next (Далее) для перехода к следующему шагу.

  1. На шестом шаге вы можете задать заголовок отчета, используя для этого поле ввода Type a title for your report (Тип заголовка отчета). В этом же диалоговом окне вы можете указать один из трех вариантов дальнейшей работы с отчетом (рис. 7.11) (табл. 7.5).

Таблица 7.5. Переключатели окна Report Wizard (Step 6)

Переключатель Действие
Save report for later use (Сохранить отчет) Созданный отчет сохраняется на диске
Save report and modify it in the Report Designer (Сохранить и открыть в конструкторе для модификации) Созданный отчет сохраняется на диске и открывается в конструкторе отчетов для модификации
Save and print report (Сохранить и распечатать отчет) Созданный отчет сохраняется на диске и печатается
 

gl7-12.jpg

Рис. 7.11. Заключительный этап создания отчета

В правом нижнем углу диалогового окна находится кнопка Preview(Просмотр), позволяющая просмотреть созданный отчет. Если созданный отчет не удовлетворяет вашим требованиям, с помощью кнопки Back (Назад) вы можете вернуться к предыдущим шагам построения отчета и изменить установленные там параметры.

Введя заголовок и установив требуемую опцию, для завершения создания отчета с помощью мастера нажмите кнопку Finish (Готово). Открывается диалоговое окно Save as (Сохранить как), в котором введите имя созданного файла.

На рис. 7.12 представлен отчет, созданный с помощью мастера. Если он вас полностью устраивает, вы можете его распечатать. Но скорее всего, вам захочется в нем что-то изменить. В этом случае откройте созданный отчет в конструкторе отчетов и модифицируйте его.

gl7-13.jpg

Рис. 7.12. Отчет, созданный с помощью мастера

Замечание

При создании отчета с помощью мастера надписи к полям отчета создаются на основе информации, введенной в поле Caption (Надпись) конструктора таблиц Table Designer (Конструктор таблиц). Если это поле пусто, надписи совпадают с именами полей таблицы.

  Просмотр подготовленного отчета

Если вы хотите посмотреть, как ваш отчет выглядит, совсем не обязательно его распечатывать. Достаточно открыть его в окне предварительного просмотра, воспользовавшись любым из следующих средств, предоставляемых в ваше распоряжение программой Visual FoxPro:

  Панель инструментов, используемая для просмотра отчета

При открытии отчета в окне предварительного просмотра на экране появляется панель инструментов Print Preview (Предварительный просмотр) (рис. 7.13), позволяющая перемещаться между страницами отчета и распечатать его. Назначение кнопок этой панели инструментов приведено в табл. 7.6.

gl7-14.jpg

Рис. 7.13. Панель инструментов, используемая в окне предварительного просмотра отчета

Таблица 7.6. Кнопки панели инструментов Print Preview

Кнопка Назначение
Открывает первую страницу отчета
Открывает предыдущую страницу отчета
Открывает диалоговое окно Go to Page (Переход на страницу) для перехода к заданной странице отчета
Открывает следующую страницу отчета
Открывает последнюю страницу отчета
Изменяет масштаб отображения отчета
Закрывает окно просмотра отчета
Печатает отчет

  Печать отчета

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

Открывается диалоговое окно Print (Печать) (рис. 7.14), позволяющее указать имя используемого для печати принтера, изменить, в случае необходимости, его настройки и установить параметры печати.

gl7-15.jpg

Рис. 7.14. Диалоговое окно Print

В верхней части диалогового окна Print (Печать) расположен раскрывающийся список Name (Наименование), позволяющий выбрать тип подключаемого принтера. Эта возможность особенно важна при работе в сети, когда у вас имеется несколько сетевых принтеров.

Переключатели области Print range (Печатать) позволяют указать печатаемые страницы и имеют следующее назначение:

Счетчик области Copies (Копии) позволяет указать количество печатаемых копий отчета.

В случае, если требуется дополнительная настройка параметров принтера, нажмите кнопку Options (Опции). В результате откроется диалоговое окно Print Options (Параметры печати) (рис. 7.15).

gl7-16.jpg

Рис. 7.15. Диалоговое окно Print Options

Поле Туре (Тип) области Print what (Что печатать) позволяет указать тип выводимой на печать информации. Поле File (Файл) содержит наименование и расположение печатаемого файла.

В области Options (Опции) расположены флажки, имеющие назначения, описанные в табл. 7.7.

Таблица 7.7. Назначение флажков окна Print Options

Флажок Назначение
Line numbers (Линии нумерации) Печатает в левой части отчета номера строк. Данный флажок используется только при печати содержимого окна команд и временного буфера Windows
Page eject before (Новая страница перед отчетом) Выдает принтеру команду перехода на новую страницу перед печатью отчета
Page eject after (Новая страница после отчета) Выдает принтеру команду перехода на новую страницу после печати отчета
Restore environment (Восстановить окружение) Используется для совместимости с отчетами FoxPro версий 2.x

При нажатии кнопки Options (Параметры) диалогового окна Print Options(Параметры печати) открывается диалоговое окно Report and Label Print Options (Параметры печати отчета и этикетки) (рис. 7.16).

gl7-17.jpg

Рис. 7.16. Диалоговое окно Report and Label Print Options позволяет указать критерий для выбора записей

В диалоговом окне Report and Label Print Options (Параметры печати отчета и этикетки) вы можете указать критерии для выбора записей, печатаемых в отчете (табл. 7.8).

Таблица 7.8. Критерии выбора записей

Критерий Назначение
Scope (Печатаемые записи) Содержит раскрывающийся список Scope (Печатаемые записи), в котором указывается область печатаемых записей
For (Пока) Вызывает построитель выражений, в котором вы создаете логическое выражение, равное True (Истина) для всех печатаемых записей отчета
While (При условии) Вызывает построитель выражений, в котором вы создаете логическое выражение для выбора записей отчета. В отличие от критерия For, печать отчета прекращается при первом же значении выражения, равном False (Ложь)

Для настройки дополнительных параметров печати отчета можно использовать диалоговое окно Свойства (рис. 7.17), открываемое при нажатии кнопки Properties (Свойства) в окне Print (Печать) (см. рис. 7.14).

На вкладке Бумага/Качество данного диалогового окна можно задать тип подачи бумаги в принтер. Вкладка Расположение позволяет указать расположение бумаги (книжная или альбомная), порядок печати страниц. Для того чтобы изменить размер используемой при печати бумаги, качество печати, используйте диалоговое окно Дополнительные возможности, открываемое при нажатии кнопки Дополнительно.

gl7-18.jpg

Рис. 7.17. Диалоговое окно Свойства

Visual FoxPro   Обзор графических пакетов 3GL   Компьютерная графика к экономической информатике   к 4GL - визуальному программированию

Знаете ли Вы, что такое мысленный эксперимент, gedanken experiment?
Это несуществующая практика, потусторонний опыт, воображение того, чего нет на самом деле. Мысленные эксперименты подобны снам наяву. Они рождают чудовищ. В отличие от физического эксперимента, который является опытной проверкой гипотез, "мысленный эксперимент" фокуснически подменяет экспериментальную проверку желаемыми, не проверенными на практике выводами, манипулируя логикообразными построениями, реально нарушающими саму логику путем использования недоказанных посылок в качестве доказанных, то есть путем подмены. Таким образом, основной задачей заявителей "мысленных экспериментов" является обман слушателя или читателя путем замены настоящего физического эксперимента его "куклой" - фиктивными рассуждениями под честное слово без самой физической проверки.
Заполнение физики воображаемыми, "мысленными экспериментами" привело к возникновению абсурдной сюрреалистической, спутанно-запутанной картины мира. Настоящий исследователь должен отличать такие "фантики" от настоящих ценностей.

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

Это мы видим на примере СТО и ОТО, превратившихся в своеобразный вид религии, управляющей наукой и общественным мнением. Никакое количество фактов, противоречащих им, не может преодолеть формулу Эйнштейна: "Если факт не соответствует теории - измените факт" (В другом варианте " - Факт не соответствует теории? - Тем хуже для факта").

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

Эксперимент на то и эксперимент, что он есть не изощрение мысли, а проверка мысли. Непротиворечивая внутри себя мысль не может сама себя проверить. Это доказано Куртом Гёделем.

Понятие "мысленный эксперимент" придумано специально спекулянтами - релятивистами для шулерской подмены реальной проверки мысли на практике (эксперимента) своим "честным словом". Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution