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

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

Создание отчета с помощью конструктора отчетов

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

  Окно конструктора отчетов

Существует несколько различных вариантов открытия окна конструктора отчетов. Если вы хотите модифицировать ранее созданный отчет, то в окне проекта установите курсор на его названии и нажмите кнопку Modify (Модификация).

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

Для работы в конструкторе отчетов используются панели инструментов Report Designer (Конструктор отчета) и Report Controls (Элементы управления отчета), а также команды пункта Report (Отчет) (рис. 8.1), появившегося в строке основного меню при открытии конструктора.

В табл. 8.1 приведено краткое описание кнопок панели инструментов Report Controls (Элементы управления отчета). Более подробно назначение кнопок этой панели будет рассмотрено в разделах, посвященных размещению в отчетах различных элементов управления.

gl8-1.jpg

Рис. 8.1. Окно конструктора отчета

Таблица 8.1. Кнопки панели инструментов Report Controls

Кнопка Наименование Назначение
Select Objects (Выбор объектов) Является указателем выбора объектов отчета
Label (Метка) Размещает текст
Field (Поле) Размещает поля
Line (Линия) Рисует линии
Rectangle (Прямоугольник) Рисует прямоугольники
Rounded Rectangle (Скругленный прямоугольник) Рисует прямоугольник со скругленными краями
Picture/Act! vX Bound Control

(Изображение/Ас1!уХ-объект)

Помещает в отчет рисунок
Button Lock (Закрепитель кнопки) Закрепляет выбор кнопки

  Типы полос окна конструктора отчета

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

Типы возможных в отчете полос приведены в табл. 8.2. Основное назначение полосы — определять, когда и где будут печататься размещенные в полосе объекты.

Таблица 8.2. Типы полос отчета

Полоса Назначение
Title (Титул) В этой полосе размещается информация, появляющаяся перед основным отчетом и называемая титульной. Это может быть имя отчета, сопроводительное письмо или любые данные, которые необходимо поместить на первой странице отчета
Page Header

(Верхний колонтитул)

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

(Группа сверху)

В этой полосе печатается информация, используемая при группировке. При группировке данных группа может иметь верхние полосы, печатаемые до нее. Они помогают идентифицировать информацию, содержащуюся на каждом уровне группировки
Detail (Детали) Эта полоса содержит данные полей из таблицы или результат вычислений над ними
Group Footer

(Группа снизу)

В полосе размещается итоговая информация по группе
Page Footer (Нижний колонтитул) В нижнем колонтитуле печатается название отчета, дата, номер страницы и итоговые значения по данным текущей страницы
Summary (Итоги) В итоговой части отчета содержится информация, появляющаяся один раз после основного отчета и содержащая итоговые значения или заключительный текст

  Использование команды Quick Report для размещения полей

В процессе создания отчета выполняются все или часть из приведенных ниже процедур:

Ускорить размещение данных в отчете можно с помощью команды Quick Report (Быстрый отчет) из меню Report (Отчет). Отчет, получаемый в результате выполнения этой командыг называется быстрым или стандартным отчетом. Иными словами, Quick Report (Быстрый отчет) — это средство конструктора отчетов, которое автоматически помещает выбранные поля и надписи к ним в окно конструктора отчета. После этого вы можете модифицировать полученный отчет, изменив текст надписей, порядок расположения полей, добавить в отчет группирование данных, заголовок и т. д.

Для создания отчета с использованием команды Quick Report (Быстрый отчет) необходимо выполнить следующие действия:

  1. Откройте базу данных проекта. Для этого на вкладке Data (Данные) установите курсор на ее название и нажмите кнопку Open (Открыть) окна проекта. При этом на стандартной панели инструментов в списке Databases (Базы данных) появится название открытой базы данных.
  2. Откройте любым удобным для вас способом окно конструктора отчетов.
  3. Находясь в окне конструктора отчета, выберите в меню Report (Отчет) команду Quick Report (Быстрый отчет).
  4. В открывшемся диалоговом окне Open (Открыть) содержится список всех таблиц открытой в проекте базы данных (рис. 8.2). Выберите таблицу, для которой создается стандартный отчет, и нажмите кнопку ОК.

Замечание

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

gl8-2.jpg

Рис. 8.2. Диалоговое окно Open

  1. После выбора таблицы открывается диалоговое окно Quick Report (Быстрый отчет) (рис. 8.3), в котором предлагаются варианты расположения полей в отчете — в столбец или в строку (две кнопки). Выберите один из предложенных вариантов:

Диалоговое окно Quick Report (Быстрый отчет) содержит флажки, описанные в табл. 8.3.

Таблица 8.3. Флажки диалогового окна Quick Report

Флажок Назначение
Titles (Заголовки) При установке флажка в отчет помещаются поля и надписи к ним
Add Alias (Добавить псевдоним) Флажок определяет, указывать ли псевдоним таблицы в именах полей в окне конструктора отчета
Add Table to Data Environment

(Добавить таблицу в среду окружения)

При установке флажка используемая в отчете таблица помещается в среду окружения
 

gl8-3.jpg

Рис. 8.3. Диалоговое окно Quick Report

  1. Если вы хотите разместить в отчете все поля исходной таблицы, то этот шаг пропустите и сразу нажмите кнопку ОК, чтобы закрыть диалоговое окно Quick Report (Быстрый отчет). Для выбора полей, размещаемых в отчете, нажмите кнопку Fields (Поля). Откроется диалоговое окно Field Picker (Выбор поля) (рис. 8.4). Выберите поля, которые вы собираетесь поместить в отчет, используя для этого кнопку Move (Переместить). Если в отчет нужно поместить все поля, воспользуйтесь кнопкой All (Все).
gl8-4.jpg

Рис. 8.4. Диалоговое окно Field Picker

Совет

