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

Форум по вопросам применения и программирования в Visio
Текущее время: 23 ноя 2017, 20:40

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


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


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



Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Автоматическое создание VAD – Диаграмм из Excel таблиц
СообщениеДобавлено: 29 окт 2017, 19:20 
Не в сети
Постоянный участник

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

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

Неужели штатными средствами нельзя? Или похожего случая не было?

Тогда вижу примерно такой алгоритм:
Делаем массивы с данными по родителям и детям. Делаем массив «положений на листе» (матрица n * m)
Нашли стартовый элемент (кораблик c х0, y0). Далее смотрим детей. Если – один, то ставим его в затылок: справа (увеличение по Х). Если несколько, то одного по х0+1, y0, второго х0+1, y0+1, третьего х0+1, y0+2 и т.д.

Данные или в массив или сразу на схему - Drop. Только заранее нужно проверить, можно ли в это место Drop (не занято ли)? Т.к. на это место могут претендовать (на одно смещение вправо и низ, т.е. +1 по х и +1 по y) как «второй» ребенок по линии y, так и дети уже по линии y+1.
Если уже место занято, то смещаем еще на y+1 (вниз). И т.д.

Вытянули все в длинную сосиску. Потом применяем матрицу [n * m] и вырезаем блоки со смещением последнего полученного «y».
В конце все соединяем. В данном случае спасет то, что VAD диаграммы простые (минимум логики) и у них редко бывают сложные соединения (из конца в начало, переплетения и т.п.). Это обычно схемы похожие на указанное в примере test_VAD_3d_min.vsd

Цитата:
я между делом подстроил свой шейп-импортер под эту задачу.

Хотелось бы вернуться к такой вариации. Слева таблица – вбиваем руками эти три столбца: родитель, ID шейпа, имя шейпа. И в онлайне смотрим, как автоматом перестраивается вся схема. Как нечто подобное прикрутить к test_VAD_3d_min.vsd?
Полная аналогия с Project: слева таблица – справа схема, построенная по таблице. Только у нас VAD (на первом этапе).


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

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

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

Если размеры "кораблей" известны, то можно и просто координаты рассчитать. И если координата по X зашкаливает, то начинать другой ряд.
И еще - в Visio может стоять "автоподстройка" листа. Тогда алгоритм может усложниться.

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

@BPM - матричный подход может работать, пока все фигуры имеют одинаковый размер. В этом случае да, возможно пред-вычислить позиции.
Однако скорее всего фигуры НЕ будут одинакового размера, по вполне объективным причинам - разный текст, разные фигуры, ветвления, дополнительные значки.
И использование привязки к жесткой сетке будет выглядеть довольно стремно. IMHO. Но в этом случае да, задача сильно упрощается.

Цитата:
Хотелось бы вернуться к такой вариации. Слева таблица – вбиваем руками эти три столбца: родитель, ID шейпа, имя шейпа. И в онлайне смотрим, как автоматом перестраивается вся схема. Как нечто подобное прикрутить к test_VAD_3d_min.vsd?
Полная аналогия с Project: слева таблица – справа схема, построенная по таблице. Только у нас VAD (на первом этапе).

Все реально, но это работа.
Как думаешь, такой вот онлайн-построитель (типа ARIS Express Smart Design, бесплатного кстати) будет кому-то интересен настолько, что он его купит?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание VAD – Диаграмм из Excel таблиц
СообщениеДобавлено: 29 окт 2017, 20:41 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
Хотелось бы вернуться к такой вариации. Слева таблица – вбиваем руками эти три столбца: родитель, ID шейпа, имя шейпа. И в онлайне смотрим, как автоматом перестраивается вся схема. Как нечто подобное прикрутить к test_VAD_3d_min.vsd?
Полная аналогия с Project: слева таблица – справа схема, построенная по таблице. Только у нас VAD (на первом этапе).

