Дана публікація являє собою зовнішню компоненту «GraphViz NAPIC», виконану за технологією native API, яка надає методи бібліотеки GraphViz для побудови графа за його описом в текстовому форматі на мові dot. Прикладена обробка з прикладом виклику компоненти ОФ + УФ.
Порівняння з WinGraphViz
Що вміє мій білд компоненти:
- будувати граф за допомогою двигунів dot і neato
- виводити граф в форматі png, bmp, jpg, svg, emf, gif, tiff і dot
- приймати граф у вигляді файлу або рядки в кодуванні cp1251 або UTF-8
- видавати результат в файл або відразу в змінну 1с з типом ДвоічниеДанние
опис використання
Компонента надає всього 4 функції для побудови графів:
ПостроітьІзСтрокіВФайл (ВходнаяСтрока, ПутьКФайлуВивода, ДвіжокРазмещенія, ФорматРендерінга)
ПостроітьІзСтрокіВДД (ВходнаяСтрока, ДвоічниеДанниеВивода, ДвіжокРазмещенія, ФорматРендерінга)
ПостроітьІзФайлаВФайл (ПутьКФайлуОпісаніяГрафа, ПутьКФайлуВивода, ДвіжокРазмещенія, ФорматРендерінга, Кодування)
ПостроітьІзФайлаВДД (ПутьКФайлуОпісаніяГрафа, ДвоічниеДанниеВивода, ДвіжокРазмещенія, ФорматРендерінга, Кодування)
Вхідна рядок - рядок з описом графа на мові dot,
ПутьКФайлуОпісаніяГрафа - повний шлях до файлу з описом графа на мові dot,
ПутьКФайлуВивода - повний шлях до файлу для збереження результату побудови графа,
ДвоічниеДанниеВивода - змінна 1с в яку буде вивантажено результат з типом ДвоічниеДанние,
ДвіжокРазмещенія - передається ім'я движка «dot» або «neato», значення за замовчуванням «dot»,
ФорматРендерінга - передається розширення графічного формату, підтримуються наступні варіанти: «bmp», «emf», «emfplus», «gif», «jpg», «tif», «tiff», «ps», «png», «svg» , «dot» значення за замовчуванням «png».
Кодування - підтримуються значення «ACP» для кодування cp-1251 і «UTF8» для кодування UTF8, значення за замовчуванням «ACP».
Всі 4 функції не викликають винятків, а повертають значення Істина, якщо побудова графа було виконано. Якщо виникли будь-які помилки, то результатом виконання функції буде рядок з повідомленням про помилку, обробка якої залишається на розсуд програміста (повідомити користувачеві або проігнорувати).
Приклад роботи з компонентою (припускаємо, що опис графа сформовано в змінної «входнаяСтрока» і на формі є «ПолеКартінкі1»):
Приклад опису графа на мові dot:
Побудований граф буде виглядати таким чином:

Корисні посилання
Статті використовують COM-компоненту WinGraphViz:
Універсальний граф підпорядкованості документів: //infostart.ru/public/20309/
Для завантаження надано архів, в якому знаходиться сама компонента «GraphViz NAPIC.dll», а також демо обробка, що показує приклад роботи з усіма 4-ма функціями компоненти (в демо-обробці компонента впроваджена в макет, для демонстрації способу підключення зовнішніх компонент на льоту ).

в демо обробку додав керовану форму
виправив помилку з пам'яттю і протестував на наступних версіях платформи: 8.3.9 товстий і тонкий клієнт (УФ), 8.2.19 товстий і тонкий клієнт (товстий клієнт на ОФ)
