Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 22 ноя 2017, 05:46

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)



Начать новую тему Ответить на тему  [ Сообщений: 104 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 26 окт 2017, 10:37 
Не в сети
Постоянный участник

Зарегистрирован: 23 апр 2015, 19:23
Сообщений: 73
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Да, возможности Excel + Visio = хорошие, и это дает уверенность в том, что такая платформа для будущего "кита BPM" перспективна.

Указанную связь данных с фигурами - можно ли запихнуть в скрипт?
Чтобы ее потом добавить на выходе "Мастера орг-диаграмм" (исправленного нашим волшебником, который пока занят) и автоматом получить такую связку таблицы со схемой орг-структуры?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 27 окт 2017, 05:41 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 28 апр 2013, 14:03
Сообщений: 547
Откуда: Вена, Австрия
Использую Visio c: 1998
Очков репутации: 100603

Добавить очки репутацииУменьшить очки репутации
BPM писал(а):
Указанную связь данных с фигурами - можно ли запихнуть в скрипт?

В смысле, можно ли использовать функции связи с данными программно? Да, это возможно.

BPM писал(а):
Чтобы ее потом добавить на выходе "Мастера орг-диаграмм" (исправленного нашим волшебником, который пока занят) и автоматом получить такую связку таблицы со схемой орг-структуры?

Да, это тоже возможно. Я полагаю, что у Геннадия вопросов о тем, как использовать API для связи диаграммы с данными, не возникнет :)
Осталось его убедить заняться написанием кода для вашей орг-структуры.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 27 окт 2017, 11:16 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 990
Очков репутации: 100578

Добавить очки репутацииУменьшить очки репутации
Цитата:
Осталось его убедить заняться написанием кода для вашей орг-структуры.

Вот только этого не надо... :)
Пока речь шла только о ЗАПЛАТКЕ поверх штатного инструмента, которая ИНОГДА может помочь. Не более.
А сейчас, похоже, речь уже пошла о том, чтобы каким-то довеском закрыть одновременно несколько задач: автопостроение, оптимальный дизайн и универсальность.
На мой взгляд, замучаешься это совместить. Нужно, чтобы начальнику нравилось, - значит не будет универсальности. Нужно, чтобы быстро и автоматом, - значит придется где-то что-то упростить в размещении.
Так что, поэкспериментировать с вертикальной сортировкой - время скорее всего можно будет выкроить, а в других универсальных довесках смысла не вижу. Если что-то не закрывается оргвизардом, проще написать специализированную программу.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 27 окт 2017, 16:47 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 28 апр 2013, 14:03
Сообщений: 547
Откуда: Вена, Австрия
Использую Visio c: 1998
Очков репутации: 100603

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
Вот только этого не надо... :)

Уж и пошутить нельзя.. :D
А по сути - да, такой универсальный инструмент был бы неплох. Проблема, почему M$ этим не занимается, IMHO, в том, что коду мастера орг. диаграмм - больше 25 лет! Он был в Visio с самого начала (1992).
Да этот код старее теперешних разработчиков. Там же жесткие плюсы (C++ в смысле), а разработка идет в Индии (Бангалор, если я не ошибаюсь), поколением хипстеров.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 27 окт 2017, 18:15 
Не в сети
Постоянный участник
Аватара пользователя

Зарегистрирован: 12 май 2012, 15:16
Сообщений: 94
Очков репутации: 10