Если вам нужно разместить в отчете все поля за исключением нескольких, сначала выберите все поля, а затем удалите лишние, воспользовавшись кнопкой Remove (Удалить).

  1. Завершив выбор полей, нажмите кнопку ОК для закрытия диалогового окна Field Picker (Выбор поля). Нажмите также кнопку ОК в окне Quick Report (Быстрый отчет). Теперь отчет содержит все необходимые поля. Кроме того, в полосе Page Footer (Нижний колонтитул) расположено поле с функцией DATE () и поле с системной переменной _PAGENO, указывающие дату и текущий номер страницы отчета соответственно.

Фрагмент отчета, сформированного с помощью команды Quick Report  (Быстрый отчет), представлен на рис. 8.5.

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

  1. 1. Выделите все объекты отчета, воспользовавшись командой Select All (Выбрать все) из меню Edit (Правка).
  2. 2. Откройте диалоговое окно Шрифт (рис. 8.6). Для этого в меню Format (Формат) выберите команду Font (Шрифт).
gl8-5.jpg

Рис. 8.5. Фрагмент отчета, созданного с помощью команды Quick Report

gl8-6.jpg

Рис. 8.6. Диалоговое окно Шрифт

  1. Используя список Шрифт диалогового окна Выбор шрифта, установите необходимый шрифт.
  2. Задайте начертание, стиль, цвет и размер символов выделенных объектов.
  3. Завершив установку параметров, нажмите кнопку ОК для закрытия диалогового окна.
  4. Щелкните мышью в любом месте отчета вне выделенной области.

  Установка среды окружения отчета

Для отчета, созданного мастером или с помощью команды Quick Report (Быстрый отчет), среда окружения отчета уже определена. Разработчику, создающему отчет с помощью конструктора отчетов, среду окружения необходимо сформировать, выполнив для этого следующие действия:

  1. Разместить в окружении используемые в отчете таблицы.
  2. Установить для таблиц необходимые индексы.
  3. Установить отношения между таблицами.

Вся относящаяся к среде окружения информация хранится в файле описания отчета.

gl8-7.jpg

Рис. 8.7. Диалоговое окно Data Environment Report Designer

Для формирования среды окружения отчета используется окно Data Environment Report Designer (Среда окружения Конструктор отчета) (рис. 8.7), для открытия которого можно воспользоваться одним из следующих способов.

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

  1. Выделите таблицу, в которой хотите упорядочить данные.
  2. Откройте окно свойств таблицы. Для этого установите на нее курсор, нажмите правую кнопку мыши и выберите в появившемся контекстном меню команду Properties (Свойства).
  3. Выделите свойство order (Порядок) (рис. 8.8).
gl8-8.jpg

Рис. 8.8. Свойство Order используется для упорядочения записей в таблице

  1. В поле коррекции свойства нажмите кнопку раскрытия списка. Из списка индексов таблицы выберите тот, по которому хотите упорядочить данные в отчете.

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

  1. Выделите линию, соединяющую таблицы. При этом в окне свойств Properties (Свойства) будут отображаться свойства, характеризующие установленную между таблицами связь.
  2. Проверьте, какая из таблиц является родительской, а какая дочерней по отношению к ней. Для этого просмотрите свойства chiidAlias (Дочерняя таблица) и ParentAiias (Родительская таблица).
  3. Посмотрите выражение, по которому связаны таблицы. Для этого воспользуйтесь свойством ReiationalExpr (Выражение отношения).

После размещения в окне Data Environment (Среда окружения) всех используемых в отчете таблиц, закройте его, после чего Visual FoxPro сохранит созданную вами среду окружения.

  Размещение объектов в отчете

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

  Размещение в отчете текстовой информации

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

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

  1. Нажмите кнопку Label (Метка) на панели инструментов Report Controls (Элементы управления отчета).
  2. Щелкните мышью в том месте окна конструктора отчета, где необходимо разместить или исправить текст.
  3. Внесите необходимые добавления или изменения.
  4. Нажмите кнопку Select Objects (Выбор объектов) на панели инструментов Report Controls (Элементы управления отчета).

Совет

Текст может состоять из нескольких строк. Для переноса части текста на новую строку используйте клавишу <Enter>.

Для размещенного в отчете текста можно изменять параметры используемого шрифта и цвет, выполнив следующие действия:

  1. Используя мышь, выделите текстовый объект.
  2. В меню Format (Формат) выберите команду Font (Шрифт).
  3. В открывшемся диалоговом окне Шрифт установите начертание, стиль, цвет и размер символов выделенного текста. Вид выбранного шрифта просмотрите в области Образец этого же диалогового окна.
  4. Завершив установку параметров, нажмите кнопку ОК. Если дважды щелкнуть на текстовом объекте, откроется диалоговое окно Text (Текст) (рис. 8.9), в котором можно определить условия печати текста, его расположение в полосе, а также разместить комментарии.
gl8-9.jpg

Рис. 8.9. Диалоговое окно Text

  Добавление в отчет областей заголовка и итогов

Как правило, все отчеты содержат заголовок и итоговую часть отчета. Для их формирования необходимо добавить в отчет полосы Summary (Итоги) и Title (Титул), используя команду Title/Summary (Титул/Итоги) из меню Report (Отчет). В результате выполнения этой команды открывается диалоговое окно Title/Summary (Титул/Итоги), содержащее флажки, приведенные в табл. 8.10.

Таблица 8.4. Кнопки панели инструментов Report Controls

Флажок Назначение
Title band (Полоса титула) Добавляет в отчет полосу Title (Титул) для размещения заголовка в отчете
New page (Новая страница) области Report title (Титул отчета) Размещает заголовок отчета на отдельной странице
Summary band (Полоса итогов) Добавляет в отчет полосу Summary (Итоги) для размещения в отчете итоговой части
New page (Новая страница) области Report summary