Собственно, шейп-импортер - это и есть таблица. Кому нравится, может расположить ее слева, кому нравится - справа. Данные в него можно вбивать как руками, так и импортом из Excel. Черточек не хватает - это да. Но стоит добавить черточки, как тут же становится очень не дружественным ввод данных.
При переходе к VAD_3 была урезана функциональность - вместо множества типов диаграмм оставлен только горизонтальный flowchart. Да на входе вместо таблицы (шейпа) поставлен блок приема данных из Excel в тот же самый массив. И вместо выбора мастер-шейпа в коде забит "кораблик". Причем старый код (прием данных из шейпа) по-моему даже остался, просто закомментирован.
То есть для реализации предложения достаточно просто вернуть старый способ ввода данных.
Или Вы хотите набрать таблицу из множества шейпов? Но ведь сразу возникнут ограничения по количеству ячеек. Да и ввод данных резко замедлится.


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

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
типа ARIS Express Smart Design, бесплатного кстати

По поводу Арисов.
Aris Express – не развивается с 2012-го. Кому вообще нужен АРИС – тот спокойно идет на рутрекер и скачивает полный. Только это не помогает, т.к. 98% что в нем есть – сложно и избыточно, а того «простого», что применимо на уровне бизнес-пользователя – в нем нет.
Ни в Express ни в полном.
Smart Design – не только в АРИС. Нечто подобное было даже в одной редакции Terrasoft CRM (потом убрали почему то) .

Насчет «купить – некупить» – не знаю. Если будет прямая альтернатива АРИС (хотя бы Express), то купят, т.к. покупают тот же Бизнес-студия и BPM-X и подобное (Visio-based). Сегодня куча народа понаделала схем в АРИС и теперь не знает, что с ними делать. Даже в Visio их выгрузить - нужно много мучаться и получить также результат с неясными перспективами.
Хотя это уже прогресс, нежели чем ковыряться с проприетарным стандартом хранения схем в АРИС, про который также все почти уже забыли (мода прошла).

Важно:
А) сегодня нет эффективного BPM-инструмента
Б) сегодня нет открытого BPM-инструмента
В) сегодня нет вообще BPM-инструмента, доступного (понятного) рядовому бизнес-пользователю (не технологу, BPM - специалисту). И над этим стоит задуматься.
Все это не про BPMN, а про настоящий бизнес-анализ.

Поэтому я и пытаюсь по мере сил собрать небольшой набор инструментов (включая построитель, иерархических классификаторов, орг-диаграмм и прочего древовидного). Не только для использования в своей работе, но и как демонстрация целого направления: «BPM руками самих бизнес-пользователей».

Я уже говорил, что это обсуждение лучше делать – отдельной темой. И занялся я всем этим программированием не от хорошей жизни – а из-за ограниченности существующих «крутых» BPM- инструментов. Пафоса у них много – практичность минимальна.

В любом случае, чтобы продать (для стартапа) – нужен бесплатный пилот с полноценной (реальной) демонстрацией подходов. А для «матерых», куда эффективней вместо дорогостоящей рекламы «все можем и умеем» сделать бесплатный простой инструмент, решающий небольшую, но востребованную задачу. Люди будут им пользоваться и рекомендовать компанию. Предложите такой подход process4.biz.
Цитата:
Data Graphics

Data Graphics или нет, но подскажите код: как к test_VAD_3d_min.vsd прикрутить подписи к корабликам. Простые текстовые подписи, чуть ниже кораблика. Хотелось бы простое решение, просто добавить атрибут в шейп и его отобразить. С чего начать?
Data Graphics в Visio 2003 есть?
Цитата:
Или Вы хотите набрать таблицу из множества шейпов?

В идеале – да. Разновидности шейпов – корабликов: Стандартный (Process), необязательный – пунктир по контуру, внешний процесс – заливка другая + нет исполнителей. Также хочу добавить «Событие» (шестиугольник), это немного отход от VAD (модернизация), но помогает лучше ориентироваться в общей логике. Т.е. таблица дополнится полем «тип шейпа» и «примечание» \ комментарий.
Также нужно на схеме предусмотреть примечания: проставлять звёздочки или номерки к процессам, а потом в общем поле «Примечания» излагать пояснения «не жалея букв». В целом – это чертеж. Только чертеж сборочный и процесса (не детали).
Цитата:
(прием данных из шейпа) по-моему даже остался,

