- •Министерство образования россИйСкой федерации
- •Введение 10 Глава 1. Основные термины, понятия и определения информатики 13
- •Глава 2. Операторы 36
- •Глава 3. Основные вcтроенные функции 62
- •Глава 4. Среда разработки Visual Basic 69
- •Глава 5. Основные общие свойства, события и методы 73
- •Глава 6. Объекты, управляющие элементы 79
- •Глава 7. Модули и классы 102
- •Глава 8. Разработка интерфейса 107
- •Глава 9. Работа с базами данных 118
- •Глава 10. Графические средства 174
- •Глава 16. Лабораторный практикум 258
- •Предметный указатель 290 Библиографический список 295
- •Введение
- •Порядок изучения и классификация учебного материала
- •Глава 1. Основные термины, понятия и определения информатики
- •1.1. Алгоритмы
- •1. Словесная форма
- •2. Блок ‑ схема
- •3. Псевдокоды
- •1.2. Языки программирования
- •1. Естественный язык.
- •1.3. Визуальное объектно‑ориентированное программирование
- •1.4. Этапы проектирования программной системы
- •1.5. Общий порядок подготовки программ к выполнению
- •1.6. Типы программ
- •1.7. Информация, данные и их характеристики
- •1.8. Системы счисления
- •1.9. Организация файлов
- •1.10. Структурное программирование
- •1.11. Организация человеко‑машинного интерфейса
- •1.12. Информационные технологии
- •1.13. Защита информации
- •1.14. История возникновения и развития языка Basic
- •Глава 2. Операторы
- •2.1. Объявление данных
- •Типы данных
- •2.1.1. Определение типа пользователя ‑ Type
- •2.1.2. Объявление записи
- •2.1.3. Объявление массива
- •2.1.4. Объявление локальных статических переменных ‑ Static
- •2.1.5. Объявление именованных констант ‑ Const
- •2.1.6. Встроенные именованные константы
- •2.1.7. Перечисленияenum(vb)
- •2.1.8. Коллекции данныхCollection(vb)
- •Вопросы для самопроверки и контроля
- •2.2. Переопределение массивов
- •2.2.1. Инициализация массива ‑ Erase
- •2.2.2. Переопределение массивов ‑ Redim
- •2.2.3. Изменение начала отсчета индексов ‑ Option Base
- •Вопросы для самопроверки и контроля
- •2.3. Работа с внутренними подпрограммами
- •2.3.1. Переход к внутренней подпрограмме ‑ Gosub
- •2.3.2. Возврат из внутренней подпрограммы ‑ Return
- •2.4.2. Безусловный переход ‑ Goto
- •2.4.3. Условный переход ‑ If, Iif
- •Однострочный вид оператора:
- •Пример. Нахождение наибольшего числа из двух чисел a, b.
- •2.4.4. Выбор варианта ‑ Select
- •2.4.5. Цикл ‑ For ... Next
- •2.4.6. Цикл ‑ For Each ... Next(Vb)
- •2.4.7. Цикл ‑ Do... Loop
- •2.4.9. Обмен значениями двух переменных- Swap (qb)
- •Вопросы для самопроверки и контроля
- •2.5. Ввод-вывод
- •2.5.1. Ввод данных с клавиатуры ‑ Input (qb)
- •2.5.2. Ввод строки символов ‑ Line Input (qb)
- •2.5.3. Вывод данных с символами‑разделителями на дисплей ‑ Write (qb)
- •2.5.4. Вывод данных на дисплей ‑ Print
- •2.5.5. Вывод данных на дисплей в заданном формате ‑ Print Using (qb)
- •2.5.6. Вывод данных на принтер ‑ Lprint (qb)
- •2.5.7. Задание числа колонок и строк на экране ‑ Width (qb)
- •2.5.8. Управление курсором- Locate (qb)
- •2.5.9. Чтение из оперативной памяти-Data, Read, Restore (qb)
- •Вопросы для самопроверки и контроля
- •2.6. Работа с файлами
- •2.6.1. Открытие файла или устройства ‑ Open
- •2.6.2. Вывод данных с символами-разделителями в файл ‑ Write #
- •2.6.3. Вывод данных в файл ‑ print #
- •2.6.4. Ввод данных из текстового файла ‑ Input #
- •2.6.5. Ввод строки символов из файла ‑ Line Input#
- •2.6.10. Захват и освобождение файла ‑ Lock, Unlock
- •2.7.2. Задание палитры ‑ Palette (qb)
- •2.7.3. Задание цвета ‑ Color (qb)
- •2.8.3. Изображение окружности и эллипса ‑ Circle (qb)
- •2.8.4. Вычерчивание произвольного изображения ‑ Draw (qb)
- •2.8.5. Окраска изображения ‑ Paint (qb)
- •2.8.6. Запись фрагмента экрана в массив ‑ Get(qb)
- •2.8.7. Восстановление изображения на экране ‑ Put (qb)
- •2.8.8. Копирование страниц экрана ‑ Pcopy (qb)
- •2.10. Вызов внешних процедур и функций
- •2.10.1. Объявление процедур ‑ Declare
- •2.10.2. Задание процедуры ‑ Sub
- •2.10.3. Задание функции ‑ Function
- •2.10.4. Вызов процедуры, функции ‑ Call
- •Вопросы для самопроверки и контроля
- •2.12.4. Конец процедуры обработки прерываний ‑ Resume
- •Глава 3. Основные вcтроенные функции
- •3.1. Математика
- •3.2. Массивы
- •3.3. Строки
- •3.4. Даты и время
- •3.5. Преобразование и контроль данных
- •3.6. Ввод и вывод данных
- •3.7. Установка цвета
- •3.11. Поиск, выбор, замена (vb)
- •3.12. Финансово‑математические функции (vb)
- •Глава 4. Среда разработки Visual Basic
- •4.1. Окна и панели среды разработки
- •4.2. Настройка среды разработки
- •Глава 5. Основные общие свойства, события и методы
- •5.1. Cвойства
- •5.2. События
- •5.3. Методы
- •5.4. Размещение объектов
- •5.5. Экран
- •Вопросы для самопроверки и контроля
- •Глава 6. Объекты, управляющие элементы
- •6.1. Формы
- •6.2. Командные кнопки (CommandButton)
- •6.3. Текстовые поля (TextBox, MaskedEdit, RichTextBox)
- •6.4. Надписи (Label)
- •6.5. Рамки (Frame)
- •6.6. Зависимые переключатели (OptionButton)
- •6.7. Независимые переключатели (CheckBox)
- •6.8. Списки (ListBox)
- •6.9. Комбинированные поля (ComboBox)
- •6.10. Рисунки (Image)
- •6.11. Графические поля (PictureBox)
- •6.12. Таймеры (Timer)
- •6.13. Полосы прокрутки (hScrollBar,vScrollBar,FlatScrollBar)
- •6.14. Ползунок (Slider)
- •6.15. Списки устройств (DriveListBox)
- •6.16. Списки каталогов (DirListBox)
- •6.17. Списки файлов (FileListBox)
- •6.18. Кнопки-счетчики (UpDown)
- •6.19. Полоса процесса (Progressbar)
- •6.20. Контур (Shape)
- •6.21. Линия (Line)
- •6.22. Закладки (ssTab, TabStrip)
- •6.23. Таблицы (msFlexGrid)
- •6.24. Список изображений (ImageList)
- •6.25. Отображение иерархических структур (TreeView)
- •6.26. Отображение списков (ListVew)
- •6.27. Анимация avi (Animation)
- •6.28. Календарь (MonthView, Calendar)
- •6.29. Ввод даты и времени (DateTimePicker)
- •Вопросы для самопроверки и контроля
- •Глава 7. Модули и классы
- •7.1. Модули
- •7.2. Классы
- •Вопросы для самопроверки и контроля
- •Глава 8. Разработка интерфейса
- •8.1. Меню
- •8.2. Всплывающее и динамическое меню
- •8.3. Панель инструментов (ToolBar)
- •8.4. Общий диалог
- •8.4.1. Размещение общего диалога (Common Dialog)
- •8.4.2. Диалог открытия файла
- •8.4.3. Диалог настройки шрифтов
- •8.4.4. Диалог настройки цвета
- •8.4.5. Диалог настройки принтера
- •8.5. Встроенные и специальные диалоги
- •8.6. Панель состояния (StatusBar)
- •Вопросы для самопроверки и контроля
- •Глава 9. Работа с базами данных
- •9.1. Создание баз данных в Data Manager Pro
- •9.2. Создание запросов в Data Manager Pro
- •9.3. Создание форм мастером vb Data Form Wizard
- •9.4. ТехнологияDaOдоступа к базам данных
- •9.4.1. Объект управления Data
- •9.4.2. Объекты управления, связанные с базой данных
- •9.4.3. Методы
- •Уплотнение базы данных методом CompactDatabase
- •9.4.4. Создание базы, таблиц, индексов, связей и запросов
- •9.4.5. Обмен данными с помощью репликаций
- •9.5. Команды языка запросов sql
- •9.5.1. Запросы на выборку данных
- •Указание результатов выборки и источников данных
- •Критерий связи и отбора данных
- •Группировка данных
- •Сортировка
- •Примеры
- •9.5.2. Запросы на обновление данных
- •9.5.5. Изменение структуры таблицы
- •9.5.6. Объединение таблиц
- •9.5.7. Перекрестные запросы
- •9.5.8. Подзапросы
- •9.5.9. Создание и использование базы данных средствами запросов иAdo
- •9.6. Формирование отчетов средствами Crystal Reports
- •9.7. Соединение среды разработки с базой данных
- •9.8. Создание конструктора среды данных
- •9.9. ТехнологияAdOдоступа к базам данных
- •9.9.1. Объект управления ado Data (Adodc)
- •9.9.2. Командные средства
- •9.9.3. Хранимые процедуры (запросы)
- •9.9.4. Отключение наборов данных
- •9.9.5. Копирование набора в двумерный массив (GetRows)
- •9.10. Создание запросов с использованием конструктора среды данных
- •9.11. Формирование отчетов средствами DataReport
- •9.12. Применение отчетов, сформированных субдAccess
- •Вопросы для самопроверки и контроля
- •Глава 10. Графические средства
- •10.1. Общая информация
- •10.2. Отображение точки ‑ pSet, Point
- •10.3. Отображение отрезка и прямоугольника ‑ Line
- •10.4. Изображение окружности, дуг и секторов ‑ Circle
- •10.5. Формирование диаграмм (msChart,ChartFx)
- •Вопросы для самопроверки и контроля
- •Глава 11. Работаcмышью
- •11.1. События и методы
- •11.2. Перенос объектов
- •11.3. Изменение размеров объектов
- •11.4. Рисование
- •X As Single, y As Single) ‘процедура обработки нажатия мышки
- •12.2. Имитация нажатий клавиш
- •12.3. Печать
- •Вопросы для самопроверки и контроля
- •Глава 13. Отладка, компиляция и распространение программ
- •13.1. Отладка
- •13.1.1. Устранение синтаксических и логических ошибок
- •13.1.2. Обработка ошибок, возникающих при выполнении программы
- •13.2. Компиляция
- •13.3. Распространение программ
- •Вопросы для самопроверки и контроля
- •Глава 14. Дополнительные возможности
- •14.1. ActiveX ‑ элементы
- •14.2. Динамически присоединяемые библиотеки (dll,ActiveXdll)
- •14.3. Функции Windows api
- •14.4. Создание справочной системы
- •14.5. Технология ole
- •14.6. Обмен данными через буфер Clipboard
- •14.7. Директивы условной компиляции
- •14.8. Прерывание процессов функцией DoEvents
- •14.9. Параметры настройки приложения
- •14.10. Динамическое создание объектов
- •Вопросы для самопроверки и контроля
- •Глава 15. СозданиеWeb‑страниц
- •15.1. Основные средства созданияWeb‑страниц
- •15.2. ОсновыHtml
- •15.2.1. Правила написания
- •15.2.2. Структура документа
- •15.2.3. Форматирование текста
- •15.2.4. Атрибуты выравнивания текста и управления цветом
- •15.2.5. Шрифты
- •15.2.6. Списки
- •15.2.7. Изображения
- •15.2.8. Таблицы
- •15.2.9. Якорь (элемент привязки документов, их частей, почты)
- •15.2.10. Фреймы
- •15.2.11. Формы, управляющие элементы
- •15.2.12. Использование компонентовActiveX
- •15.2.13. Дополнительные теги
- •15.2.14. Листы стилей
- •15.3. Клиент и сервер
- •15.4. СозданиеAsp‑файла
- •15.5. Основы создания сценариев
- •15.6. Управление броузером
- •15.6.1. ОбъектWindow
- •15.6.2. ОбъектFrame
- •15.6.3. ОбъектLocation
- •15.6.4. ОбъектNavigator
- •15.6.5. Объект History
- •15.6.6. ОбъектDocument
- •15.6.7. ОбъектLinks
- •15.6.8. Объект Anchors
- •15.6.9. ОбъектForms
- •15.6.10. ОбъектElemеnts
- •15.6.10.1. Кнопки (Button, Reset, Submit)
- •15.6.10.2. Переключатели (CheckBox,Radio)
- •15.6.10.3. Поля ввода (Text, TextArea, Password)
- •15.6.10.4. Списки выбора (Select)
- •15.7. ОбъектыAsp
- •15.8. Работа с текстовыми файлами
- •15.9. Работа с базами данных
- •15.10. Визуальный редакторHtml‑документовDreamweaver
- •15.10.1. Палитра основных объектов
- •15.10.2. Настройка Dreamweaver
- •15.10.3. Структура и размещение файлов
- •15.10.4. Создание заготовкиHtml‑документа
- •15.10.5. Создание пустой таблицы
- •15.10.6. Форматирование ячеек таблицы
- •15.10.7. Размещение картинки
- •15.10.8. Создание меню
- •15.10.9. Форматирование текста
- •15.10.10. Режимы работы объектов
- •15.10.11. Команды
- •15.10.12. Анимация
- •Вопросы для самопроверки и контроля
- •Глава 16. Лабораторный практикум
- •16.1. Числовые типы, оператор присваивания
- •16.2. Алгоритмы линейной структуры
- •16.3. Алгоритмы разветвляющей структуры
- •16.4. Алгоритмы циклической структуры
- •16.5. Алгоритмы работы с рядами
- •16.6. Алгоритмы работы с массивами
- •16.7. Обработка символьных данных
- •16.8. Организация подпрограмм
- •16.9. Работа с файлами
- •16.10. Работа с формами в Visual Basic
- •16.11. Совместная работа с файлами, базами и отчетами
- •Пример задачи для Quick Basic
- •Текст программ
- •1. Учет авиапассажиров.
- •16. Учет платежных поручений в банке.
- •2.2. Переопределение массивов
- •2.3. Работа с внутренними подпрограммами
- •2.4. Организация вычислений
- •2.5. Ввод-вывод
- •2.6. Работа с файлами
- •2.10. Вызов внешних процедур и функций
- •5. Основные общие свойства, события и методы
- •6. Объекты, управляющие элементы
- •7. Модули
- •8. Разработка интерфейса
- •9. Работа с базами данных
- •10. Графические средства
- •11. Работа с мышью
- •12. Печать
- •13. Отладка, компиляция и распространение программ
- •14. Дополнительные возможности
- •15. Создание Web‑страниц средствами vbScript, html, asp
- •Приложение 2. Вопросы для экзаменационных билетов
- •Предметный указатель
- •Библиографический список
- •Плещёв Владимир Васильевич Информатика и программирование.
- •С примерами и упражнениями
9.6. Формирование отчетов средствами Crystal Reports
Пакет CrystalReportsфирмы Seagate Software (www.img.Seagate.com) [19] является автономным средством формирования отчетов. Отчеты, подготовленные этим пакетом, можно корректировать отдельно от приложения.Для вызоваCrystalReportsвыполните командуAdd-Ins/Report Designer илиПуск/Программы/Crystal Reports. Для создания нового отчета нажмите кнопкуCreate a New Reportи появится окно (рис. 9.6.1).
Рис. 9.6.1. Окно мастеров отчетов
КнопкаCustomпозволяет отказаться от услуг мастеров и перейти в режим ручного проектирования отчета с чистого листа непосредственно вручную средствами конструктора отчетов, выбрав нужный вариант типа отчета (отчет, перекрестный запрос, почтовая наклейка); далее, нажав кнопкуData File,выберем нужную базу для отчета. КнопкаAnother Reportпозволяет с проектировать отчет на основе уже существующего.
Покажем работу мастера на нашем примере.
Выберем вариант мастера Standard, и появится первый шаг мастера. Нажмем кнопкуData Fileдля выбора базы. Вернемся на первую страницуTableи, используя кнопкуDelete,удалим ненужные таблицы и запросы, оставив один базовый запрос.
Перейдем на страницу Fields(рис. 9.6.2) и выберем поля, которые включаются в отчет в порядке их следования на листе отчета.
Рис. 9.6.2. Выбор полей отчета
Кнопка Formulaиспользуется для формирования вычисляемой колонки отчета, например процента выполненных работ на стройке. В полеColumn Headingуказываются заголовки колонок. Перейдем на страницу сортировкиSort(рис. 9.6.3) и выберем поля сортировки ‑ наименования населенного пункта и заказчика.
Перейдем на страницу итогов Total(рис. 9.6.4). Страница состоит из отдельных вкладок. Каждая вкладка содержит описание полей с итоговой обработкой для отдельного уровня группировки. В полеTotal Fieldsдля группы населенных пунктов оставим только итоговые поля ‑ сметная стоимость и объем выполненных работ, удаляя остальные кнопкойRemove,и для этих полей укажем операцию суммирования. Допускаются различные итоговые операции: Sum (суммирование), Average (среднее по группе), Maximum (максимальное значение по группе), Minimum (минимальное значение по группе), Count (число записей в группе) и др.
Рис. 9.6.3. Выбор полей сортировки
Рис. 9.6.4. Формирование итогов
Поле Add Grand Totalsзадает режим формирования общих итогов по всему отчету. КнопкаBrowse Datавыводит все значения текущего поля.
Перейдем на следующую вкладку (наименование заказчика) и удалим все поля из окна Total Fields. На странице Selectможно указать условия отбора записей, используемых в отчете. Заголовок отчета и его внешний вид задаются на странице Style. После формирования отчета нажмем кнопкуPreview Reportи увидим окно предварительного просмотра (рис. 9.6.5).
Рис. 9.6.5. Окно просмотра отчета Crystal Reports
Для корректировки формы используется страницаDesign(рис. 9.6.6).
Рис. 9.6.6. Окно конструктора отчета Crystal Reports
Весь отчет делится на горизонтальные полосы (секции): Title(заголовок отчета),Page header(заголовок страницы),Details(детальная полоса),Page footer(итоги по странице),Grand Total(итоги по отчету),Summary (окончание отчета),#n(заголовок и подножие группы уровня n). КомандойFile/Optionsустанавливаются параметры среды отчета: каталог с базой данных, каталог по умолчанию (страницаDatabase); форматы и шрифты полей (Fields, Fonts) и др.
Рассмотрим основые правила и приемы работы с конструктором.
На поле формы находятся объекты, с которыми нужно работать: их размещать, выделять, перемещать, изменять, копировать, удалять.
Размещение объектов
Если нажать кнопкуInsert a Database Fieldна стандартной панели, то появится одноименное окно со списком доступных полей (рис. 9.6.7), и мышкой можно перенести поле в нужное место. Тексты размещаются на форме кнопкойInsert a Text Field.
Для размещения вычисляемых полей (формул) нажмите кнопкуInsert a Formula Field, и появится окноInsert Formulaсо списком имен, ранее сформированных формул. Выбирайте нужную. Если готовых формул нет, то в полеFormula Nameвведите имя формулы и нажмите кнопкуOK; появится окно для формирования (рис. 9.6.7).
Рис. 9.6.7. Окна формирования формулы и списка полей
Перенос поля, функции или операции в полеFormula textпроизводится двойным щелчком или кнопкойSelect. КнопкаCheckпроверяет правильность формулы. КнопкаBrowse Field Dataвключает в формулу нужное значение текущего поля в окнеField.
Insert a Summary‑ формирование итогового значения (суммы, среднего, числа записей и др.) по нужной группе (по заказчику) для выбранного объекта в детальной полосе (например, суммирование сметы).
Имеются кнопки для размещения диаграмм, рисунков, линий и прямоугольников.
Специальные поля (номер листа, текущая дата) размещаются в отчете командой Insert/Special Fields.
Выделение объектовосуществляется перед началом работы с объектом. Для выделения одного объекта достаточно щелкнуть по нему мышкой. Для выделения группы объектов нужно щелкать мышкой по объектам при нажатой клавишеShiftили нажать кнопкуSelect Fieldsи провести рамку мышкой для выделения объектов, попавших в рамку.
Перемещение и изменение размеров объектовосуществляется мышкой, а для точной подгонки используются клавиши со стрелочками; при нажатой клавишеShiftизменяется размер объекта или группы выделенных объектов.
Изменение свойств объектапроизводится вызовом контекстного меню щелчком правой кнопкой мыши по нужному объекту. КомандуChange Formatможно непосредственно вызвать двойным щелчком по объекту.Удаление выделенных объектов производится клавишейDel.
Рассмотрим еще несколько полезных кнопок.
Undo Last Change- отменить шаг корректировки. Можно отменить любое число шагов корректировки.
Search For …- поиск в отчете строки по условию, которому удовлетворяют поля записи, из которой формируется эта строка. После нажатия кнопки появится окно для формирования условия поиска или для продолжения поиска (рис. 9.6.8). На каждой странице этого окна указывается условие для поля, имя которого указано в заголовке страницы. КнопкойNewможно добавить в окно дополнительное поле. Если перед ее нажатием выделить нужные колонки, то эти поля окажутся на страницах окна. Условия на разных страницах связаны логической операцией “И”.
Рис. 9.6.8. Окно поиска строки отчета
Кнопкой Find Againможно найти следующую строку. ПереключателямиUpиDownможно установить направление поиска строки назад или вперед соответственно.
Select Record‑ кнопка, которая задает условие отбора записей или групп, включаемых в отчет (установка фильтра). Окно диалога аналогично предыдущему окну (рис. 9.6.8), но имеет дополнительные кнопки по формированию условияShow FormulaиFormula Editor.
Zoom report … ‑ кнопка увеличения или уменьшения окна предварительного просмотра отчета.
Dicard Saved... ‑ повторное формирование отчета. Если исходная база была изменена, то следует использовать данную кнопку.
Set record or group sort order‑ сортировка записей по дополнительным полям, которые ранее не были использованы при группировке.Группировка отчета(например, по наименованию заказчика) выполняется командойInsert/Group Section.
Нижняя панель содержит кнопки редактирования выделенного объекта (слева направо): имени, размера и начертания шрифта, выравнивания, стиля оформления объекта и всего отчета.
Мастер отчетов Listingпредназначен для формирования отчетов-описей, в которых не формируются итоги по группам.
Мастер перекрестных таблиц Cross ‑ Tab (рис. 9.6.9) позволяет группировать данные в таблицу, первая колонка которой содержит наименования строк (например, населенных пунктов). Следующие колонки содержат значения некоторого поля исходной таблицы или запрос (наименования заказчиков).
Рис. 9.6.9. Окно мастера перекрестных таблиц
В клетках таблицы содержится итоговое значение некоторого поля (сумма объемов всех работ, выполненных по отдельному заказчику и населенному пункту). На странице Cross Tabперетаскиваете нужные поля в окнаRows, Columns и Summarized Field.
Мастера отчетов дают пользователю возможность во время просмотра отчета запоминать заголовок нужной группы на отдельной вкладке окна просмотра (помечать нужную группу), если дважды щелкнуть мышкой по заголовку или по подножию этой группы. Это позволяет пользователю быстро вернуться на просмотр всех строк помеченной группы, включая все строки вложенных и детальных групп, даже если вывод этих групп был заблокирован при проектировании отчета, щелкнув мышкой по нужной вкладке.
Мастера отчетовSummary и Drill Downпозволяют формировать отчеты с блокировкой вывода детальных секций отдельных заголовков или подножий групп.
Мастер Top Nформирует отчеты с определенным числом N старших (Top) или младших (Bottom) уровней; остальные уровни выводятся как один под указанным именем.
Мастер Graphформирует отчеты с диаграммами.
Мастер Mail Label формирует почтовые наклейки.
Вызов отчета из приложения
Построив отчет, например под именем “reportstoiki.rpt” в каталоге приложения, нужно уметь вызывать его из приложения. Для этого нажмем клавиши ^Tи выберем строкуCrystal Report Control; элемент управленияCrystal Reportразместится на панели объектов. Разместим его на форме в любом месте, так как он будет виден на форме только в режиме конструктора под именем, например, Crystalreport1.
Процедура вызова может иметь вид:
Crystalreport1.ReportFileName=App.Path+“\reportstoiki.rpt” ‘имя отчета
Crystalreport1.RetrieveDataFiles‘обновление данных, используемых в отчете
Crystalreport1.Printreport ‘формирование отчета
Свойство ReportFileNameзадает имя файла с описанием отчета, а методPrintreportвыводит отчет. Для вывода отчета в файл следует дополнительно указать значения трех свойств этого объекта:
Destination=2 ‑ вывод в файл;
PrintFileName‑ имя файла с текстом отчета;
PrintFileType=n ‑ формат вывода, например: 17 - Microsoft Word.
Вывод на экран производится, если свойствоAction=1.Из окна просмотра отчет можно оперативно вывести на печать кнопкойPrintили в файл нужного формата кнопкойExport.
В новой версии Crystal Reports8.5 имеются следующие дополнительные возможности: подчиненные отчеты, совместное отображение различных типов отчетов, прямой доступ к другим СУБД (Oracle, Microsoft SQL Server и др.), поддержка Web в формате HTML и нереляционных источников данных,OLAP‑обработка, формирование диаграмм и др.
Общий порядок проектирования отчета конструктором (для любых языков программирования и СУБД, используюшихCrystalReports)
Разрабатывается эскиз формы отчета, который согласовывается с пользователем отчета.
Вызывается CrystalReportsи его конструктор. Устанавливается источник данных для отчета.
Формируются объекты, выводимые в детальной полосе (обычно переносом мышкой нужного поля из окна InsertDatabaseField).
Производится группировка записей отчета и их сортировка.
Формируются заголовки (наименования групп) и подножия групп (итоговые значения по группам отчета).
Формируются итоги по отчету
Формируется заголовок листа: наименование отчета, поля с номерами листов и с текущей датой расчета, заголовки колонок, рамки.
Формируются титульный и итоговый листы,
Уточняются форматы выводимых значений, тексты, шрифты, их размеры и стили; выравниваются объекты; форма доводится до окончательного вида и сохраняется на диске.
Формируется объект (командная кнопка, пункт меню), инициирующий формирование отчета.
Примерформирования отчета с двумя уровнями группировки (по наименованиям населенных пунктов и заказчиков) с итогами (рис. 9.6.10, 9.6.11)cданными из базового запроса базы “Строительство” (п. 9.1).
Рис. 9.6.10. Окно просмотра отчета Crystal Reports
Создадим новое приложение.
Вызовем Crystal Reports командой Add-Ins/Report Designer. Нажмем кнопки Create a new report, Custom/Custom report/Data File и выберем базу “Строительство”.
Перенесем мышкой последовательно из окна InsertDatabaseFieldв детальную полосу из базового запроса (слева направо) поляNs(наименование стройки),M(мощность),Ss(смета),Sf(освоено). Нажмем кнопкуInsert a formula fieldдля формирования и размещения в конце детальной полосы формулыOsatalos=Ss-Sf(осталось освоить).
Командой Insert/Group Sectionвыберем из базового запроса полеNnpдля группировки первого уровня записей по наименованию населенного пункта. Повторим эту команду для выбора поляNzдля группировки второго уровня записей по наименованию заказчика. Нажмем кнопкуSet record or group sort orderдля дополнительной сортировки по полюNs.
Рис. 9.6.11. Окно конструктора отчета Crystal Reports
Перенесем из базового запроса поля Nnp(наименование населенного пункта) иNz(наименование заказчика) в полосы заголовков групп первого (#1:Nnp) и второго уровней (#2:Nz) соответственно. Выделим в детальной полосе полеSsи нажмем кнопкуInsert a summary. Появится окно Insert summary. В первом поле этого окна выберем операцию суммирования (Sum), а во втором поле ‑Group#1 (итоговая операция по группе первого уровня ‑ по населенному пункту). Повторим эту операцию для группы второго уровня (Group#2). Аналогичным образом сформируем итоги по полямSfиOstalosв подножиях групп первого (Nnp) и второго (Nz) уровней. Разместим соответствующие надписи (итого по населенному пункту и заказчику). Выделим в детальной полосе полеSsи выполним командуInsert/Grand Total. Появится окно Insert Grand Total. В поле этого окна выберем операцию суммирования (Sum). Аналогично разместим в полосеGrandTotalитоги по отчету для полейSfиOstalos.
Используя кнопку Insert a text field, выведем в заголовок листа наименования отчета и его колонок. КомандамиInsert/Special Field/Page Number FieldиInsert/Special Field/Print Date Fieldвыведем в заголовок листа поля с текущим номером листа и датой соответственно.
Доведем форму до нужного вида (рис. 9.6.11). Сохраним ее под именем “Стройки по населенным пунктам и заказчикам” в папке с данным приложением.
Разместим на форме объект Crystal Reportи создадим командную кнопку для формирования отчета с процедурой его формирования:
Private Sub Command1_Click()
CrystalReport1.ReportFileName = App.Path + _
“\Стройки по населенным пунктам и заказчикам.rpt“ 'имя файла с отчетом
CrystalReport1.RetrieveDataFiles‘обновление данных, используемых в отчете
CrystalReport1.PrintReport 'формирование отчета
End Sub
Внедрение Crystal Reports в приложение Viisual Basic
Опишем способ внедрения Crystal Reports в приложение Visuаl Basic, позволяющий выводить отчет без участия Crystal Reports:
Командой Project/MoreActiveX/Designers/Crystal Reports создайте в проекте конструктор, например, CrystalReport1 (если этой команды нет в меню Project, то вызовите окно компонентов клавишами Ctrl+T и на странице Designers выберите строку Crystal Reports). В окне Crystal Report Gallery (рис. 9.6.12) выберите один из вариантов создания отчета: с использованием: мастера (Using the Report Expert), конструктора (As a Blank Report) или существующего отчета (From an Existing Report).
Рис. 9.6.12. Окно выбора варианта создания отчета
В окне Crystal Report Expertвыберите вариант внедрения: добавление стартовой формы с компонентомCRViewerи выбор формы в качестве стартовой.
Создается или корректируется форма отчета. Форма отчета сохраняется в проекте (при нажатии кнопки Save Project) в файле с расширением Dsr и в отдельном файлеCrystalReportsс расширениемRpt(при выполнении команды контекстного менюReport/Save to Crystal Reports File).
Для вызова и просмотра отчета используются команды:
CrystalReport1.ReadRecords ‘формирование отчета для CrystalReports 9 и выше
CrystalReport1.RetrieveDataFiles ‘форм. отчета для CrystalReports 8.5 и ниже
Form2.Show ‘формы Form2 с компонентом CRViewer и со свойством формы
‘WindowState=2 (Maximized).
Рекомендуетсяиспользовать более удобный вариант автономной разработки отчета средствамиCrystalReports. После автономной корректировки отчета, нужно удалить из проекта форму с компонентом просмотра этого отчетаCRViewer и конструкторCrystalReportи повторно встроить откорректированный отчет. Для компонентаCRViewer рекомендуется указывать для всех свойств типаEnable…значениеTrue.