Страница 1 из 1
Диаграмма Ганта .. + Галактика = Миф или реальность
Добавлено: 02 сен 2009, 13:27
Masygreen
Товарисчи .. если есть опыт или встречался какой либо мануал как подружить галактику с диаграммой ганта прошу отписатся ...
варианты любые кто что знает ... вплоть до импорта в Project ...

Добавлено: 02 сен 2009, 14:25
Seybukan
Есть стандартное решение выгрузки планов в МS Project.
Но мы сейчас идем другим путем, так как стандартные предложения не устраивают. Слишком громоздко и медленно.
А так:
1. Выгружаете в XLS, потом запускаете МS Project и загружаете данные из XLS через схему. (идем этим путем)
2. Выгружаете в XML, потом запускаете МS Project и загружаете данные из XML.
3. Формируете свою таблицу, куда кидаете данные. В МS Project проект формируете через ODBC.
4. Формируете отчет в FR, там есть диаграмма ганта простенькая.
Достаточно для простого примера выгрузить:
1. Порядклвый номер
2. Название
3. Начало
4. Окончание
5. Длительность
6. Предшественники (список номеров предшественников)
Добавлено: 02 сен 2009, 16:24
Masygreen
Спасибо .. попробую .. пляски интересные..

Добавлено: 02 сен 2009, 18:56
LaaLaa
Вроде в производственных модулях есть интегрированное решение с диаграммами Ганта.
Добавлено: 02 сен 2009, 19:05
Seybukan
1. Сделай диаграмму простую в прожекте.
2. Сделай сохранение в XLS. Настрой схему и сохрани ее. Количество полей минимально(достаточно тех что я указал).
3. Сделай выгрузку из галактики чего либо в полученный "шаблон" XLS.
4. Открой в прожекте файл XLS при помощи ранее сохраненной схемы.
Пункт 4 можно запустить макросом из самого же отчета XLS.
Добавлено: 02 сен 2009, 21:01
LaaLaa
Еше диаграммы Ганта можно печатать в FastReport.
Когда выйду из отпуска опубликую пример (все осталось на работе)
А пока возможно поможет следующая информация:
FastReport рисует диаграммы с помошью набора компонент "TeeChart Std" котрый входит в поставку любой версии Delphi. Возможно в документации по Delphi или в документации по FastReport (
http://fast-report.com/ru/documentation/) надете описание и примеры. Составить выгрузку из VIP не так уж и сложно.
Еще "TeeChart Std" это на самом деле урезанная версия набора компонент "TeeChart Pro", посмотрите на сайте производителя (
http://www.steema.com/products/teechart ... rview.html) может быть там тоже найдете примеры и документацию с описанием принципов программирования диаграмм.
Добавлено: 03 сен 2009, 10:47
Seybukan
Еше диаграммы Ганта можно печатать в FastReport
Да но там уж очень простенькая диаграмма.
Не нашел например как заполняется процент выполнения (в том числе и показывается на графике), групповые задачи, вывести дополнительный текст в диаграмму (пояснения).
Добавлено: 03 сен 2009, 12:07
Masygreen
Seybukan писал(а):
Да но там уж очень простенькая диаграмма.
Не нашел например как заполняется процент выполнения (в том числе и показывается на графике), групповые задачи, вывести дополнительный текст в диаграмму (пояснения).
а примером не поделитесь ?? или мануалом каким?? masygreen (сцабака) gmail.com ??
Добавлено: 03 сен 2009, 12:38
Seybukan
Я зашел в любой отчет FR.
вставил объект диаграмма
добавил из списка гантта
поставил параметр данные "фиксированные данные"
Заполнил через запятую по два параметра.
вот тебе и диаграмма
Чтобы посмотреть возможности диаграммы гантта в FR этого достаточно.
Реальный отчет будет отличаться лишь тем что данные будут из набора данных или бенда.
Мне как не программисту этого было достаточно.
Реальный пример должен выложить
LaaLaa.
Добавлено: 03 сен 2009, 16:44
Masygreen
спасибо ситуация начала прояснятся .. как закончу выложу код
Добавлено: 03 сен 2009, 17:51
Masygreen
Может кому пригодится .. простейшая диаграмма .. интерфейс выбора договора - по ним строим диаграмму Ганта..
Код: Выделить всё
const
cmPrintDoc = 3440;
End;
Interface SelectDogovor;
Show at(1,1,92,30);
var
_nRecDogovor:comp;
create view
as select *
from dogovor
bounds cVidDog = 281474976710671==dogovor.CVIDDOG(noindex)
bounds cDogovor = _nRecDogovor == dogovor.nrec
bounds cCalplan = dogovor.nrec == calplan.cdogovor and 0==calplan.directplat and 1==calplan.DIRECTMC(noindex);
/**********************************************************************/
screen DocScreen;
show at (,,,2);
buttons cmPrintDoc;
<<
<.Печать диараммы.>
>>
end
/**********************************************************************/
Browse B1;
show at (,3,,);
fields
dogovor.nodoc 'Номер':[7],Protect;
dogovor.ddoc 'Дата':[80],Protect;
end;
/**********************************************************************/
var
IsFirstRec : boolean;
counter : integer;
datastream DocDataStream
(
[DogovorNoDoc] Dogovor.noDoc; //элемент "нулевого" уровня
[DogovorDDoc] Dogovor.DDoc; //элемент "нулевого" уровня
table Calplan //элемент уровня table
(
[PosY] counter;
[NoDoc] Calplan.nodoc;
[DateStart] CALPLAN.DFROM;
[DateEnd] Calplan.dto;
);
)
/**********************************************************************/
handleevent table Calplan //обработчик dataset
cmPreProcess:
{
PushBounds(tbcDogovor);
PushBounds(tbcCalplan);
counter := 0;
}
cmOnProcess:
{
counter := counter + 1;
if( not NextVisual )
BreakProcess;
}
end;
/**********************************************************************/
handleevent // обработчик datastream
cmPreProcess:
StartNewVisual(vtRotateVisual,
vfTimer + vfBreak + vfConfirm,
'Формируется отчет', 0);
cmPostProcess:
StopVisual('', 0);
end;
end;
/**********************************************************************/
HandleEvent// обработка событий формы
/**********************************************************************/
cmInit:
{
PushBounds(tbcVidDog);
}
/**********************************************************************/
cmPrintDoc :
{
_nRecDogovor := dogovor.nrec;
RunFReport(DocDataStream, '', false);
PopBounds(tbcDogovor);
PopBounds(tbcCalplan);
};
/**********************************************************************/
cmDone:
{
CloseInterface(cmDefault);
stop;
}
end;
end.
собираем .. далее запускаем делаем отчет сохраняем выходим. отчет прилетает в рабочий ресурсник .. переименовываем его ка надо.
Добавлено: 07 сен 2009, 17:31
LaaLaa