All Forums
 Категория Visio
 Форум Вопросы и ответы
 Visio и MS SQL
Author Previous Topic Topic Next Topic  

Anatol

Moldova
4 Posts

Posted - 06/14/2006 :  12:27:38
Я создал в Visio чертеж. Вопрос:
Как в особых свойствах шаблонов, к которым мы получаем доступ по правой кнопке мышки, выбрав Proterties, определенному свойству сопоставить таблицу базы данных MS SQL ?
Т.е. необходимо сделать так, чтобы на форме "Выбор спецпараметров", которая появляется при нажатии кнопки "Назначить..." в списке типов был бы тип "Прикрепленный список" или один из существующих типов списка, но в качестве значений выбирать поле из выбранной таблицы базы MS SQL, а не задавать этот список вручную в этом поле ?
Другими словами, я хочу в качестве значений combo box для выбора получать значения из определенного поля некоего справочника базы MS SQL.
P.S. Если это, конечно, возможно ! Можно предложить любые альтернативные варианты (в т.ч., используя программирование на VBA), буду только рад, ведь я только начинаю работать с Visio .

Tumanov

Russia
1198 Posts

Posted - 06/14/2006 :  19:23:04
Сначала терминология (а то мы не поймем друг друга):
Шаблон - это заготовка для чертежа Visio. То есть файл с рисунком
Трафарет - поляна слева, с которой мы перетаскиваем мастер-шейпы (или мастера) на рисунок.
Шейп - это тот объект, который мы перетащили с трафарета на рисунок или нарисовали.
---------------------------------
Во-первых, без VBA Ваша задача, по-моему, не получится.
Во-вторых, нужно решить, когда и насколько часто "заряжать" шейпы списками.
Возможно достаточно прописать списки в мастер-шейпах в трафарете.
Возможно списки должны обновляться при открытии документа (рисунка) или по специальной кнопке.
В каждом шейпе должен быть свой список или в шейпах одинакового типа и списки одинаковые? В этом случае достаточно менять список в мастер-шейпе в трафарете документа (Document Stencil) - изменение отразится во всех шейпах-экземплярах.
Ну и т.д.
А само техническое исполнение функции просто - связаться с базой, выполнить Select, перебрать строки RecordSet'а, формируя из полей строку с разделителями и засунуть получившуюся строку в нужную ячейку шейп-листа (ShapeSheet) шейпа или мастер-шейпа. Тип поля должен быть Fixed List, а строка засовывается в ячейку Format.
Go to Top of Page

Anatol

Moldova
4 Posts

Posted - 06/21/2006 :  17:26:42
quote:
Originally posted by Tumanov

Сначала терминология (а то мы не поймем друг друга):
Шаблон - это заготовка для чертежа Visio. То есть файл с рисунком
Трафарет - поляна слева, с которой мы перетаскиваем мастер-шейпы (или мастера) на рисунок.
Шейп - это тот объект, который мы перетащили с трафарета на рисунок или нарисовали.
---------------------------------
Во-первых, без VBA Ваша задача, по-моему, не получится.
Во-вторых, нужно решить, когда и насколько часто "заряжать" шейпы списками.
Возможно достаточно прописать списки в мастер-шейпах в трафарете.
Возможно списки должны обновляться при открытии документа (рисунка) или по специальной кнопке.
В каждом шейпе должен быть свой список или в шейпах одинакового типа и списки одинаковые? В этом случае достаточно менять список в мастер-шейпе в трафарете документа (Document Stencil) - изменение отразится во всех шейпах-экземплярах.
Ну и т.д.
А само техническое исполнение функции просто - связаться с базой, выполнить Select, перебрать строки RecordSet'а, формируя из полей строку с разделителями и засунуть получившуюся строку в нужную ячейку шейп-листа (ShapeSheet) шейпа или мастер-шейпа. Тип поля должен быть Fixed List, а строка засовывается в ячейку Format.



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