Зовнішня компонента native api для побудови графів (на основі graphviz)

  • Зовнішня компонента native api для побудови графів (на основі graphviz)
  • Зовнішня компонента native api для побудови графів (на основі graphviz)

Дана публікація являє собою зовнішню компоненту «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:

Побудований граф буде виглядати таким чином:

Зовнішня компонента native api для побудови графів (на основі graphviz)

Корисні посилання

Статті використовують COM-компоненту WinGraphViz:

Універсальний граф підпорядкованості документів: //infostart.ru/public/20309/

Для завантаження надано архів, в якому знаходиться сама компонента «GraphViz NAPIC.dll», а також демо обробка, що показує приклад роботи з усіма 4-ма функціями компоненти (в демо-обробці компонента впроваджена в макет, для демонстрації способу підключення зовнішніх компонент на льоту ).

Зовнішня компонента native api для побудови графів (на основі graphviz)

в демо обробку додав керовану форму

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

Зовнішня компонента native api для побудови графів (на основі graphviz)