(Итоги отчета)

Размещает итоговую часть отчета на отдельной странице

Установите необходимые флажки и нажмите ОК. В отчете появятся указанные вами полосы. В полосе Title (Титул) разместите объекты заголовка отчета, в качестве которых может выступать текст, поля и рисунки.

gl8-10.jpg

Рис. 8.10. Диалоговое окно Title/Summary

В полосе Summary (Итоги) могут размещаться итоговые значения полей отчета, а также объекты оформления отчета, такие как текст и рисунки.

  Создание простого отчета

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

  1. Откройте проект Sales.
  2. Откройте базу данных проекта. Для этого на вкладке Data (Данные) установите курсор на названии базы данных и нажмите кнопку Open (Открыть) окна проекта. При этом на стандартной панели инструментов в списке Databases (Базы данных) появляется название открытой базы данных.
  3. Перейдите на вкладку Documents (Документы), выберите группу Reports (Отчеты) и нажмите кнопку New (Новый).
  4. В открывшемся диалоговом окне New Report (Новый отчет) выберите опцию New Report (Новый отчет). Открывается окно конструктора, предназначенное для создания нового отчета.
  5. Для задания среды окружения отчета откройте диалоговое окно Data Environment (Среда окружения), выбрав команду Environment (Окружение) в меню View (Вид) или Data Environment (Среда окружения) контекстного меню.
  6. Для добавления таблицы в окружение отчета в меню Data Environment (Среда окружения) выберите команду Add (Добавить).
  7. В открывшемся диалоговом окне Add Table or View (Добавить таблицу или представление) выберите таблицу customer и нажмите кнопку ОК. В окне Data Environment (Среда окружения) будет отображена выбранная таблица.
  8. Откройте окно свойств таблицы. Для этого установите курсор на ее названии, нажмите правую кнопку мыши и выберите из контекстного меню команду Properties (Свойства).
  9. Выделите свойство order (Порядок). Для упорядочения данных в отчете по кодам клиентов в поле коррекции свойства нажмите кнопку раскрытия списка и из списка индексов таблицы выберите icdcustomer.
  10. Закройте окно Data Environment (Среда окружения).
  11. Для размещения полей таблицы в отчете воспользуйтесь командой Quick Report (Быстрый отчет) в меню Report (Отчет). Открывается диалоговое окно Quick Report (Быстрый отчет).
  12. Выберите вариант размещения полей по столбцам и нажмите кнопку Fields (Поля).
  13. В диалоговом окне Field Picker (Выбор поля) выберите поля, помещаемые в отчет, и перенесите их в список Selected fields (Выбранные поля), используя кнопку Move (Перенести). Нажмите кнопку ОК.
  14. Возвратившись в диалоговое окно Quick Report (Быстрый отчет), нажмите кнопку ОК для завершения процедуры размещения полей в отчете.
  15. Используя кнопку Label (Метка) панели инструментов Report Controls (Элементы управления отчета), скорректируйте заголовки полей.
  16. Для того чтобы придать отчету законченный вид, добавьте область заголовка отчета, выбрав в меню Report (Отчет) команду Title/Summary (Титул/Итоги).
  17. В открывшемся диалоговом окне Title/Summary (Титул/Итоги) установите флажок Title Band (Полоса титула) и нажмите ОК. В отчете появляется полоса Title (Титул). Разместите в ней текст заголовка отчета с помощью кнопки Label (Метка) панели инструментов Report Controls (Элементы управления отчета).
gl8-11.jpg

Рис. 8.11. Список клиентов

  1. Просмотрите внешний вид отчета (рис. 8.11), воспользовавшись командой контекстного меню Preview (Просмотр).
  2. Сохраните отчет.

  Размещение полей

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

  1. Нажмите кнопку Field (Поле) на панели инструментов Report Controls (Элементы управления отчета).
  2. Щелкните мышью в месте предполагаемого размещения поля в окне конструктора отчета.
  3. В открывшемся диалоговом окне Report Expression (Выражение отчета) (рис. 8.12) укажите для поля источник данных, формат, условие, при котором поле будет выводиться на печать.
  4. Завершив установку параметров, нажмите кнопку ОК.
gl8-12.jpg

Рис. 8.12. Диалоговое окно Report Expression

Диалоговое окно Report Expression (Выражение отчета) позволяет: G определить выражение, результат вычисления которого будет выводиться в данное поле;

В поле ввода Expression (Выражение) можно задать поле таблицы или выражение, размещаемое в отчете, а в поле Format (Формат) — формат данных, выводимых на печать.

Используя опции диалогового окна Calculate Field (Вычисляемое поле), открываемого при нажатии кнопки Calculations (Вычисления), можно поместить в отчет статистические значения размещенных в полях данных. Поля данного типа размещаются в отчете, как правило, в колонтитулах, полосах группы и в итоговой части отчета.

Диалоговое окно, открываемое при нажатии кнопки Print When (Условия печати), позволяет задать условия, при которых информация данного поля будет выводиться на печать.

Формирование выражения поля

Чтобы сформировать выражение для поля, размещаемого в отчете, выполните следующие действия:

  1. Дважды щелкните мышью на размещенном в отчете поле. Открывается диалоговое окно Report Expression (Выражение отчета) (см. рис. 8.12).
  2. Введите необходимое выражение в поле Expression (Выражение). Для задания выражения поля вы можете воспользоваться построителем, нажав расположенную справа от поля кнопку. При этом на экране открывается диалоговое окно Expression Builder (Построитель выражения), в поле Expression for Field on Report (Выражение для поля отчета) которого необходимо задать требуемое выражение.

