Author |
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. |
|
|
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.
Огромное спасибо. Все получилось. Я прописал список в мастер-шейпе в трафарете и обновляю его при открытии документа. Технически - я сделал так, как Вы и предложили. |
|
|
|
Topic |
|
|
|