Доброго времени суток!
Задача состоит собственно вот в чем, каким образом можно "раскрасить" диаграмму Ганта в зависимости от того опережает/запаздывает проект относительно плана. Грубо говоря, если в плане начало работы стоит 01.04, а факт начала работы - 10.04, то промежуток времени между 1 и 10 апреля нужно "покрасить" в красный цвет
Нравится
Добрый день!
Данная диаграмма является использованием стороннего ActiveX компонента, который является одной из библиотек, подгружаемой при обработке программы.
Ознакомиться с возможностями и примерами использования диаграммы, Вы можете воспользовавшись поисковыми системами по ключевому слову ExG2antt.
Одним из популярных ресурсов является http://www.exontrol.com/exg2antt.jsp
В конфигурации Terrasoft изменения необходимо вносить в скрипт обработки диаграммы wnd_ProjectGanttAreaScript.
Благодарю за ответ, ресурс я посещал, и нашел там ответы на многие вопросы, но к сожалению не на все. Как пример, не совсем ясно указание цвета в функции CreateEstimatedWorkBar()
Bar.Color = 0x12000000;
Благодаря этой строке задается цвет (кстати не совсем ясно, почему синий??), плюс ко всему изменяется форма. А какое же число нужно указать, чтобы получить такой формы и размера линию, например зеленого цвета или красного?
Система определения цветов в 3.Х работает аналогично ядру, которое написано на Delphi. Необходимо учитывать, что rgb JavaScript будет bgr у 3.Х.
То есть FF0000 – в JavaScript, 0000FF – в 3.Х.
Подбор цветов можно делать здесь:
http://jscolor.com
"Гакало Игорь Александрович" написал:Система определения цветов в 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
отвечает за цвет проекта на диаграмме:
Исходя из Вашего описание, цвет подставляется верный:
Добрый день!
Наконец, я разобрался с расцветкой в диаграмме, и к сожалению советы и подсказки, упомянутые в этой теме, не имели никакого смысла. Неужели нет разработчиков, которые занимались данным разделом?
"Гакало Игорь Александрович" написал:Ознакомиться с возможностями и примерами использования диаграммы, Вы можете воспользовавшись поисковыми системами по ключевому слову ExG2antt.
Одним из популярных ресурсов является http://www.exontrol.com/exg2antt.jsp
Довольно элегантное предложение погуглить:smile:Хотя, как в конце концов оказалось, именно на этом сайте и нашлось решение.
"Гакало Игорь Александрович" написал:Никакого Alpha-канала не используется в данной диаграмме. Почитав внимательно документацию на указанном выше сайте можно узнать, что при указании цвета в 16тиречной форме, старший 7 бит указывает на маску изображения. Сия маска храниться в "64-base encoding", в скрипте эту строку можно найти в константах диаграммыПоследние два символа в указании цвета отвечают за Alpha level (уровень прозрачности).
var gskWorkEstimatedBar = 'gBFLBCJwBAEHh...XoZhuEAQIC';
и именно в ней определен синий цвет:smile:
0x12 - номер под которым сохраняется маска
InitializeGantGraphics() { ... Gantt.VisualAppearance.Add(0x12, gskWorkEstimatedBar); ...
для того, чтобы определить свою маску и соответственно использовать свои цвета на том же сайте можно скачать программу-конвертор файлов в эту кодировку.
ИМХО, в общем довольно интересно получается, либо в службе поддержки и понятия не имеют, как и кем писался данный модуль, либо просто напросто ответы - итог 5ти минутного "гугления", при чем даже без хотя бы беглого чтения своих же ссылок
Зато теперь все будут это знать. Спасибо за исследование, Constantine!