Список Fields (Поля) диалогового окна Expression Builder (Построитель выражения) содержит поля помещенных в окружение отчета таблиц, список Variables (Переменные) — системные переменные Visual FoxPro. В области Functions (Функции) размещены строковые, логические, математические функции, а также функции даты и времени. Используя значения из этих списков, сформируйте необходимое выражение для создаваемого поля.

Совет

Для формирования выражения нет необходимости вводить информацию в поле Expression for Field on Report (Выражение для поля отчета) вручную, Достаточно выбирать требуемое значение из любого списка и щелчком мыши переносить его в это поле.

gl8-13.jpg

Рис. 8.13. Определение вычисляемого поля

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

ALLTRIM{Customer.cCity)+", "+ ALLTRIM(Customer.cAddress)

  1. Завершив формирование выражения, нажмите кнопку OK для закрытия диалогового окна Expression Builder (Построитель выражения).
  2. Закройте диалоговое окно Report Expression (Выражение отчета), также нажав кнопку ОК.

Задание формата данных

Диалоговое окно Report Expression (Выражение отчета) позволяет задать формат отображения поля при печати, допуская использование тех же функций форматирования, которые используются при форматировании полей формы. С помощью форматирования вы можете:

gl8-14.jpg

Рис. 8.14. Диалоговое окно Format

Для задания формата поля нажмите кнопку вызова построителя поля Format (Формат). Откроется диалоговое окно Format (Формат) (рис. 8.14), содержащее опции и флажки, позволяющие задать тип данных поля.

Замечание

Кнопки вызова построителя всегда располагаются справа от поля ввода.

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

Таблица 8.5. Параметры настройки символьных полей

Параметр Назначение
То upper case (Верхний регистр) Символы преобразуются в прописные буквы
SET DATE format (В виде даты) Данные отображаются в виде даты в формате, установленном командой SET DATE
Ignore input mask

(Игнорировать маску ввода)

Отображает данные на экране в соответствии с маской ввода
British date (Европейская дата) Данные отображаются в виде даты в европейском формате
Left justify (Сдвинуть влево) Данные выравниваются по левому краю поля
Right justify (Сдвинуть вправо) Данные выравниваются по правому краю поля
Center justify (По центру) Данные в поле центрируются

Таблица 8.6. Параметры настройки числовых полей

Параметр Назначение
Left justify (Сдвинуть влево) Число выравнивается по левому краю поля
Blank if zero (Пусто, если ноль) Ноль не печатается
(Negative) (Отрицательное) Отрицательные числа заключаются в круглые скобки
SET DATE format (В виде даты) Данные отображаются в виде даты в формате, установленном командой SET DATE
British date (Европейская дата) Данные отображаются в виде даты в европейском формате
CR if positive (CR, если положительно) Если число положительное, после него ставится CR (кредит)
DB if negative (DB, если отрицательно) Если число отрицательное, после него ставится DB (дебет)
Leading zeros (Незначащие нули) Печатаются все ведущие нули
Currency (Денежная единица) Данные отображаются в формате денежной единицы, который задается командой SET CURRENCY
Scientific (Экспоненциально) Отображает число в экспоненциальном формате

Таблица 8.7. Параметры настройки полей типа "дата"

Параметр Назначение
SET DATE format (В виде даты) Дата отображается в формате, установленном командой SET DATE
British date (Европейская дата) Дата отображается в европейском формате

Задание условий печати

Для задания условий печати данных отчета используется диалоговое окно Print When (Условие печати) (рис. 8.15), открываемое из диалогового окна Report Expression (Выражение отчета) нажатием кнопки Print When (Условие печати). С помощью параметров этого окна вы можете удалить из отчета пустые строки, определить условия печати значений полей, при переходе на следующую страницу или при изменении выражения группы и т. п.

gl8-15.jpg

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

Для подавления печати повторяющихся значений полей используется значение No (Нет) переключателя Print repeated values (Печатать один раз на полосу). При установленном значении Yes (Да) печатаются все значения поля.

Область Also print (Печатать) содержит флажки (табл. 8.8).

Таблица 8.8. Флажки области Also print

Флажок Назначение
In first whole band of new page/column

(На первой целой полосе новой страницы/ колонки)

Поле печатается в первой полосе новой страницы или колонки
When this group changes (При изменении группы) Поле печатается при изменении группы, выбранной в списке групп
When detail overflows to new page/column

(При переходе на новую страницу/колонку)

Поле печатается при переходе полосы Detail (Детали) на новую страницу

При установке флажка Remove line if blank (Удалять пустые строки) пустые строки удаляются из отчета.

В поле Print only when expression is true (Печатать, если истинно), используя построитель выражения, можно задать выражение, вычисляемое перед печатью данного поля. Если значение выражения ложно, то значение поля печататься не будет.

Расположение поля в полосе

Диалоговое окно Report Expression (Выражение отчета) (см. рис. 8.12) содержит переключатель Field position (Положение поля), позволяющий управлять расположением поля в полосе (табл. 8.9).

Таблица 8.9. Опции диалогового окна Report Expression

Опция Характеристика
Float (Плавающее) Позиция поля в отчете может изменяться при изменении размеров окружающих его полей
Fix relative to top of band

(Постоянное относительно верхней полосы)

Поле сохраняет постоянную позицию относительно верхней границы полосы
Fix relative to bottom of band

(Постоянное относительно нижней полосы)

Поле сохраняет постоянную позицию относительно нижней границы полосы

Размещение итогового поля

В колонтитулах, полосах группы, в итоговой части отчета, а также в полосе Detail (Детали) можно размещать поля, содержащие статистические значения полей отчета.

Замечание

Итоговые поля, размещаемые в полосе Detail (Детали), предназначены для вывода значений нарастающих итогов.

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

  1. Откройте диалоговое окно Report Expression (Выражение отчета), дважды щелкнув мышью на поле.
  2. Определите выражение для поля, введя необходимую информацию в поле Expression (Выражение).
  3. Нажмите кнопку Calculations (Вычисления). При этом на экране открывается диалоговое окно Calculate Field (Вычисление поля) (рис. 8.16), в котором может быть выбрана математическая операция над значением выражения, определенного для данного поля.