Добавить очки репутацииУменьшить очки репутации
немного оффтопа
David J Parker писал(а):
The First MVP Conference in Hyderabad, India
Back in February this year, I reported on the Visio MVPs in Redmond (see http://blog.bvisual.net/2013/02/ ).Well one thing that we learnt back then was that Microsoft had started the transition of the Visio Engineering to Hyderabad in India.
Изображение
Подробнее…


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 27 окт 2017, 19:23 
Не в сети
Постоянный участник

Зарегистрирован: 23 апр 2015, 19:23
Сообщений: 73
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Цитата:
только о ЗАПЛАТКЕ поверх штатного инструмента, которая ИНОГДА может помочь

Конечно. Это в первую очередь. Ждем.
Отсутствие сортировки - это признанный и существенный недостаток ОРГ-мастера - это бесспорно.
Видимо "иногда" - речь идет не о "что только иногда нужно", а что "заплатка" не всегда поможет. Насколько я понимаю, осталось побороть только "вертикали": или сортировать или запрещать или "менять вертикаль на горизонталь и сортировать".
Потом, может быть еще "размещение в несколько строк или колонок "
Цитата:
... для вашей орг-структуры

Я уже говорил, что построение иерархического дерева - это стандартная задача (типовая, универсальная), которая стоит не только по орг-данным. Любая иерархия с единственным "родителем": Все подобные орг-структуры и неорг-структуры - одинаковы (древовидная иерархия).
Цитата:
для связи диаграммы с данными

Неужели не очевидная задача? Мы строим по исходной таблице Excel схему. Так почему бы эту же схему не связать с исходной - родительской таблицей? Само собой напрашивающееся действие. Связать можно по любому полю (которое было выбрано при работе Мастера и попало в схему), т.к. именно по ним и была построена схема. Т.е. дополнительно к кнопкам "импорт", "экспорт", нужна "связать".
Всего две кнопки на вкладке "орг-диаграмма": "Сортировать" (где "Упорядочить") и "Связать" - которые MS просто "в упор не видят" и не добавляет.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 30 окт 2017, 10:26 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 990
Очков репутации: 100578

Добавить очки репутацииУменьшить очки репутации
Обновил ReSrot.vbs
Тестовый пример ORGDATA_X3.xlsx сортирует нормально.
То есть в примитивных диаграммах скрипт исправляет сортировку как для горизонтального, так и вертикального расположения.
(Напомню, это в https://www.dropbox.com/sh/e2982xl5wph6 ... QBS0a?dl=0)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 30 окт 2017, 17:26 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 990
Очков репутации: 100578

Добавить очки репутацииУменьшить очки репутации
Попробовал на взять массив данных немного посложнее - тот, что использовал David J Parker в своей статье "Creating an Org Chart without the Org Chart Wizard". И вид у него более случайный.
Вроде бы и это тоже отсортировалось нормально.
Может и правда, такой довесок имеет право жить...


Вложения:
Комментарий к файлу: после скрипта
newTest1.pdf [125.63 Кб]
Скачиваний: 4
Комментарий к файлу: после визарда
newTest0.pdf [125.67 Кб]
Скачиваний: 3
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 30 окт 2017, 17:43 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 990
Очков репутации: 100578

Добавить очки репутацииУменьшить очки репутации
Можно попробовать погонять в таком исполнении.
Макрос убран в трафарет. (Он там единственный).
Обрабатывает активную страницу. Имя поля для сортировки запрашивает через InputBox.


Вложения:
Sorting.vss [17.5 Кб]
Скачиваний: 2
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 31 окт 2017, 12:53 
Не в сети
Постоянный участник

Зарегистрирован: 23 апр 2015, 19:23
Сообщений: 73
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
По .vbs:
Новый пример-таблицу прилагаю. Взята первая часть (первый лист книги) из Универсального классификатора процессов
APQC Process Classification Framework (PCF) - Cross Industry PCF - Excel Version 7.0.5 - Russian
https://www.apqc.org/knowledge-base/col ... ndustry-sp
Имя: Hierarchy ID
Руководитель: parent ID
Сортировка по Hierarchy ID

Вертикали с двумя колоннами:
1.2.8.2 Подготовка/анализ закупок и качества работы поставщиков
и 1.2.5 Создание организационной структуры
сортированы, а 1.1.1
нет.
Не сортируются двойные колонны, где встречается .10 (т.е. более девяти элементов).

Сортировка почти верная, но вот "10" - все испортил.
Более детально проблема видна по процессам третьей группы (процесс с другого листа книги), 3.3.3 и др.

По .vss
Не понял как через Sorting.vss [17.5 Кб] запускать.
Открыл визио, сделал диаграмму, добавил трафарет Sorting.vss (открыть набор элементов). Как запустить макрос?


Вложения:
apqc_p1_out.vsd [901 Кб]
Скачиваний: 2
Комментарий к файлу: APQC Process Classification Framework (PCF) - Cross Industry PCF - Excel Version 7.0.5 - Russian
K08171_crossIndustry_v705-RU_v1.xlsx [1.02 Mб]
Скачиваний: 5
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 31 окт 2017, 13:19 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 990
Очков репутации: 100578

Добавить очки репутацииУменьшить очки репутации
Цитата:
Как запустить макрос?

По умолчанию предлагаются только макросы активного документа.
Но там есть список, из которого можно выбрать "все документы". Тогда появится и макрос, который лежит в трафарете.
Цитата:
Не сортируются двойные колонны, где встречается .10 (т.е. более девяти элементов).

Скорее всего дело в том, что используется текстовая сортировка. А в ней 1.1.10 меньше, чем 1.1.5.
Но если закладываться на любой тип сортировки, алгоритм существенно подрастет :)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 31 окт 2017, 16:35 
Не в сети
Постоянный участник

Зарегистрирован: 23 апр 2015, 19:23
Сообщений: 73
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
1)
Возможно, что достаточно только текстовой сортировки, т.к. результат хотя бы предсказуем. Правда в этом случае, отдельное поле ранг (телефон) будет только текстовым и нужно подстраиваться под такой алгоритм. В идеале поле ранг - должно быть цифровым. Пример apqc_min_2.xlsx
2)
Vbs работает, Vbs запускаю: ReSort.vbs Prop.Name
а .vss выдает ошибку. Может быть потому, что Prop.ocwiz_1.png ?
Данные к схеме не привязываю.
Ввожу в окне: Prop.Name (вместо Telephone) - выдает: Непредвиденный конец файла со ссылкой на:
s0 = Replace(shp.Cells(SortingFieldName).Formula, Chr(34), "")
Shape Data
Изображение
3)
Часто бывает нужно разбивать большие схемы по листам (Мастер это делает). Как выполнить сортировку по каждому листу "парой кнопок"? Может параметр к Vbs добавить - "один лист" или "все". Или сразу по всем листам...
4)
В целом хорошо получается (или уже получилось).


