All Forums
 Категория Visio
 Форум Вопросы и ответы
 размещение фигур.
Next Page
Author Previous Topic Topic Next Topic

brace

Russia
358 Posts

Posted - 03/09/2005 :  10:25:03
В таблице Excel есть 6 колонок.
В Колонках 1 и 2 координаты фигур по Х и Y.
В колонке 3 текст который должен быть внутри фигуры.
В колонках 4-5-6 свойства фигур которые должны попасть в окно Custom Properties.
Все фигуры одинаковые - допустим квадрат.
Как автоматически разместить эти фигуры на странице VISIO ???
По идее для этой цели и предназначен add-on Database-Wizard
но не получается с ним эта задачка как ни бился.
заранее благодарен всем за помощь.

immortal

Russia
391 Posts

Posted - 03/09/2005 :  13:25:00  Visit immortal's Homepage
Вы не написали версию визио,
создаем фигуру квадрат с тремя кустом пропертями
нажимаем рекодер и вставляем квадрат на лист, меняем в вставленном кустом проперти

модифицируем полученный код
Sub Macro1()


'вставка шейпа
Application.ActiveWindow.Page.Drop Application.Documents.Item _
("C:\Documents and Settings\Administrator\My Documents\Мои объекты\Любимое.vss") _
.Masters.ItemU("квадрат"), 3.346457, 7.874016

'определение с каким шейпом производим операции
    Dim vsoShape1 As Visio.Shape
    Dim intPropRow2 As Integer
    Set vsoShape1 = Application.ActiveWindow.Page.Shapes.ItemFromID(1)
    

    
    
'собственно сами кустом проперти
    intPropRow2 = 0
    vsoShape1.CellsSRC(visSectionProp, intPropRow2, visCustPropsValue).FormulaU = """апарр"""
    intPropRow2 = 1
    vsoShape1.CellsSRC(visSectionProp, intPropRow2, visCustPropsValue).FormulaU = """пппп"""
    intPropRow2 = 2
    vsoShape1.CellsSRC(visSectionProp, intPropRow2, visCustPropsValue).FormulaU = """пппппорорп"""
    Application.EndUndoScope UndoScopeID1, True
'пишем текст
    Dim vsoCharacters1 As Visio.Characters
    Set vsoCharacters1 = Application.ActiveWindow.Page.Shapes.ItemFromID(1).Characters
    vsoCharacters1.Begin = 0
    vsoCharacters1.End = 0
    vsoCharacters1.Text = "аааа" & Chr(10) & "апрпар"




End Sub

необходимо добавить сюда цикл чтобы перебирать значения из екселя

визио 2003 форэвер

...а вобще-то я белый и пушистый.

Edited by - immortal on 03/10/2005 08:29:54
Go to Top of Page

brace

Russia
358 Posts

Posted - 03/09/2005 :  16:21:13
большое спасибо за подсказку
у меня visio pro 2003 sp1. те последний.
неужели в нем нет готового addon для этих целей
и надо таким сложным способом делать
уверен такая задачка возникает у многих
а если поставить visio 2003 SDK ???
может там есть решение.

Go to Top of Page

TuzhibaevTA

Russia
85 Posts

Posted - 03/10/2005 :  06:35:35
Я в какой то статье читал, что Visio 2003 не умеет генерировать из таблиц фигуры. Такой финт еть только в Visio XP из VisualStudio 2003. Хотя эта статья писалась до выхода V2003 SP1, может че и изменилось

Тужибаев Тимур
Go to Top of Page

immortal

Russia
391 Posts

Posted - 03/10/2005 :  08:31:22  Visit immortal's Homepage
quote:
Originally posted by brace

большое спасибо за подсказку
у меня visio pro 2003 sp1. те последний.
неужели в нем нет готового addon для этих целей
и надо таким сложным способом делать
уверен такая задачка возникает у многих
а если поставить visio 2003 SDK ???
может там есть решение.


я практически не пользуюсь стандартными адд-онами т.к. меня в чем-то они да не устраивают, а самому можно сделать то что надо

визио 2003 форэвер

...а вобще-то я белый и пушистый.
Go to Top of Page

brace

Russia
358 Posts

Posted - 03/10/2005 :  09:40:17
убежден - не должен обычный пользователь знать VBA
и для каждой простой задачки писать свой самопальный код.
Database Wizard содержит следующую инфу:
"Using the Database Wizard you can Create drawing that are
graphical representations of database tables"

Попробую написать на Microsoft хотя не уверен что ответят.
Спасибо всем.


Go to Top of Page

immortal

Russia
391 Posts

Posted - 03/10/2005 :  12:04:24  Visit immortal's Homepage
quote:
Originally posted by brace