Ткните меня в него (шейп, место в коде) пожалуйста.


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

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

Добавить очки репутацииУменьшить очки репутации
BPM писал(а):
Aris Express – не развивается с 2012-го. Кому вообще нужен АРИС – тот спокойно идет на рутрекер и скачивает полный. Только это не помогает, т.к. 98% что в нем есть – сложно и избыточно, а того «простого», что применимо на уровне бизнес-пользователя – в нем нет.

А Visio, честно говоря, особо не развивается с 2010 года. И что такого сложного в ARIS?
И у него есть зверское преимущество перед всеми остальными - во всех экономических ВУЗ-ах учат именно на нем.
BPM писал(а):
В любом случае, чтобы продать (для стартапа) – нужен бесплатный пилот с полноценной (реальной) демонстрацией подходов. А для «матерых», куда эффективней вместо дорогостоящей рекламы «все можем и умеем» сделать бесплатный простой инструмент, решающий небольшую, но востребованную задачу. Люди будут им пользоваться и рекомендовать компанию. Предложите такой подход process4.biz.

Я оттуда ушел 2 года назад. Я сейчас сам по себе, они сами по себе. Последние годы там, кстати, было довольно непросто находить новых клиентов. Никому-то этот BPM стал не нужен, после того как волна хайпа спала. Также как все кипятком писали от UML - типа серебряная пуля, которая решит все наши проблемы! - теперь лежит себе заброшенный.
Цитата:
Data Graphics или нет, но подскажите код: как к test_VAD_3d_min.vsd прикрутить подписи к корабликам. Простые текстовые подписи, чуть ниже кораблика. Хотелось бы простое решение, просто добавить атрибут в шейп и его отобразить. С чего начать?
Data Graphics в Visio 2003 есть?

В Visio 2003 нет Data Graphics (где ты его выкопал-то, кстати?). А для того чтобы отобразить подпись, тебе нужно дополнительное поле.
Одна фигура в Visio может содержать только один "текст". Если тебе нужно два текста, нужна вторая фигура (дочерняя, простейший вариант - data graphics, но это не Visio 2003).
В этой дочерней фигуре можно отобразить текст из поля родительской фигуры (из поля Props.xxx)
В общем, проще всего сделать специализированную фигуру-шаблон (мастер), который будет отображать что тебе нужно, в том виде, в котором тебе нужно (изменить фигуру "кораблика", см. пример ниже)

Если тебе просто текст самой фигуры надо расположить под фигурой (?) то для этого есть кнопка "text box"...


Вложения:
test_VAD_3d_min_label.vsd [42.5 Кб]
Скачиваний: 4
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание VAD – Диаграмм из Excel таблиц
СообщениеДобавлено: 30 окт 2017, 00:19 
Не в сети
Administrator

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

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

Код:
Private Sub PrepareData()
    ' ==== Step 1 ==== Split text to lines and fields
    ' Split ShapeText to Lines
    s = ActiveWindow.Selection(1).Text
    a = Split(s, Chr(10))   'lines
    isCount = UBound(a)
    ' Split record: NodeName - LinkTo - MasterName - ConnectorName - MasterParams - ConnectorParams
    ReDim aFields(6, isCount)
    For i = 0 To isCount
        If a(i) = "" Then
            aFields(1, i) = ""
            aFields(2, i) = ""
            aFields(3, i) = ""
            aFields(4, i) = ""
            aFields(5, i) = ""
            aFields(6, i) = ""
        Else
            b = Split(a(i), Chr(9))
            bCount = UBound(b)
            aFields(1, i) = b(0)
            If bCount > 0 Then aFields(2, i) = b(1) Else aFields(2, i) = ""
            If bCount > 1 Then aFields(3, i) = b(2) Else aFields(3, i) = ""
            If bCount > 2 Then aFields(4, i) = b(3) Else aFields(4, i) = ""
            If bCount > 3 Then aFields(5, i) = b(4) Else aFields(5, i) = ""
            If bCount > 4 Then aFields(6, i) = b(5) Else aFields(6, i) = ""
        End If
    Next