Вложения:
apqc_min_2.xlsx [18.89 Кб]
Скачиваний: 7
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 02 ноя 2017, 10:42 
Не в сети
Постоянный участник

Зарегистрирован: 23 апр 2015, 19:23
Сообщений: 73
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Предлагаю следующий подход. Поле, по которому ведется сортировка - всегда задается "Первый из диалога мастера": "добавить в качестве полей данных фигуры":
В любом случае, если задали rang в отображение или только в "качестве полей данных фигуры", см. apqc_min_2.xlsx [18.89 Кб]:

Shape Data Label
Prop.Name Hierarchy ID
Prop.ocwiz_1 Name
Prop.rang rang
Prop.Title Должность

Поэтому можно смело ставить фиксированную сортировку на Prop.rang. Таким образом, макрос проверит наличие поля и если его нет - попросит пользователя дополнить таблицу: обязательное поле для работы макроса, т.к. он под него \ сортировку и делается.

В простом случае, это делается пользователем просто копированием (добавлением) другого столбца, например, "Hierarchy ID" (+ назвать "rang") в случае с apqc.

Далее хорошо бы проверить, какое поле "rang": текстовое, цифровое или дата.
В зависимости от типа поля сделать правильную (соответствующую типу поля) сортировку. Например, тип поля "цифровой" можно узнать так: проверить, что в поле только цифры и не более одной точки (запятой). Можно добавить проверку на знак числа (не обязательно).


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 02 ноя 2017, 11:27 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 990
Очков репутации: 100578

Добавить очки репутацииУменьшить очки репутации
Цитата:
В зависимости от типа поля сделать правильную (соответствующую типу поля) сортировку.

Так вот это и есть главная засада. Когда поле вроде как текстовое, а его компонуют из цифровых фрагментов. Например, приходится сравнивать 1.2.9 и 1.2.11. Причем, на втором уровне 1.9 и 1.11 могут быть поняты как цифра, что тоже даст неверную сортировку.
Цитата:
Vbs работает, а .vss выдает ошибку.

Надо будет посмотреть. Явно недостаточная защита от "кривых" данных.
--------
Кстати, посмотрел на данные apqc_min_2.xlsx...
Для таких данных поле rang можно формировать и автоматически. Путем вычитания подстроки ParentID из HierarchyID. Причем результат будет точнее (логичнее), чем в файле - порядковый номер потомка.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 02 ноя 2017, 13:09 
Не в сети
Постоянный участник