gl8-16.jpg

Рис. 8.16. Диалоговое окно Calculate Field

Диалоговое окно Calculate Field (Вычисляемое поле) содержит группу переключателей Calculate, описанную в табл. 8.10.

Таблица 8.10. Опции диалогового окна Calculate Field

Переключатель Назначение
Nothing (Ничего) Над полем не производится вычислений
Count (Сосчитать) Вычисляется количество значений поля (сами значения поля не используются)
Sum (Сумма) Вычисляется итоговая сумма значений поля
Average (Среднее арифметическое) Вычисляется среднее арифметическое значений поля
Lowest

(Наименьшее)

Отображается наименьшее значение поля
Highest

(Наибольшее)

Отображается наибольшее значение поля
Standard deviation

(Квадратный корень из дисперсии)

Возвращается квадратный корень из дисперсии
Variance

(Отклонение от среднего)

Возвращается статистическая величина отклонения отдельных значений поля от среднего в группе
  1. Установите требуемый переключатель и нажмите кнопку ОК.

Замечание

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

  1. Нажмите кнопку ОК для закрытия диалогового окна Report Expression (Выражение отчета).

  Размещение в отчете линий и прямоугольников

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

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

  1. Нажмите кнопку Line (Линия) на панели Report Controls (Элементы управления отчета) конструктора отчетов.
  2. Установите указатель в начальную точку линии.
  3. Нажмите кнопку мыши и, удерживая ее, проведите линию необходимой длины.
  4. Используя опции команды Реп (Перо) из меню Format (Формат), установите атрибуты линии (толщину и тип).
  5. Для задания цвета размещенной в отчете линии щелкните мышью на понравившемся цвете цветовой палитры панели Color Palette (Цветовая палитра).

Для размещения в отчете прямоугольника и прямоугольника со скругленными углами используются кнопки Rectangle (Прямоугольник) и Rounded Rectangle (Прямоугольник со скругленными углами) на панели инструментов Report Controls (Элементы управления отчета) конструктора отчетов. Нажмите необходимую кнопку на панели инструментов, установите указатель в какой-либо угол прямоугольника и перемещайте курсор в противоположный угол до получения прямоугольника нужного размера. Затем установите необходимые атрибуты прямоугольника, используя для этого следующие опции команды Реп (Перо) из меню Format (Формат) (табл. 8.11).

Таблица 8.11. Опции команды Реп из меню Format

Опция Атрибут объекта
Hairline (Тонкая линия) Контур шириной в один пиксел
1 Point {1 пункт) Контур шириной в один пункт
2 Point (2 пункта) Контур шириной в два пункта
4 Point (4 пункта) Контур шириной в четыре пункта
6 Point (6 пунктов) Контур шириной в шесть пунктов
None (Нет) Выделенный объект не имеет контура
Dotted (Пунктир) Пунктирный контур
Dashed (Штрих) Контур в виде коротких штрихов
Dash-dot (Штрих-точка) Контур в виде чередующихся штрихов и точек
Dash-dot-dot {Штрих-точкаточка) Контур в виде чередующихся штрихов и пар точек

  Панель инструментов Color Palette

Visual FoxPro предоставляет в распоряжение разработчика средства для изменения цвета размещенных в отчете объектов. Для печати такого отчета вам потребуется цветной принтер.

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

  1. Разместите на экране панель инструментов Color Palette (Цветовая палитра) выполнив одно из следующих действий:

Панель инструментов Color Palette (Цветовая палитра) (рис. 8.17) содержит шестнадцать кнопок с заданными цветами и три дополнительные кнопки (табл. 8.12).

Таблица 8.12. Кнопки панели инструментов Color Palette

Кнопка Назначение
Задает цвет объекта
Задает цвет фона
Открывает диалоговое окно Цвет для задания цветов, отсутствующих на панели
 

gl8-17.jpg

Рис. 8.17. Панель инструментов Color Palette

  1. Выберите в отчете объект, цвет которого вы хотите изменить.
  2. Щелкните мышью на панели инструментов Color Palette (Цветовая палитра) по кнопке Foreground Color (Цвет объекта) или Background Color (Цвет фона) в зависимости от того, что вы хотите поменять, — цвет объекта или его фон.
  3. Щелкните мышью на панели инструментов по любому понравившемуся цвету.
gl8-18.jpg

Рис. 8.18. Диалоговое окно Цвет

При создании отчетов можно использовать более широкую цветовую гамму. Для этого необходимо щелкнуть мышью на кнопке Other Colors (Другие цвета) панели инструментов Color Palette (Цветовая палитра) и в открывшемся диалоговом окне Цвет (рис. 8.18) выбрать один из 48 цветов, предлагаемых программой Visual FoxPro или использовать пользовательские цвета, расположенные в области Дополнительные цвета.

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

  1. В диалоговом окне Цвет нажмите кнопку Определить цвет. Открывается расширенное диалоговое окно Цвет (рис. 8.19).
gl8-19.jpg

Рис. 8.19. Диалоговое окно Цвет для создания собственного цвета

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

  Размещение в отчете рисунков

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

Для размещения в отчете рисунка используется кнопка Picture/ActiveX Bound Control (Изображение/ActivX объект) панели инструментов Report Controls (Элементы управления отчета) конструктора отчетов. Нажмите данную кнопку, а затем установите курсор в один из углов области, в которой должен находиться рисунок, и переместите курсор в противоположный угол до образования рамки необходимого размера. При этом открывается диалоговое окно Report Picture (Изображение отчета) (рис. 8.20), в котором вы определяете источник данных рисунка и его параметры. Источником данных может быть файл, содержащий рисунок, или поле таблицы типа General. Для указания источника данных используются опции области Picture from (Изображение из) диалогового окна.