Не все осталось. Но больше половины.
Код:
    s = ActiveWindow.Selection(1).Text

Это выбирается весь текст (вся таблица из шейпа
Код:
    a = Split(s, Chr(10))   'lines

Это он режется на строки. Массив a - это массив строк. Разделитель - перевод строки.
Код:
    ReDim aFields(6, isCount)

Это организуется окончательный массив. 6 колонок и isCount строк.
Код:
            b = Split(a(i), Chr(9))

Здесь уже каждая строка делится на поля. Разделитель - табуляция.
В итоге текст шейпа превращается в двумерный массив aFields.


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

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
Никому-то этот BPM стал не нужен,

BPМ то нужен, но не такой какой предлагают.
Цитата:
Последние годы там, кстати, было довольно непросто находить новых клиентов.

Одни считают направление провальным – и уходят, другие наоборот перспективным и начинают масштабные проекты по разработке, например, тульский Интерпрайс Эксплорер (по мотивам немецкого BPM-X).
Цитата:
test_VAD_3d_min_label.vsd

Да, пойдет видимо. Это же и есть «данные фигуры», та же Data1.
Добавлю в стенсил «Process» через Данные \ определить данные фигуры, далее программно буду подставлять значения из таблицы.
Не понял какой атрибут отвечает, чтобы она (Shape Data = Prop.Label) внизу (под шейпом) высветилась.
Цитата:
Private Sub PrepareData()

Большое спасибо, буду разбираться (не знаю только когда). Правда это мне пока намного сложнее, чем по поводу BPM умничать.
Цитата:
В итоге текст шейпа превращается в двумерный массив

нам минимум три колонки нужно: родитель, ID, имя.


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

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
нам минимум три колонки нужно: родитель, ID, имя.

Ну так, из шести три всегда можно отбросить.


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

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
test_VAD_3d_min_label.vsd [42.5 Кб]

Подскажи, как в наборе элементов создать такой же как у тебя «специализированную фигуру-шаблон (мастер)». Если это Data Graphics, то почему в «Изменить образец» пусто поле данных (Data Graphics)?
И вообще, в окне набор элементов (стенсилы) – в режиме «изменить фигуру образца» окно Data Graphics \ Рисунки, связанные с данными – не активируется.
Похожее что-то получается, а точно как у тебя да еще и через редактор в стенсилах - нет.


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

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

Добавить очки репутацииУменьшить очки репутации
BPM писал(а):
Подскажи, как в наборе элементов создать такой же как у тебя «специализированную фигуру-шаблон (мастер)». Если это Data Graphics, то почему в «Изменить образец» пусто поле данных (Data Graphics)? И вообще, в окне набор элементов (стенсилы) – в режиме «изменить фигуру образца» окно Data Graphics \ Рисунки, связанные с данными – не активируется.
Похожее что-то получается, а точно как у тебя да еще и через редактор в стенсилах - нет.

Это не Data Graphics, это обычное поле (группа с другой фигурой внутри, в которой есть поле). Ты же кажется говорил что тебе для 2003 нужно? - такой вариант будет работать в 2003 тоже.
Здесь вот описано более подробно http://visguy.com/vgforum/index.php?top ... 3#msg18993 (3)

Если кажется что геморно, то так оно и есть. Потому я и говорю, что с Data Graphics гемора на порядок меньше -
все можно сделать без всякой прокачки, следуя видео, коих на ютубе под это пруд-пруди.

Как редактировать - нажать кнопку "open group" (открыть группу)

Как сделать в такую же фигуру в наборе элементов? - Перетащить ее туда при помощи манипулятора "мышь" :)