Зарегистрирован: 23 апр 2015, 19:23
Сообщений: 73
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Цитата:
Так вот это и есть главная засада. Когда поле вроде как текстовое, а его компонуют из цифровых фрагментов.

Можно ввести правило, если подходит под критерий цифровое, то всегда - цифровое. Если пользователь хочет его делать - текстовым, он всегда это исправит, например, вместо 1.1 будет обозначать "1.1." или "1." или вставить явно символ а1 или а1.1 и т.п.

Цитата:
Явно недостаточная защита от "кривых" данных.

Оба варианта проверял на одних и тех же данных. С введением "rang" думаю алгоритмы "подравняются" и станут более "строгими", ошибка уйдет.

Цитата:
Для таких данных поле rang можно формировать и автоматически

В общем случае, поле rang формируется на собственных принципах, не связанных с именами (названиями) и родителями. Иногда в реальных орг-схемах "rang" - это зарплата, которая прямо указывает на "вес" человека в компании и согласно нему выстраивается "правильная" сортировка внутри группы. Не по алфавиту же "всех строить".


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 02 ноя 2017, 15:24 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 990
Очков репутации: 100578

Добавить очки репутацииУменьшить очки репутации
Цифровой вариант сравнения сделал. Тест apqc_min_2.xlsx проходит.
А по поводу автоопределения быстро ничего хорошего в голову не пришло.


Вложения:
Sorting_d.vss [20 Кб]
Скачиваний: 3
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 02 ноя 2017, 17:13 
Не в сети
Постоянный участник

Зарегистрирован: 23 апр 2015, 19:23
Сообщений: 73
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Работает.
Цитата:
по поводу автоопределения быстро ничего хорошего в голову не пришло.

Кроме основного (автоопределения по "цифровитости") - как я выше предложил, можно еще:
анализировать тип поля ячейки (поля) в Excel (кстати по дате, тоже неплохо было бы сортировать) или запрашивать извне: параметром при запуске или в диалоговом окне.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 02 ноя 2017, 18:08 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 990
Очков репутации: 100578

Добавить очки репутацииУменьшить очки репутации
Sorting_u претендует на универсальное сравнение.
В том числе и напрямую по полю Hierarchy ID


Вложения:
Sorting_u.vss [18.5 Кб]
Скачиваний: 3
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 02 ноя 2017, 23:31 
Не в сети
Постоянный участник

Зарегистрирован: 23 апр 2015, 19:23
Сообщений: 73
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Хорошо. Точнее «Волшебство».
Экспресс – тестирование на K08171_crossIndustry_v705-RU_v1rang_back.xlsx и по 250 общерусских фамилий (FIO).

Возможно, нужно добавить что-то типа ComboBox чтобы можно было выбрать из списка доступные поля, а то нужно лезть в ShapeSheet чтобы там найти Prop.ocwiz_1 (если по Name).
Также, а) если выбрать Cancel – то вылетает с ошибкой.
б) если строю "разбивать по листам", то после перехода на лист и запуска макроса - работает ровно со второго раза.

Подскажите, в чем секрет универсального сравнения? В двух словах. Код то не большой, но я свой то читаю пока с трудом...
Какие есть ограничения?
и … почему этого MS не смог сделать?


Вложения:
Комментарий к файлу: по ФИО
K08171_crossIndustry_v705-RU_v1FIO.xlsx [1.03 Mб]
Скачиваний: 5
Комментарий к файлу: rang в обратную сторону
K08171_crossIndustry_v705-RU_v1rang_back.xlsx [1.03 Mб]
Скачиваний: 4
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание сложной организационной диаграммы
СообщениеДобавлено: 03 ноя 2017, 00:13 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 990
Очков репутации: 100578

Добавить очки репутацииУменьшить очки репутации
Microsoft может все. Если видит прибыль. Наверно здесь ее не видно.
А меня заинтересовало, что тут можно сделать...
В сравнении особого секрета нет. Просто попытки сравнения разных типов. С определенным приоритетом.
Сначала как раз тот иерархический код с точками. Он часто встречается.
Дальше - число, дата. Не получилось - значит строки.
Цитата:
Какие есть ограничения?

Не знаю. Когда-нибудь он ошибется. Если я об этом узнаю, посмотрю, можно ли подкорректировать. Или просто запомню, что в таком-то случае ошибается.
Я же говорю, что в любом случае это просто заплатка.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 104 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB