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

Доброго времени суток!
Задача состоит собственно вот в чем, каким образом можно "раскрасить" диаграмму Ганта в зависимости от того опережает/запаздывает проект относительно плана. Грубо говоря, если в плане начало работы стоит 01.04, а факт начала работы - 10.04, то промежуток времени между 1 и 10 апреля нужно "покрасить" в красный цвет

Нравится

7 комментариев

Добрый день!

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

Ознакомиться с возможностями и примерами использования диаграммы, Вы можете воспользовавшись поисковыми системами по ключевому слову ExG2antt.
Одним из популярных ресурсов является http://www.exontrol.com/exg2antt.jsp

http://www.community.terrasoft.ua/system/files/gant.png

В конфигурации Terrasoft изменения необходимо вносить в скрипт обработки диаграммы wnd_ProjectGanttAreaScript.

Благодарю за ответ, ресурс я посещал, и нашел там ответы на многие вопросы, но к сожалению не на все. Как пример, не совсем ясно указание цвета в функции CreateEstimatedWorkBar()

Bar.Color = 0x12000000;

Благодаря этой строке задается цвет (кстати не совсем ясно, почему синий??), плюс ко всему изменяется форма. А какое же число нужно указать, чтобы получить такой формы и размера линию, например зеленого цвета или красного?

Система определения цветов в 3.Х работает аналогично ядру, которое написано на Delphi. Необходимо учитывать, что rgb JavaScript будет bgr у 3.Х.
То есть FF0000 – в JavaScript, 0000FF – в 3.Х.

Подбор цветов можно делать здесь:
http://jscolor.com

http://www.community.terrasoft.ua/system/files/color.png

"Гакало Игорь Александрович" написал:

Система определения цветов в 3.Х работает аналогично ядру, которое написано на Delphi. Необходимо учитывать, что rgb JavaScript будет bgr у 3.Х.

То есть FF0000 – в JavaScript, 0000FF – в 3.Х.


Разобраться с тем, как указываются цвета в JavaScript - дело не хитрое, но если внимательно посмотреть на фрагмент из функции, упомянутой мною выше, то можно заметить, что для определения цвета используется шестнадцатиричное число длиной 8 знаков, а не 6
"Constantine" написал:

Bar.Color = 0x12000000;


Плюс ко всему, если я не ошибаюсь, цвет 0х120000 - темно-красный, практически черный, но никак не синий, который появляется в итоге на диаграмме

"Constantine" написал:для определения цвета используется шестнадцатиричное число длиной 8 знаков, а не 6

Последние два символа в указании цвета отвечают за Alpha level (уровень прозрачности).

"Constantine" написал:

Плюс ко всему, если я не ошибаюсь, цвет 0х120000 - темно-красный, практически черный, но никак не синий, который появляется в итоге на диаграмме


Bar.Color отвечает за цвет проекта на диаграмме:

http://www.community.terrasoft.ua/system/files/05-10-2012_13-00-37.png

Исходя из Вашего описание, цвет подставляется верный:

http://www.community.terrasoft.ua/system/files/05-10-2012_12-39-57.png

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

"Гакало Игорь Александрович" написал:

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

Одним из популярных ресурсов является http://www.exontrol.com/exg2antt.jsp


Довольно элегантное предложение погуглить:smile:Хотя, как в конце концов оказалось, именно на этом сайте и нашлось решение.
"Гакало Игорь Александрович" написал:

Последние два символа в указании цвета отвечают за Alpha level (уровень прозрачности).

Никакого Alpha-канала не используется в данной диаграмме. Почитав внимательно документацию на указанном выше сайте можно узнать, что при указании цвета в 16тиречной форме, старший 7 бит указывает на маску изображения. Сия маска храниться в "64-base encoding", в скрипте эту строку можно найти в константах диаграммы

var gskWorkEstimatedBar = 'gBFLBCJwBAEHh...XoZhuEAQIC';

и именно в ней определен синий цвет:smile:
0x12 - номер под которым сохраняется маска

InitializeGantGraphics() {
	...
	Gantt.VisualAppearance.Add(0x12, gskWorkEstimatedBar);
        ...

для того, чтобы определить свою маску и соответственно использовать свои цвета на том же сайте можно скачать программу-конвертор файлов в эту кодировку.
ИМХО, в общем довольно интересно получается, либо в службе поддержки и понятия не имеют, как и кем писался данный модуль, либо просто напросто ответы - итог 5ти минутного "гугления", при чем даже без хотя бы беглого чтения своих же ссылок

Зато теперь все будут это знать. Спасибо за исследование, Constantine!

Показать все комментарии