и для каждой простой задачки писать свой самопальный код.


простая задачка может понадобиться не только вам
quote:
Originally posted by brace

убежден - не должен обычный пользователь знать VBA


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

визио 2003 форэвер

...а вобще-то я белый и пушистый.
Go to Top of Page

brace

Russia
358 Posts

Posted - 03/10/2005 :  13:15:02
у нас софт лицензионный
те мы разработчикакм MS уже заплатили
но приложение не выполняет заявленных возможностей
но это конечно бесполезный разговор.
может кто знает
а под Linux есть типа visio приложения ???
Go to Top of Page

immortal

Russia
391 Posts

Posted - 03/10/2005 :  15:00:19  Visit immortal's Homepage
под линукс ставь эмулятор винды

визио 2003 форэвер

...а вобще-то я белый и пушистый.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 03/10/2005 :  18:40:22
И чего совсем человека запутали?
Database Wizard решает эту задачу. Шейпы размещаются на странице в соответствии с таблицей в Excel.
Вот только Add-on очень капризный. Любое отклонение от технологии, задуманной в голове разработчика, приводит к отказу от выполнения. А чтобы не ошибаться, надо хорошо изучить, как это работает.
Вообще-то я с этим аддоном не работал, но сегодня попробовал. Не помню с какой попытки, задача все-таки решилась. Когда ничего не получалось, пришлось сначала запустить экспорт в Excel, а уж потом обратную задачу. С первого раза и сейчас повторить не возьмусь... Но человек, знающий технологию, должен сделать это за несколько минут. Так что к Microsoft претензии предъявлять бесполезно - слова надо учить...
Работал на Visio 2003 SP1.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 03/10/2005 :  18:50:26
Забыл сказать, надо обязательно отключить флажок Automatically disrtibute shapes on page, а то Visio плюнет на ассоциацию PinX, PinY с базой и начнет их сам распределять.
Go to Top of Page

brace

Russia
358 Posts

Posted - 03/11/2005 :  09:41:13
Спасибо господин Туманов
Вы вселили надежду
Буду биться с удвоенной энергией.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 03/11/2005 :  19:42:16
Оказывается, я был не прав.
Визард работает довольно корректно и изучать нужно не так-то много (тем более, что документации все равно нет). Для меня (как оказалось) самым сложным было задать именованый регион в Excel (это то, что Visio считает таблицей базы данных). Но это проблемы Excel, а не Visio, да и в Help на Excel все написано довольно хорошо.
Короче, если теперь что-то не получается, задавайте конкретные вопросы. Скорее всего смогу ответить.
Общая последовательность:
1. В файле Excel создать именованый регион.
2. Сделать мастер-шейп, например, в Document Stencil, из которого будут формироваться шейпы на рисунке.
3. С помощью Визарда ассоциировать этот мастер-шейп с таблицей базы. При этом:
- колонки 1 и 2 ассоциировать с PinX и PinY;
- для колонки 3 есть поле (что-то типа Shapetext, точно не помню, но в списка увидите);
- для полей 4-6 возможно Custom Properties в мастер-шейпе надо заготовить заранее (хотя специалист бы воспользовался операцией создания мастер-шейпа по базе, но можно и ручками сделать);
4. Заключительная операция - создать рисунок по базе с помощью Визарда. Все.
Первые три операции делаются один раз. Результат сохраняется в виде шаблона. Последняя операция повторяется каждый раз для нового файла Excel.
Go to Top of Page

brace

Russia
358 Posts

Posted - 03/14/2005 :  09:36:53
я никак не привязан к Excel
если проще связать Visio и Access нет вопроса
если проще связать Visio и .txt файл тоже подойдет
некоторые ведь справедливо считают что txt файл это тоже таблица
если данные построены в колонки с разделением их табуляцией.
Спасибо за участие в решении этой проблемы.
Go to Top of Page

immortal

Russia
391 Posts

Posted - 03/14/2005 :  12:24:17  Visit immortal's Homepage
опишите проблему в комплексе, какие задачи, что необходимо, какие проекты должны делаться с использованием всего этого, тогда может решение вашей проблемы найдем, или сделаем, возможно оно уже сделано

визио 2003 форэвер

...а вобще-то я белый и пушистый.
Go to Top of Page

brace

Russia
358 Posts

Posted - 03/14/2005 :  12:29:59
Вопрос к гос-ну Туманову.
Делаю по Вашей методе вроде бы visio все проглатывает
не возмущается но результат нулевой.
Есть подозрение что visio не понимает моих координат.
Посему вопрос - а в каких единицах координаты задавать ???
В см мм или в дюймах ???

Go to Top of Page
Previous Topic Topic Next Topic  
Next Page
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)