gl8-20.jpg

Рис. 8.20. Диалоговое окно Report Picture

При размещении в отчете графического изображения в диалоговом окне Report Picture (Изображение отчета) установите опцию File (Файл). Затем нажмите кнопку выбора файла, расположенную с правой стороны поля. В открывшемся диалоговом окне Open (Открыть) выберите требуемый графический файл. Если вы знаете полное имя файла, то можете ввести его непосредственно в поле ввода File (Файл) без использования диалогового окна Open (Открыть).

В том случае, если вы хотите печатать в отчете изображения, размещенные в поле таблицы (в Visual FoxPro для хранения графических изображений используются поля типа General), в диалоговом окне Report Picture (Изображение отчета) установите опцию Field (Поле). Затем нажмите расположенную с правой стороны поля кнопку и в открывшемся диалоговом окне Choose Field/Variable (Выбор поля/переменной) выберите необходимое поле таблицы.

Если размер выделенной для размещения изображения области и размер самого изображения не совпадают, воспользуйтесь группой переключателей If picture and frame different sizes (Если разный размер) (табл. 8.13).

Таблица 8.13. Группа переключателей If picture and frame different sizes

Переключатель Режим отображения
Clip picture (Обрезать изображение) Рисунок фиксируется в левой верхней части рамки, сохраняя первоначальный размер
Scale picture, retain shape

(Масштабировать, сохраняя форму)

Рисунок полностью заполняет отведенное ему поле, сохраняя относительные пропорции растрового изображения
Scale picture, fill the frame

(Масштабировать, заполняя рамку)

Рисунок полностью заполняет отведенное ему поле, в случае необходимости подвергаясь вертикальному или горизонтальному искажению

Переключатель Object Position (Положение объекта) диалогового окна Report Picture (Изображение отчета) позволяет задать положение графического изображения в полосе при изменении размеров окружающих его полей (табл. 8.14).

Таблица 8.14. Группа переключателей Object Position

Переключатель Характеристика
Float (Плавающее) Расположение изображения в отчете может изменяться при изменении размеров окружающих его полей
Fix relative to top of band

(Постоянное относительно верхней полосы)

Изображение сохраняет свое положение относительно верхней границы полосы
Fix relative to bottom of band

(Постоянное относительно нижней полосы)

Изображение сохраняет свое положение относительно нижней границы полосы

  Создание отчета в свободной форме

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

  1. Откройте проект sales.
  2. Откройте базу данных проекта. Для этого на вкладке Data (Данные) установите курсор на ее название и нажмите кнопку Open (Открыть) окна проекта. При этом на стандартной панели инструментов в списке Databases (Базы данных) появляется название открытой базы данных.
  3. Перейдите на вкладку Documents (Документы), выберите группу Reports (Отчеты) и нажмите кнопку New (Новый). В открывшемся диалоговом окне New Report (Новый отчет) выберите опцию New Report (Новый отчет). Открывается окно конструктора отчетов.
  4. Откройте среду окружения отчета Data Environment (Среда окружения), выполнив команду Environment (Окружение) из меню View (Вид) или выбрав команду Data Environment (Среда окружения) контекстного меню.
  5. Для размещения таблицы в среде окружения в меню Data Environment (Среда окружения) выберите команду Add (Добавить). Затем в открывшемся диалоговом окне Add Table or View (Добавить таблицу или представление данных) выберите таблицу customer и нажмите кнопку ОК. Закройте среду окружения.
  6. Расположите в отчете поля, воспользовавшись командой Quick Report (Быстрый отчет) из меню Report (Отчет). При создании быстрого отчета выберите размещение полей по строкам и поля с наименованием предприятия, индекса и страны. Остальную информацию вы сформируете с помощью вычисляемых полей.
  7. Добавьте в полосу Detail (Детали) отчета вычисляемое поле для отображения имени представителя клиента, содержащее следующее выражение:

    ALLTRIM(Customer.cFirstName) + " "+ ALLTRIM(Customer.cSecondName)

     

  8. Добавьте в отчет вычисляемое поле для вывода адреса, которое содержит следующее выражение:

    ALLTRIM{Customer.cCity)+ " " +ALLTRIM(Customer.cAddress)

     

  9. Разместите в отчете текст и поля, как показано на рис. 8.21.
  10. Просмотрите внешний вид отчета с помощью команды контекстного меню Preview (Просмотр). Экран будет иметь вид, представленный на рис. 8.22.
  11. Сохраните отчет.
gl8-21.jpg

Рис. 8.21. Отчет в свободной форме Edit

gl8-22.jpg

Рис. 8.22. Отчет в свободной форме Preview

  Создание табличного отчета

Создадим в конструкторе отчетов табличный отчет, содержащий список заказов. При создании отчета будем использовать три таблицы. Таблица Ordsaiem содержит сведения о заказе на товары — это главная таблица, на основании которой строится отчет. Остальные две таблицы являются вспомогательными. Таблица ordsaied содержит сведения о товарах, входящих в заданный заказ (количество купленных товаров и цена товара), а таблица Customer — информацию о клиентах. Приступим к созданию отчета.

  1. Откройте новое окно в конструкторе отчетов.
  2. В среду окружения отчета Data Environment (Среда окружения) добавьте поочередно таблицы Ordsaiem, customer и ordsaied. При создании связей между таблицами для данного отчета необходимо учитывать следующее:

