методичка. методичка АИС2. Архитектура информационных систем
![]()
|
4.2. Работа с отчетами Отчеты используются для отображения группированных данных в виде многостраничных выходных, итоговых и расчетных документов. Visual FoxPro предоставляет пользователю три способа создания отчетов [3, 6]: создание простого или многотабличного отчета с помощью мастера отчета (Report Wizard); создание простого отчета на основе одной таблицы с помощью инструмента быстрого построения отчета (Quick Report); изменение существующего отчета или создание нового отчета в режиме конструктора отчета Report Designer. Рассмотрим процесс создания отчета с помощью мастера отчетов. Он аналогичен процессу созданию экранных форм. На первом шаге мастер отчетов Visual FoxPro предлагает пользователю выбрать один из трех видов формируемого отчета [3, 6]: Group/Total Report Wizard (отчет с группируемыми данными ичастичными суммами); One-to-Many Report Wizard (отчет с данными из двух связанныхтаблиц); Report Wizard (простой многоколонный отчет). Сформируем простой отчет по данным таблицы goods. Для этого выполним команду главного меню File / New. В окне создания нового объекта (см. рис. 2.2) выберем опцию создания отчета (Report) и нажмем кнопку мастера (Wizard). В появившемся окне Wizard Selection необходимо выбрать тип создаваемого отчета Report wizard (рис. 4.16). Принцип работы мастера отчетов аналогичен принципу функционирования мастера форм. После нажатия кнопки ОК в окне Wizard Selection, откроется первое диалоговое окно мастера, в котором требуется выбрать таблицу, на основе которой будет создан отчет, а также указать поля, отображаемые в этом отчете. Также, как и при создании формы, выберем таблицу goods. Перенесем из списка Available fields в список Selected fields те поля, которые должны быть показаны в отчете (рис. 4.17). ![]() Рис. 4.16. Выбор типа мастера отчетов ![]() Рис. 4.17. Выбор таблицы и ее полей для отображения в отчете Во втором окне мастера необходимо указать поля, по которым необходимо выполнить группировку данных в отчете (рис. 4.18). Далее последовательно указываем стиль отображения отчета (рис. 4.19), ориентацию страницы – книжная или альбомная (рис. 4.20), а также поля, по которым требуется выполнить сортировку данных в отчете (рис. 4.21). ![]() Рис. 4.18. Выбор полей для группировки данных в отчете ![]() Рис. 4.19. Выбор стиля отчета ![]() Рис. 4.20. Выбор ориентации страницы отчета ![]() Рис. 4.21. Указание полей для сортировки данных в отчете На последнем этапе работы мастера в поле Typeatitleforyourreport зададим заголовок отчета и выберем один из трех вариантов дальнейшей работы с отчетом (рис. 4.22): Save report and modify it in the Report Designer –файл отчета сохраняется под указанным именем (goods.frx), а затем открывается в конструкторе отчетов Report Designer. для последующей модификации; Save report for later use – файл отчета сохраняется под указанным именем и закрывается; Save and print report – файл отчета сохраняется на диске подуказанным именем и выводится на печать. ![]() Рис. 4.22. Заключительный этап создания отчета Теперь создадим отчет на основе данных из двух таблиц. Для этого выполним команду главного меню File / New, в диалоговом окне New (см. рис. 2.2) выберем опцию создания отчета (Report) и нажмем на кнопку мастера (Wizard). В появившемся диалоговом окне Wizard Selection выберем тип создаваемого отчета One-to-Many Report Wizard и подтвердим выбор нажатием кнопки ОК (см. рис. 4.16). В первом диалоговом окне мастера необходимо указать родительскую таблицу и выбрать поля, которые требуется разместить в отчете (аналогично рис. 4.7). В данном примере в качестве родительской выберем таблицу firms. В список Selected fields перенесем поля родительской таблицы, которые необходимо разместить на создаваемой форме. На втором этапе (аналогично рис. 4.8) выберем дочернюю таблицу (goods) и ее поля, которые будут размещены в отчете в области подчиненной таблицы. Далее выбираются поля, по которым осуществляется связь между выбранными таблицами (аналогично рис. 4.9), и указывается поле, по которому идет сортировка данных (аналогично рис. 4.21). На следующем шаге требуется выбрать стиль и ориентацию бумаги создаваемого отчета (аналогично рис. 4.19, рис. 4.20). На заключительном этапе задаем заголовок отчета, используя для этого поле ввода Type a title for your report (аналогично рис. 4.22), и выбираем один из трех вариантов дальнейшей работы. Пример готового отчета, созданного по данным двум таблиц, представлен на рис. 4.23. ![]() Рис. 4.23. Пример отчета, построенный по двум связанным таблицам Просмотр готового отчета можно осуществить тремя способами: с помощью пункта контекстного меню Preview; кнопкой Preview на стандартной панели инструментов; с помощью команды REPORT FORM <имя_отчета> PREVIEW. Например, откроем окно предварительного просмотра отчета goods с помощью команды в командном окне: REPORT FORM GOODS PREVIEW. Результат выполнения данной операции приведен на рис. 4.24. ![]() Рис. 4.24. Окно предварительного просмотра отчета Вывод отчета на печать можно выполнить несколькими способами: пункт меню Print из системного меню File; пункт меню Run Report из меню Report; команда REPORT FORM <имя_отчета> TO PRINTER из командного окна. Для редактирования отчета необходимо вызвать команду главного меню File / Open / Report и указать файл отчета на диске либо выполнить команду в командном окне: MODIFY REPORT «имя_отчета_без_расширения». В результате данных операций будет открыт отчет в режиме конструктора Report Designer (рис. 4.25). ![]() Рис. 4.25. Окно конструктора отчета По умолчанию рабочее поле конструктора отчетов разделено на три области, ограничиваемые разделительными строками. Наименование области отображается на разделительной строке, находящейся непосредственно под этой областью. Назначения полос приведены в табл. 4.1 [2, 6]. Таблица 4.1 Назначение областей конструктора отчетов [2, 6]
В областях отчета можно размещать поля данных, выбрав соответствующий элемент Field в наборе инструментария Report Controls (рис. 4.26) и указав мышью местоположение объекта в отчете. При этом в зависимости от установленного режима Button Lock (многократное размещение объектов) выполняются следующие действия: по каждому щелчку мыши встраивается следующий объект указанного типа; встраивается только один объект, который и остается выделенным. Панель инструментов Report Controls (см. рис. 4.26), содержит следующие кнопки (слева направо, сверху вниз) [3, 5]: Select Object – выбор объекта; Label – метка; Field – поле данных; Line – линия; Rectangle – прямоугольник; Rounded Rectangle – прямоугольник со скругленными углами; Picture/OLEBoundControl – рисунок; Button Lock – переключение режима многократного размещенияобъектов. ![]() Рис. 4.26. Инструментарий Report Controls Удалить файл отчета с диска можно с помощью команды: DELETE FILE <имя_отчета>.FRX 4.3 Работа с этикетками Этикетки представляют собой мини-отчеты, содержащие основную информацию о каком-либо объекте, например, наименование товара и его цену. На листе может размещаться сразу несколько этикеток (рис. 4.27). Этикетки (также, как и формы и отчеты) можно создавать с помощью мастера этикеток. ![]() Рис. 4.27. Внешний вид этикетки В качестве примера создадим этикетки для таблицы товаров goods. Для этого выполним команду главного меню File / New, в окне создания нового файла (см. рис. 2.2) выберем опцию создания этикеток Label и нажмем на кнопку мастера этикеток Wizard. В появившемся первом окне мастера необходимо выбрать источник данных, т.е. указать таблицу (goods), которая будет использоваться для создания этикетки (рис. 4.28). На втором шаге мастера из предложенного списка форматов этикеток нужно выбрать подходящий. Список Avery содержит наименования этикеток, в списке Dimensions отображаются размеры этикеток, а в списке Columns – количество колонок на странице (рис. 4.29). ![]() Рис. 4.28. Выбор таблицы при создании этикетки ![]() Рис. 4.29. Выбор размера этикетки Далее мастер этикеток предлагает пользователю расположить поля, знаки пунктуации (точка, запятая, дефис, двоеточие, пробел), сформировав структуру этикетки (рис. 4.30). ![]() Рис. 4.30. Создание структуры этикетки После формирования структуры этикетки пользователю необходимо задать порядок сортировки данных (аналогично рис. 4.21). На заключительном шаге (аналогично рис. 4.22) указывается имя файла этикетов и выбирается дальнейшее действие: Save label and modify it in the Label Designer – сохранение этикетки на диске под указанным именем и открытие в конструкторе для дальнейшей модификации; Save label for later use – сохранение этикетки на диске под указанным именем; Save and print label – сохранение этикетки на диске под указанным именем и вывод на печать. Сохраним получившиеся этикетки под именем label_goods.lbx. Внешний вид этикетки представлен на рис. 4.31. ![]() Рис. 4.31. Внешний вид этикетки Этикетка аналогична отчету, поэтому команды предварительного просмотра и печати этикетки аналогичны соответствующим командам, используемым для работы с отчетами. Для печати этикетки используются команды: LABEL FORM <имя_этикетки> TO PRINTER или REPORT FORM <имя_этикетки>.lbx TO PRINTER. Для предварительного просмотра используются команды: LABEL FORM <имя_этикетки> PREVIEW или REPORT FORM <имя_этикетки>.lbx. Для изменения этикетки необходимо открыть конструктор этикетки Label Designer с помощью команды главного меню File / Open / Label, либо с помощью текстовой команды в командном окне MODIFY LABEL <имя_этикетки>. Удалить файл этикетки с диска можно с помощью команды DELETE FILE <имя_этикетки>.LBX. 4.4. Работа с меню Visual FoxPro позволяет создавать два типа меню: главное меню в виде строки (Menu), и контекстное меню (Shortcut). Описание структуры и команд меню хранится в файлах с расширениями MNX и MNT, а сгенерированный код программы для работы меню в среде Visual FoxPro хранится в файле с расширением MPR. Для примера создадим главное меню в виде строки, для этого выполним команду File / New и в диалоговом окне New (см. рис. 2.2) выберем опцию создания меню (Menu) и нажмем на кнопку New File. В появившемся диалоговом окне New Menu выберем тип создаваемого меню Menu (рис. 4.32) ![]() Рис. 4.32. Выбор типа меню В окне конструктора меню (рис. 4.33) необходимо определить пункты основные и вложенные пункты меню, а также описать действия, которые будут выполняться при их выборе. ![]() Рис. 4.33. Окно проектирования меню Названия пунктов меню записываются в столбце Prompt. В столбце Result необходимо определить тип результата вызова пункта меню: пользовательская команда (Command), команды системного меню (Pad Name), подменю (Submenu) или внешняя программа (Procedure). Раскрывающийся список Menu Level позволяет переключаться между уровнями меню. Кнопки, расположенные в правой части конструктора, имеют следующее назначение [2]: Insert – добавление нового пункта меню; Insert Bar – добавление команды системного меню Visual FoxPro; Delete – удаление указанного пункта меню; Preview – предварительный просмотр внешнего вида меню. Пример содержимого окна проектирования меню и подменю приведены на рис. 4.34, рис. 4.35. Примерное содержание меню приведено на рис. В1 и в табл. 4.2. ![]() Рис. 4.34. Конструктор меню ![]() Рис. 4.35. Окно проектирования подменю Таблица 4.2 Примерное содержание меню
Для создания исполняемого файла (программы, запускающей меню) необходимо сгенерировать код программы, выбрав пункт главного меню FoxPro Menu / Generate. Запустить полученную программу можно из командного окна командой DO <имя_меню>.MPR (рис. 4.36). ![]() Рис. 4.36. Вид линейки меню Для возврата к основному меню Visual FoxPro необходимо использовать команду: SET SYSMENU TO DEFAULT. Для ускорения доступа к пунктам меню используются клавиши быстрого доступа. Клавиша быстрого доступа обозначается подчеркнутой буквой в заголовке пункта меню или подменю. Если клавиша быстрого доступа не была назначена пользователем, то Visual FoxPro автоматически назначит в качестве такой клавиши первую букву названия пункта меню. В случае, если наименование пунктов меню начинаются с букв русского языка, то Visual FoxPro автоматически попытается назначить в качестве клавиши доступа сочетание клавиши Alt и соответствующей буквы кириллицы, но при запуске меню в этом случае могут возникнуть ошибки. Для примера создадим меню, состоящее из единственного пункта «Пункт1» (рис. 4.37). ![]() Рис. 4.37. Пример создания меню После выполнения генерации кода программы (Menu / Generate), запустим меню командой DO menu1.mpr. Так как Visual FoxPro не сможет создать клавишу быстрого доступа «Alt»+П , при попытке запуске меню возникнет ошибка (рис. 4.38). В этом случае можно изменить наименования пунктов меню, чтобы они начинались с цифры, либо переназначить клавиши быстрого доступа. Чтобы переназначить клавишу быстрого доступа, необходимо нажать на кнопку Options напротив соответствующего пункта меню, откроется диалоговое окно Prompt Options (рис. 4.39). Далее необходимо установить курсор в поле Key Label и нажать на клавиатуре сочетание клавиш быстрого доступа к данному пункту меню, в поле Key Text можно ввести краткое пояснение. В данном примере в качестве нового сочетания клавиш для быстрого доступа используем Cntr+G (рис. 4.40). После внесения изменений необходимо снова сгенерировать код программы меню (Menu /Generate). На рис. 4.41 представлен код сгенерированного меню с новойклавишей быстрого доступа. ![]() Рис. 4.38. Ошибка при запуске меню ![]() Рис. 4.39. Окно для назначения клавиши быстрого доступа на пункт меню ![]() Рис. 4.40. Назначение клавиши быстрого доступа на пункт меню ![]() Рис. 4.41. Код сгенерированного меню с новой клавишей быстрого доступа Для внесения изменений в созданное меню в командном окне используется команда MODIFY MENU <имя_меню>. После внесения изменений в меню необходимо повторно сгенерировать код программы меню. Удалить файл меню с диска можно с помощью команды: DELETE FILE <имя_меню>.MPR |