Author |
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
|
Вы не написали версию визио, создаем фигуру квадрат с тремя кустом пропертями нажимаем рекодер и вставляем квадрат на лист, меняем в вставленном кустом проперти
модифицируем полученный код
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 |
|
|
brace
Russia
358 Posts |
Posted - 03/09/2005 : 16:21:13
|
большое спасибо за подсказку у меня visio pro 2003 sp1. те последний. неужели в нем нет готового addon для этих целей и надо таким сложным способом делать уверен такая задачка возникает у многих а если поставить visio 2003 SDK ??? может там есть решение.
|
|
|
TuzhibaevTA
Russia
85 Posts |
Posted - 03/10/2005 : 06:35:35
|
Я в какой то статье читал, что Visio 2003 не умеет генерировать из таблиц фигуры. Такой финт еть только в Visio XP из VisualStudio 2003. Хотя эта статья писалась до выхода V2003 SP1, может че и изменилось
Тужибаев Тимур |
|
|
immortal
Russia
391 Posts |
Posted - 03/10/2005 : 08:31:22
|
quote: Originally posted by brace
большое спасибо за подсказку у меня visio pro 2003 sp1. те последний. неужели в нем нет готового addon для этих целей и надо таким сложным способом делать уверен такая задачка возникает у многих а если поставить visio 2003 SDK ??? может там есть решение.
я практически не пользуюсь стандартными адд-онами т.к. меня в чем-то они да не устраивают, а самому можно сделать то что надо
визио 2003 форэвер
...а вобще-то я белый и пушистый. |
|
|
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 хотя не уверен что ответят. Спасибо всем.
|
|
|
immortal
Russia
391 Posts |
Posted - 03/10/2005 : 12:04:24
|
quote: Originally posted by brace
и для каждой простой задачки писать свой самопальный код.
простая задачка может понадобиться не только вам
quote: Originally posted by brace
убежден - не должен обычный пользователь знать VBA
тогда вам, как простому пользователю в раздел для разработчиков, чтобы разработчики этим занимались.
визио 2003 форэвер
...а вобще-то я белый и пушистый. |
|
|
brace
Russia
358 Posts |
Posted - 03/10/2005 : 13:15:02
|
у нас софт лицензионный те мы разработчикакм MS уже заплатили но приложение не выполняет заявленных возможностей но это конечно бесполезный разговор. может кто знает а под Linux есть типа visio приложения ???
|
|
|
immortal
Russia
391 Posts |
Posted - 03/10/2005 : 15:00:19
|
под линукс ставь эмулятор винды
визио 2003 форэвер
...а вобще-то я белый и пушистый. |
|
|
Tumanov
Russia
1198 Posts |
Posted - 03/10/2005 : 18:40:22
|
И чего совсем человека запутали? Database Wizard решает эту задачу. Шейпы размещаются на странице в соответствии с таблицей в Excel. Вот только Add-on очень капризный. Любое отклонение от технологии, задуманной в голове разработчика, приводит к отказу от выполнения. А чтобы не ошибаться, надо хорошо изучить, как это работает. Вообще-то я с этим аддоном не работал, но сегодня попробовал. Не помню с какой попытки, задача все-таки решилась. Когда ничего не получалось, пришлось сначала запустить экспорт в Excel, а уж потом обратную задачу. С первого раза и сейчас повторить не возьмусь... Но человек, знающий технологию, должен сделать это за несколько минут. Так что к Microsoft претензии предъявлять бесполезно - слова надо учить... Работал на Visio 2003 SP1.
|
|
|
Tumanov
Russia
1198 Posts |
Posted - 03/10/2005 : 18:50:26
|
Забыл сказать, надо обязательно отключить флажок Automatically disrtibute shapes on page, а то Visio плюнет на ассоциацию PinX, PinY с базой и начнет их сам распределять. |
|
|
brace
Russia
358 Posts |
Posted - 03/11/2005 : 09:41:13
|
Спасибо господин Туманов Вы вселили надежду Буду биться с удвоенной энергией.
|
|
|
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. |
|
|
brace
Russia
358 Posts |
Posted - 03/14/2005 : 09:36:53
|
я никак не привязан к Excel если проще связать Visio и Access нет вопроса если проще связать Visio и .txt файл тоже подойдет некоторые ведь справедливо считают что txt файл это тоже таблица если данные построены в колонки с разделением их табуляцией. Спасибо за участие в решении этой проблемы. |
|
|
immortal
Russia
391 Posts |
Posted - 03/14/2005 : 12:24:17
|
опишите проблему в комплексе, какие задачи, что необходимо, какие проекты должны делаться с использованием всего этого, тогда может решение вашей проблемы найдем, или сделаем, возможно оно уже сделано
визио 2003 форэвер
...а вобще-то я белый и пушистый. |
|
|
brace
Russia
358 Posts |
Posted - 03/14/2005 : 12:29:59
|
Вопрос к гос-ну Туманову. Делаю по Вашей методе вроде бы visio все проглатывает не возмущается но результат нулевой. Есть подозрение что visio не понимает моих координат. Посему вопрос - а в каких единицах координаты задавать ??? В см мм или в дюймах ???
|
|
|
Topic |
|