Почему нельзя редактировать Data Graphics в режиме редактирования мастера?
Потому что в M$ засели индусы ежики, которые данную возможность задизейблили в Visio 2010 (или 2013?), а возвращать обратно не хотят, как ни просили,
ибо они не могут взять в толк, зачем оно нужно в режиме редактирования мастера.


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

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
Как сделать в такую же фигуру в наборе элементов? - Перетащить ее туда при помощи манипулятора "мышь"

Перетаскивал, но когда жму "изменить образец" - "Изменить фигуру образца", в отличие от моих - этот трафарет выдает "пустое поле".


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание VAD – Диаграмм из Excel таблиц
СообщениеДобавлено: 01 ноя 2017, 22:55 
Не в сети
Ветеран
Аватара пользователя

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

Добавить очки репутацииУменьшить очки репутации
Хм... Не совсем понял.. Достаточно просто взять с диаграммы мышкой фигуру, и положить на нужный тебе стенсил (набор элементов), т.е. используя т.н. драг-анд-дроп. Альтернативно, можно через копирование-вставку (скопировать фигуру и вставить её в набор элементов)
Откуда взялось какое-то пустое поле?

Ааа, понял. Попробовал сделать как ты написал - фигура справа (за экраном). Уменьши масштаб, и увидишь :)

Изображение


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

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

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

Спасибо, сработало.
Уменьшал масштаб, но не ожидал, что нужно настолько (10%).

Прежняя большая Проблема: разместить все на листе (не совсем понял твою идею).
Шаг первый вижу:
расположить рисунок в верхнем левом углу (после Page.Layout).
Записал макро-рекордом:
Dim UndoScopeID2 As Long
UndoScopeID2 = Application.BeginUndoScope("Расположить фигуры")
Application.ActiveWindow.Page.PageSheet.CellsSRC(visSectionObject, visRowPageLayout, visPLOPlaceStyle).FormulaForceU = "2"
Application.ActiveWindow.Page.PageSheet.CellsSRC(visSectionObject, visRowPageLayout, visPLORouteStyle).FormulaForceU = "6"
Application.ActiveWindow.Page.Layout
Application.EndUndoScope UndoScopeID2, True

Но это выравнивает набор шейпов по центру, а варианта «левый верхний» в меню: «изменить макет страницы \ блок-схема \ слева направо» нет.
Есть ли параметры такие для нужного мне варианта?
Или придется вычислять самую верхнюю фигуру, самую левую, что-то рассчитывать и двигать куда-то.


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

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

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

имелось ввиду
Цитата:
Когда я что-то подобное делал (тоже на заказ), то подход был такой -
Сначала рисуем очередгой шаг как есть (но перед началом ставим точку отката в виде application.beginundoscope).

У нас речь шла
1) о матричном ручном построении (вначале);
2) о автопостроении Page.Layout «изменить макет страницы \ блок-схема \ слева направо».

если речь идет о матричном ручном построении, то мы и так знаем координату - куда устанавливать шейп.
если речь идет о автопостроении Page.Layout, то какой прок в откате?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание VAD – Диаграмм из Excel таблиц
СообщениеДобавлено: 03 ноя 2017, 01:53 
Не в сети
Ветеран
Аватара пользователя

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

Добавить очки репутацииУменьшить очки репутации
BPM писал(а):
если речь идет о матричном ручном построении, то мы и так знаем координату - куда устанавливать шейп


В случае, о котором случае, о котором я говорил, координаты заранее не известны.
Проще показать чем объяснять я думаю:

Изображение


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

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

Добавить очки репутацииУменьшить очки репутации
Промежуточный вариант 1: test_VAD_4b_pr.vsd
запуск mac_1()

Далеко не все нравится, в отсутствие грамотных решений - как бороться с переносом «строки кораблей» - сделал топорно и только под А4 ландшафт.
Разбивка по размеру листа – принципиальный момент, т.к. внеразмерные схемы – это далеко не для рядового пользователя, привыкшего к А4, в крайнем случае А3.
«Грамотно» - это автоматом определять \ устанавливать размер листа, вычислять стандартным методом координаты: размер листа, поля (поля печати), область отрисовки кораблей (= лист – поля – зазор под коннекторы по краям) и т.п. Пока все ввел константами.