Установив связи между таблицами и упорядочив данные (рис. 8.23), закройте окно Data Environment (Среда окружения).

  1. Используя команду Quick Report (Быстрый отчет) из меню Report (Отчет), разместите в отчете следующие поля:
  1. Создайте вычисляемое поле, которое содержит выражение для подсчета стоимости проданного товара: OrdSaled.nQuant * OrdSaled.nUnitPrice
  2. Добавьте в полосу Page Header (Верхний колонтитул) заголовки для размещенных полей.
  3. Добавьте в отчет заголовок и итоговую часть отчета, выполнив команду Title/Summary (Титул/Итоги) из меню Report (Отчет).
  4. В заголовке отчета введите Список заказов.
gl8-23.jpg

Рис. 8.23. Диалоговое окно Data Environment

gl8-24.jpg

Рис. 8.24. Созданный отчет в окне конструктора отчетов

  1. В итоговой части отчета создайте поле, которое вычислит стоимость всех заказов, просуммировав стоимость проданного товара.
  2. Отчет в окне конструктора отчетов будет иметь вид, представленный на рис. 8.24. Просмотрите внешний вид отчета в окне предварительного просмотра (рис. 8.25).
  3. Сохраните отчет.
gl8-25.jpg

Рис. 8.25. Просмотр табличного отчета

  Группировка данных в отчете

Посмотрите на отчет, представленный на рис. 8.25. Видно, что клиент может приобрести разные товары. Сам собой возникает вопрос: а нельзя ли объединить данные в отчете таким образом, чтобы иметь краткую информацию о том, какие товары приобрел тот или иной клиент?

Для группировки данных в отчете используется команда Data Grouping Группировка данных) меню Report (Отчет) и команда Data Grouping

Группировка данных) контекстного меню, которые позволяют создавать до 20 уровней вложенности групп и выполнять над ними следующие операции:

gl8-26.jpg

Рис. 8.26. Диалоговое окно Data Grouping

При выполнении данных команд открывается диалоговое окно Data Grouping (Группировка данных) (рис. 8.26), содержащее список созданных в отчете групп. Используя расположенные в окне кнопки, можно редактировать или удалять имеющиеся в отчете группы, добавлять новые.

Для формирования выражения, по которому будут группироваться данные в отчете, можно использовать построитель выражения или ввести требуемое выражение непосредственно в поле Group expressions (Выражение группировки).

В диалоговом окне Data Grouping (Группировка данных) вы можете установить следующие параметры группировки данных (табл. 8.15).

Таблица 8.15. Параметры группировки данных окна Data Grouping

Флажок Назначение
Start group on new column

(Каждая группа в новой колонке)

Если флажок установлен, то при каждом изменении группы происходит формирование новой колонки
Start each group on a new page

(Каждая группа на новой странице)

При установке флажка каждая группа отчета размещается на новой странице
Reset page number to 1 for each group (Сброс нумерации страниц для каждой группы) При установке флажка каждая группа отчета размещается на новой странице. Нумерация страниц группы начинается с 1
Reprint group header on each page (Верхняя полоса группы для каждой страницы) Если группа занимает несколько страниц, то при установке флажка верхняя полоса группы размещается после верхнего колонтитула страницы
Start group on new page when less than (Печатать группу с новой страницы, если) Если под заголовком группы остается расстояние меньше указанного в данном поле, то информация группы будет перенесена на новую страницу

С помощью кнопки Insert (Вставить) диалогового окна Data Grouping (Группировка данных) можно добавить в отчет новую группу. Для удаления полосы группы используется кнопка Delete (Удалить).

  Использование группировки в отчете

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

  1. Откройте отчет, созданный в предыдущем примере.
  2. Для группировки данных в отчете по полю icdCustomer в меню Report (Отчет) выберите команду Data Grouping (Группировка данных).
  3. В поле Group expressions (Выражение группировки) открывшегося диалогового окна Data Grouping (Группировка данных) нажмите кнопку вызова построителя выражения.
  4. В окне построителя сформируйте выражение группировки. Для этого в списке Fields (Поля) дважды щелкните мышью на поле icdCustomer таблицы Ordsalem.
  5. Закройте окно построителя выражения. В поле Group expressions (Выражение группировки) диалогового окна Data Grouping (Группировка данных) появилось выбранное нами поле icdCustomer.
  6. Закройте диалоговое окно, нажав кнопку ОК.
  7. В отчет добавились полосы группировки. Расширьте полосу Group Header (Группа сверху). Для этого установите курсор в нижнюю часть полосы и, когда он примет вид двунаправленной стрелки, переместите вниз.
  8. Перенесите в образовавшуюся область поле с наименованием клиента, а также его заголовок.
gl8-27.jpg

Рис. 8.27. Группировка данных в отчете по коду клиента

gl8-28.jpg

Рис. 8.28. Просмотр отчета с группировкой данных

  1. Расширьте полосу Group Footer (Группа снизу) и создайте в ней итоговое поле, которое будет показывать сумму продаж по каждому клиенту. При формировании поля укажите суммирование по следующему выражению: OrdSaled.nQuant * OrdSaled.nUnitPrice Отчет в окне конструктора отчетов будет иметь вид, представленный на рис. 8.27.
  2. Просмотрите внешний вид отчета в окне предварительного просмотра (рис. 8.28).
  3. Сохраните созданный отчет.

  Использование в отчете переменных

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

Переменные отчета определяются в диалоговом окне Report Variables (Переменные отчета) (рис. 8.29), для открытия которого используется команда Variables (Переменные) из меню Report (Отчет). Кнопки Insert (Вставить) и Delete (Удалить) позволяют добавлять в отчет новые переменные и удалять существующие.

gl8-29.jpg

Рис. 8.29. Диалоговое окно Report Variables

Диалоговое окно Report Variables (Переменные отчета) содержит три поля, описанных в табл. 8.16.

Таблица 8.16. Поля диалогового окна Report Variables

