Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Диаграмма Ганта. В режиме «Конфигуратор»




Диаграмма Ганта

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

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

Диаграмма Ганта представляет собой диаграмму интервалов на шкале времени (рис. 18. 32) и отражает использование объектами (точками) ресурсов (серий).


 

 

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

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

 

Рис. 18. 32. Пример диаграммы Ганта

 

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

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

Значение диаграммы Ганта представляет собой специальный объект, который автоматически формируется системой на основании того, какие точки и какие серии определены для данной диаграммы.

Этот объект является совокупностью (коллекцией) интервалов, то есть может содержать не один, а несколько интервалов, которые соответствуют паре серия-точка (создаваемый по умолчанию объект ЗначениеДиаграммыГанта не содержит ни одного интервала). Разра- ботчик может получить значение диаграммы, указав интересующую его точку и серию, и затем добавить в коллекцию необходимое коли- чество интервалов.

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


Теперь коротко объясним последовательность наших дальнейших действий.

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

Нам останется только средствами встроенного языка разместить все это в диаграмме.

Итак, приступим.

 

В режиме «Конфигуратор»

Создадим новый объект конфигурации Отчет и назовем его Диаграм- маНачислений.

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

В правом верхнем окне редактора форм на закладке Реквизиты находятся реквизиты формы. Мы видим здесь основной реквизит формы Отчет, который был создан автоматически при создании формы.

Нажмем кнопку Добавить и добавим новый реквизит формы. Назовем его ДиаграммаГанта и выберем его тип ДиаграммаГанта (рис. 18. 33).

Теперь перетащим новый реквизит в окно элементов формы, которое пока пусто.

В окне элементов формы будет создано новое поле для отображения диаграммы Ганта, а в нижнем окне просмотра формы мы сразу увидим поле диаграммы (рис. 18. 34).


 

Рис. 18. 33. Добавление реквизита формы

 


На закладке Команды создадим команду формы Сформировать

(рис. 18. 35).

 

 

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

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

 

 

Рис. 18. 36. Выбор типа обработчика команды формы

 

В модуле формы будут созданы шаблоны двух процедур: клиентской процедуры Сформировать() и серверной внеконтекстной процедуры СформироватьНаСервере(), которая вызывается из процедуры Сфор- мировать().


 

 

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

Однако нам нужно передать в процедуру СформироватьНаСервере() в качестве параметра ссылку на реквизит формы ДиаграммаГанта, чтобы на сервере заполнить его данными. Поэтому изменим текст модуля следующим образом (листинг 18. 10).

листинг 18. 10. Текст обработчика команды «Сформировать»

 

В процедуру СформироватьНаСервере() мы вставим заготовку запроса (листинг 18. 11).

листинг 18. 11. Процедура «СформироватьНаСервере()»

 

Установим курсор перед точкой с запятой, вызовем контекстное меню, откроем конструктор запроса и создадим новый запрос.

Выберем виртуальную таблицу регистра расчета Начисления. Факти- ческийПериодДействия.

Из этой таблицы выберем следующие поля (рис. 18. 37):

„ Сотрудник,

„ ВидРасчета,

„ ПериодДействияНачало,

„ ПериодДействияКонец,


„ Результат,

„ Регистратор,

„ Регистратор. Представление.

 

 

Рис. 18. 37. Выбранные поля

 

Все, запрос готов.

Теперь нажмем OK и после текста запроса добавим в процедуру следующий текст (листинг 18. 12).

листинг 18. 12. Процедура «СформироватьНаСервере()»

& НаСервереБезКонтекста

Процедура СформироватьНаСервере(Диаграмма)

Запрос = Новый Запрос; Запрос. Текст = " ВЫБРАТЬ

|   НачисленияФактическийПериодДействия. Сотрудник,

|   НачисленияФактическийПериодДействия. ВидРасчета,

|   НачисленияФактическийПериодДействия. ПериодДействияНачало,

|   НачисленияФактическийПериодДействия. ПериодДействияКонец,

|   НачисленияФактическийПериодДействия. Результат,

|   НачисленияФактическийПериодДействия. Регистратор,

|   НачисленияФактическийПериодДействия. Регистратор. Представление

|ИЗ

|   РегистрРасчета. Начисления. ФактическийПериодДействия

|                                                       КАК НачисленияФактическийПериодДействия";

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...