Диаграмма Ганта .. + Галактика = Миф или реальность

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Диаграмма Ганта .. + Галактика = Миф или реальность

Сообщение Masygreen »

Товарисчи .. если есть опыт или встречался какой либо мануал как подружить галактику с диаграммой ганта прошу отписатся ...
варианты любые кто что знает ... вплоть до импорта в Project ... :)
Время ведет!
Seybukan
Местный житель
Сообщения: 1357
Зарегистрирован: 29 мар 2005, 17:49
Откуда: СПб, ЭП-Аудит
Контактная информация:

Сообщение 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. Предшественники (список номеров предшественников)
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Сообщение Masygreen »

Спасибо .. попробую .. пляски интересные..:)
Время ведет!
LaaLaa

Сообщение LaaLaa »

Вроде в производственных модулях есть интегрированное решение с диаграммами Ганта.
Seybukan
Местный житель
Сообщения: 1357
Зарегистрирован: 29 мар 2005, 17:49
Откуда: СПб, ЭП-Аудит
Контактная информация:

Сообщение Seybukan »

1. Сделай диаграмму простую в прожекте.
2. Сделай сохранение в XLS. Настрой схему и сохрани ее. Количество полей минимально(достаточно тех что я указал).
3. Сделай выгрузку из галактики чего либо в полученный "шаблон" XLS.
4. Открой в прожекте файл XLS при помощи ранее сохраненной схемы.

Пункт 4 можно запустить макросом из самого же отчета XLS.
LaaLaa

Сообщение 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) может быть там тоже найдете примеры и документацию с описанием принципов программирования диаграмм.
Seybukan
Местный житель
Сообщения: 1357
Зарегистрирован: 29 мар 2005, 17:49
Откуда: СПб, ЭП-Аудит
Контактная информация:

Сообщение Seybukan »

Еше диаграммы Ганта можно печатать в FastReport
Да но там уж очень простенькая диаграмма.
Не нашел например как заполняется процент выполнения (в том числе и показывается на графике), групповые задачи, вывести дополнительный текст в диаграмму (пояснения).
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Сообщение Masygreen »

Seybukan писал(а): Да но там уж очень простенькая диаграмма.
Не нашел например как заполняется процент выполнения (в том числе и показывается на графике), групповые задачи, вывести дополнительный текст в диаграмму (пояснения).
а примером не поделитесь ?? или мануалом каким?? masygreen (сцабака) gmail.com ??
Время ведет!
Seybukan
Местный житель
Сообщения: 1357
Зарегистрирован: 29 мар 2005, 17:49
Откуда: СПб, ЭП-Аудит
Контактная информация:

Сообщение Seybukan »

Я зашел в любой отчет FR.
вставил объект диаграмма
добавил из списка гантта
поставил параметр данные "фиксированные данные"
Заполнил через запятую по два параметра.

вот тебе и диаграмма :)

Чтобы посмотреть возможности диаграммы гантта в FR этого достаточно.
Реальный отчет будет отличаться лишь тем что данные будут из набора данных или бенда.

Мне как не программисту этого было достаточно.
Реальный пример должен выложить LaaLaa.
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Сообщение Masygreen »

спасибо ситуация начала прояснятся .. как закончу выложу код
Время ведет!
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Сообщение 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.
собираем .. далее запускаем делаем отчет сохраняем выходим. отчет прилетает в рабочий ресурсник .. переименовываем его ка надо.
Время ведет!
LaaLaa

Сообщение LaaLaa »

Пример опубликовал здесь: http://code.google.com/p/laalaa/source/ ... vip/FrGant
Ответить