(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Введение в Seagate Crystal Reports 8.0 (главы из книги)

Сергей Маклаков

Аннотация

Книга представляет собой практическое руководство по созданию аналитических отчетов с помощью всемирно известного генератора отчетов Crystal Reports. Она содержит как подробное описание функциональности последней версии Crystal Reports 8.0, так и практические советы по созданию сложных отчетов. Книга предназначена как для новичков в области информационных технологий, так и для опытных пользователей.

Содержание

  • Предисловие
  • Глава 1 - Введение
    • Обозначения
    • Инструментальная среда Crystal Reports 8.0.
    • Использование справки
  • Глава 2 - Создание простого отчета
  • Глава 3 - Выбор записей
    • Выбор записей при помощи Select Record Expert
  • Глава 4 - Сортировка и группирование записей
    • Добавление группы
    • Порядок сортировки записей
    • Добавление суммирующих полей
    • Вставка Grand Total Selection
    • Порядок сортировки групп
    • Top N Sort
  • Глава 5 - Сложное форматирование и вставка
    • Форматирование секций
    • Вставка специальных полей
    • Вставка линий и рамок
    • Вставка картинок
    • Вставка OLE обьектов
  • Глава 6 - Деловая графика и использование географических карт
    • Создание графиков
    • Источники данных
    • Изменение типа графика
    • Создание отчетов с географическими картами
  • Глава 7 - Формулы
    • Добавление формул
    • Редактирование выбранной формулы поля
    • Функции Crystal Reports.
  • Глава 8 - Создание других типов отчетов
    • Создание суммирующего отчета
    • Отчет DrillDown
    • Создание отчета Cross Tab
    • Использование Cross Tab Expert
    • Создание подотчетов
  • Глава 9 - Связь с базами данных
    • Связывание таблиц
    • SQL/ODBC источники данных
    • Работа с реляционными БД
    • SQL Query Designer
    • Введение в язык SQL
  • Глава 10 - Распространение отчетов
    • Компиляция Crystal Report
    • Распространение отчетов в WEB.
  • Глава 11 - Словари Crystal
    • Зачем использовать cловари Crystal
    • Построение cловарей Crystal
    • Использование cловаря данных

Предисловие

Одной из главных задач корпоративных информационных систем является оперативное предоставление информации, необходимой для принятия решений. Вместе с тем, структура современных СУБД, на которых основаны ИС, ориентированы в первую очередь на компактное и непротиворечивое хранение информации, а не на оптимизацию произвольной выборки и представления данных. Вследствие этого информация, хранящаяся в корпоративных информационных системах, как правило, используется неэффективно. Главной проблемой становится не хранение информации, а предоставление ее конечному пользователю в виде отчета в нужном контексте. Традиционно ИС масштаба предприятия имеют ограниченное число встроенных отчетов, прямое назначение которых - предоставление отчетной информации вышестоящим организациям или государственным службам, а не информационная поддержка руководящего звена. Специфика аналитических отчетов, предназначенных для облегчения процесса принятия решений состоит в их изменчивости, поскольку в реальной жизни требования бизнеса меняются чуть ли не каждый день. Заказы на разработку таких отчетов поступают разработчикам отдела автоматизации предприятия (если таковой имеется), либо разработчикам сторонних фирм, причем потребности в аналитических отчетах растут по мере их создания в геометрической прогрессии. Рано или поздно разработчик понимает, что решить эту проблему средствами, встроенными в среду разработки крайне затруднительно. Для такой задачи гораздо лучше подходит специализированный генератор отчетов подобный Crystal Reports.

Имеется три пути применения Crystal Reports.

  • Первый путь - обучить служащих самим применять Crystal Reports для создания отчетов. К сожалению, такой путь тяжело реализовать на практике. Дело не в сложности освоения Crystal Reports- навыкам работы в инструментальной среде Crystal Reports можно достаточно быстро научить даже слабо подготовленного пользователя. Проблема заключается в источнике данных, с которыми будет работать Crystal Reports. Пользователь в этом случае обращается непосредственно к БД и должен понимать, что такое структура данных и разбираться в соответствии значений таблиц и колонок бизнес - логике. Подавляющее большинство ИС для промышленности и бизнеса имеют в качестве источников данных продукты западных фирм, для которых локализация продуктов далеко не первоочередная задача, поэтому русификация СУБД часто приводит к дополнительной головной боли для отечественных разработчиков. Следовательно, пользователь Crystal Reports может увидеть только англоязычные имена объектов БД, что часто затрудняет работу.
  • Хотя Crystal Reports имеет специальный инструмент (Dictionary), частично решающий проблему интерфейса с БД, чаще более эффективным оказывается другой подход - иметь на предприятии специалиста, профессионально занимающегося генерацией отчетов. Такой специалист не обязательно должен быть программистом - ему необходимо знать предметную область, структуру данных особенно с точки зрения ее соответствия предметной области и продвинутые возможности генератора отчетов. Crystal Reports имеет очень мощный инструментарий для создания сложных отчетов, позволяющий, например, выполнять очень сложную статистическую обработку или объединять данные из разнородных источников (например, dbf файлов и реляционные СУБД). Готовые отчеты можно распространять в виде компактных exe - файлов и, следовательно, достаточно на всем предприятии иметь только один экземпляр Crystal Reports на рабочем месте создателя отчетов.
  • Третий подход - встраивание отчетов, сгенерированных в Crystal Reports, в клиентские части ИС, созданные при помощи других средств разработки (VB, Power Builder, Delphi, Centura), либо публикация отчетов на тонком клиенте с использованием технологии Intranet. В результате пользователь может вызывать и просматривать отчеты из привычной для себя среды. При этом проблема создания отчета не снимается, облегчается лишь проблема распространения отчета, поэтому этот подход может служить дополнением, а не альтернативой предыдущим.

В настоящей книге будут показаны основные возможности среды Crystal Reports Designer 8.0 и приемы создания отчетов средней сложности.

Глава 2. Создание простых отчетов

2.1. Создание отчета с помощью Standart Report Expert

Первый шаг создания отчета - нажатие (Click) на кнопку  Новый Отчет на Bottom bar’е. Открывается диалог Report Gallery (рис. 2.1.1).


Рис. 2.1.1. Диалог Report Gallery

Report Gallery предлагает несколько опций для построения нового отчета. Существует несколько типов сложных отчетов: Form Letter, Form, Cross-Tab, Subreport, Mail Label, Drill Down и OLAP.


Рис. 2.1.2. Диалог Standart Report Expert.

Рассмотрим стандартный отчет - Standart Report, который определен по умолчанию. После щелчка по кнопке OK в диалоге Report Gallery открывается диалог Standart Report Expert. Закладка Data служит для выбора источника данных для отчета. Кнопка Database позволяет выбрать в качестве источника базу данных. Щелчок по этой кнопке вызывает диалог Data Explorer, в котором можно выбрать соответствующую базу данных либо с использованием ODBC, либо с использованием драйвера прямого доступа.


Рис. 2.1.3. Диалог выбора базы данных Data Explorer.

Кнопка Add позволяет добавить в отчет выбранный источник данных. После выбора таблиц БД можно перейти к закладке Fields


Рис. 2.1.4. Закладка Fields диалога Standart Report Expert.

Закладка Fields позволяет с помощью кнопок Add и Remove включить в отчет необходимые поля предварительно отобранных для отчета таблиц. Щелчок по кнопке Next переключает диалог на следующую закладку -


Рис. 2.1.5. Закладка Group диалога Standart Report Expert.

Закладка Group позволяет сгруппировать данные по какому-либо полю, причем сортировка групп может быть установлена по возрастанию значения поля (числового, строкового или даты), по убыванию или в специальном порядке. Подробнее группировка данных отчета будет рассмотрена позже.

Закладки Total и Top N позволяют более эффективно обрабатывать сгруппированные данные. В закладке Total можно выбрать поля, по которым в отчете будет проведено агрегатирование данных. Crystal Reports содержит целый набор агрегативных функций, например суммирование, вычисление среднего, максимального и минимального значения, подсчет количества записей и т.д. Так, сгруппировав клиентов по странам (см. рис. 2.1.5), можно подсчитать количество клиентов в каждой стране и общий объем продаж в каждой стране. Специальная группировка Top N позволит, например, оставить в отчете только те страны, которые занимают N первых мест по объему продаж, а остальные объединить в группу "Прочие". Более подробно возможности агрегатирования и специальной группировки будут рассмотрены в последующих главах.

Закладка Chart позволяет включить в отчет деловую графику и содержит, в свою очередь несколько закладок (рис. 2.1.6).


Рис. 2.1.6. Закладка Chart диалога Standart Report Expert.

Для создания графика в первой закладке (Type) следует выбрать тип графика, во второй (Data) - источник данных. График в Crystal Reports 8.0 может быть создан на основе агрегативной или детальной информации, на основе информации из матричных отчетов или OLAP - источников. Подробнее создание графики будет рассмотрено в главе 6.


Рис. 2.1.7. Закладка Select диалога Standart Report Expert.

Закладка Select диалога Standart Report Expert служит для отбора данных для отчета. В закладке можно установить для каждого поля логическое условие - предикат, например значение Last Year’s Sales>3300 (рис. 2.1.7). Если строка удовлетворяет заданным условиям, она включается в отчет. Предикаты, установленные для различных полей объединяются логическим "и". Кнопка Browse Data служит для просмотра значений выбранного поля, причем показываются первые 100 неповторяющихся значений. Группа полей и комбобоксов в правой нижней части закладки контекстные - их тип и количество зависят от типа выбранного поля и условия выборки. Более сложные условия отбора данных можно установить в диалоге Select Report Expert, который будет рассмотрен позже.

Закладка


Рис. 2.1.8. Закладка Slyle диалога Standart Report Expert.

Закладка Slyle диалога Standart Report Expert (рис. 2.1.8) служит для форматирования будущего отчета. Crystal Reports содержит 10 предопределенных стилей. В дальнейшем форматирование отчета можно изменить. Кнопка в нижней части закладки позволяет включить в отчет рисунок в формате bmp, например логотип компании.

В том случае если отчет строится более чем по одной таблице, в диалоге Standart Report Expert становится доступной закладка Links (рис. 2.1.9). Функциональность этой закладки идентична функциональности диалога Visual Linking Expert, который будет рассмотрен в главе 13.


Рис. 2.1.9. Закладка Links диалога Standart Report Expert.

После нажатия на кнопку Finish, открывается главное окно Report Designer (рис. 2.1.10), которое содержит две главные закладки - Design и Preview. Закладка Preview позволяет не только просмотреть отчет, но и редактировать его с "живыми данными" прямо в режиме просмотра. В окне просмотра можно производить многие операции - построение отчета, группировка, суммирование и форматирование. Закладка Design специально предназначена для редактирования отчета.


Рис. 2.1.10. Главное окно Report Designer.

Упражнение

  1. Кликните по кнопке создать новый отчет
  2. Выберите в галерее отчетов стандартный отчет.
  3. В качестве источника данных выберите Database.
  4. Выберите в диалоге Data Explorer папку Database File, выберите секцию Find Database File и нажмите кнопку Add.
  5. В диалоге Open укажите файл Programm Files/Seagate Software/Crystal Reports/Samples/Databases/xtreme.mdb
  6. После включения базы данных xtreme в список источников выберите таблицу Customer и кликните по кнопке Add и затем Close.
  7. В закладке Fields влючите в отчет поля Customer Name и Last Year’s Sales.
  8. В закладке Group включите в отчет группировку по полю City.
  9. В закладке Select создайте условие отбора Country is equal to USA.
  10. Кликните по кнопке Finish.

2.2. Вставка в отчет и форматирование полей базы данных.

Рассмотрим, как выглядит отчет в закладке Design. Большая белая область в середине закладки - Edit box. Edit box разделен на секции горизонтальными линиями. При добавлении секции в отчет (например, при группировке данных), Crystal Reports автоматически добавляет линию. Серая область слева от Edit box’а дает дополнительную информацию, помогающую работать с данными и объектами. Горизонтальные линии продолжаются в серую область, определяя секции, и Crystal Reports идентифицирует каждую секцию по аббревиатуре или выбранному имени.

Секция заголовка отчета Report Header (RH) изображается единожды в самом начале отчета. Секции Page Header (PH) и Page Footer (PF) показываются единожды на каждой странице и обычно используются для заголовков, нумерации страниц и т.д. Секция Detail(D) - это список информации нашего отчета. Секция Report Footer (RF) показывается единожды в самом конце отчета.

Для внесения поля в отчет нужно выбрать меню Insert/Database Field или кликнуть по соответствующей кнопке на панели инструментов (см. главу 1). Появляется диалог Field Explorer (рис. 2.2.1), который служит для внесения в отчет полей базы данных, специальных полей, формул и параметров. Панель инструментов диалог Field Explorer имеет следующие кнопки (слева направо):

  1. Режим внесения выбранного объекта в отчет;
  2. Просмотр содержимого колонки базы данных (первые 100 неповторяющихся значений);
  3. Создание объекта;
  4. Редактирование объекта;
  5. Переименование объекта;
  6. Удаление объекта;
  7. Перемещение объекта по списку вверх;
  8. Перемещение объекта по списку вниз.

При внесении поля базы данных доступны только первые две кнопки. Для внесения поля в отчет нужно выбрать поле в списке, перейти в режим внесения объекта и щелкнуть по свободной части какой-либо секции отчета. Можно также перенести поле из списка в секцию отчета методом drag&drop.

Рис. 2.2.1. Диалог Field Explorer.

Поля можно выбрать индивидуально, по порядку, или группой.

Существует 3 пути выбора поля для отчета:

  • Выбрать индивидуально поле (кликнув на него) и поместить его в нужное место на отчете.
  • Выбрать диапазон полей (Click на первое поле и Shift-Click на последнее)
  • Выбрать группу полей(Click на первое поле и Ctrl-Click на каждое дополнительное)

Поля будут размещены в порядке их расположения в диалоге, но не в порядке выбора. Размер поля в отчете зависит от размера поля в БД. В секцию Page Header одновременно вносится текстовый объект - заголовок поля, который представляет собой название колонки в базе данных.

Упражнение 2.2.1 
Расположите следующие поля БД в секции отчета Detail: 
Contact Last Name 
Contact First Name 
Contact Title 

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

Crystal Reports позволяет нам изменить порядок расположения полей отчета. Для этого можно просто перенести поле внутри секции или между секциями методом drag&drop. Можно также сразу перенести группу полей. Для этого нужно предварительно выбрать их, кликнув по каждому, одновременно нажимая клавишу Shift или Ctrl.

Для более тщательного форматирования полей можно использовать специальный инструмент Guidelines- опорными линиями, к которым можно привязать поля отчета. Для отображения Guidelines нужно перейти в меню Files/Options и в закладке Layout включить опции Show Guidelines.

Рис. 2.2.2. Форматирование полей с помощью Guidelines.

Для форматирования поля нужно подвести его левый край к опорной линии (а не наоборот!). То, что поле связано с опорной линией, показывают небольшие красные метки по периметру поля. Если с одной линией связаны несколько полей, то перемещение опорной линии в верхней или левой линейке форматирования (рис. 2.2.2) проводит к перемещению группы полей по горизонтали или по вертикали соответственно. Если привязать правый край поля, то с помощью опорной линии можно изменить его размер.

Создать новую опорную линию можно, дважды кликнув по линейке форматирования. Удалить опорную линию можно, переместив ее (drag&drop) из линейки форматирования.

Упражнение 2.2.2 
  1.  Передвиньте поле и заголовок поля Region одновременно. Кликните по полю Region и выделите  его.
  2.  Затем нажмите клавишу Ctrl и кликните по заголовку этого поля. Оба поля теперь  имеют рамку.
  3.  Перенесите Region в левую часть отчета.
  4.  Сохраните отчет.

Таким же способом можно передвигать любые другие поля.

После выполнения упражнения отчет должен выглядеть выглядит так:

Рис. 2.2.3. Внешний вид отчета после выполнения упражнения 2.2.2.

Если создать отчет и, затем, сохранить или закрыть его, Crystal Reports по умолчанию сохраняет данные с отчетом. Если после этого открыть отчет, он основывается на сохраненных данных. Время и дата последнего обновления данных будут показаны в правой верхней части закладки Preview. Для принудительного обновления данных следует выбрать пункт меню Report / Refresh Report Data либо нажать кнопку F5.

Для форматирования поля служит диалог Format Editor (рис. 2.2.4), который можно вызвать, кликнув правой кнопкой мыши по полю и выбрав в контекстном меню пункт Format Field. Закладки диалога Format Editor позволяют задавать свойства полей безусловно (поля выбора) или по условию (кнопки вызова редактора формул справа от каждого условия). С помощью редактора формул можно создать формулу, возвращающую логическое значение "истина" или "ложь". При выполнении условия (значение "истина") форматирование будет выполняться, в противном случае - нет. Синтаксис формул будет рассмотрен в главе 7. Так, опция Suppress позволяет скрыть поле. Если задать формулу, то, например, можно скрывать только поля, содержащие значения меньше 1000.

Рис. 2.2.4. Диалог Format Editor

Закладка Common диалога Format Editor содержит следующие опции форматирования:

  • Keep Object Together - запрет на разрыв объекта при переходе на новую страницу, если объект не умещается на текущей странице, он будет перенесен на следующую целиком;
  • Close Border on Page Break - если объект не умещается на текущей странице и переносится на следующую частично (разрывается на две части), каждая часть обрамляется в рамку полностью;
  • Can Grow- возможность печати объекта в несколько строчек;
  • Tool Tip Text - создание для объекта ярлыка (ярлык появляется в режиме просмотра);
  • Text Retation - вращение объекта (допускается горизонтальное или вертикальное размещение объекта;
  • Suppress if Duplicated - в случае, если значение поля повторяется несколько раз, показывается только первое значение, остальные скрываются.

Закладка Border позволяет создать рамку для объекта. В закладке Font можно установить размер, стиль и цвет шрифта. Закладка Paregraph Formating служит для форматирования текста, если он расположен в несколько строк.

С помощью закладки Hyperlink можно установить гиперссылку на другой объект текущего отчета, web-сайт, адрес электронной почты или другой отчета.

Упражнение 
  1.  Увеличте шрифт поля Last Year’s Sales до 14
  2.  Кликните по полю заголовка для его выделения
  3.  Правой кнопкой мыши по полю и выберите Format Field.
  4.  В диалоге Format Editor выберите закладку Font и установите размер 14.

2.3. Вставка в отчет текстовых объектов.

Для вставки текстового объекта нужно кликнуть по кнопке Вставка текстового поля на панели инструментов или выбрать из меню Insert/Text Object. После этого следует перенести маркер и кликнуть по свободному месту в секции отчета, например Page Header. Разместить текстовый объект можно как в режиме Preview Window, так и в Design Window.

Рис. 2.3.1. Текстовый объект

После размещения текстового объекта Crystal Reports переходит в режим редактирования. При помощи клавиатуры можно набрать текст, а в верхней части окна появляется окно форматирования текстового объекта. Можно импортировать текст из текстового файла. Для этого в режиме редактирования следует кликнуть правой кнопкой мыши по текстовому объекту и выбрать из контекстного меню Import From File. Поддерживается импорт из файлов формата ASCII, HTML и MS Word.

Текстовый объект в Crystal Reports может содержать не только текст, но и поля базы данных, формулы, специальные поля и параметры. Для внесения поля в состав текстового объекта, нужно сначала создать его в какой-либо секции отчета, а затем, находясь в режиме редактирования переместить его (drag&drop) внутрь текстового объекта.

Рис. 2.3.2. Текстовый объект, содержащий поля базы данных.

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

Для возвращения в режим редактирования следует дважды кликнуть по текстовому объекту.

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

Упражнение 
  1. Выберите меню Insert/Text Object.
  2. Кликните по свободному месту в секции Page Header.
  3. Наберите "Отчет по продажам"
  4. Установите для текстового объекта стиль (жирный) и размер (14) шрифта

2.3. Вставка в отчет специальных объектов.

Помимо текстовых полей в отчет могут быть включены специальные поля, которые могут содержать дополнительную информацию, такую как номер страницы, номер записи, дата отчета и т.д. Для вставки специального поля необходимо выбрать меню Insert/ Special Field.

Рассмотрим доступные в Crystal Reports специальные поля.

  • Page Number - номер страницы. Обычно размещается в секциях отчета Page Header или Page Footer.
  • Total Page Count - общее количество страниц в отчете. Это поле может быть использовано в любой секции отчета. Например, Total Page Count может быть использовано для создания текстового объекта "Итого страниц в отчете - Y" или "страница X из Y", где X - Page Number, Y - Total Page Count. Не следует включать это поле в отчет без необходимости, поскольку это может привести к потере производительности при выполнении отчета.
  • Page N of M - показывает номер текущей страницы из общего количества страниц в отчете. В режиме просмотра будет показано значение "Page 2 of 8", что свидетельствует о том, что показано вторая страница из восьми, входящих в отчет.
  • Report Title - заголовок отчета. Это поле может быть использовано в любой секции отчета. Конечно, в качестве заголовка отчета можно использовать и текстовый объект. Использование специального поля Report Title в качестве заголовка позволяет задать его значение из меню File/Summary Info. В результате значение Report Title будет свойством отчета и может быть использовано как параметр при вызове отчета из клиентского приложения, написанного на Delphi, MS Visual Basic или C++.
  • Report Comments - комментарий к отчету. Использование этого поля аналогично использованию Report Title. Длина поля ограничена 256 символами.
  • File Path and Name - имя и путь файла отчета.
  • File Author - имя автора отчета. Задается в диалоге Document Properties, который вызывается при помощи меню File / Summary Info.
  • File Creation Date - дата создания шаблона отчета. По умолчанию присваивается системная дата компьютера, на котором создается отчет.
  • Print Date - дата печати отчета. Может быть изменена в меню Report / Set Print Date/Time.
  • Print Time - время печати отчета. Может быть изменено в меню Report / Set Print Date/Time.
  • Data Date - дата последнего обновления данных (refresh).
  • Data Time - время последнего обновления данных (refresh).
  • Modification Date - дата последнего изменения шаблона отчета.
  • Modification Time - время последнего изменения шаблона отчета.
  • Record Number - номер записи отчета. Может быть использовано только в секции Details.
  • Group Number - номер группы отчета. Может быть использовано только в секциях Group Header или Group Footer.
  • Record Selection Formula - поле отображает в режиме просмотра формулу, использующуюся для отбора записей. Более подробно создание формул и выборка записей будут рассмотрены в главах 7 и 3.
  • Group Selection Formula Formula - поле отображает в режиме просмотра формулу, использующуюся для отбора записей, по которому в отчет включена группировка. Более подробно создание формул и выборка записей будут рассмотрены в главах 7 и 3.


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 14.12.2000 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
SAP Crystal Reports XI R2 Dev 2006 INTL WIN NUL License (Version 11)
SAP Crystal Server 2011 WIN INTL 5 CAL License
SAP® Crystal Presentation Design 2016 WIN INTL NUL
SAP CRYSTAL Reports 2013 WIN INTL NUL
SAP® Crystal Dashboard Design Departmental 2016 WIN INTL NUL
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Новые материалы
Мир OLAP и Business Intelligence: новости, статьи, обзоры
Delphi - проблемы и решения
Утиль - лучший бесплатный софт для Windows
Краткие описания программ и ссылки на них
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100