Наименование поля Назначение
Variables (Переменные) Содержит наименование переменной, которое может включать в себя только буквы, цифры и символ подчеркивания и не может начинаться с цифры
Value to store (Хранимое значение) Значение переменной
Initial value (Начальное значение) Начальное значение переменной

Замечание

Для формирования значений переменных, задаваемых в полях Value to store (Хранимое значение) и Initial value (Начальное значение), можно использовать диалоговое окно Expression Builder (Построитель выражения), открываемое при нажатии расположенных с правой стороны поля кнопок.

При установке флажка Release after report (Освободить после отчета) после завершения печати отчета переменная очищается из памяти.

Список Reset at (Сброс) содержит три значения, указывающие момент сброса переменной в начальное значение: в конце отчета, в конце страницы или в конце группы.

Группа переключалей Calculate, расположенные в диалоговом окне Report Variables (Переменные отчета), позволяет задать выражения, выполняемые над переменной вычисления (табл. 9.17).

Таблица 8.17. Назначение группы переключалей Calculate диалогового окна Report Variables

Переключатель Назначение
Nothing (Ничего) Над переменной вычисления не производятся
Count (Количество) Вычисляется количество появлений переменной в группе, на странице, в колонке или отчете (значение переменной не используется)
Sum (Сумма) Вычисляется итоговая сумма значений переменной
Average (Среднее) Вычисляется среднее арифметическое значений переменной в группе, на странице, в колонке или отчете
Lowest

(Минимальное)

Отображается наименьшее значение переменной в группе, на странице, в колонке или отчете
Highest (Максимальное) Отображается наибольшее значение переменной в группе, на странице, в колонке или отчете
Std, deviation (Станд. отклонение) Возвращается квадратный корень из дисперсии значений переменной в группе, на странице, в колонке или отчете
Variance (Дисперсия) Возвращается статистическая величина отклонения отдельных значений переменной от среднего в группе, на странице, в колонке или отчете

При использовании переменных в отчете необходимо иметь в виду следующее.

  Разметка страницы отчета

Для разметки страницы отчета используется диалоговое окно Page Setup (Разметка страницы) (рис. 8.30), открываемое при выборе в меню File (Файл) команды Page Setup (Разметка страницы). Оно позволяет определить количество колонок в отчете, порядок вывода записей, ширину левого поля отчета, ширину колонок и расстояние между ними, единицу измерения координат отчета и выбор режима печати.

В области Columns (Колонки) этого диалогового окна определяются размеры колонок и их количество на странице (табл. 8.18).

Таблица 8.18. Назначение полей области Columns диалогового окна Page Setup

Поле Назначение
Number (Число) Определяет число колонок на странице
Width (Ширина) Определяет ширину колонок в сантиметрах или дюймах
Spacing (Расстояние) Определяет расстояние между колонками
 

gl8-30.jpg

Рис. 8.30. Диалоговое окно Page Setup

Опции переключателя Print area (Область печати) описаны в табл. 8.19.

Таблица 8.19. Назначение опций переключателя Print area

Опция Назначение
Printable page

(Печатаемая страница)

Устанавливает режим печати с полями страницы, определяемыми в соответствии с требованиями текущего драйвера печати
Whole page

(Страница в целом)

Устанавливает режим печати с минимальными полями

Для задания порядка вывода записей в многоколоночных отчетах используются две кнопки области Print order (Порядок печати). Расположенный ниже счетчик Left margin (Левая граница) задает ширину левого поля отчета.

  Создание многоколоночного отчета

Мы рассмотрели создание отчета для рассылки информации потенциальным клиентам. Используя многоколоночный отчет, подготовим данные для печати адресов, наклеиваемых на конверты для отправки клиентам.

  1. Откройте конструктор отчета.
  2. Добавьте в среду окружения отчета таблицу customer, содержащую адреса клиентов.
  3. Расположите в отчете требуемые для формирования адреса поля и обратный адрес. Отчет будет иметь вид, показанный на рис. 8.31.
gl8-31.jpg

Рис. 8.31. Многоколоночный отчет

gl8-32.jpg

Рис. 8.32. Многоколоночный отчет в окне предварительного просмотра

  1. В меню File (Файл) выберите команду Page Setup (Разметка страницы).
  2. В поле Number (Число) открывшегося диалогового окна Page Setup (Разметка страницы) введите число 2, определяющее количество колонок в отчете, и нажмите кнопку ОК.
  3. Просмотрите внешний вид отчета в окне предварительного просмотра с помощью команды контекстного меню Preview (Предварительный просмотр) (рис. 8.32).
  4. Сохраните отчет.
Visual FoxPro   Обзор графических пакетов 3GL   Компьютерная графика к экономической информатике   к 4GL - визуальному программированию

Знаете ли Вы, как разрешается парадокс Ольберса?
(Фотометрический парадокс, парадокс Ольберса - это один из парадоксов космологии, заключающийся в том, что во Вселенной, равномерно заполненной звёздами, яркость неба (в том числе ночного) должна быть примерно равна яркости солнечного диска. Это должно иметь место потому, что по любому направлению неба луч зрения рано или поздно упрется в поверхность звезды.
Иными словами парадос Ольберса заключается в том, что если Вселенная бесконечна, то черного неба мы не увидим, так как излучение дальних звезд будет суммироваться с излучением ближних, и небо должно иметь среднюю температуру фотосфер звезд. При поглощении света межзвездным веществом, оно будет разогреваться до температуры звездных фотосфер и излучать также ярко, как звезды. Однако в дело вступает явление "усталости света", открытое Эдвином Хабблом, который показал, что чем дальше от нас расположена галактика, тем больше становится красным свет ее излучения, то есть фотоны как бы "устают", отдают свою энергию межзвездной среде. На очень больших расстояниях галактики видны только в радиодиапазоне, так как их свет вовсе потерял энергию идя через бескрайние просторы Вселенной. Подробнее читайте в 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