Что хотелось бы:
1) Чтобы корабли швартовались только кормой к носу, т.е. нужно запретить возможность соединен6ия с боков (бортов). В моем шаблоне по бортам нет Connection Point . Только две на корме и на носу. Но все равно соединяет. Как запретить стыковку вне Connection Point?
Видимо через Shape.AutoConnect Method (Visio)
https://msdn.microsoft.com/en-us/vba/vi ... thod-visio
можно побороть только один коннект:
Код:
If ShpColl.Item(j).Name = arrP(I) Then ' соединяем с родителем, поэтому всегда соединитель будет слева и можно использовать visAutoConnectDirLeft
ShpColl.Item(j).AutoConnect ShpColl.Item(funcShp(arrID(I))), visAutoConnectDirLeft

Но все равно - не сработало. Почему?

Что сделал бы совсем потом (при шлифовке):
А) Перенос на начало страницы – учесть, только по размерам первой линейки, т.к. могут быть далее тройные и четверные и они дадут ненужное смешение сверху. Сейчас сделан алгоритм через ActiveWindow.SelectAll: выделили все, сгруппировали и перенесли в левый – верхний угол. Хотя по высоте у первой линейки кораблей, уместившейся на листе – может быть много «лишнего» места сверху, например, когда тройные корабли пойдут со второй страницы и все равно дадут влияние на общий групповой шейп, притянутый в начало координат схемы.
Б) перенос продолжения флотилии на второй лист (это совсем «потом»). Видимо это то - о чем показывал выше nbelyh.

Над чем думаю сейчас: Нужна слева таблица, которая в интерактивном режиме будет задавать положение кораблей, т.е. Smart Designer (АРИС и прочее). Собственно как в Project, только вместо проектов – процессы (таблица – схема кораблей VAD вместо таблица – диаграмма Ганта).

Присматривался к вводу данных через отдельный шейп-импортер, как предложил Tumanov. Но ввод нового шейпа, отличного от «карабельного» (VAD) – видимо все поломает в существующем коде, т.к. если его (импортер) и не включать в коллекцию, то все равно он залезет в группу через ActiveWindow.SelectAll. Или как-то можно это исправить? Вообще, редактировать данные (визуализируемые в он-лайн на схеме) через шейп-импортер – мне показалось сложным вариантом.
Может лучше через форму (UserForm \ TextBox \ ListBox)? Какие будут проблемы у такого варианта?

Упрощение задачи:
1) в схеме будет всего один мастрер-шейп (стенсил). Менять его вариации (цвет и линия по контуру) – буду после его размещения (Drop).


Вложения:
Комментарий к файлу: Промежуточный вариант 1
test_VAD_4b_pr.vsd [119 Кб]
Скачиваний: 3
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматическое создание VAD – Диаграмм из Excel таблиц
СообщениеДобавлено: 18 ноя 2017, 18:27 
Не в сети
Постоянный участник

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

Добавить очки репутацииУменьшить очки репутации
Похоже, получилось ( ... или почти).
Вопросы:
1) Смотрим по кнопке «Пример 2».
Почему «Длинный процесс 104» Lay Out расположил ниже «Длинный процесс 105» – го? Ранее было наоборот, но с какого-то момента началось так. Можно ли этим как-то управлять?
2) Соединительные линии иногда пересекают корабли, а нужно чтобы всегда огибали. Как исправить?
3) Что в коде можно было бы сделать более грамотно?
4) Остался проблемный вопрос с ListView \ Grid. Применил четыре ListView, но нужно что-то придумать более эффективное (для 2010), но хотелось бы без подгруздки внешних «гридовских» библиотек (но это видимо уже не по Visio).


Вложения:
Комментарий к файлу: конструктор укрупненных процессов v00.001
TABVAD_0.vsd [195 Кб]
Скачиваний: 2
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2

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



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

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


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

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